

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

# Jalankan kueri federasi
<a name="running-federated-queries"></a>

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

## Kueri satu sumber data
<a name="running-federated-queries-single-data-source"></a>

Contoh di bagian ini mengasumsikan bahwa Anda telah mengonfigurasi dan menerapkan [Konektor Amazon Athena CloudWatch](connectors-cloudwatch.md) 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/](https://console.aws.amazon.com/athena/home).

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

   ```
   {{MyCloudwatchCatalog}}.{{database_name}}.{{table_name}}       
   ```

### Contoh
<a name="running-federated-queries-single-data-source-examples"></a>

Contoh berikut menggunakan CloudWatch konektor Athena untuk terhubung ke `all_log_streams` tampilan di grup [Log `/var/ecommerce-engine/order-processor` CloudWatch Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html). Parameter`all_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 level`INFO`.

```
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
<a name="running-federated-queries-multiple-sources"></a>

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](https://aws.amazon.com/rds/mysql/) MySQL untuk menyimpan data katalog produk
+ [Amazon DocumentDB](https://aws.amazon.com/documentdb/) untuk menyimpan data akun pelanggan seperti email dan alamat pengiriman
+ [Amazon DynamoDB](https://aws.amazon.com/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.

**Example**  

```
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
<a name="running-federated-queries-federated-views"></a>

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
<a name="running-federated-queries-federated-views-considerations"></a>
+ Tampilan federasi membutuhkan mesin Athena versi 3. 
+ Tampilan federasi disimpan di AWS Glue, bukan dengan sumber data yang mendasarinya.
+ Tampilan federasi tidak didukung pada sumber data yang [terdaftar sebagai Katalog Data Glue](register-connection-as-gdc.md).
+ 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](federated-query-iam-access.md).

### Contoh
<a name="running-federated-queries-federated-views-examples"></a>

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

**Example**  

```
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.

**Example**  

```
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` dan`profile`. Dari Amazon S3, tampilan menggunakan tabel `purchase` dan`payment`. Untuk merujuk ke Amazon S3, pernyataan tersebut menggunakan kata kunci. `awsdatacatalog` Perhatikan bahwa sumber data federasi menggunakan sintaks {{federated\_source\_name}} nama yang sepenuhnya memenuhi syarat. {{federated\_source\_database}}. {{federated\_source\_table}}.

**Example**  

```
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
<a name="running-federated-queries-federated-views-additional-resources"></a>
+ *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](https://aws.amazon.com/blogs/big-data/extend-your-data-mesh-with-amazon-athena-and-federated-views/) Data.AWS * 
+ Untuk informasi lebih lanjut tentang bekerja dengan pemandangan di Athena, lihat. [Bekerja dengan pandangan](views.md)