📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

stage 内の NDJSON ファイルをクエリする



TiDB Cloud Lake では、stage に保存された NDJSON ファイルを、事前にデータをテーブルへロードすることなく直接クエリできます。この方法は、データ探索、ETL 処理、アドホック分析のシナリオで特に有用です。

NDJSON とは何ですか?

NDJSON (Newline Delimited JSON) は、各行に完全で有効な JSON オブジェクトが 1 つ含まれる JSON ベースのファイル形式です。この形式は、ストリーミングデータ処理やビッグデータ分析に特に適しています。

NDJSON ファイル内容の例:

{"id": 1, "title": "Database Fundamentals", "author": "John Doe", "price": 45.50, "category": "Technology"} {"id": 2, "title": "Machine Learning in Practice", "author": "Jane Smith", "price": 68.00, "category": "AI"} {"id": 3, "title": "Web Development Guide", "author": "Mike Johnson", "price": 52.30, "category": "Frontend"}

NDJSON の利点:

  • ストリーム向き: ファイル全体をメモリにロードせずに、行単位で解析できます
  • ビッグデータ互換: ログファイル、データエクスポート、ETL パイプラインで広く使用されています
  • 処理が容易: 各行が独立した JSON オブジェクトであるため、並列処理が可能です

構文

チュートリアル

ステップ 1. 外部 stage を作成する

NDJSON ファイルが保存されている独自の S3 バケットと認証情報を使用して、外部 stage を作成します。

CREATE STAGE ndjson_query_stage URL = 's3://load/ndjson/' CONNECTION = ( ACCESS_KEY_ID = '<your-access-key-id>' SECRET_ACCESS_KEY = '<your-secret-access-key>' );

ステップ 2. カスタム NDJSON ファイル形式を作成する

CREATE FILE FORMAT ndjson_query_format TYPE = NDJSON, COMPRESSION = AUTO;

ステップ 3. NDJSON ファイルをクエリする

これで、stage から NDJSON ファイルを直接クエリできます。この例では、各 JSON オブジェクトから title フィールドと author フィールドを抽出します。

SELECT $1:title, $1:author FROM @ndjson_query_stage ( FILE_FORMAT => 'ndjson_query_format', PATTERN => '.*[.]ndjson' );

説明:

  • $1:title と $1:author: JSON オブジェクトから特定のフィールドを抽出します。$1 は JSON オブジェクト全体を variant として表し、:field_name で個々のフィールドにアクセスします
  • @ndjson_query_stage: ステップ 1 で作成した外部 stage を参照します
  • FILE_FORMAT => 'ndjson_query_format': ステップ 2 で定義したカスタムファイル形式を使用します
  • PATTERN => '.*[.]ndjson': .ndjson で終わるすべてのファイルに一致する正規表現パターンです

圧縮ファイルをクエリする

NDJSON ファイルが gzip で圧縮されている場合は、圧縮ファイルに一致するようにパターンを変更します。

SELECT $1:title, $1:author FROM @ndjson_query_stage ( FILE_FORMAT => 'ndjson_query_format', PATTERN => '.*[.]ndjson[.]gz' );

主な違い: .*[.]ndjson[.]gz パターンは、.ndjson.gz で終わるファイルに一致します。ファイル形式の COMPRESSION = AUTO 設定により、TiDB Cloud Lake はクエリ実行中に gzip ファイルを自動的に展開します。

このページは役に立ちましたか?