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.
Erstellen Sie eine Tabelle für CloudFront Standardprotokolle
Anmerkung
Das folgende Verfahren funktioniert für die Anmeldung über den Zugriff auf die Webdistribution CloudFront. Es gilt nicht für Streaming-Protokolle aus RTMP Distributionen.
Um eine Tabelle für CloudFront Standard-Protokolldateifelder zu erstellen
-
Kopieren Sie die folgende DDL Beispielanweisung und fügen Sie sie in den Abfrage-Editor der Athena-Konsole ein. Die Beispielanweisung verwendet die Protokolldateifelder, die im Abschnitt Standard-Protokolldateifelder des Amazon CloudFront Developer Guide dokumentiert sind. Ändern Sie
LOCATION
in den Amazon-S3-Bucket, in dem die Protokolle gespeichert werden. Weitere Informationen zur Verwendung des visuellen Abfrage-Editors finden Sie unter Erste Schritte.Diese Abfrage spezifiziert
ROW FORMAT DELIMITED
und gibtFIELDS TERMINATED BY '\t'
an, dass die Felder durch Tabulatorzeichen getrennt sind. DennROW FORMAT DELIMITED
Athena verwendet LazySimpleSerDestandardmäßig das. Die Spaltedate
ist mit Escape-Zeichen – einfachen umgekehrten Anführungszeichen (`) – versehen, da es sich um ein reserviertes Wort in Athena handelt. Weitere Informationen finden Sie unter Reservierte Schlüsselwörter in Abfragen umgehen.CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_standard_logs ( `date` DATE, time STRING, x_edge_location STRING, sc_bytes BIGINT, c_ip STRING, cs_method STRING, cs_host STRING, cs_uri_stem STRING, sc_status INT, cs_referrer STRING, cs_user_agent STRING, cs_uri_query STRING, cs_cookie STRING, x_edge_result_type STRING, x_edge_request_id STRING, x_host_header STRING, cs_protocol STRING, cs_bytes BIGINT, time_taken FLOAT, x_forwarded_for STRING, ssl_protocol STRING, ssl_cipher STRING, x_edge_response_result_type STRING, cs_protocol_version STRING, fle_status STRING, fle_encrypted_fields INT, c_port INT, time_to_first_byte FLOAT, x_edge_detailed_result_type STRING, sc_content_type STRING, sc_content_len BIGINT, sc_range_start BIGINT, sc_range_end BIGINT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION 's3://amzn-s3-demo-bucket/' TBLPROPERTIES ( 'skip.header.line.count'='2' )
-
Führen Sie die Abfrage in der Athena-Konsole aus. Nach Beendigung der Abfrage registriert Athena die
cloudfront_standard_logs
-Tabelle, sodass Sie die Daten zum Ausgeben von Abfragen nutzen können.
Beispielabfragen
Die folgende Abfrage summiert die Anzahl der Byte, die CloudFront zwischen dem 9. Juni und dem 11. Juni 2018 bedient wurden. Setzen Sie den Spaltennamen "date" in doppelte Anführungszeichen, da es sich um ein reserviertes Wort handelt.
SELECT SUM(bytes) AS total_bytes FROM cloudfront_standard_logs WHERE "date" BETWEEN DATE '2018-06-09' AND DATE '2018-06-11' LIMIT 100;
Um doppelte Zeilen (z. B. doppelte Leerzeilen) aus den Abfrageergebnissen zu entfernen, können Sie, wie im folgenden Beispiel die SELECT DISTINCT
-Anweisung verwenden.
SELECT DISTINCT * FROM cloudfront_standard_logs LIMIT 10;