Lazy Simple SerDe für CSVTSV, und benutzerdefinierte Dateien mit Trennzeichen - 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.

Lazy Simple SerDe für CSVTSV, und benutzerdefinierte Dateien mit Trennzeichen

Da dies SerDe in Athena die Standardeinstellung für Daten in Formaten mit CSVTSV, und benutzerdefinierten Trennzeichen ist, ist die Angabe optional. Wenn Sie in Ihrer CREATE TABLE Aussage nicht a angeben SerDe und nur angebenROW FORMAT DELIMITED, verwendet Athena dies SerDe. Verwenden Sie dies SerDe , wenn Ihre Daten keine in Anführungszeichen eingeschlossenen Werte enthalten.

Referenzdokumentation zu Lazy SerDe Simple finden Sie im SerDe Abschnitt Hive im Apache Hive Developer Guide.

Name der Serialisierungsbibliothek

Der Name der Serialisierungsbibliothek für Lazy SerDe Simple lautet. org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Informationen zum Quellcode finden Sie unter LazySimpleSerDe.java auf GitHub .com.

Ignorieren von Kopfzeilen

Um Header in Ihren Daten beim Definieren einer Tabelle zu ignorieren, können Sie die Tabelleneigenschaft skip.header.line.count wie im folgenden Beispiel verwenden.

TBLPROPERTIES ("skip.header.line.count"="1")

Beispiele, die Header ignorieren, finden Sie in VPCAmazon-Flow-Logs abfragen den CREATE TABLE Anweisungen unter und. CloudFront Amazon-Logs abfragen

Das folgende Beispiel zeigt, wie die LazySimpleSerDe Bibliothek verwendet wird, um eine Tabelle in Athena aus CSV Daten zu erstellen. Um Dateien mit benutzerdefinierten Trennzeichen auf diese Weise zu deserialisieren SerDe, folgen Sie dem Muster in den Beispielen, verwenden Sie jedoch die FIELDS TERMINATED BY Klausel, um ein anderes einzelnes Zeichen als Trennzeichen anzugeben. Lazy Simple unterstützt keine Trennzeichen mit mehreren Zeichen. SerDe

Anmerkung

Ersetzen myregion s3://athena-examples-myregion/path/to/data/mit der Regionskennung ein, in der Sie Athena ausführen, zum Beispiel. s3://athena-examples-us-west-1/path/to/data/

Verwenden Sie die CREATE TABLE Anweisung, um eine Athena-Tabelle aus den zugrunde liegenden Daten zu erstellen, die in Amazon S3 CSV gespeichert sind.

CREATE EXTERNAL TABLE flight_delays_csv ( yr INT, quarter INT, month INT, dayofmonth INT, dayofweek INT, flightdate STRING, uniquecarrier STRING, airlineid INT, carrier STRING, tailnum STRING, flightnum STRING, originairportid INT, originairportseqid INT, origincitymarketid INT, origin STRING, origincityname STRING, originstate STRING, originstatefips STRING, originstatename STRING, originwac INT, destairportid INT, destairportseqid INT, destcitymarketid INT, dest STRING, destcityname STRING, deststate STRING, deststatefips STRING, deststatename STRING, destwac INT, crsdeptime STRING, deptime STRING, depdelay INT, depdelayminutes INT, depdel15 INT, departuredelaygroups INT, deptimeblk STRING, taxiout INT, wheelsoff STRING, wheelson STRING, taxiin INT, crsarrtime INT, arrtime STRING, arrdelay INT, arrdelayminutes INT, arrdel15 INT, arrivaldelaygroups INT, arrtimeblk STRING, cancelled INT, cancellationcode STRING, diverted INT, crselapsedtime INT, actualelapsedtime INT, airtime INT, flights INT, distance INT, distancegroup INT, carrierdelay INT, weatherdelay INT, nasdelay INT, securitydelay INT, lateaircraftdelay INT, firstdeptime STRING, totaladdgtime INT, longestaddgtime INT, divairportlandings INT, divreacheddest INT, divactualelapsedtime INT, divarrdelay INT, divdistance INT, div1airport STRING, div1airportid INT, div1airportseqid INT, div1wheelson STRING, div1totalgtime INT, div1longestgtime INT, div1wheelsoff STRING, div1tailnum STRING, div2airport STRING, div2airportid INT, div2airportseqid INT, div2wheelson STRING, div2totalgtime INT, div2longestgtime INT, div2wheelsoff STRING, div2tailnum STRING, div3airport STRING, div3airportid INT, div3airportseqid INT, div3wheelson STRING, div3totalgtime INT, div3longestgtime INT, div3wheelsoff STRING, div3tailnum STRING, div4airport STRING, div4airportid INT, div4airportseqid INT, div4wheelson STRING, div4totalgtime INT, div4longestgtime INT, div4wheelsoff STRING, div4tailnum STRING, div5airport STRING, div5airportid INT, div5airportseqid INT, div5wheelson STRING, div5totalgtime INT, div5longestgtime INT, div5wheelsoff STRING, div5tailnum STRING ) PARTITIONED BY (year STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\' LINES TERMINATED BY '\n' LOCATION 's3://athena-examples-myregion/flight/csv/';

Führen Sie die MSCK REPAIR TABLE-Anweisung immer dann aus, wenn eine neue Partition zur Tabelle hinzugefügt wurde, um die Partitionsmetadaten zu aktualisieren:

MSCK REPAIR TABLE flight_delays_csv;

Fragen Sie die 10 Routen ab, bei denen es zu einer Verzögerung von mehr als 1 Stunde kam:

SELECT origin, dest, count(*) as delays FROM flight_delays_csv WHERE depdelayminutes > 60 GROUP BY origin, dest ORDER BY 3 DESC LIMIT 10;
Anmerkung

Die Flugtabellendaten stammen aus Flügen, die vom US-Verkehrsministerium, Bureau of Transportation Statistics, bereitgestellt werden. Entsättigt vom Original.

Um eine Athena-Tabelle aus in Amazon S3 gespeicherten TSV Daten zu erstellen, verwenden ROW FORMAT DELIMITED und spezifizieren Sie das \t als Tabulator-Feldtrennzeichen, \n als Zeilentrennzeichen und \ als Escape-Zeichen. Im folgenden Beispiel wird diese Syntax dargestellt. Am athena-examples Standort sind keine TSV Beispielflugdaten verfügbar, aber wie bei der CSV Tabelle würden Sie jedes Mal, wenn eine neue Partition MSCK REPAIR TABLE hinzugefügt wird, die Partitionsmetadaten aktualisieren.

... ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ESCAPED BY '\\' LINES TERMINATED BY '\n' ...