Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Bienenstock JSON SerDe
Der Hive JSON SerDe wird häufig verwendet, um JSON Daten wie Ereignisse zu verarbeiten. Diese Ereignisse werden als einzeilige Zeichenketten mit JSON -codiertem Text dargestellt, die durch eine neue Zeile getrennt sind. The Hive erlaubt JSON SerDe keine doppelten Schlüssel oder Schlüsselnamen. map
struct
Anmerkung
Das SerDe erwartet, dass sich jedes JSON Dokument in einer einzigen Textzeile befindet, ohne dass die Felder im Datensatz durch Zeilenabschlusszeichen voneinander getrennt werden. Wenn der JSON Text ein hübsches Druckformat hat, erhalten Sie möglicherweise eine Fehlermeldung wie HIVE_ CURSOR _ERROR: Zeile ist kein gültiges JSON Objekt
oder HIVE_ CURSOR _ERROR:: Unerwartet JsonParseException end-of-input: erwartetes Schließzeichen für OBJECT
den Versuch, die Tabelle abzufragen, nachdem Sie sie erstellt haben. Weitere Informationen finden Sie unter JSONDatendateien
In der folgenden DDL Beispielanweisung wird Hive verwendet JSON SerDe , um eine Tabelle auf der Grundlage von Beispieldaten für Online-Werbung zu erstellen. Ersetzen Sie in der LOCATION
Klausel den myregion
s3://amzn-s3-demo-bucket.elasticmapreduce/samples/hive-ads/tables/impressions
mit der Regionskennung, in der Sie Athena ausführen (z. B.s3://us-west-2.elasticmapreduce/samples/hive-ads/tables/impressions
).
CREATE EXTERNAL TABLE impressions ( requestbegintime string, adid string, impressionid string, referrer string, useragent string, usercookie string, ip string, number string, processid string, browsercookie string, requestendtime string, timers struct < modellookup:string, requesttime:string >, threadid string, hostname string, sessionid string ) PARTITIONED BY (dt string) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' LOCATION 's3://amzn-s3-demo-bucket.elasticmapreduce/samples/hive-ads/tables/impressions';
Geben Sie Zeitstempelformate mit dem Hive an JSON SerDe
Um Zeitstempelwerte aus der Zeichenfolge zu analysieren, können Sie das Unterfeld WITH
SERDEPROPERTIES
zur Klausel ROW FORMAT SERDE
hinzufügen und es verwenden, um den Parameter timestamp.formats
anzugeben. Geben Sie im Parameter eine durch Kommas getrennte Liste mit einem oder mehreren Zeitstempelmustern an, wie im folgenden Beispiel:
... ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' WITH SERDEPROPERTIES ("timestamp.formats"="yyyy-MM-dd'T'HH:mm:ss.SSS'Z',yyyy-MM-dd'T'HH:mm:ss") ...
Weitere Informationen finden Sie unter Zeitstempel
Lädt die Tabelle für die Abfrage
Führen Sie nach dem Erstellen der Tabelle MSCK REPAIR TABLE aus, um die Tabelle zu laden und sie von Athena aus abfragen zu können:
MSCK REPAIR TABLE impressions
Logs abfragen CloudTrail
Sie können den Hive verwenden, JSON SerDe um CloudTrail Logs abzufragen. Weitere Informationen und CREATE TABLE
-Beispielanweisungen finden Sie unter AWS CloudTrail Logs abfragen.