大量のデータセットがAzure BLOBにJSON形式で格納されています。一部のアプリでは常に新しいデータが追加されています。 BLOBは、大規模なJSONデータセットへのアドホッククエリ
のように構成されています。/dataset={name}/date={YYYY-MM-DD}/one_or_more_json_files
データは特定のスキーマに従いません。 JSONのフィールド名は一貫した文字ではありません。一部のJSON行が壊れる可能性があります。
スキーマを事前に定義しなくても、このデータをクエリする良い方法がありますか?私は私の最初の考慮事項は、HIVEたテーブル
のための明示的なスキーマを定義せずに
select * from my_huge_json_dataset where dataset='mydataset' and date>'2015-04-01'
ような何かをしたいと思いますが、それはSerDeスキーマを必要とする表を作成するために定義することが判明しました。 json_tupleは答えになる可能性がありますが、大文字と小文字が区別され、誤ったjson行が見つかるとクラッシュします。
私はApache DrillとPigも検討していますが、経験はなく、いくつかのガイダンスが必要です。
あなたのケースで自分のドキュメントサイトApache Drill documentationをご覧になることをお勧め? – irriss
@Ruslanはい1つのファイルまたはディレクトリを問い合わせることができます(すべてのファイルがjson構造に似ていると仮定します)。データをパーティション分割することでクエリを最適化することもできます(この例を参照)(https://drill.apache.org/ docs/how-to-partition-data /) –