Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Amazon Athena DynamoDB Konnektor

Fokusmodus
Amazon Athena DynamoDB Konnektor - 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.

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.

Der Amazon Athena DynamoDB-Connector ermöglicht Amazon Athena die Kommunikation mit DynamoDB, sodass Sie Ihre Tabellen mit abfragen können. SQL Schreiboperationen wie INSERT INTO werden nicht unterstützt.

Dieser Konnektor kann bei Glue Data Catalog als Verbundkatalog registriert werden. Es 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, AWS Serverless Application Repository muss die IAM Rolle für Ihren Athena Federated Lambda Connector, den Sie in der bereitgestellt haben, Lesezugriff in Lake Formation haben. AWS Glue Data Catalog

Voraussetzungen

Einschränkungen

Wenn Sie Ihre DynamoDB-Verbindungen zu Glue Catalog und Lake Formation migrieren, werden nur die in Kleinbuchstaben geschriebenen Tabellen- und Spaltennamen erkannt.

Parameter

Verwenden Sie die Parameter in diesem Abschnitt, um den DynamoDB-Connector zu konfigurieren.

Anmerkung

Athena-Datenquellenconnectors, 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-Datenquellenconnectors, die vor dem 3. Dezember 2024 erstellt wurden. Diese können sich von ihren entsprechenden AWS Glue Verbindungseigenschaften unterscheiden. Verwenden Sie ab dem 3. Dezember 2024 die folgenden Parameter nur, wenn Sie eine frühere Version eines Athena-Datenquellenconnectors manuell bereitstellen.

  • 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_bucket genannt athena-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 kodierte Zuordnung von Anforderungsheadern und Werten für die Amazon S3 putObject S3-Anfrage, die zum Verschicken verwendet wird (z. B.). {"x-amz-server-side-encryption" : "AES256"} Weitere mögliche Header finden Sie PutObjectin der Amazon Simple Storage Service API Reference.

  • kms_key_id — (Optional) Standardmäßig werden alle Daten, die auf Amazon S3 übertragen werden, mit dem GCM authentifizierten Verschlüsselungsmodus und einem zufällig AES generierten Schlüssel verschlüsselt. Damit Ihre Lambda-Funktion stärkere Verschlüsselungsschlüssel verwendet, die von KMS like generiert wurdena7e63k4b-8loc-40db-a2a1-4d0en2cd8331, können Sie eine KMS Schlüssel-ID angeben.

  • disable_spill_encryption – (Optional) Bei Einstellung auf True, wird die Spill-Verschlüsselung deaktiviert. Die Standardeinstellung ist False so, dass Daten, die auf S3 übertragen werden, mit AES - verschlüsselt werden GCM — entweder mit einem zufällig generierten Schlüssel oder KMS zur Generierung von Schlüsseln. Das Deaktivieren der Überlauf-Verschlüsselung kann die Leistung verbessern, insbesondere wenn Ihr Überlauf-Standort eine serverseitige Verschlüsselung verwendet.

  • disable_glue — (Optional) Falls vorhanden und auf true gesetzt, versucht der Connector nicht, zusätzliche Metadaten von abzurufen. AWS Glue

  • glue_catalog – (Optional) Verwenden Sie diese Option, um einen kontoübergreifenden AWS Glue -Katalog anzugeben. Standardmäßig versucht der Connector, Metadaten von seinem eigenen Konto abzurufen. AWS Glue

  • disable_projection_and_casing – (Optional) Deaktiviert Projektion und Groß-/Kleinschreibung. Verwenden Sie diese Option, wenn Sie DynamoDB-Tabellen abfragen möchten, deren Spaltennamen Groß- und Kleinschreibung enthalten, und Sie keine columnMapping Eigenschaft in Ihrer AWS Glue Tabelle angeben möchten.

    Der disable_projection_and_casing-Parameter verwendt die folgenden Werte, um das Verhalten der Groß-/Kleinschreibung und Spaltenzuordnung festzulegen:

    • auto – Deaktiviert Projektion und Groß-/Kleinschreibung, wenn ein zuvor nicht unterstützter Typ erkannt wird und die Spaltennamenzuordnung für die Tabelle nicht festgelegt ist. Dies ist die Standardeinstellung.

    • always – Deaktiviert Projektion und Groß-/Kleinschreibung bedingungslos. Dies ist nützlich, wenn Ihre DynamoDB-Spaltennamen Groß- und Kleinschreibung enthalten, aber keine Spaltennamenzuordnung angeben möchten.

    Beachten Sie bei der Verwendung des disable_projection_and_casing Parameters die folgenden Punkte:

    • Die Verwendung des Parameters kann zu höherer Bandbreitennutzung führen. Wenn sich Ihre Lambda-Funktion nicht in derselben AWS-Region wie Ihre Datenquelle befindet, entstehen Ihnen darüber hinaus aufgrund der höheren Bandbreitennutzung höhere standardmäßige AWS -Übertragungskosten zwischen den Regionen. Weitere Informationen zu den Kosten für die Übertragung zwischen Regionen finden Sie im Partner Network-Blog unter AWS Datenübertragungsgebühren für Server- und serverlose Architekturen. AWS

    • Da eine größere Anzahl von Bytes übertragen wird und die größere Anzahl von Bytes eine höhere Deserialisierungszeit erfordert, kann sich die Gesamtlatenz erhöhen.

