Verwenden Sie föderierte Abfragen - 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.

Verwenden Sie föderierte Abfragen

Wenn Sie einen oder mehrere Daten-Connector konfiguriert und in Ihrem Konto bereitgestellt haben, können Sie diese in Ihren Athena-Abfragen verwenden.

Fragen Sie eine einzelne Datenquelle ab

In den Beispielen in diesem Abschnitt wird davon ausgegangen, dass Sie den Amazon Athena Athena-Anschluss CloudWatch für Ihr Konto konfiguriert und bereitgestellt haben. Sie verwenden den gleichen Ansatz für Abfragen für andere Connectors.

Um eine Athena-Abfrage zu erstellen, die den CloudWatch Konnektor verwendet
  1. Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/.

  2. Erstellen Sie im Athena-Abfrage-Editor eine SQL Abfrage, die die folgende Syntax in der FROM Klausel verwendet.

    MyCloudwatchCatalog.database_name.table_name

Beispiele

Im folgenden Beispiel wird der CloudWatch Athena-Connector verwendet, um eine Verbindung mit der all_log_streams Ansicht in der Gruppe /var/ecommerce-engine/order-processor CloudWatch Logs Log herzustellen. Die Ansicht all_log_streams ist eine Ansicht aller Protokollstreams in der Protokollgruppe. Die Beispielabfrage begrenzt die Anzahl der zurückgegebenen Zeilen auf 100.

SELECT * FROM "MyCloudwatchCatalog"."/var/ecommerce-engine/order-processor".all_log_streams LIMIT 100;

Im folgenden Beispiel werden Informationen aus derselben Ansicht wie im vorherigen Beispiel analysiert. Im Beispiel werden die Bestell-ID und die Protokollebene extrahiert und alle Nachrichten mit der Ebene INFO herausgefiltert.

SELECT log_stream as ec2_instance, Regexp_extract(message '.*orderId=(\d+) .*', 1) AS orderId, message AS order_processor_log, Regexp_extract(message, '(.*):.*', 1) AS log_level FROM MyCloudwatchCatalog."/var/ecommerce-engine/order-processor".all_log_streams WHERE Regexp_extract(message, '(.*):.*', 1) != 'INFO'

Fragen Sie mehrere Datenquellen ab

Stellen Sie sich als komplexeres Beispiel ein E-Commerce-Unternehmen vor, das die folgenden Datenquellen verwendet, um Daten zu Kundenkäufen zu speichern:

Stellen Sie sich vor, ein Datenanalyst für diese E-Commerce-Anwendung erfährt, dass die Versandzeit in einigen Regionen durch die lokalen Wetterbedingungen beeinflusst wurde. Der Analyst möchte wissen, wie viele Bestellungen verzögert sind, wo sich die betroffenen Kunden befinden und welche Produkte am stärksten betroffen sind. Anstatt die Informationsquellen separat zu untersuchen, verwendet der Analyst Athena, um die Daten in einer einzigen Verbundabfrage zusammenzuführen.

SELECT t2.product_name AS product, t2.product_category AS category, t3.customer_region AS region, count(t1.order_id) AS impacted_orders FROM my_dynamodb.default.orders t1 JOIN my_mysql.products.catalog t2 ON t1.product_id = t2.product_id JOIN my_documentdb.default.customers t3 ON t1.customer_id = t3.customer_id WHERE t1.order_status = 'PENDING' AND t1.order_date between '2022-01-01' AND '2022-01-05' GROUP BY 1, 2, 3 ORDER BY 4 DESC

Föderierte Ansichten abfragen

Bei der Abfrage von Verbundquellen können Sie Ansichten verwenden, um die zugrunde liegenden Datenquellen zu verschleiern oder komplexe Verknüpfungen vor anderen Analysten zu verbergen, die die Daten abfragen.

Überlegungen und Einschränkungen

  • Für Verbundansichten ist Athena-Engine-Version 3 erforderlich.

  • Föderierte Ansichten werden in und nicht in AWS Glue der zugrunde liegenden Datenquelle gespeichert.

  • Ansichten, die mit Verbundkatalogen erstellt wurden, müssen die Syntax voll qualifizierter Namen verwenden, wie im folgenden Beispiel:

    "ddbcatalog"."default"."customers"
  • Benutzer, die Abfragen an Verbundquellen ausführen, müssen über die Berechtigung verfügen, die Verbundquellen abzufragen.

  • Die athena:GetDataCatalog-Berechtigung ist für Verbundansichten erforderlich. Weitere Informationen finden Sie unter Beispiel für IAM-Berechtigungsrichtlinien zum Zulassen von Athena Federated Query.

Beispiele

Im folgenden Beispiel wird eine Ansicht mit dem Namen customers auf Daten erstellt, die in einer Verbunddatenquelle gespeichert sind.

CREATE VIEW customers AS SELECT * FROM my_federated_source.default.table

Die folgende Beispielabfrage zeigt eine Abfrage, die auf die customers-Ansicht statt auf die zugrunde liegende Verbunddatenquelle verweist.

SELECT id, SUM(order_amount) FROM customers GROUP by 1 ORDER by 2 DESC LIMIT 50

Das folgende Beispiel erstellt eine Ansicht namens order_summary, die Daten aus einer Verbunddatenquelle und aus einer Amazon-S3-Datenquelle kombiniert. Aus der Verbundquelle, die bereits in Athena erstellt wurde, verwendet die Ansicht die Tabellen person und profile. In Amazon S3 verwendet die Ansicht die purchase- und payment-Tabellen. Um auf Amazon S3 zu verweisen, verwendet die Anweisung das Schlüsselwort awsdatacatalog. Beachten Sie, dass die Verbunddatenquelle die Syntax für vollqualifizierte Namen verwendet federated_source_name.federated_source_database.federated_source_table.

CREATE VIEW default.order_summary AS SELECT * FROM federated_source_name.federated_source_database."person" p JOIN federated_source_name.federated_source_database."profile" pr ON pr.id = p.id JOIN awsdatacatalog.default.purchase i ON p.id = i.id JOIN awsdatacatalog.default.payment pay ON pay.id = p.id

Weitere Ressourcen