Ich habe einen massiven Datensatz in Azure BLOB im JSON-Format gespeichert. Einige Apps fügen ständig neue Daten hinzu. BLOBs sind in Partitionen organisiert wieAd-hoc-Abfragen an einen massiven JSON-Datensatz
/dataset={name}/date={YYYY-MM-DD}/one_or_more_json_files
Datenstücke folgen keinem bestimmten Schema. JSON-Feldnamen sind nicht in konsistentem Groß-/Kleinbuchstaben. Einige JSON-Zeilen können unterbrochen werden.
Könnte jemand einen guten Weg empfehlen, diese Daten abzufragen, ohne vorher ein Schema zu definieren. Ich möchte etwas tun, wie
select * from my_huge_json_dataset where dataset='mydataset' and date>'2015-04-01'
ohne explizite Schema für die Tabelle zu definieren
Meine erste Überlegung war HIVE aber es stellt sich heraus, dass SerDe Schema definiert werden muss, um eine Tabelle zu erstellen. json_tuple könnte eine Antwort sein, aber es ist die Groß- und Kleinschreibung und stürzt ab, wenn die JS-Zeile falsch formatiert ist.
Ich denke auch über Apache Drill und Pig, aber habe keine Erfahrung mit ihnen und möchte etwas Anleitung.
Ist es Partitionierung oder Abfragen nur einzelne Datei unterstützen? – irriss
@Ruslan Ja, Sie können eine einzelne Datei oder ein Verzeichnis abfragen (vorausgesetzt, dass alle Dateien eine sehr ähnliche json-Struktur haben) und Sie können Abfragen auch durch Partitionieren von Daten optimieren [siehe dieses Beispiel] (https://drill.apache.org/ docs/how-to-partition-data /) –