Amazon Athena TPC Benchmark DS (TPC-DS) Konnektor - Amazon Athena

Amazon Athena TPC Benchmark DS (TPC-DS) Konnektor

Der Amazon-Athena-TPC-DS-Konnektor ermöglicht Amazon Athena die Kommunikation mit einer Quelle zufällig erzeugter TPC-Benchmark-DS-Daten für Benchmarking und Funktionstests von Athena Federation. Der Athena-TPC-DS-Konnektor generiert eine TPC-DS-konforme Datenbank mit einem von vier Skalierungsfaktoren. Wir empfehlen die Verwendung dieses Konnektors nicht als Alternative zu Amazon-S3-basierten Data Lake-Leistungstests.

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.

Voraussetzungen

Parameter

Verwenden Sie die Parameter in diesem Abschnitt, um den TPC-DS-Konnektor zu konfigurieren.

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

Wir empfehlen, dass Sie einen TPC-DS-Connector mithilfe eines Glue-Connections-Objekts konfigurieren. Setzen Sie dazu die glue_connection-Umgebungsvariable des TPC-DS-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 TPCDS

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 TPC-DS-Connector unterstützt die Verwendung eines Multiplexing-Handlers nicht.

  • Der mit Glue-Connection erstellte TPC-DS-Connector unterstützt nur ConnectionSchemaVersion 2.

  • 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-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, wiea7e63k4b-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 ist False, 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.

Testen von Datenbanken und Tabellen

Der Athena TPC-DS-Konnektor generiert eine TPC-DS-konforme Datenbank mit einem der vier Skalierungsfaktoren tpcds1, tpcds10, tpcds100, tpcds250 oder tpcds1000.

Zusammenfassung der Tabellen

Eine vollständige Liste der Testdatentabellen und -spalten erhalten Sie, wenn Sie SHOW TABLES- oder DESCRIBE TABLE-Abfragen ausführen. Die folgende Zusammenfassung der Tabellen dient der Übersichtlichkeit.

  1. call_center

  2. catalog_page

  3. catalog_returns

  4. catalog_sales

  5. customer

  6. customer_address

  7. customer_demographics

  8. date_dim

  9. dbgen_version

  10. household_demographics

  11. income_band

  12. -Bestand

  13. Element

  14. promotion

  15. Grund

  16. ship_mode

  17. Store

  18. store_returns

  19. store_sales

  20. time_dim

  21. warehouse

  22. web_page

  23. web_returns

  24. web_sales

  25. Web_site

Informationen zu TPC-DS-Abfragen, die mit diesem generierten Schema und den Daten kompatibel sind, finden Sie im athena-tpcds/src/main/resources/queries/-Verzeichnis auf GitHub.

Beispielabfrage

Die folgenden SELECT-Abfragebeispiele fragen den tpcds-Katalog für demografische Kundendaten in bestimmten Landkreisen ab.

SELECT cd_gender, cd_marital_status, cd_education_status, count(*) cnt1, cd_purchase_estimate, count(*) cnt2, cd_credit_rating, count(*) cnt3, cd_dep_count, count(*) cnt4, cd_dep_employed_count, count(*) cnt5, cd_dep_college_count, count(*) cnt6 FROM "lambda:tpcds".tpcds1.customer c, "lambda:tpcds".tpcds1.customer_address ca, "lambda:tpcds".tpcds1.customer_demographics WHERE c.c_current_addr_sk = ca.ca_address_sk AND ca_county IN ('Rush County', 'Toole County', 'Jefferson County', 'Dona Ana County', 'La Porte County') AND cd_demo_sk = c.c_current_cdemo_sk AND exists(SELECT * FROM "lambda:tpcds".tpcds1.store_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = ss_customer_sk AND ss_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3) AND (exists(SELECT * FROM "lambda:tpcds".tpcds1.web_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = ws_bill_customer_sk AND ws_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3) OR exists(SELECT * FROM "lambda:tpcds".tpcds1.catalog_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = cs_ship_customer_sk AND cs_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3)) GROUP BY cd_gender, cd_marital_status, cd_education_status, cd_purchase_estimate, cd_credit_rating, cd_dep_count, cd_dep_employed_count, cd_dep_college_count ORDER BY cd_gender, cd_marital_status, cd_education_status, cd_purchase_estimate, cd_credit_rating, cd_dep_count, cd_dep_employed_count, cd_dep_college_count LIMIT 100

Erforderliche Berechtigungen

Ausführliche Informationen zu den für diesen Konnektor erforderlichen IAM-Richtlinien finden Sie im Policies-Abschnitt der athena-tpcds.yaml-Datei. 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 ein Fast-Fail durchzuführen, wenn die vorgeschaltete Athena-Abfrage beendet wurde.

Leistung

Der Athena-TPC-DS-Konnektor versucht, Abfragen basierend auf dem von Ihnen gewählten Skalierungsfaktor zu parallelisieren. Der Prädikat-Pushdown wird innerhalb der Lambda-Funktion ausgeführt.

Lizenzinformationen

Das TPC-DS-Konnektor-Projekt von Amazon Athena ist unter der Apache-2.0-Lizenz lizenziert.

Weitere Ressourcen

Weitere Informationen zu diesem Konnektor finden Sie unter der entsprechenden Seite auf GitHub.com.