Beispiel für einen Anwendungsfall UNLOAD von Timestream für LiveAnalytics - Amazon Timestream

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.

Beispiel für einen Anwendungsfall UNLOAD von Timestream für LiveAnalytics

Angenommen, Sie überwachen die Sitzungsmetriken der Benutzer, die Zugriffsquellen und die Produktkäufe Ihrer E-Commerce-Website. Sie verwenden Timestream, LiveAnalytics um in Echtzeit Einblicke in Nutzerverhalten und Produktverkäufe zu gewinnen und Marketinganalysen für Verkehrskanäle (organische Suche, soziale Medien, direkter Traffic, bezahlte Kampagnen und andere) durchzuführen, die Kunden auf die Website lenken.

Exportieren der Daten ohne Partitionen

Sie möchten Ihre Daten der letzten zwei Tage im CSV Format exportieren.

UNLOAD(SELECT user_id, ip_address, event, session_id, measure_name, time, query, quantity, product_id, channel FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/withoutpartition' WITH ( format='CSV', compression='GZIP')

Daten nach Kanälen partitionieren

Sie möchten die Daten der letzten zwei Tage im CSV Format exportieren, möchten aber die Daten aus jedem Verkehrskanal in einem separaten Ordner haben. Dazu müssen Sie die Daten mithilfe der channel Spalte partitionieren, wie im Folgenden gezeigt.

UNLOAD(SELECT user_id, ip_address, event, session_id, measure_name, time, query, quantity, product_id, channel FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/partitionbychannel/' WITH ( partitioned_by = ARRAY ['channel'], format='CSV', compression='GZIP')

Daten nach Ereignis partitionieren

Sie möchten die Daten der letzten zwei Tage im CSV Format exportieren, möchten aber die Daten für jedes Ereignis in einem separaten Ordner haben. Dazu müssen Sie die Daten mithilfe der event Spalte partitionieren, wie im Folgenden gezeigt.

UNLOAD(SELECT user_id, ip_address, channel, session_id, measure_name, time, query, quantity, product_id, event FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/partitionbyevent/' WITH ( partitioned_by = ARRAY ['event'], format='CSV', compression='GZIP')

Partitionierung der Daten sowohl nach Kanal als auch nach Ereignis

Sie möchten die Daten der letzten beiden Tage im CSV Format exportieren, möchten aber, dass die Daten für jeden Kanal und innerhalb des Kanals jedes Ereignis in einem separaten Ordner gespeichert werden. Dazu müssen Sie die Daten mithilfe von sowohl als auch channel anhand von event Spalten partitionieren, wie im Folgenden gezeigt.

UNLOAD(SELECT user_id, ip_address, session_id, measure_name, time, query, quantity, product_id, channel,event FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/partitionbychannelevent/' WITH ( partitioned_by = ARRAY ['channel','event'], format='CSV', compression='GZIP')

Manifest- und Metadatendateien

Manifestdatei

Die Manifestdatei enthält Informationen zur Liste der Dateien, die bei der UNLOAD Ausführung exportiert werden. Die Manifestdatei ist im bereitgestellten S3-Bucket mit einem Dateinamen verfügbar:S3://bucket_name/<queryid>_<UUID>_manifest.json. Die Manifestdatei enthält die URL der Dateien im Ergebnisordner, die Anzahl der Datensätze und die Größe der jeweiligen Dateien sowie die Abfrage-Metadaten (d. h. die Gesamtzahl der Byte und der Gesamtzahl der Zeilen, die für die Abfrage nach S3 exportiert wurden).

{ "result_files": [ { "url":"s3://my_timestream_unloads/ec2_metrics/AEDAGANLHLBH4OLISD3CVOZZRWPX5GV2XCXRBKCVD554N6GWPWWXBP7LSG74V2Q_1448466917_szCL4YgVYzGXj2lS.gz", "file_metadata": { "content_length_in_bytes": 32295, "row_count": 10 } }, { "url":"s3://my_timestream_unloads/ec2_metrics/AEDAGANLHLBH4OLISD3CVOZZRWPX5GV2XCXRBKCVD554N6GWPWWXBP7LSG74V2Q_1448466917_szCL4YgVYzGXj2lS.gz", "file_metadata": { "content_length_in_bytes": 62295, "row_count": 20 } }, ], "query_metadata": { "content_length_in_bytes": 94590, "total_row_count": 30, "result_format": "CSV", "result_version": "Amazon Timestream version 1.0.0" }, "author": { "name": "Amazon Timestream", "manifest_file_version": "1.0" } }

Metadaten

Die Metadatendatei enthält zusätzliche Informationen über den Datensatz, z. B. Spaltenname, Spaltentyp und Schema. <queryid>Die Metadatendatei ist im bereitgestellten S3-Bucket mit dem folgenden Dateinamen verfügbar: S3: //bucket_name/ _< >_metadata.json UUID

Es folgt ein Beispiel für eine Metadatendatei.

{ "ColumnInfo": [ { "Name": "hostname", "Type": { "ScalarType": "VARCHAR" } }, { "Name": "region", "Type": { "ScalarType": "VARCHAR" } }, { "Name": "measure_name", "Type": { "ScalarType": "VARCHAR" } }, { "Name": "cpu_utilization", "Type": { "TimeSeriesMeasureValueColumnInfo": { "Type": { "ScalarType": "DOUBLE" } } } } ], "Author": { "Name": "Amazon Timestream", "MetadataFileVersion": "1.0" } }

Die in der Metadatendatei gemeinsam genutzten Spalteninformationen haben dieselbe Struktur wie die in der API Abfrageantwort für SELECT Abfragen ColumnInfo gesendeten Informationen.

Verwenden von Glue-Crawlern zum Erstellen des Glue-Datenkatalogs

  1. Melden Sie sich für die folgende Überprüfung mit Admin-Anmeldeinformationen bei Ihrem Konto an.

  2. Erstellen Sie eine Crawler for Glue-Datenbank anhand der hier angegebenen Richtlinien. Bitte beachten Sie, dass der S3-Ordner, der in der Datenquelle bereitgestellt werden soll, der UNLOAD Ergebnisordner sein sollte, z. B. s3://my_timestream_unloads/results

  3. Führen Sie den Crawler gemäß den hier angegebenen Richtlinien aus.

  4. Sehen Sie sich die Glue-Tabelle an.

    • Gehe zu AWS GlueTabellen.

    • Sie werden eine neue Tabelle sehen, die mit dem Tabellenpräfix erstellt wurde, das beim Erstellen des Crawlers angegeben wurde.

    • Sie können die Schema- und Partitionsinformationen einsehen, indem Sie auf die Tabellendetailansicht klicken.

Im Folgenden finden Sie weitere AWS Dienste und Open-Source-Projekte, die den AWS Glue-Datenkatalog verwenden.