TiDB Cloud Lake への Parquet のロード
Parquet とは
Parquet は、データ分析で一般的に使用されるカラム指向のストレージ形式です。複雑なデータ構造をサポートするように設計されており、大規模なデータセットの処理に効率的です。
Parquet ファイルは TiDB Cloud Lake に最も適しています。TiDB Cloud Lake のデータソースとして Parquet ファイルを使用することを推奨します。
Parquet ファイルのロード
Parquet ファイルをロードする一般的な構文は次のとおりです。
COPY INTO [<database>.]<table_name>
FROM { internalStage | externalStage | externalLocation }
[ PATTERN = '<regex_pattern>' ]
FILE_FORMAT = (TYPE = PARQUET)
- Parquet ファイル形式のオプションの詳細については、Parquet ファイル形式オプション を参照してください。
- COPY INTO table オプションの詳細については、COPY INTO table を参照してください。
チュートリアル: Parquet ファイルからのデータのロード
ステップ 1. 内部 stage を作成する
Parquet ファイルを保存するための内部 stage を作成します。
CREATE STAGE my_parquet_stage;
ステップ 2. Parquet ファイルを作成する
次の SQL ステートメントを使用して Parquet ファイルを生成します。
COPY INTO @my_parquet_stage
FROM (
SELECT
'Title_' || CAST(number AS VARCHAR) AS title,
'Author_' || CAST(number AS VARCHAR) AS author
FROM numbers(100000)
)
FILE_FORMAT = (TYPE = PARQUET);
Parquet ファイルが作成されたことを確認します。
LIST @my_parquet_stage;
結果:
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ name │ size │ md5 │ last_modified │ creator │
├─────────────────────────────────────────────────────────────────┼────────┼────────────────────────────────────┼───────────────────────────────┼──────────────────┤
│ data_3890e0b1-0233-422c-b506-3a4501602f28_0000_00000000.parquet │ 65443 │ "ab4631846ca8a2beed6a48be75d2acac" │ 2023-12-26 10:28:18.000 +0000 │ NULL │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
データを stage にアンロード (unload) する詳細については、COPY INTO location を参照してください。
ステップ 3. ターゲットテーブルを作成する
CREATE TABLE books
(
title VARCHAR,
author VARCHAR
);
ステップ 4. Parquet から直接コピーする
Parquet ファイルからテーブルに直接データをコピーするには、次の SQL コマンドを使用します。
COPY INTO books
FROM @my_parquet_stage
PATTERN = '.*[.]parquet'
FILE_FORMAT = (TYPE = PARQUET);
結果:
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ File │ Rows_loaded │ Errors_seen │ First_error │ First_error_line │
├─────────────────────────────────────────────────────────────────┼─────────────┼─────────────┼──────────────────┼──────────────────┤
│ data_3890e0b1-0233-422c-b506-3a4501602f28_0000_00000000.parquet │ 100000 │ 0 │ NULL │ NULL │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
ステップ 5 (任意). SELECT を使用してデータをコピーする
コピー中にデータを変換するなど、より細かく制御したい場合は、SELECT ステートメントを使用します。詳細は SELECT from Parquet を参照してください。
COPY INTO books (title, author)
FROM (
SELECT title, author
FROM @my_parquet_stage
)
PATTERN = '.*[.]parquet'
FILE_FORMAT = (TYPE = PARQUET);