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
Buka konsol Athena di https://console.aws.amazon.com/athena/
. -
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_streams
tampilan 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:
-
Amazon RDS for My SQL
untuk menyimpan data katalog produk -
Amazon DocumentDB
untuk menyimpan data akun pelanggan seperti email dan alamat pengiriman -
Amazon DynamoDB
untuk menyimpan pengiriman pesanan dan data pelacakan
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:GetDataCatalog
Izin 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 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
Sumber daya tambahan
-
Untuk contoh tampilan federasi yang dipisahkan dari sumber asalnya dan tersedia untuk analisis sesuai permintaan dalam model multi-pengguna, lihat Memperluas mesh data Anda dengan Amazon Athena dan tampilan gabungan di Blog Big
Data.AWS -
Untuk informasi lebih lanjut tentang bekerja dengan pemandangan di Athena, lihat. Bekerja dengan pandangan