Gunakan kueri federasi - Amazon Athena

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan kueri federasi

Setelah Anda mengonfigurasi satu atau lebih konektor data dan menyebarkannya ke akun Anda, Anda dapat menggunakannya dalam kueri Athena Anda.

Kueri satu sumber data

Contoh di bagian ini mengasumsikan bahwa Anda telah mengonfigurasi dan menerapkan Konektor Amazon Athena CloudWatch ke akun Anda. Gunakan pendekatan yang sama untuk mengkueri saat Anda menggunakan konektor lain.

Untuk membuat kueri Athena yang menggunakan konektor CloudWatch
  1. Buka konsol Athena di https://console.aws.amazon.com/athena/.

  2. Di editor kueri Athena, buat SQL kueri yang menggunakan sintaks berikut dalam klausa. FROM

    MyCloudwatchCatalog.database_name.table_name

Contoh

Contoh berikut menggunakan CloudWatch konektor Athena untuk terhubung ke all_log_streams tampilan di grup Log /var/ecommerce-engine/order-processor CloudWatch Log. Parameterall_log_streamstampilan adalah tampilan dari semua aliran log dalam grup log. Contoh kueri membatasi jumlah baris kembali ke 100.

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

Contoh berikut mem-parsing informasi dari tampilan yang sama seperti contoh sebelumnya. Contoh ekstrak urutan ID dan level log dan menyaring pesan yang memiliki levelINFO.

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'

Kueri beberapa sumber data

Sebagai contoh yang lebih kompleks, bayangkan sebuah perusahaan e-commerce yang menggunakan sumber data berikut untuk menyimpan data yang terkait dengan pembelian pelanggan:

Bayangkan seorang analis data untuk aplikasi e-commerce ini mengetahui bahwa waktu pengiriman di beberapa daerah telah dipengaruhi oleh kondisi cuaca setempat. Analis ingin mengetahui berapa banyak pesanan yang tertunda, di mana pelanggan yang terkena dampak berada, dan produk mana yang paling terpengaruh. Alih-alih menyelidiki sumber informasi secara terpisah, analis menggunakan Athena untuk menggabungkan data bersama dalam satu kueri federasi.

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

Kueri tampilan federasi

Saat menanyakan sumber federasi, Anda dapat menggunakan tampilan untuk mengaburkan sumber data yang mendasarinya atau menyembunyikan gabungan kompleks dari analis lain yang menanyakan data.

Pertimbangan dan batasan

  • Tampilan federasi membutuhkan mesin Athena versi 3.

  • Tampilan federasi disimpan di AWS Glue, bukan dengan sumber data yang mendasarinya.

  • Tampilan yang dibuat dengan katalog federasi harus menggunakan sintaks nama yang sepenuhnya memenuhi syarat, seperti pada contoh berikut:

    "ddbcatalog"."default"."customers"
  • Pengguna yang menjalankan kueri pada sumber federasi harus memiliki izin untuk menanyakan sumber federasi.

  • athena:GetDataCatalogIzin diperlukan untuk pandangan federasi. Untuk informasi selengkapnya, lihat Izinkan akses ke Kueri Federasi Athena: Contoh kebijakan .

Contoh

Contoh berikut membuat tampilan yang disebut customers pada data yang disimpan dalam sumber data federasi.

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

Contoh kueri berikut menunjukkan kueri yang mereferensikan customers tampilan, bukan sumber data federasi yang mendasarinya.

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

Contoh berikut membuat tampilan yang disebut order_summary yang menggabungkan data dari sumber data federasi dan dari sumber data Amazon S3. Dari sumber federasi, yang telah dibuat di Athena, tampilan menggunakan tabel person danprofile. Dari Amazon S3, tampilan menggunakan tabel purchase danpayment. Untuk merujuk ke Amazon S3, pernyataan tersebut menggunakan kata kunci. awsdatacatalog Perhatikan bahwa sumber data federasi menggunakan sintaks nama yang sepenuhnya memenuhi syarat 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

Sumber daya tambahan