メインコンテンツまでスキップ
バージョン: 4.x

LOCAL

説明

ローカルテーブル値関数(tvf)は、ユーザーがbeノード上のローカルファイルの内容を、リレーショナルテーブルにアクセスするのと同様に読み取りおよびアクセスできるようにします。現在、csv/csv_with_names/csv_with_names_and_types/json/parquet/orcファイル形式をサポートしています。

syntax

LOCAL(
"file_path" = "<file_path>",
"backend_id" = "<backend_id>",
"format" = "<format>"
[, "<optional_property_key>" = "<optional_property_value>" [, ...] ]
);

必須パラメータ

ParameterDescriptionRemarks
file_path読み込み対象のファイルパス。user_files_secure_pathディレクトリからの相対パスで指定します。user_files_secure_pathパラメータはBE設定項目です。
パスに..を含めることはできません。また、logs/*.logのようにパターンマッチングにglob構文を使用できます。
backend_idファイルが配置されているBEノードのID。show backendsコマンドで取得できます。バージョン2.1.1以前では、Dorisは指定されたBEノード上のローカルデータファイルの読み込みのためにBEノードの指定のみをサポートしています。
formatファイル形式。必須です。サポートされている形式はcsv/csv_with_names/csv_with_names_and_types/json/parquet/orcです。

オプションパラメータ

ParameterDescriptionRemarks
shared_storageデフォルトはfalse。trueの場合、指定されたファイルは共有ストレージ(NASなど)に配置されています。共有ストレージはPOSIXファイルインターフェースをサポートし、すべてのBEノードにマウントされている必要があります。
shared_storageがtrueの場合、backend_idは省略可能です。DorisはデータアクセスにすべてのBEノードを利用する場合があります。backend_idが設定されている場合は、指定されたBEノードでのみデータにアクセスします。
バージョン2.1.2以降でサポート
column_separatorカラム区切り文字。オプション、デフォルトは\tです。
line_delimiter行区切り文字。オプション、デフォルトは\nです。
compress_type圧縮タイプ。オプション。サポートされているタイプはUNKNOWN/PLAIN/GZ/LZO/BZ2/LZ4FRAME/DEFLATE/SNAPPYBLOCKです。デフォルトはUNKNOWNで、uriの拡張子から自動的にタイプが推測されます。
read_json_by_lineJSON形式のインポート用。オプション、デフォルトはtrueです。参照:Json Load
strip_outer_arrayJSON形式のインポート用。オプション、デフォルトはfalseです。参照:Json Load
json_rootJSON形式のインポート用。オプション、デフォルトは空です。参照:Json Load
json_pathsJSON形式のインポート用。オプション、デフォルトは空です。参照:Json Load
num_as_stringJSON形式のインポート用。オプション、デフォルトはfalseです。参照:Json Load
fuzzy_parseJSON形式のインポート用。オプション、デフォルトはfalseです。参照:Json Load
trim_double_quotesCSV形式のインポート用。オプション、デフォルトはfalseです。trueの場合、CSVファイルの各フィールドの最外層のダブルクォートを削除します。CSV形式用
skip_linesCSV形式のインポート用。オプション、デフォルトは0で、CSVファイルの最初の数行をスキップします。形式がcsv_with_namesまたはcsv_with_names_and_typesの場合、このパラメータは無視されます。CSV形式用
path_partition_keysオプション、ファイルパスに含まれるパーティションカラム名を指定します。例:/path/to/city=beijing/date="2023-07-09"の場合、path_partition_keys="city,date"を設定します。これにより、インポート用にパスから対応するカラム名と値が自動的に読み取られます。
enable_mapping_varbinaryデフォルトはfalse。PARQUET/ORCを読み込む際、BYTE_ARRAY型をSTRINGにマッピングします。有効にした場合、VARBINARY型にマッピングします。4.0.3以降でサポート

アクセス制御要件

PrivilegeObjectNotes
ADMIN_PRIVglobal

使用上の注意事項

  • local tvfのより詳細な使用方法については、S3 tvfを参照してください。両者の唯一の違いはストレージシステムへのアクセス方法です。

  • local tvf経由でNAS上のデータにアクセスする

    NAS共有ストレージは複数のノードに同時にマウントすることができます。各ノードはローカルファイルと同様に共有ストレージ内のファイルにアクセスできます。そのため、NASはローカルファイルシステムとして考え、local tvf経由でアクセスします。

    "shared_storage" = "true"を設定すると、Dorisは指定されたファイルが任意のBEノードからアクセス可能であると判断します。ワイルドカードを使用してファイル群が指定された場合、Dorisはファイルアクセス要求を複数のBEノードに分散するため、複数ノードを使用した分散ファイルスキャンが実行でき、クエリパフォーマンスが向上します。

指定されたBE上のログファイルを分析:

select * from local(
"file_path" = "log/be.out",
"backend_id" = "10006",
"format" = "csv")
where c1 like "%start_time%" limit 10;
+--------------------------------------------------------+
| c1 |
+--------------------------------------------------------+
| start time: 2023 年 08 月 07 日 星期一 23:20:32 CST |
| start time: 2023 年 08 月 07 日 星期一 23:32:10 CST |
| start time: 2023 年 08 月 08 日 星期二 00:20:50 CST |
| start time: 2023 年 08 月 08 日 星期二 00:29:15 CST |
+--------------------------------------------------------+

パス${DORIS_HOME}/student.csvにあるcsv形式のファイルを読み取りアクセスします:

select * from local(
"file_path" = "student.csv",
"backend_id" = "10003",
"format" = "csv");
+------+---------+--------+
| c1 | c2 | c3 |
+------+---------+--------+
| 1 | alice | 18 |
| 2 | bob | 20 |
| 3 | jack | 24 |
| 4 | jackson | 19 |
| 5 | liming | d18 |
+------+---------+--------+
```--+---------+--------+

Query files on NAS:

select * from local(
"file_path" = "/mnt/doris/prefix_*.txt",
"format" = "csv",
"column_separator" =",",
"shared_storage" = "true");

+------+------+------+
| c1 | c2 | c3 |
+------+------+------+
| 1 | 2 | 3 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
+------+------+------+

Can be used with desc function :

desc function local(
"file_path" = "student.csv",
"backend_id" = "10003",
"format" = "csv");

+-------+------+------+-------+---------+-------+
| フィールド | 型 | Null | キー | デフォルト | 追加 |
+-------+------+------+-------+---------+-------+
| c1 | TEXT | Yes | false | NULL | NONE |
| c2 | TEXT | Yes | false | NULL | NONE |
| c3 | TEXT | Yes | false | NULL | NONE |
+-------+------+------+-------+---------+-------+