Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
RDS for PostgreSQL
Selesaikan langkah-langkah berikut untuk mengonfigurasi pipeline Ing OpenSearch estion dengan Amazon RDS untuk PostgreSQL.
Topik
RDS untuk prasyarat PostgreSQL
Sebelum Anda membuat pipeline OpenSearch Ingestion, lakukan langkah-langkah berikut:
-
Buat grup parameter DB kustom di Amazon RDS untuk mengonfigurasi replikasi logis.
rds.logical_replication=1Untuk informasi selengkapnya, lihat Mel akukan replikasi logis untuk Amazon RDS untuk Post greSQL.
-
Pilih atau buat instance RDS untuk PostgreSQL DB dan kaitkan grup parameter yang dibuat pada langkah 1 dengan instance DB.
-
Siapkan otentikasi nama pengguna dan kata sandi pada instans Amazon RDS Anda menggunakan manajemen kata sandi dengan Amazon RDS dan. AWS Secrets Manager Anda juga dapat membuat username/password kombinasi dengan membuat rahasia Manajer Rahasia.
-
Jika Anda menggunakan fitur snapshot awal lengkap, buat peran AWS KMS key dan peran IAM untuk mengekspor data dari Amazon RDS ke Amazon S3.
Peran IAM harus memiliki kebijakan izin berikut:
Peran juga harus memiliki hubungan kepercayaan berikut:
-
Pilih atau buat domain OpenSearch Layanan atau koleksi OpenSearch Tanpa Server. Untuk informasi selengkapnya, lihat Membuat domain OpenSearch Layanan dan Membuat koleksi.
-
Lampirkan kebijakan berbasis sumber daya ke domain Anda atau kebijakan akses data ke koleksi Anda. Kebijakan akses ini memungkinkan Ing OpenSearch estion menulis data dari instans Amazon RDS DB Anda ke domain atau koleksi Anda.
Langkah 1: Konfigurasikan peran pipeline
Setelah Anda menyiapkan prasyarat pipeline Amazon RDS, konfigurasikan peran pipeline untuk digunakan dalam konfigurasi pipeline Anda. Tambahkan juga izin berikut untuk sumber Amazon RDS ke peran:
Langkah 2: Buat pipa
Konfigurasikan pipeline OpenSearch Ingestion seperti berikut, yang menentukan instance RDS untuk PostgreSQL sebagai sumbernya.
version: "2" rds-postgres-pipeline: source: rds: db_identifier: "instance-id" engine: postgresql database: "database-name" tables: include: - "schema1.table1" - "schema2.table2" s3_bucket: "bucket-name" s3_region: "bucket-region" s3_prefix: "prefix-name" export: kms_key_id: "kms-key-id" iam_role_arn: "export-role-arn" stream: true aws: sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" region: "us-east-1" authentication: username: ${{aws_secrets:secret:username}} password: ${{aws_secrets:secret:password}} sink: - opensearch: hosts: ["https://search-mydomain.us-east-1.es.amazonaws.com"] index: "${getMetadata(\"table_name\")}" index_type: custom document_id: "${getMetadata(\"primary_key\")}" action: "${getMetadata(\"opensearch_action\")}" document_version: "${getMetadata(\"document_version\")}" document_version_type: "external" aws: sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" region: "us-east-1" extension: aws: secrets: secret: secret_id: "rds-secret-id" region: "us-east-1" sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" refresh_interval: PT1H
catatan
Anda dapat menggunakan cetak biru Amazon RDS yang telah dikonfigurasi sebelumnya untuk membuat pipeline ini. Untuk informasi selengkapnya, lihat Bekerja dengan cetak biru.
Untuk menggunakan RDS untuk PostgreSQL sebagai sumber, Anda perlu mengkonfigurasi akses VPC untuk pipeline. VPC yang Anda pilih harus sama dengan VPC yang digunakan sumber Amazon RDS Anda. Kemudian pilih satu atau lebih subnet dan satu atau lebih grup keamanan VPC. Perhatikan bahwa pipeline memerlukan akses jaringan ke database RDS for PostgreSQL, jadi Anda juga harus memverifikasi bahwa instance Amazon RDS Anda dikonfigurasi dengan grup keamanan VPC yang memungkinkan lalu lintas masuk dari grup keamanan VPC pipeline ke port database. Untuk informasi selengkapnya, lihat Mengontrol akses dengan grup keamanan.
Jika Anda menggunakan Konsol Manajemen AWS untuk membuat pipeline Anda, Anda juga harus melampirkan pipeline Anda ke VPC Anda untuk menggunakan RDS untuk PostgreSQL sebagai sumber. Untuk melakukan ini, cari bagian konfigurasi jaringan, pilih Lamp irkan ke VPC, dan pilih CIDR Anda dari salah satu opsi default yang disediakan, atau pilih sendiri. Blok CIDR harus menggunakan panjang awalan /24. Anda dapat menggunakan /24 CIDR dari ruang alamat pribadi seperti yang didefinisikan dalam Praktik Saat Ini Terbaik RFC 1918.
Untuk menyediakan CIDR khusus, pilih Lainnya dari menu dropdown. Untuk menghindari tabrakan alamat IP antara Inges OpenSearch tion dan Amazon RDS, pastikan bahwa Amazon RDS VPC CIDR berbeda dari CIDR for Ingestion. OpenSearch
Untuk informasi selengkapnya, lihat Mengonfigurasi akses VPC untuk pipeline.
Konsistensi data
Pipeline memastikan konsistensi data dengan terus melakukan polling atau menerima perubahan dari instance Amazon RDS dan memperbarui dokumen terkait dalam indeks. OpenSearch
OpenSearch Penyerapan mendukung pengakuan ujung ke ujung untuk memastikan daya tahan data. Ketika pipeline membaca snapshot atau aliran, itu secara dinamis membuat partisi untuk pemrosesan paralel. Pipeline menandai partisi sebagai lengkap ketika menerima pengakuan setelah menelan semua catatan di OpenSearch domain atau koleksi. Jika Anda ingin memasukkan ke dalam koleksi pencarian OpenSearch Tanpa Server, Anda dapat membuat ID dokumen dalam pipeline. Jika Anda ingin memasukkan ke dalam koleksi deret waktu OpenSearch Tanpa Server, perhatikan bahwa pipeline tidak menghasilkan ID dokumen, jadi Anda harus menghilangkan konfigurasi sink document_id: "${getMetadata(\"primary_key\")}" pipeline Anda.
Pipeline Ingestion juga memetakan tindakan peristiwa yang masuk ke dalam tindakan pengindeksan massal yang sesuai untuk membantu men OpenSearch elan dokumen. Ini membuat data tetap konsisten, sehingga setiap perubahan data di Amazon RDS direkonsiliasi dengan perubahan dokumen yang sesuai di. OpenSearch
Jenis data pemetaan
OpenSearch Pipeline penyerapan memetakan tipe data PostgreSQL ke representasi yang sesuai untuk domain OpenSearch Layanan atau koleksi untuk dikonsumsi. Jika tidak ada template pemetaan yang ditentukan di OpenSearch, OpenSearch secara otomatis menentukan jenis bidang dengan pemetaan dinamis
Tabel di bawah ini mencantumkan RDS untuk tipe data PostgreSQL dan jenis bidang yang sesuai OpenSearch . Kolom Jenis OpenSearch Bidang Default menunjukkan jenis bidang yang sesuai OpenSearch jika tidak ada pemetaan eksplisit yang ditentukan. Dalam hal ini, OpenSearch secara otomatis menentukan jenis bidang dengan pemetaan dinamis. Kol om Jenis OpenSearch Bidang yang Direkomendasikan adalah jenis bidang yang direkomendasikan untuk ditentukan secara eksplisit dalam template pemetaan. Jenis bidang ini lebih selaras dengan tipe data di RDS untuk PostgreSQL dan biasanya dapat mengaktifkan fitur pencarian yang lebih baik yang tersedia di. OpenSearch
| RDS untuk Tipe Data PostgreSQL | Jenis Bid OpenSearch ang Default | Jenis Bidang OpenSearch yang Direkomendasikan |
|---|---|---|
| smallint | long | pendek |
| integer | long | integer |
| bigint | long | long |
| desimal | text | ganda atau kata kunci |
| numerik [(p, s)] | text | ganda atau kata kunci |
| real | float | float |
| double precision | float | double |
| smallserial | long | pendek |
| serial | long | integer |
| bigserial | long | long |
| money | object | object |
| character varying(n) | text | text |
| (n) | text | text |
| character(n) | text | text |
| karakter (n) | text | text |
| Bpchar (n) | text | text |
| Bpchar | text | text |
| text | text | text |
| enum | text | text |
| bytea | text | biner |
| stempel waktu [(p)] [tanpa zona waktu] | panjang (dalam zaman milidetik) | date |
| stempel waktu [(p)] dengan zona waktu | panjang (dalam zaman milidetik) | date |
| date | panjang (dalam zaman milidetik) | date |
| time [ (p) ] [ without time zone ] | panjang (dalam zaman milidetik) | date |
| waktu [(p)] dengan zona waktu | panjang (dalam zaman milidetik) | date |
| interval [bidang] [(p)] | teks (format ISO8601) | text |
| boolean | boolean | boolean |
| titik | teks (dalam format WKT) | geo_shape |
| lini | teks (dalam format WKT) | geo_shape |
| lseg | teks (dalam format WKT) | geo_shape |
| kotak | teks (dalam format WKT) | geo_shape |
| path | teks (dalam format WKT) | geo_shape |
| poligon | teks (dalam format WKT) | geo_shape |
| lingkaran | object | object |
| Cidr | text | text |
| Intet | text | text |
| macaddar | text | text |
| macaddr8 | text | text |
| bit(n) | long | byte, pendek, integer, atau panjang (tergantung pada jumlah bit) |
| bit varying(n) | long | byte, pendek, integer, atau panjang (tergantung pada jumlah bit) |
| json | object | object |
| jsonb | object | object |
| jsonpath | text | text |
Kami menyarankan Anda mengonfigurasi antrean huruf mati (DLQ) di pipeline Ingestion Anda OpenSearch . Jika Anda telah mengonfigurasi antrian, OpenSearch Layanan mengirimkan semua dokumen gagal yang tidak dapat dicerna karena kegagalan pemetaan dinamis ke antrian.
Jika pemetaan otomatis gagal, Anda dapat menggunakan template_type dan template_content dalam konfigurasi pipeline Anda untuk menentukan aturan pemetaan eksplisit. Atau, Anda dapat membuat template pemetaan langsung di domain atau koleksi pencarian Anda sebelum memulai pipeline.
Batasan
Pertimbangkan batasan berikut saat Anda menyiapkan pipeline Ingestion OpenSearch untuk RDS untuk PostgreSQL:
-
Integrasi hanya mendukung satu database PostgreSQL per pipeline.
-
Integrasi saat ini tidak mendukung penyerapan data lintas wilayah; instans dan OpenSearch domain Amazon RDS Anda harus berada di tempat yang sama. Wilayah AWS
-
Integrasi saat ini tidak mendukung penyerapan data lintas akun; instans Amazon RDS dan pipeline Ingestion OpenSearch Anda harus berada dalam kondisi yang sama. Akun AWS
-
Pastikan instans Amazon RDS mengaktifkan otentikasi menggunakan AWS Secrets Manager, yang merupakan satu-satunya mekanisme otentikasi yang didukung.
-
Konfigurasi pipeline yang ada tidak dapat diperbarui untuk menyerap data dari database yang berbeda dari tabel and/or yang berbeda. Untuk memperbarui nama and/or tabel database pipeline, Anda harus menghentikan pipeline dan memulai ulang dengan konfigurasi yang diperbarui, atau membuat pipeline baru.
-
Pernyataan Data Definition Language (DDL) umumnya tidak didukung. Konsistensi data tidak akan dipertahankan jika:
-
Kunci utama diubah (add/delete/ganti nama).
-
Tabel adalah dropped/truncated.
-
Nama kolom atau tipe data diubah.
-
-
Jika tabel PostgreSQL untuk disinkronkan tidak memiliki kunci utama yang ditentukan, konsistensi data tidak dijamin. Anda perlu menentukan kustom
document_idopsi dalam OpenSearch dan konfigurasi sink dengan benar agar dapat disinkron updates/deletes kan OpenSearch. -
Cluster RDS Multi-AZ DB tidak didukung.
-
Versi yang didukung: PostgreSQL 16 dan lebih tinggi.
CloudWatch Alarm yang Direkomendasikan
CloudWatch Metrik berikut direkomendasikan untuk memantau kinerja pipeline konsumsi Anda. Metrik ini dapat membantu Anda mengidentifikasi jumlah data yang diproses dari ekspor, jumlah peristiwa yang diproses dari aliran, kesalahan dalam pemrosesan ekspor dan peristiwa aliran, dan jumlah dokumen yang ditulis ke tujuan. Anda dapat mengatur CloudWatch alarm untuk melakukan tindakan ketika salah satu metrik ini melebihi nilai yang ditentukan untuk jangka waktu tertentu.
| Metrik | Deskripsi |
|---|---|
pipeline-name.rds.credentialsDialSikat |
Metrik ini menunjukkan seberapa sering AWS rahasia diputar. |
pipeline-name.rds.eksekutor RefreshErrors |
Metrik ini menunjukkan kegagalan untuk menyegarkan AWS rahasia. |
pipeline-name.rds.ekspor RecordsTotal |
Metrik ini menunjukkan jumlah catatan yang diekspor dari Amazon RDS untuk PostgreSQL. |
pipeline-name.rds.ekspor RecordsProcessed |
Metrik ini menunjukkan jumlah catatan yang diproses oleh pipeline OpenSearch Ingestion. |
pipeline-name.rds.ekspor RecordProcessingErrors |
Metrik ini menunjukkan jumlah kesalahan pemrosesan dalam pipeline Ing OpenSearch estion saat membaca data dari instans Amazon RDS for PostgreSQL. |
pipeline-name.rds.ekspor RecordsSuccessTotal |
Metrik ini menunjukkan jumlah total catatan ekspor yang berhasil diproses. |
pipeline-name.rds.ekspor RecordsFailedTotal |
Metrik ini menunjukkan jumlah total catatan ekspor yang gagal diproses. |
pipeline-name.rds.bytesDiterima |
Metrik ini menunjukkan jumlah total byte yang diterima oleh pipeline Ing OpenSearch estion. |
pipeline-name.rds.bytesDiproses |
Metrik ini menunjukkan jumlah total byte yang diproses oleh pipeline Ing OpenSearch estion. |
pipeline-name.rds.stream RecordsSuccessTotal |
Metrik ini menunjukkan jumlah rekaman yang berhasil diproses dari aliran. |
pipeline-name.rds.stream RecordsFailedTotal |
Metrik ini menunjukkan jumlah total rekaman yang gagal diproses dari aliran. |