メインコンテンツまでスキップ

files

ファイル

説明

クラウドストレージからデータファイルを読み取ります。FILES() は、ファイルのパス関連プロパティを使用してクラウドストレージにアクセスし、ファイル内のデータのテーブルスキーマを推測し、データ行を返します。SELECT を使用してデータ行を直接クエリできます。INSERT を使用してデータ行を既存のテーブルにロードできます。または、CREATE TABLE AS SELECT を使用して新しいテーブルを作成し、データ行をロードできます。この機能は、v3.1.0 以降でサポートされています。

現在、FILES() 関数は以下のデータソースとファイルフォーマットをサポートしています。

  • データソース:
    • AWS S3
  • ファイルフォーマット:
    • Parquet
    • ORC

構文

FILES( data_location , data_format [, StorageCredentialParams ] )

data_location ::=
"path" = "s3://<s3_path>"

data_format ::=
"format" = "{parquet | orc}"

パラメータ

すべてのパラメータは、"key" = "value" のペア形式で指定します。

Key

必須

説明

path

Yes

ファイルにアクセスするために使用する URI。例: s3://testbucket/parquet/test.parquet

format

Yes

データファイルのフォーマット。有効な値は parquet および orc

StorageCredentialParams

StarRocks がストレージシステムにアクセスするために使用する認証情報です。

  • AWS S3 へのアクセスには IAM ユーザベースの認証を使用します:

    "aws.s3.access_key" = "xxxxxxxxxx",
    "aws.s3.secret_key" = "yyyyyyyyyy",
    "aws.s3.region" = "<s3_region>"

    Key

    必須

    説明

    aws.s3.access_key

    Yes

    Amazon S3 バケットにアクセスするために使用できるアクセスキー ID。

    aws.s3.secret_key

    Yes

    Amazon S3 バケットにアクセスするために使用できるシークレットアクセスキー。

    aws.s3.region

    Yes

    AWS S3 バケットが存在するリージョン。例: us-west-2

例 1: AWS S3 バケット inserttest 内の Parquet ファイル parquet/par-dup.parquet からデータをクエリする。

MySQL > SELECT * FROM FILES(
"path" = "s3://inserttest/parquet/par-dup.parquet",
"format" = "parquet",
"aws.s3.access_key" = "XXXXXXXXXX",
"aws.s3.secret_key" = "YYYYYYYYYY",
"aws.s3.region" = "us-west-2"
);
+------+---------------------------------------------------------+
| c1 | c2 |
+------+---------------------------------------------------------+
| 1 | {"1": "key", "1": "1", "111": "1111", "111": "aaaa"} |
| 2 | {"2": "key", "2": "NULL", "222": "2222", "222": "bbbb"} |
+------+---------------------------------------------------------+
2 rows in set (22.335 sec)

例 2: AWS S3 バケット inserttest 内の Parquet ファイル parquet/insert_wiki_edit_append.parquet のデータ行を insert_wiki_edit テーブルに挿入する。

MySQL > INSERT INTO insert_wiki_edit
SELECT * FROM FILES(
"path" = "s3://inserttest/parquet/insert_wiki_edit_append.parquet",
"format" = "parquet",
"aws.s3.access_key" = "XXXXXXXXXX",
"aws.s3.secret_key" = "YYYYYYYYYY",
"aws.s3.region" = "us-west-2"
);
Query OK, 2 rows affected (23.03 sec)
{'label':'insert_d8d4b2ee-ac5c-11ed-a2cf-4e1110a8f63b', 'status':'VISIBLE', 'txnId':'2440'}

例 3: ctas_wiki_edit という名前のテーブルを作成し、AWS S3 バケット inserttest 内の Parquet ファイル parquet/insert_wiki_edit_append.parquet のデータ行をテーブルに挿入する。

MySQL > CREATE TABLE ctas_wiki_edit AS
SELECT * FROM FILES(
"path" = "s3://inserttest/parquet/insert_wiki_edit_append.parquet",
"format" = "parquet",
"aws.s3.access_key" = "XXXXXXXXXX",
"aws.s3.secret_key" = "YYYYYYYYYY",
"aws.s3.region" = "us-west-2"
);
Query OK, 2 rows affected (22.09 sec)
{'label':'insert_1a217d70-2f52-11ee-9e4a-7a563fb695da', 'status':'VISIBLE', 'txnId':'3248'}