Contoh menggunakan kueri federasi - Amazon Redshift

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

Contoh menggunakan kueri federasi

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

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

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

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

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, lihatenable_case_sensitive_identifier.

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

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

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

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.

  • 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