FILES
説明
リモートストレージ内のデータファイルを定義します。以下の用途に使用できます:
現在、FILES() 関数は以下のデータソースとファイル形式をサポートしています:
- データソース:
- HDFS
- AWS S3
- Google Cloud Storage
- その他の S3 互換ストレージシステム
- Microsoft Azure Blob Storage
- NFS(NAS)
- ファイル形式:
- Parquet
- ORC
- CSV
バージョン 3.2 以降、FILES() は基本データ型に加えて、ARRAY、JSON、MAP、STRUCT などの複雑なデータ型もサポートしています。
ロード用の FILES()
バージョン 3.1.0 以降、StarRocks はテーブル関数 FILES() を使用してリモートストレージ内の読み取り専用ファイルを定義することをサポートしています。ファイルのパス関連プロパティを使用してリモートストレージにアクセスし、ファイル内のデータのテーブルスキーマを推測し、データ行を返します。SELECT を使用してデータ行を直接クエリしたり、INSERT を使用して既存のテーブルにデータ行をロードしたり、CREATE TABLE AS SELECT を使用して新しいテーブルを作成し、データ行をロードすることができます。バージョン 3.3.4 以降、DESC を使用して FILES() でデータファイルのスキーマを表示することもできます。
構文
FILES( data_location , data_format [, schema_detect ] [, StorageCredentialParams ] [, columns_from_path ] )
パラメータ
すべてのパラメータは "key" = "value"
のペアで指定します。
data_location
ファイルにアクセスするための URI。
パスまたはファイルを指定できます。例えば、HDFS サーバー上のパス /user/data/tablename
から 20210411
という名前のデータファイルをロードするために、このパラメータを "hdfs://<hdfs_host>:<hdfs_port>/user/data/tablename/20210411"
と指定できます。
また、ワイルドカード ?
, *
, []
, {}
, ^
を使用して複数のデータファイルの保存パスを指定することもできます。例えば、HDFS サーバー上のパス /user/data/tablename
のすべてのパーティションまたは 202104
パーティションのみからデータファイルをロードするために、このパラメータを "hdfs://<hdfs_host>:<hdfs_port>/user/data/tablename/*/*"
または "hdfs://<hdfs_host>:<hdfs_port>/user/data/tablename/dt=202104*/*"
と指定できます。
ワイルドカードは中間パスを指定するためにも使用できます。
-
HDFS にアクセスするには、このパラメータを次のように指定する必要があります:
"path" = "hdfs://<hdfs_host>:<hdfs_port>/<hdfs_path>"
-- 例: "path" = "hdfs://127.0.0.1:9000/path/file.parquet"