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
Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/
. -
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:
-
Amazon RDS for My SQL
zum Speichern von Produktkatalogdaten -
Amazon DocumentDB
zur Speicherung von Kundenkontodaten wie E-Mail- und Versandadressen -
Amazon DynamoDB
zum Speichern von Versand- und Tracking-Daten von Bestellungen
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 Zugriff auf Athena Federated Query zulassen: Beispielrichtlinien .
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 JOINfederated_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
-
Ein Beispiel für eine Verbundansicht, die von ihrer ursprünglichen Quelle entkoppelt ist und für On-Demand-Analysen in einem Mehrbenutzermodell verfügbar ist, finden Sie unter Erweitern Sie Ihr Data Mesh mit Amazon Athena und Verbundansichten
im AWS -Big-Data-Blog. -
Weitere Informationen zur Arbeit mit Ansichten in Athena finden Sie unter Arbeiten Sie mit Ansichten.