View a markdown version of this page

Menggunakan tabel asing dengan Aurora Global Database - Amazon Aurora

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.

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_analytics ekstensi

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

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

  2. Buat peran IAM yang dipercaya oleh rds.amazonaws.com dan lampirkan kebijakan.

  3. 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
  4. 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.

Titik akhir VPC yang diperlukan untuk setiap Wilayah
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

  1. Izinkan klien untuk menyambung kembali ke titik akhir penulis dari cluster DB primer yang baru.

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

  3. Jika menggunakan Region-local salinan, jalankan ALTER pernyataan 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 location dan region merupakan 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_analytics ekstensi dan buat tabel asing di primer setelah sekunder terhubung sehingga mereka menyebar.