Amazon Athena Timestream Konnektor
Der Amazon-Athena-Timestream-Konnektor ermöglicht Amazon Athena die Kommunikation mit Amazon Timestream
Amazon Timestream ist eine schnelle, skalierbare, vollständig verwaltete, speziell entwickelte Zeitreihendatenbank, mit der Sie mühelos Milliarden von Zeitreihendatenpunkten pro Tag speichern und analysieren können. Timestream spart Ihnen Zeit und Kosten bei der Verwaltung des Lebenszyklus von Zeitreihendaten, indem aktuelle Daten im Arbeitsspeicher aufbewahrt und historische Daten basierend auf benutzerdefinierten Richtlinien in eine kostenoptimierte Speicherebene verschoben werden.
Dieser Connector kann bei Glue-Datenkatalog als Verbundkatalog registriert werden. Er unterstützt in Lake Formation definierte Datenzugriffskontrollen auf Katalog-, Datenbank-, Tabellen-, Spalten-, Zeilen- und Tagebene. Dieser Konnektor verwendet Glue Connections, um die Konfigurationseigenschaften in Glue zu zentralisieren.
Wenn Sie Lake Formation in Ihrem Konto aktiviert haben, muss die IAM-Rolle für Ihren Athena-Verbund-Lambda-Konnektor, den Sie im AWS Serverless Application Repository bereitstellen, in Lake Formation über Lesezugriff auf das AWS Glue Data Catalog verfügen.
Voraussetzungen
Stellen Sie den Konnektor für Ihr AWS-Konto mithilfe der Athena-Konsole oder AWS Serverless Application Repository bereit. Weitere Informationen finden Sie unter Eine Datenquellenverbindung erstellen oder Verwenden Sie AWS Serverless Application Repository, um einen Datenquellen-Konnektor bereitzustellen.
Parameter
Verwenden Sie die Parameter in diesem Abschnitt, um den Timestream-Konnektor zu konfigurieren.
Wir empfehlen, dass Sie einen Timestream-Connector mithilfe eines Glue-Connections-Objekts konfigurieren. Setzen Sie dazu die glue_connection-Umgebungsvariable des Timestream-Konnektors Lambda auf den Namen der zu verwendenden Glue-Connection.
Eigenschaften von Glue Connections
Verwenden Sie den folgenden Befehl, um das Schema für ein Glue-Connection-Objekt zu erhalten. Dieses Schema enthält alle Parameter, mit denen Sie Ihre Verbindung steuern können.
aws glue describe-connection-type --connection-type TIMESTREAM
Lambda-Umgebungseigenschaften
glue_connection – Gibt den Namen der Glue-Connection an, die dem Verbund-Connector zugeordnet ist.
Anmerkung
-
Alle Konnektoren, die Glue Connections verwenden, müssen AWS Secrets Manager zum Speichern von Anmeldeinformationen verwenden.
-
Der mit Glue-Connection erstellte Timestream-Connector unterstützt die Verwendung eines Multiplexing-Handlers nicht.
-
Der mit Glue-Connection erstellte Timestream-Connector unterstützt nur
ConnectionSchemaVersion2.
Anmerkung
Athena-Datenquellenkonnektoren, die am 3. Dezember 2024 und später erstellt wurden, verwenden AWS Glue-Verbindungen.
Die unten aufgeführten Parameternamen und Definitionen beziehen sich auf Athena-Datenquellenkonnektoren, die ohne eine zugehörige Glue-Connection erstellt wurden. Verwenden Sie die folgenden Parameter nur, wenn Sie eine frühere Version eines Athena-Datenquellenkonnektors manuell bereitstellen oder wenn die glue_connection-Umgebungseigenschaft nicht angegeben ist.
Lambda-Umgebungseigenschaften
-
spill_bucket – Gibt den Amazon S3-Bucket für Daten an, die die Lambda-Funktionsgrenzen überschreiten.
-
spill_prefix – (Optional) Ist standardmäßig ein Unterordner im angegebenen
spill_bucketgenanntathena-federation-spill. Wir empfehlen Ihnen, einen Amazon-S3-Speicher-Lebenszyklus an dieser Stelle zu konfigurieren, um die Überlaufe zu löschen, die älter als eine festgelegte Anzahl von Tagen oder Stunden sind. -
spill_put_request_headers – (Optional) Eine JSON-codierte Zuordnung von Anforderungsheadern und Werten für die Amazon-S3-
putObject-Anforderung, die für den Überlauf verwendet wird (z. B.{"x-amz-server-side-encryption" : "AES256"}). Andere mögliche Header finden Sie unter PutObject in der API-Referenz zu Amazon Simple Storage Service. -
kms_key_id – (Optional) Standardmäßig werden alle Daten, die an Amazon S3 gesendet werden, mit dem AES-GCM-authentifizierten Verschlüsselungsmodus und einem zufällig generierten Schlüssel verschlüsselt. Damit Ihre Lambda-Funktion stärkere Verschlüsselungsschlüssel verwendet, die von KMS generiert werden, wie
a7e63k4b-8loc-40db-a2a1-4d0en2cd8331, können Sie eine ID einer Verschlüsselung angeben. -
disable_spill_encryption – (Optional) Bei Einstellung auf
True, wird die Spill-Verschlüsselung deaktiviert. Die Standardeinstellung istFalse, sodass Daten, die an S3 übertrragen werden, mit AES-GCM verschlüsselt werden - entweder mit einem zufällig generierten Schlüssel oder mit KMS zum Generieren von Schlüsseln. Das Deaktivieren der Überlauf-Verschlüsselung kann die Leistung verbessern, insbesondere wenn Ihr Überlauf-Standort eine serverseitige Verschlüsselung verwendet. -
glue_catalog – (Optional) Verwenden Sie diese Option, um einen kontoübergreifenden AWS Glue-Katalog anzugeben. Standardmäßig versucht der Konnektor, Metadaten von seinem eigenen AWS Glue-Konto abzurufen.
Einrichten von Datenbanken und Tabellen in AWS Glue
Sie können AWS Glue Data Catalog optional als Quelle für ergänzende Metadaten verwenden. Für die Aktivierung einer AWS Glue-Tabelle für die Verwendung mit Timestream benötigen Sie eine AWS Glue-Datenbank und -Tabelle mit Namen, die mit der Timestream-Datenbank und der -Tabelle übereinstimmen, für die Sie zusätzliche Metadaten bereitstellen möchten.
Anmerkung
Verwenden Sie für Ihre Datenbanknamen und -tabellen nur Kleinbuchstaben, um eine optimale Leistung zu erzielen. Bei der Verwendung gemischter Groß- und Kleinschreibung führt der Konnektor eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durch, die rechenintensiver ist.
Zur Konfigurierung einer AWS Glue-Tabelle für die Verwendung mit Timestream müssen Sie ihre Tabelleneigenschaften in AWS Glue einrichten.
Verwenden Sie eine AWS Glue-Tabelle für ergänzende Metadaten wie folgt
-
Bearbeiten Sie die Tabelle in der AWS Glue-Konsole, um die folgenden Tabelleneigenschaften hinzuzufügen:
timestream-metadata-flag – Diese Eigenschaft teilt dem Timestream-Konnektor mit, dass der Konnektor die Tabelle für ergänzende Metadaten verwenden kann. Sie können einen beliebigen Wert für
timestream-metadata-flagangeben, solange dietimestream-metadata-flag-Eigenschaft in der Liste der Tabelleneigenschaften vorhanden ist.-
_view_template – Wenn Sie AWS Glue für ergänzende Metadaten verwenden, können Sie diese Tabelleneigenschaft verwenden und eine beliebige Timestream-SQL als Ansicht angeben. Der Athena-Timestream-Konnektor verwendet das SQL aus der Ansicht zusammen mit Ihrem SQL von Athena, um Ihre Abfrage auszuführen. Dies ist nützlich, wenn Sie ein Feature von Timestream SQL verwenden möchten, die sonst in Athena nicht verfügbar ist.
-
Achten Sie darauf, Datentypen zu verwenden, die für AWS Glue geeignet sind, wie in diesem Dokument aufgeführt.
Datentypen
Derzeit unterstützt der Timestream-Konnektor nur eine Teilmenge der in Timestream verfügbaren Datentypen, insbesondere: die Skalarwerte varchar, double und timestamp.
Um den timeseries-Datentyp abzufragen, müssen Sie eine Ansicht in AWS Glue-Tabelleneigenschaften konfigurieren, die die CREATE_TIME_SERIES-Funktion von Timestream verwenden. Sie müssen auch ein Schema für die Ansicht bereitstellen, das die Syntax ARRAY<STRUCT<time:timestamp,measure_value::double:double>> als Typ für eine Ihrer Zeitreihenspalten verwendet. Achten Sie darauf, dass Sie double mit dem entsprechenden Skalartyp für Ihre Tabelle ersetzen.
Das folgende Image zeigt ein Beispiel für die AWS Glue-Tabelleneigenschaften, die zum Einrichten einer Ansicht über eine Zeitreihe konfiguriert sind.
Erforderliche Berechtigungen
Ausführliche Informationen zu den für diesen Konnektor erforderlichen IAM-Richtlinien finden Sie im Policies-Abschnitt der athena-timestream.yaml
-
Amazon-S3-Schreibzugriff – Der Konnektor benötigt Schreibzugriff auf einen Speicherort in Amazon S3, um Ergebnisse aus großen Abfragen zu übertragen.
-
Athena GetQueryExecution – Der Konnektor verwendet diese Berechtigung, um ein Fast-Fail durchzuführen, wenn die vorgeschaltete Athena-Abfrage beendet wurde.
-
AWS Glue Data Catalog – Der Timestream-Konnektor benötigt schreibgeschützten Zugriff auf AWS Glue Data Catalog, um Schemainformationen zu erhalten.
-
CloudWatch Logs – Der Konnektor benötigt Zugriff auf CloudWatch Logs zum Speichern von Protokollen.
-
Timestream Access – Zum Ausführen von Timestream-Abfragen.
Leistung
Wir empfehlen die LIMIT-Klausel zu verwenden, um die zurückgegebenen Daten (nicht die gescannten Daten) auf weniger als 256 MB zu begrenzen, um sicherzustellen, dass interaktive Abfragen leistungsfähig sind.
Der Athena-Timestream-Konnektor führt ein Prädikat-Pushdown durch, um die von der Abfrage gescannten Daten zu reduzieren. LIMIT-Klauseln reduzieren die Menge der gescannten Daten, aber wenn Sie kein Prädikat angeben, sollten Sie davon ausgehen, dass SELECT-Abfragen mit einer LIMIT-Klausel mindestens 16 MB Daten scannen. Die Auswahl einer Teilmenge von Spalten beschleunigt die Abfragelaufzeit erheblich und reduziert die gescannten Daten. Der Timestream-Konnektor ist aufgrund der Gleichzeitigkeit widerstandsfähig gegenüber Drosselung.
Pass-Through-Abfragen
Der Timestream-Connector unterstützt Pass-Through-Abfragen. Pass-Through-Abfragen verwenden eine Tabellenfunktion, um Ihre vollständige Abfrage zur Ausführung an die Datenquelle weiterzuleiten.
Um Pass-Through-Abfragen mit Timestream zu verwenden, können Sie die folgende Syntax verwenden:
SELECT * FROM TABLE( system.query( query => 'query string' ))
Die folgende Beispielabfrage gibt eine Abfrage an eine Datenquelle in Timestream weiter. Die Abfrage wählt alle Spalten in der customer-Tabelle aus und begrenzt die Ergebnisse auf 10.
SELECT * FROM TABLE( system.query( query => 'SELECT * FROM customer LIMIT 10' ))
Lizenzinformationen
Das Timestream-Konnektor-Projekt von Amazon Athena ist unter der Apache-2.0-Lizenz
Weitere Ressourcen
Weitere Informationen zu diesem Konnektor finden Sie unter der entsprechenden Seite