Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan tabel asing dengan Aurora Global Database
Aurora Global Database mendukung menjalankan kueri analitik dengan penyiapan per wilayah. Bagian ini menjelaskan cara mengonfigurasi kueri analitik di seluruh Wilayah, sumber daya mana yang direplikasi secara otomatis, dan cara merencanakan skenario pemulihan bencana.
Topik
Menggunakan aurora_analytics dengan Database Global
Tabel asing adalah definisi tabel PostgreSQL yang menunjuk ke data Apache Iceberg atau Parket Anda di Amazon S3, Tabel Amazon S3, atau. AWS Glue Data Catalog Tidak ada data yang disalin ke Aurora. Hanya replikasi berikut dari cluster DB primer ke setiap cluster DB sekunder:
-
Instalasi
aurora_analyticsekstensi -
Definisi tabel asing (DDL)
Berikut ini tidak mereplikasi dan harus disediakan secara independen di setiap Wilayah yang berisi cluster DB sekunder:
-
Asosiasi peran IAM ke cluster DB
-
Kebijakan IAM yang memberikan akses ke Amazon S3 AWS Glue,, atau Amazon S3 Tabel
-
Jaringan VPC (endpoint atau NAT) digunakan untuk menjangkau layanan tersebut
Menyiapkan pada Database Global
Langkah 1: Buat kebijakan dan peran IAM di setiap Wilayah
Asosiasi peran IAM tidak mereplikasi antara cluster DB primer dan sekunder. Anda harus membuat dan melampirkan peran IAM dengan nama AuroraAnalytics fitur di setiap Wilayah yang berisi cluster DB primer atau sekunder.
-
Buat kebijakan IAM yang memberikan akses baca ke data Anda. Izin yang diperlukan tergantung pada format data Anda. Untuk informasi selengkapnya, lihat Referensi kebijakan IAM.
-
Buat peran IAM yang dipercaya oleh
rds.amazonaws.comdan lampirkan kebijakan. -
Kaitkan peran dengan cluster DB Wilayah itu:
aws rds add-role-to-db-cluster \ --db-cluster-identifier <cluster-in-this-region> \ --role-arn arn:aws:iam::<account-id>:role/AuroraAnalyticsRole \ --feature-name AuroraAnalytics -
Tunggu hingga status peran ditampilkan sebagai Aktif.
catatan
Segera setelah peran dilampirkan (atau setelah instance dimulai atau dipromosikan), kueri terhadap tabel asing mungkin secara singkat mengembalikan kesalahan:credential to access AWS service is unavailable. Tunggu hingga status peran Aktif sebelum menjalankan kueri di tabel asing.
Langkah 2: Siapkan jaringan di setiap Wilayah
Konfigurasi VPC juga tidak mereplikasi. Dalam VPC untuk setiap cluster DB (primer dan setiap sekunder), sediakan jalur jaringan ke layanan yang diperlukan sehingga cluster DB dapat mencapai data tabel asing untuk menyelesaikan kueri. Pastikan setiap konfigurasi jaringan klaster sekunder memungkinkan mencapai Wilayah tabel asing.
| Layanan | Tipe titik akhir | Diperlukan untuk |
|---|---|---|
Amazon S3 () com.amazonaws.<region>.s3 |
Gateway | Semua akses data Amazon S3 dan Amazon S3 Tabel |
AWS Glue (com.amazonaws.<region>.glue) |
Antarmuka | AWS Glue Data Catalog akses (tabel Iceberg) |
AWS STS (com.amazonaws.<region>.sts) |
Antarmuka | Pengambilan kredensi peran IAM |
Untuk titik akhir AWS Glue dan AWS STS antarmuka, aktifkan DNS Pribadi dan izinkan TCP 443 masuk dari CIDR VPC Anda.
Langkah 3: Instal ekstensi pada primer
Connect ke instance DB penulis di cluster DB primer dan instal ekstensi di setiap database tempat Anda ingin membuat tabel asing:
CREATE EXTENSION aurora_analytics;
Ekstensi mereplikasi ke setiap cluster DB sekunder secara otomatis.
Langkah 4: Buat tabel asing di primer
Pada instans DB penulis di cluster DB primer, buat tabel asing yang menunjuk ke data Anda:
-- Parquet via S3 URI CREATE FOREIGN TABLE ft_orders () SERVER aurora_analytics_server OPTIONS (location 's3://my-bucket/orders/', format 'parquet', region 'us-east-1'); -- Iceberg via Glue ARN CREATE FOREIGN TABLE ft_transactions () SERVER aurora_analytics_server OPTIONS (location 'arn:aws:glue:us-east-1:123456789012:table/mydb/transactions', format 'iceberg');
Aurora mereplikasi DDL ke setiap cluster DB sekunder, di mana tabel asing tersedia untuk query.
Langkah 5: Verifikasi pada sekunder
Connect ke cluster DB sekunder dan konfirmasikan replikasi dan akses baca:
SELECT extname, extversion FROM pg_extension WHERE extname = 'aurora_analytics'; SELECT count(*) FROM ft_orders;
Penyematan wilayah tabel asing
Saat Anda membuat tabel asing, datanya location dan Region disimpan dalam definisi tabel dan mereplikasi ke setiap cluster DB dalam database global. Setiap cluster DB membaca dari lokasi yang sama.
Ini menyiratkan:
-
Setiap cluster DB sekunder membaca data tabel asing dari Wilayah yang ditentukan dalam definisi tabel.
-
Jika Wilayah itu berbeda dari Wilayah sekunder, pembacaan adalah Lintas wilayah, yang menambahkan biaya transfer data dan latensi.
-
Peran IAM masing-masing sekunder dan izin jaringan mencapai Wilayah meja asing.
catatan
Amazon S3 Multi-Region Access Points (MRAP) tidak didukung sebagai lokasi tabel asing. Aurora PostgreSQL hanya menerima URI, ARN Tabels3://, dan AWS Glue ARN Tabel Amazon S3 dalam opsi. location ARN MRAP dan nama host MRAP tidak valid untuk opsi tersebut. location
Panduan umum untuk kesiapan DR
Selesaikan pengaturan Per-wilayah di Langkah 1—2 untuk cluster DB sekunder, lalu putuskan bagaimana cluster DB akan mengakses data tabel asing:
-
Terima bacaan Lintas wilayah: Pendekatan ini hanya cocok untuk skenario peralihan yang direncanakan di mana Wilayah asli sehat.
-
Pre-stage Region-local salinan: Gunakan Cross-Region Replikasi Amazon S3 sehingga kueri analitis dapat dibaca secara lokal meskipun Wilayah asli tidak tersedia. Siapkan
ALTER FOREIGN TABLE ... OPTIONS (SET ...)pernyataan untuk memperbarui lokasi tabel asing untuk menunjuk ke Region-local salinannya.
catatan
Cache baca pada disk tidak bertahan atau ditransfer saat peralihan atau failover terjadi. Kueri pertama setelah acara membaca data dari Amazon S3 dan dijalankan dengan latensi yang lebih tinggi hingga cache memanas.
Menangani switchover dan failover
Selama peralihan atau failover Aurora Global Database, kueri tabel asing memiliki ketergantungan tambahan di luar koneksi klien basis data standar: kueri tersebut harus mencapai Amazon S3, AWS Glue, dan AWS STS di Wilayah yang dinamai oleh setiap tabel asing.
Peralihan Database Global
Baik cluster DB primer dan sekunder sehat pada saat peralihan. Setelah kluster DB primer baru tersedia, kueri terus dibaca dari Wilayah yang disebutkan di setiap tabel asing. Jika Wilayah itu berbeda dari Region penulis baru, pembacaan bersifat Lintas wilayah dan menimbulkan biaya transfer data dan latensi. Untuk menghindari latensi baca lintas wilayah, jalankan ALTER FOREIGN TABLE ... OPTIONS (SET ...) pernyataan yang disiapkan untuk mengarahkan ulang tabel asing ke salinan. Region-local
Melanjutkan operasi setelah peralihan
-
Izinkan klien untuk menyambung kembali ke titik akhir penulis dari cluster DB primer yang baru.
-
Tunggu hingga status peran IAM Aktif. Jalankan kueri pengujian terhadap tabel asing (misalnya,
SELECT count(*) FROM ft_orders) dengan logika coba lagi untuk mengonfirmasi bahwa kueri analitik beroperasi. -
Jika menggunakan Region-local salinan, jalankan
ALTERpernyataan yang disiapkan pada cluster DB primer baru untuk memperbarui lokasi tabel asing:ALTER FOREIGN TABLE ft_orders OPTIONS (SET location 's3://dr-region-bucket/orders/', SET region 'us-west-2'); ALTER FOREIGN TABLE ft_transactions OPTIONS (SET location 'arn:aws:glue:us-west-2:123456789012:table/mydb/transactions');
catatan
ALTER FOREIGN TABLE ... OPTIONS (SET ...)adalah perubahan metadata katalog saja. Ini selesai segera tanpa pergerakan data. Dibutuhkan ACCESS EXCLUSIVE kunci singkat pada meja asing tunggal itu. Oleh karena itu, ini diblokir oleh kueri dalam penerbangan apa pun di tabel yang sama.
Kegagalan Basis Data Global
Wilayah asli mungkin terganggu atau tidak dapat dijangkau. Jika tabel asing menamai Wilayah yang mengalami gangguan, kueri terhadapnya mengalami latensi tinggi atau gagal dengan kesalahan batas waktu hingga Wilayah tersebut pulih atau Anda mengarahkan ulang tabel asing ke data di Wilayah yang sehat. Jika Anda melakukan pra-pementasan Region-local salinan, jalankan ALTER FOREIGN TABLE ... OPTIONS (SET region ...) pernyataan yang disiapkan untuk mengarahkan tabel asing ke salinan. Region-local
Kembali ke Wilayah Primer Asli
Ketika Region primer asli tersedia, Aurora secara otomatis menambahkannya kembali ke database global sebagai cluster DB sekunder. Setiap ALTER FOREIGN TABLE perubahan yang dibuat selama peralihan atau failover mereplikasi ke sana melalui replikasi global. Untuk mengembalikan Region primer asli, lakukan switchover. Setelah peralihan selesai, tentukan apakah akan mengembalikan lokasi tabel asing untuk menunjuk ke data di Wilayah primer yang dipulihkan.
Pesan galat pada Database Global
Setelah peralihan atau failover, kueri di Wilayah primer baru dapat gagal dengan asosiasi peran IAM, izin IAM, dan kesalahan jaringan yang sama yang memengaruhi Wilayah mana pun yang menjalankan cluster DB sekunder. Kesalahan ini dan resolusinya tercakup dalam peralihan dan failover Global Database di bawah. Pemantauan dan pemecahan masalah Prasyarat harus dipenuhi di setiap Wilayah sekunder, karena asosiasi peran IAM, kebijakan IAM, dan jaringan VPC tidak mereplikasi.
-
Tabel asing
locationdanregionmerupakan definisi tunggal yang direplikasi tanpa penggantian Per-wilayah. Kedua cluster tidak dapat menampung Wilayah yang berbeda untuk tabel yang sama. -
Titik Multi-Region Akses Amazon S3 dan ARN titik akses Amazon S3 tidak didukung sebagai lokasi tabel asing.
-
Titik akhir gateway VPC bersifat regional dan tidak dapat mencapai Amazon S3 Wilayah lain. Jalur jaringan lintas wilayah memerlukan jalan keluar atau NAT/internet Transit Gateway.
-
Setelah peralihan, memperbarui lokasi tabel asing ke Region cluster DB primer yang baru menyebabkan cluster DB primer sebelumnya membaca Cross-region sebagai gantinya.
-
Tabel asing DDL dan ekstensi mereplikasi hanya setelah sekunder terpasang dan sinkron. Instal
aurora_analyticsekstensi dan buat tabel asing di primer setelah sekunder terhubung sehingga mereka menyebar.