Einrichten von Datenbanken und Tabellen in AWS Glue

Da die integrierte Schemainferenzfunktion des Connectors begrenzt ist, sollten Sie ihn AWS Glue für Metadaten verwenden. Dazu müssen Sie über eine Datenbank und eine Tabelle verfügen. AWS Glue Um sie für die Verwendung mit DynamoDB zu aktivieren, müssen Sie ihre Eigenschaften bearbeiten.

Um Datenbankeigenschaften in der AWS Glue Konsole zu bearbeiten
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Glue Konsole unter https://console.aws.amazon.com/glue/.

  2. Erweitern Sie im Navigationsbereich den Eintrag Datenkatalog, und wählen Sie dann Datenbanken aus.

    Auf der Seite Databases (Datenbanken) können Sie eine vorhandene Datenbank bearbeiten oder Add Databases (Datenbank hinzufügen) auswählen, um eine zu erstellen.

  3. Wählen Sie in der Liste der Datenbanken den Link für die Datenbank aus, die Sie bearbeiten möchten.

  4. Wählen Sie Edit (Bearbeiten) aus.

  5. Fügen Sie auf der Seite Datenbank aktualisieren unter Datenbankeinstellungen für Speicherort die Zeichenfolge hinzudynamo-db-flag. Dieses Schlüsselwort gibt an, dass die Datenbank Tabellen enthält, die der Athena DynamoDB-Connector für zusätzliche Metadaten verwendet, und ist für AWS Glue andere Datenbanken als erforderlich. default Die dynamo-db-flag-Eigenschaft ist nützlich, um Datenbanken in Konten mit vielen Datenbanken herauszufiltern.

  6. Wählen Sie Update Database (Datenbank aktualisieren) aus.

