メインコンテンツへスキップ

質問

JSON配列をインポートするにはどうすればよいですか?また、配列内のオブジェクトをどのようにクエリできますか?

答え

以下の1行のJSON配列をsample.jsonに書き出します
データを確認します:
JSON形式の行を受け取るテーブルを作成します。
データを挿入します:
JSONオブジェクト型に対してデータ推論がどのように行われたかを確認してください。
EventsArray 型の Tuple で、各要素には eventType String フィールドと time String フィールドが含まれます。後者の型は最適ではありません (本来は DateTime が望ましいところです) 。 データを見てみましょう。
いくつかクエリを実行してみましょう。 eventType の値が close であるイベントの _idchannel
time を、たとえば指定した時間範囲内のすべてのイベントを対象にクエリしたいのですが、String としてインポートされていることがわかります:
これらを日付として扱うには、まず DateTime に変換します。 配列を変換するには、map 関数を使用します。
両方の配列に toTypeName を使うと、違いを確認できます:
では、指定した interval 内に time がある行の id を取得してみましょう。 arrayCount を使って、map 関数が返す配列内の項目のうち、条件 x BETWEEN toDateTime('2021-06-18 11:46:00', 'Europe/Rome') AND toDateTime('2021-06-18 11:50:00', 'Europe/Rome') に一致するものの数が 0 より大きいかどうかを確認します
⚠️ この記事の執筆時点では、現在の JSON 実装は Experimental であり、本番環境には適していない点にご注意ください。 この例では、JSON をすばやくインポートしてクエリを開始する方法を紹介しています。あわせて、スキーマを事前に定義せずに JSON オブジェクトを JSON 型として取り込める手軽さとのトレードオフも示しています。簡単なテストには便利ですが、データを長期的に利用するのであれば、この例でも、より適切な型を使って保存するのが望ましいでしょう。たとえば time フィールドには String ではなく DateTime を使用することで、上で示したようなインジェスト後の変換を避けられます。JSON の扱いについて詳しくは、ドキュメントを参照してください。
最終更新日 2026年6月19日