

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# Contoh menggunakan kueri federasi
<a name="federated_query_example"></a>

Contoh berikut menunjukkan cara menjalankan kueri federasi. Jalankan SQL menggunakan klien SQL Anda yang terhubung ke database Amazon Redshift.

## Contoh menggunakan kueri federasi dengan PostgreSQL
<a name="federated_query_example_postgres"></a>

Contoh berikut menunjukkan cara menyiapkan kueri federasi yang mereferensikan database Amazon Redshift, database Aurora PostgreSQL, dan Amazon S3. Contoh ini menggambarkan cara kerja kueri federasi. Untuk menjalankannya di lingkungan Anda sendiri, ubahlah agar sesuai dengan lingkungan Anda. Untuk prasyarat untuk melakukan ini, lihat. [Memulai dengan menggunakan kueri federasi ke PostgreSQL](getting-started-federated.md) 

Buat skema eksternal yang mereferensikan database Aurora PostgreSQL.

```
CREATE EXTERNAL SCHEMA apg
FROM POSTGRES
DATABASE 'database-1' SCHEMA 'myschema'
URI 'endpoint to aurora hostname'
IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-SecretsManager-RO'
SECRET_ARN 'arn:aws:secretsmanager:us-west-2:123456789012:secret:federation/test/dataplane-apg-creds-YbVKQw';
```

Buat skema eksternal lain yang mereferensikan Amazon S3, yang menggunakan Amazon Redshift Spectrum. Juga, berikan izin untuk menggunakan skema untuk`public`. 

```
CREATE EXTERNAL SCHEMA s3 
FROM DATA CATALOG 
DATABASE 'default' REGION 'us-west-2' 
IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-S3'; 

GRANT USAGE ON SCHEMA s3 TO public;
```

Tampilkan jumlah baris di tabel Amazon Redshift. 

```
SELECT count(*) FROM public.lineitem;
            
  count
----------
25075099
```

Tampilkan hitungan baris dalam tabel PostgreSQL Aurora. 

```
SELECT count(*) FROM apg.lineitem;
            
count
-------
11760
```

Tampilkan jumlah baris di Amazon S3. 

```
SELECT count(*) FROM s3.lineitem_1t_part;
            
   count
------------
6144008876
```

Buat tampilan tabel dari Amazon Redshift, Aurora PostgreSQL, dan Amazon S3. Tampilan ini digunakan untuk menjalankan kueri federasi Anda. 

```
CREATE VIEW lineitem_all AS
  SELECT l_orderkey,l_partkey,l_suppkey,l_linenumber,l_quantity,l_extendedprice,l_discount,l_tax,l_returnflag,l_linestatus,
         l_shipdate::date,l_commitdate::date,l_receiptdate::date, l_shipinstruct ,l_shipmode,l_comment 
  FROM s3.lineitem_1t_part 
  UNION ALL SELECT * FROM public.lineitem 
  UNION ALL SELECT * FROM apg.lineitem 
     with no schema binding;
```

Tampilkan jumlah baris dalam tampilan `lineitem_all` dengan predikat untuk membatasi hasil. 

```
SELECT count(*) from lineitem_all WHERE l_quantity = 10;
               
   count
-----------
123373836
```

Cari tahu berapa banyak penjualan satu item yang ada pada bulan Januari setiap tahun. 

```
SELECT extract(year from l_shipdate) as year,
       extract(month from l_shipdate) as month,
       count(*) as orders
FROM lineitem_all
WHERE extract(month from l_shipdate) = 1
AND l_quantity < 2
GROUP BY 1,2
ORDER BY 1,2;

 year | month | orders
------+-------+---------
 1992 |     1 |  196019
 1993 |     1 | 1582034
 1994 |     1 | 1583181
 1995 |     1 | 1583919
 1996 |     1 | 1583622
 1997 |     1 | 1586541
 1998 |     1 | 1583198
 2016 |     1 |   15542
 2017 |     1 |   15414
 2018 |     1 |   15527
 2019 |     1 |     151
```

## Contoh menggunakan nama mixed-case
<a name="federated_query_example_postgres-mixed"></a>

Untuk menanyakan database jarak jauh PostgreSQL yang didukung yang memiliki nama kasus campuran dari database, skema, tabel, atau kolom, lalu atur ke. `enable_case_sensitive_identifier` `true` Untuk informasi selengkapnya tentang parameter sesi ini, lihat[enable\$1case\$1sensitive\$1identifier](r_enable_case_sensitive_identifier.md). 

```
SET enable_case_sensitive_identifier TO TRUE;
```