Um Tabelleneigenschaften in der Konsole zu bearbeiten AWS Glue
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Glue Konsole unter https://console.aws.amazon.com/glue/.

  2. Erweitern Sie im Navigationsbereich den Eintrag Datenkatalog, und wählen Sie dann Tabellen aus.

  3. Wählen Sie auf der Tabellenseite in der Tabellenliste den verknüpften Namen der Tabelle aus, die Sie bearbeiten möchten.

  4. Wählen Sie Actions (Aktionen) und Edit table (Tabelle bearbeiten).

  5. Fügen Sie auf der Seite Edit table (Tabelle bearbeiten) im Abschnitt Table properties (Tabelleneigenschaften) nach Bedarf die folgenden Tabelleneigenschaften hinzu. Wenn Sie den AWS Glue DynamoDB-Crawler verwenden, werden diese Eigenschaften automatisch festgelegt.

    • DynamoDB – Zeichenfolge, die dem Athena-DynamoDB-Konnektor anzeigt, dass die Tabelle für ergänzende Metadaten verwendet werden kann. Geben Sie die dynamodb-Zeichenfolge in den Tabelleneigenschaften unter einem Feld mit der Bezeichnung classification (Einstufung) (exakte Übereinstimmung) ein.

      Anmerkung

      Die Seite Tabelleneigenschaften festlegen, die Teil des Tabellenerstellungsprozesses in der AWS Glue Konsole ist, enthält einen Abschnitt Datenformat mit einem Klassifizierungsfeld. Sie können hier nicht dynamodb eingeben oder wählen. Nachdem Sie Ihre Tabelle erstellt haben, folgen Sie stattdessen den Schritten zum Bearbeiten der Tabelle und zum Eingeben von classification und dynamodb als Schlüssel-Wert-Paar im Abschnitt Tabelleneigenschaften.

    • sourceTable— Optionale Tabelleneigenschaft, die den Namen der Quelltabelle in DynamoDB definiert. Verwenden Sie diese Option, wenn Regeln zur AWS Glue Tabellennennung Sie daran hindern, eine AWS Glue Tabelle mit demselben Namen wie Ihre DynamoDB-Tabelle zu erstellen. Beispielsweise sind Großbuchstaben in AWS Glue Tabellennamen nicht zulässig, in DynamoDB-Tabellennamen jedoch zulässig.

    • columnMapping— Optionale Tabelleneigenschaft, die Zuordnungen von Spaltennamen definiert. Verwenden Sie diese Option, wenn die Regeln zur AWS Glue Spaltenbenennung Sie daran hindern, eine AWS Glue Tabelle mit denselben Spaltennamen wie Ihre DynamoDB-Tabelle zu erstellen. Beispielsweise sind Großbuchstaben in AWS Glue Spaltennamen nicht zulässig, in DynamoDB-Spaltennamen jedoch zulässig. Es wird erwartet, dass der Eigenschaftswert im Format col1=COL1, col2=COL2 vorliegt. Beachten Sie, dass die Spaltenzuordnung nur für Spaltennamen der obersten Ebene und nicht für verschachtelte Felder gilt.

    • defaultTimeZone— Optionale Tabelleneigenschaft, die date auf datetime Werte ohne explizite Zeitzone angewendet wird. Das Festlegen dieses Werts ist eine bewährte Methode, um Diskrepanzen zwischen der Standardzeitzone der Datenquelle und der Zeitzone der Athena-Sitzung zu vermeiden.

    • datetimeFormatMapping— Optionale Tabelleneigenschaft, die das datetime Format date oder angibt, das beim Parsen von Daten aus einer Spalte des timestamp Datentyps AWS Glue date oder verwendet werden soll. Wenn diese Eigenschaft nicht angegeben ist, versucht der Konnektor, ein ISO -8601-Format abzuleiten. Wenn der Konnektor das date- oder datetime-Format nicht ermitteln oder die rohe Zeichenkette nicht analysieren kann, wird der Wert im Ergebnis ausgelassen.

      Der Wert datetimeFormatMapping muss das Format col1=someformat1,col2=someformat2 haben. Im Folgenden sind einige Beispielformate aufgeführt:

      yyyyMMdd'T'HHmmss ddMMyyyy'T'HH:mm:ss

      Wenn Ihre Kolumne date- oder datetime-Werte ohne Zeitzone hat und Sie die Spalte in der WHERE-Klausel verwenden möchten, legen Sie die datetimeFormatMapping-Eigenschaft für die Spalte fest.

  6. Wenn Sie Ihre Spalten manuell definieren, stellen Sie sicher, dass Sie die entsprechenden Datentypen verwenden. Wenn Sie einen Crawler verwendet haben, überprüfen Sie die Spalten und Typen, die der Crawler erkannt hat.

  7. Wählen Sie Save (Speichern) aus.

Erforderliche Berechtigungen

Vollständige Informationen zu den IAM Richtlinien, die für diesen Connector erforderlich sind, finden Sie im Policies Abschnitt der Datei athena-dynamodb.yaml. In der folgenden Liste sind die erforderlichen Berechtigungen zusammengefasst.

  • 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 einen Fast-Fail auszuführen, wenn die Upstream-Athena-Abfrage beendet wurde.

  • AWS Glue Data Catalog— Der DynamoDB-Konnektor benötigt nur Lesezugriff auf die, um AWS Glue Data Catalog Schemainformationen abzurufen.

  • CloudWatch Logs — Der Connector benötigt Zugriff auf CloudWatch Logs, um Logs zu speichern.

  • DynamoDB-Lesezugriff — Der Konnektor verwendet die DescribeTable Operationen,ListSchemas, ListTablesQuery, und ScanAPI.

Leistung

Der Athena DynamoDB-Konnektor unterstützt parallel Scans und versucht, Prädikat-Push-Down als Teil seiner DynamoDB-Abfragen durchzuführen. Ein Hash-Schlüssel-Prädikat mit verschiedenen X-Werten führt zu X-Abfragen von DynamoDB. Alle anderen Prädikatszenarien führen zu einer Anzahl von Y Scan-Aufrufen, wobei Y heuristisch basierend auf der Größe Ihrer Tabelle und dem bereitgestellten Durchsatz bestimmt wird. Die Auswahl einer Teilmenge von Spalten führt jedoch manchmal zu einer längeren Laufzeit der Abfrageausführung.

