View a markdown version of this page

Zero-ETL Integrasi dengan Amazon OpenSearch Service - Amazon DocumentDB

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

Zero-ETL Integrasi dengan Amazon OpenSearch Service

OpenSearch Layanan Amazon sebagai tujuan

OpenSearch Integrasi layanan dengan Amazon DocumentDB memungkinkan Anda melakukan streaming beban penuh dan mengubah peristiwa data ke OpenSearch domain. Infrastruktur penyerapan dihosting sebagai saluran OpenSearch penyerapan dan menyediakan mekanisme latensi rendah skala tinggi untuk mengalirkan data secara terus-menerus dari koleksi Amazon DocumentDB.

Selama beban penuh, integrasi Zero-ETL pertama-tama mengekstrak data beban penuh historis untuk OpenSearch menggunakan saluran penyerapan. Setelah data beban penuh dicerna, saluran penyerapan OpenSearch akan mulai membaca data dari aliran perubahan Amazon DocumentDB dan akhirnya mengejar ketinggalan untuk mempertahankan konsistensi data hampir real time antara Amazon DocumentDB dan. OpenSearch OpenSearch menyimpan dokumen dalam indeks. Data masuk dari koleksi Amazon DocumentDB dapat dikirim ke salah satu indeks atau dapat dipartisi ke dalam indeks yang berbeda. Saluran saluran penyerapan akan menyinkronkan semua peristiwa pembuatan, pembaruan, dan penghapusan dalam koleksi Amazon DocumentDB sebagai pembuatan, pembaruan, dan penghapusan OpenSearch dokumen yang sesuai untuk menjaga kedua sistem data tetap sinkron. Saluran saluran penyerapan dapat dikonfigurasi untuk membaca data dari satu koleksi dan menulis ke satu indeks atau membaca data dari satu koleksi dan merutekan secara kondisional ke beberapa indeks.

Saluran saluran penyerapan dapat dikonfigurasi untuk mengalirkan data dari Amazon DocumentDB ke Amazon OpenSearch Service menggunakan:

  • Hanya beban penuh

  • Streaming peristiwa aliran perubahan dari Amazon DocumentDB tanpa beban penuh

  • Beban penuh diikuti dengan perubahan aliran dari Amazon DocumentDB

Untuk mengatur saluran konsumsi Anda, lakukan langkah-langkah berikut:

Langkah 1: Buat domain OpenSearch Layanan Amazon atau koleksi OpenSearch tanpa server

Diperlukan koleksi OpenSearch Layanan Amazon dengan izin yang sesuai untuk membaca data. Lihat Mem ulai dengan Amazon OpenSearch Service atau Mem ulai dengan Amazon OpenSearch Serverless di Panduan Pengembang OpenSearch Layanan Amazon untuk membuat koleksi. Lihat Amazon Ing OpenSearch estion di Panduan Pengembang OpenSearch Layanan Amazon untuk membuat peran AIM dengan izin yang benar untuk mengakses data tulis ke koleksi atau domain.

Langkah 2: Aktifkan aliran perubahan di cluster Amazon DocumentDB

Pastikan aliran perubahan diaktifkan pada koleksi yang diperlukan di cluster Amazon DocumentDB. Lihat Menggunakan aliran perubahan dengan Amazon DocumentDB untuk informasi lebih lanjut.

Langkah 3: Siapkan peran pipeline dengan izin untuk menulis ke bucket Amazon S3 dan domain tujuan atau koleksi

Setelah koleksi Amazon DocumentDB dibuat dan aliran perubahan diaktifkan, atur peran pipeline yang ingin Anda gunakan dalam konfigurasi pipeline, dan tambahkan izin berikut dalam peran tersebut:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "allowReadAndWriteToS3ForExport", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::my-bucket/export/*" ] } ] }

Agar OpenSearch pipeline dapat menulis data ke OpenSearch domain, domain harus memiliki kebijakan akses tingkat domain yang memungkinkan peran pipeline sts_role_ arn untuk mengaksesnya. Contoh kebijakan akses domain berikut memungkinkan peran pipeline bernamapipeline-role, yang Anda buat pada langkah sebelumnya, untuk menulis data ke domain bernamaingestion-domain:

{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{your-account-id}:role/{pipeline-role}" }, "Action": ["es:DescribeDomain", "es:ESHttp*"], "Resource": "arn:aws:es:{region}:{your-account-id}:domain/{domain-name}/*" } ] }

Langkah 4: Tambahkan izin yang diperlukan pada peran pipeline untuk membuat X-ENI

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DetachNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": [ "arn:aws:ec2:*:420497401461:network-interface/*", "arn:aws:ec2:*:420497401461:subnet/*", "arn:aws:ec2:*:420497401461:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:Describe*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:RequestTag/OSISManaged": "true" } } } ] }

Langkah 5: Buat pipa

Konfigurasikan pipeline OpenSearch penyerapan yang menentukan Amazon DocumentDB sebagai sumbernya. Konfigurasi saluran sampel ini mengasumsikan penggunaan mekanisme pengambilan aliran perubahan. Lihat Menggunakan pipeline Inges OpenSearch tion dengan Amazon DocumentDB di Panduan Pengembang OpenSearch Layanan Amazon untuk informasi selengkapnya.

Batasan

Batasan berikut berlaku untuk OpenSearch integrasi Amazon DocumentDB:

  • Hanya satu koleksi Amazon DocumentDB sebagai sumber per pipeline yang didukung.

  • Cross-region konsumsi data tidak didukung. Cluster dan OpenSearch domain Amazon DocumentDB Anda harus sama Wilayah AWS.

  • Cross-account konsumsi data tidak didukung. Cluster dan OpenSearch saluran penyerapan Amazon DocumentDB Anda harus berada di AWS akun yang sama.

  • Cluster elastis Amazon DocumentDB tidak didukung. Hanya cluster berbasis instance Amazon DocumentDB yang didukung.

  • Pastikan bahwa cluster Amazon DocumentDB mengaktifkan otentikasi menggunakan AWS rahasia. AWS rahasia adalah satu-satunya mekanisme otentikasi yang didukung.

  • Konfigurasi pipeline yang ada tidak dapat diperbarui untuk menyerap data dari database yang berbeda dari koleksi and/or yang berbeda. Untuk memperbarui nama and/or koleksi database dari pipeline, Anda harus membuat pipeline baru.