Regex SerDe - Amazon Athena

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.

Regex SerDe

Die Regex SerDe verwendet einen regulären Ausdruck (Regex), um Daten zu deserialisieren, indem Regex-Gruppen in Tabellenspalten extrahiert werden.

Wenn eine Zeile in den Daten nicht mit dem Regex übereinstimmt, werden alle Spalten in der Zeile als NULL zurückgegeben. Wenn eine Zeile mit dem Regex übereinstimmt, aber weniger Gruppen hat als erwartet, sind die fehlenden Gruppen NULL. Wenn eine Zeile in den Daten mit dem Regex übereinstimmt, aber mehr Spalten als Gruppen in dem Regex enthält, werden die zusätzlichen Spalten ignoriert.

Weitere Informationen finden Sie unter Class in der Apache Hive-Dokumentation. RegexSerDe

SerDe Name

RegexSerDe

Name der Bibliothek

RegexSerDe

Beispiele

Im folgenden Beispiel wird eine Tabelle aus CloudFront Protokollen mit dem erstellt RegExSerDe. Ersetzen Sie myregion in s3://athena-examples-myregion/cloudfront/plaintext/ durch den Regionsbezeichner, in dem Sie Athena ausführen, (z. B. s3://athena-examples-us-west-1/cloudfront/plaintext/).

CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( `Date` DATE, Time STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, os STRING, Browser STRING, BrowserVersion STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$" ) LOCATION 's3://athena-examples-myregion/cloudfront/plaintext/';