LIMIT-Klauseln und einfache Prädikate werden nach unten verschoben, wodurch die Menge der gescannten Daten reduziert und die Laufzeit der Abfrageausführung verkürzt wird.

LIMITKlauseln

Eine LIMIT N-Anweisung reduziert die von der Abfrage durchsuchten Daten. Mit LIMIT N-Pushdown gibt der Konnektor nur N Zeilen an Athena zurück.

Prädikate

Ein Prädikat ist ein Ausdruck in der WHERE Klausel einer SQL Abfrage, der einen booleschen Wert ergibt und Zeilen auf der Grundlage mehrerer Bedingungen filtert. Um die Funktionalität zu erweitern und die Menge der gescannten Daten zu reduzieren, kann der Athena-DynamoDB-Konnektor diese Ausdrücke kombinieren und sie direkt an DynamoDB weiterleiten.

Die folgenden Athena-DynamoDB-Konnektor-Operatoren unterstützen Prädikat-Pushdown:

  • Boolescher Wert: AND

  • Gleichheit:EQUAL, NOT _, _EQUAL, LESS _ LESS _OR_THAN, _EQUAL, THAN _ GREATER _OR_THAN, GREATER IS_ THAN EQUAL NULL

Beispiel für einen kombinierten Pushdown

Kombinieren Sie für erweiterte Abfragefunktionen die Pushdown-Typen wie im folgenden Beispiel:

SELECT * FROM my_table WHERE col_a > 10 and col_b < 10 LIMIT 10

Einen Artikel über die Verwendung von Prädikat-Pushdown zur Verbesserung der Leistung in Verbundabfragen, einschließlich DynamoDB, finden Sie unter Verbessern von Verbundabfragen mit Prädikat-Pushdown in Amazon Athena im AWS -Big-Data-Blog.

Passthrough-Abfragen

Der DynamoDB-Connector unterstützt Passthrough-Abfragen und verwendet PartiQL-Syntax. Der GetItemAPIDynamoDB-Vorgang wird nicht unterstützt. Informationen zum Abfragen von DynamoDB mit PartiQL finden Sie unter PartiQL select statements for DynamoDB im Amazon DynamoDB Developer Guide.

Verwenden Sie die folgende Syntax, um Passthrough-Abfragen mit DynamoDB zu verwenden:

SELECT * FROM TABLE( system.query( query => 'query_string' ))

Das folgende Beispiel für eine DynamoDB-Passthrough-Abfrage verwendet PartiQL, um eine Liste von Fire TV Stick-Geräten zurückzugeben, deren DateWatched Eigenschaft nach dem 24.12.22 liegt.

SELECT * FROM TABLE( system.query( query => 'SELECT Devices FROM WatchList WHERE Devices.FireStick.DateWatched[0] > '12/24/22'' ))

Fehlerbehebung

Mehrere Filter in einer Sortierschlüsselspalte

Fehlermeldung: KeyConditionExpressionsdarf nur eine Bedingung pro Schlüssel enthalten

Ursache: Dieses Problem kann in Athena-Engine-Version 3 bei Abfragen auftreten, die sowohl einen unteren als auch einen oberen Grenzfilter für eine DynamoDB-Sortierschlüsselspalte haben. Da DynamoDB nicht mehr als eine Filterbedingung für einen Sortierschlüssel unterstützt, wird ein Fehler ausgelöst, wenn der Konnektor versucht, eine Abfrage herunterzufahren, auf die beide Bedingungen angewendet wurden.

Lösung: Aktualisieren Sie die Konnektor-Version auf Version 2023.11.1 oder höher. Anweisungen zum Aktualisieren eines Konnektors finden Sie unter Aktualisieren Sie einen Datenquellenconnector.

Kosten

Die Kosten für die Nutzung des Connectors hängen von den zugrunde liegenden AWS Ressourcen ab, die verwendet werden. Da Abfragen, die Scans verwenden, eine große Anzahl von Lesekapazitätseinheiten (RCUs) verbrauchen können, sollten Sie die Informationen zur Preisgestaltung von Amazon DynamoDB sorgfältig prüfen.

Weitere Ressourcen

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.