Biasanya, nama database dan skema dalam huruf kecil. Contoh berikut menunjukkan bagaimana Anda dapat terhubung ke database jarak jauh PostgreSQL yang didukung yang memiliki nama huruf kecil untuk database dan skema serta nama huruf campuran untuk tabel dan kolom. 

Buat skema eksternal yang mereferensikan database Aurora PostgreSQL yang memiliki nama database huruf kecil () dan nama skema huruf kecil (). `dblower` `schemalower` 

```
CREATE EXTERNAL SCHEMA apg_lower
FROM POSTGRES
DATABASE 'dblower' SCHEMA 'schemalower'
URI 'endpoint to aurora hostname'
IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-SecretsManager-RO'
SECRET_ARN 'arn:aws:secretsmanager:us-west-2:123456789012:secret:federation/test/dataplane-apg-creds-YbVKQw';
```

Dalam sesi di mana kueri berjalan, atur `enable_case_sensitive_identifier` ke`true`.

```
SET enable_case_sensitive_identifier TO TRUE;
```

Jalankan kueri federasi untuk memilih semua data dari database PostgreSQL. Tabel (`MixedCaseTab`) dan kolom (`MixedCaseName`) memiliki nama kasus campuran. Hasilnya adalah satu baris (`Harry`). 

```
select * from apg_lower."MixedCaseTab";
```

```
 MixedCaseName
-------
 Harry
```

Contoh berikut menunjukkan bagaimana Anda dapat terhubung ke database jarak jauh PostgreSQL yang didukung yang memiliki nama kasus campuran untuk database, skema, tabel, dan kolom. 

Setel `enable_case_sensitive_identifier` ke `true` sebelum Anda membuat skema eksternal. Jika tidak `enable_case_sensitive_identifier` disetel ke `true` sebelum membuat skema eksternal, maka terjadi kesalahan database tidak ada.

Buat skema eksternal yang mereferensikan database Aurora PostgreSQL yang memiliki nama database kasus campuran `UpperDB` () dan schema (). `UpperSchema`

```
CREATE EXTERNAL SCHEMA apg_upper
FROM POSTGRES
DATABASE 'UpperDB' SCHEMA 'UpperSchema'
URI 'endpoint to aurora hostname'
IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-SecretsManager-RO'
SECRET_ARN 'arn:aws:secretsmanager:us-west-2:123456789012:secret:federation/test/dataplane-apg-creds-YbVKQw';
```

Jalankan kueri federasi untuk memilih semua data dari database PostgreSQL. Tabel (`MixedCaseTab`) dan kolom (`MixedCaseName`) memiliki nama kasus campuran. Hasilnya adalah satu baris (`Harry`). 

```
select * from apg_upper."MixedCaseTab";
```

```
 MixedCaseName
-------
 Harry
```

## Contoh menggunakan kueri federasi dengan MySQL
<a name="federated_query_example_mysql"></a>

Contoh berikut menunjukkan cara mengatur query federasi yang mereferensikan database MySQL Aurora. Contoh ini menggambarkan cara kerja kueri federasi. Untuk menjalankannya di lingkungan Anda sendiri, ubahlah agar sesuai dengan lingkungan Anda. Untuk prasyarat untuk melakukan ini, lihat. [Memulai dengan menggunakan kueri federasi ke MySQL](getting-started-federated-mysql.md) 

Contoh ini tergantung pada prasyarat berikut: 
+ Sebuah rahasia yang diatur di Secrets Manager untuk database Aurora MySQL. Rahasia ini direferensikan dalam kebijakan dan peran akses IAM. Untuk informasi selengkapnya, lihat [Membuat rahasia dan peran IAM untuk menggunakan kueri federasi](federated-create-secret-iam-role.md). 
+ Grup keamanan yang disiapkan untuk menghubungkan Amazon Redshift dan Aurora MySQL. 

Buat skema eksternal yang mereferensikan database Aurora MySQL. 

```
CREATE EXTERNAL SCHEMA amysql
FROM MYSQL
DATABASE 'functional'
URI 'endpoint to remote hostname'
IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-SecretsManager-RO'
SECRET_ARN 'arn:aws:secretsmanager:us-west-2:123456789012:secret:federation/test/dataplane-apg-creds-YbVKQw';
```

Jalankan contoh SQL pilih tabel Aurora MySQL untuk menampilkan satu baris dari tabel karyawan di Aurora MySQL. 

```
SELECT level FROM amysql.employees LIMIT 1;
            
 level
-------
     8
```