TiDB Cloud Lake への NDJSON のロード
NDJSON とは何ですか?
NDJSON は JSON を基にした形式であり、JSON の厳密なサブセットです。各行には、それぞれ独立した有効な JSON オブジェクトが含まれている必要があります。
次の例は、2 つの JSON オブジェクトを含む NDJSON ファイルを示しています。
{"title":"Title_0","author":"Author_0"}
{"title":"Title_1","author":"Author_1"}
NDJSON ファイルのロード
NDJSON ファイルをロード (load) する一般的な構文は次のとおりです。
COPY INTO [<database>.]<table_name>
FROM { userStage | internalStage | externalStage | externalLocation }
[ PATTERN = '<regex_pattern>' ]
[ FILE_FORMAT = (
TYPE = NDJSON,
COMPRESSION = AUTO
) ]
- NDJSON ファイル形式のオプションの詳細については、NDJSON ファイル形式オプション を参照してください。
- COPY INTO table オプションの詳細については、COPY INTO table を参照してください。
チュートリアル: NDJSON ファイルからのデータのロード
ステップ 1. 内部 stage を作成する
NDJSON ファイルを保存するための内部 stage を作成します。
CREATE STAGE my_ndjson_stage;
ステップ 2. NDJSON ファイルを作成する
次の SQL 文を使用して NDJSON ファイルを生成します。
COPY INTO @my_ndjson_stage
FROM (
SELECT
'Title_' || CAST(number AS VARCHAR) AS title,
'Author_' || CAST(number AS VARCHAR) AS author
FROM numbers(100000)
)
FILE_FORMAT = (TYPE = NDJSON)
;
NDJSON ファイルが作成されたことを確認します。
LIST @my_ndjson_stage;
結果:
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ name │ size │ md5 │ last_modified │ creator │
├────────────────────────────────────────────────────────────────┼─────────┼────────────────────────────────────┼───────────────────────────────┼──────────────────┤
│ data_b3d94fad-3052-42e4-b090-26409e88c7b9_0000_00000000.ndjson │ 4777780 │ "d1cc98fefc3e3aa0649cade880d754aa" │ 2023-12-26 12:15:59.000 +0000 │ NULL │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
ステップ 3: 対象テーブルを作成する
CREATE TABLE books
(
title VARCHAR,
author VARCHAR
);
ステップ 4. NDJSON から直接コピーする
NDJSON ファイルからテーブルに直接データをコピーするには、次の SQL コマンドを使用します。
COPY INTO books
FROM @my_ndjson_stage
PATTERN = '.*[.]ndjson'
FILE_FORMAT = (
TYPE = NDJSON
);
結果:
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ File │ Rows_loaded │ Errors_seen │ First_error │ First_error_line │
├────────────────────────────────────────────────────────────────┼─────────────┼─────────────┼──────────────────┼──────────────────┤
│ data_b3d94fad-3052-42e4-b090-26409e88c7b9_0000_00000000.ndjson │ 100000 │ 0 │ NULL │ NULL │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
ステップ 4(オプション). SELECT を使用してデータをコピーする
コピー中にデータを変換するなど、より細かく制御したい場合は、SELECT 文を使用します。詳細は SELECT from NDJSON を参照してください。
COPY INTO books(title, author)
FROM (
SELECT $1:title, $1:author
FROM @my_ndjson_stage
)
PATTERN = '.*[.]ndjson'
FILE_FORMAT = (
TYPE = NDJSON
);