Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan pipeline OpenSearch Ingestion dengan Amazon DocumentDB
Anda dapat menggunakan plugin DocumentDB
Anda dapat memproses data dengan atau tanpa snapshot awal penuh. Snapshot lengkap menangkap seluruh koleksi Amazon DocumentDB dan mengunggahnya ke Amazon S3. Pipeline kemudian mengirimkan data ke satu atau lebih OpenSearch indeks. Setelah menyerap snapshot, pipeline menyinkronkan perubahan yang sedang berlangsung untuk menjaga konsistensi dan akhirnya mengejar pembaruan hampir real-time.
Jika Anda sudah memiliki snapshot lengkap dari sumber lain, atau hanya perlu memproses peristiwa baru, Anda dapat melakukan streaming tanpa snapshot. Dalam hal ini, pipeline membaca langsung dari aliran perubahan Amazon DocumentDB tanpa beban massal awal.
Jika Anda mengaktifkan streaming, Anda harus mengaktifkan aliran perubahan pada koleksi Amazon DocumentDB Anda. Namun, jika Anda hanya melakukan pemuatan penuh atau ekspor, Anda tidak memerlukan aliran perubahan.
Prasyarat
Sebelum Anda membuat pipeline OpenSearch Ingestion, lakukan langkah-langkah berikut:
-
Buat klaster Amazon DocumentDB dengan izin untuk membaca data dengan mengikuti langkah-langkah dalam Membuat klaster Amazon DocumentDB di Panduan Pengembang Amazon DocumentDB. Jika Anda menggunakan infrastruktur CDC, konfigurasikan klaster Amazon DocumentDB Anda untuk mempublikasikan aliran perubahan.
-
Aktifkan TLS di klaster Amazon DocumentDB Anda.
-
Siapkan CIDR VPC dari ruang alamat pribadi untuk digunakan dengan Ingestion. OpenSearch
-
Siapkan autentikasi di klaster Amazon AWS Secrets Manager DocumentDB Anda dengan. Aktifkan rotasi rahasia dengan mengikuti langkah-langkah dalam Memutar kata sandi secara otomatis untuk Amazon DocumentDB. Untuk informasi selengkapnya, lihat Akses database menggunakan Kontrol Akses Berbasis Peran dan Keamanan di Amazon DocumentDB.
-
Jika Anda menggunakan aliran perubahan untuk berlangganan perubahan data pada koleksi Amazon DocumentDB Anda, hindari kehilangan data dengan memperpanjang periode retensi hingga 7 hari menggunakan parameter.
change_stream_log_retention_duration
Peristiwa aliran perubahan disimpan selama 3 jam, secara default, setelah acara direkam, yang tidak cukup waktu untuk koleksi besar. Untuk mengubah periode retensi aliran perubahan, lihat Memodifikasi durasi retensi log aliran perubahan. -
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 OpenSearch Ingestion untuk menulis data dari klaster Amazon DocumentDB Anda ke domain atau koleksi Anda.
Contoh kebijakan akses domain berikut memungkinkan peran pipeline, yang Anda buat pada langkah berikutnya, untuk menulis data ke domain. Pastikan Anda memperbarui
resource
dengan ARN Anda sendiri.Untuk membuat peran IAM dengan izin yang benar untuk mengakses data tulis ke koleksi atau domain, lihat. Menyiapkan peran dan pengguna di Amazon OpenSearch Ingestion
Langkah 1: Konfigurasikan peran pipeline
Setelah Anda menyiapkan prasyarat pipeline Amazon DocumentDB, konfigurasikan peran pipeline yang ingin Anda gunakan dalam konfigurasi pipeline, dan tambahkan izin Amazon DocumentDB berikut dalam peran:
Anda harus memberikan EC2 izin Amazon di atas pada peran IAM yang Anda gunakan untuk membuat pipeline OpenSearch Ingestion karena pipeline menggunakan izin ini untuk membuat dan menghapus antarmuka jaringan di VPC Anda. Pipeline hanya dapat mengakses cluster Amazon DocumentDB melalui antarmuka jaringan ini.
Langkah 2: Buat pipa
Anda kemudian dapat mengonfigurasi pipeline OpenSearch Ingestion seperti berikut ini, yang menentukan Amazon DocumentDB sebagai sumbernya. Perhatikan bahwa untuk mengisi nama indeks, getMetadata
fungsi menggunakan
sebagai kunci metadata. Jika Anda ingin menggunakan nama indeks yang berbeda tanpa documentdb_collection
getMetadata
metode, Anda dapat menggunakan konfigurasiindex:
"
.my_index_name
"
version: "2" documentdb-pipeline: source: documentdb: acknowledgments: true host: "https://
docdb-cluster-id
.us-east-1
.docdb.amazonaws.com" port: 27017 authentication: username: ${aws_secrets:secret:username
} password: ${aws_secrets:secret:password
} aws: s3_bucket: "bucket-name
" s3_region: "bucket-region
" s3_prefix: "path
" #optional path for storing the temporary data collections: - collection: "dbname.collection
" export: true stream: true sink: - opensearch: hosts: ["https://search-mydomain.us-east-1.es.amazonaws.com
"] index: "${getMetadata(\"documentdb_collection
\")}" index_type: custom document_id: "${getMetadata(\"primary_key\")}" action: "${getMetadata(\"opensearch_action\")}" document_version: "${getMetadata(\"document_version\")}" document_version_type: "external" extension: aws: secrets: secret: secret_id: "my-docdb-secret
" region: "us-east-1
" refresh_interval: PT1H
Anda dapat menggunakan cetak biru Amazon DocumentDB yang telah dikonfigurasi sebelumnya untuk membuat pipeline ini. Untuk informasi selengkapnya, lihat Bekerja dengan cetak biru.
Jika Anda menggunakan file AWS Management Console untuk membuat pipeline, Anda juga harus melampirkan pipeline ke VPC agar dapat menggunakan Amazon DocumentDB sebagai sumber. Untuk melakukannya, temukan bagian Opsi jaringan sumber, pilih kotak centang Lampirkan ke VPC, dan pilih CIDR Anda dari salah satu opsi default yang disediakan. Anda dapat menggunakan CIDR apa pun dari ruang alamat pribadi seperti yang didefinisikan dalam Praktik Terkini Terbaik RFC 1918
Untuk menyediakan CIDR khusus, pilih Lainnya dari menu tarik-turun. Untuk menghindari tabrakan di alamat IP antara OpenSearch Ingestion dan Amazon DocumentDB, pastikan bahwa Amazon DocumentDB VPC CIDR berbeda dari CIDR untuk 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 klaster Amazon DocumentDB dan memperbarui dokumen terkait dalam indeks. OpenSearch
OpenSearch Ingestion mendukung end-to-end pengakuan untuk memastikan daya tahan data. Ketika pipeline membaca snapshot atau stream, ia secara dinamis membuat partisi untuk pemrosesan paralel. Pipeline menandai partisi sebagai lengkap ketika menerima pengakuan setelah menelan semua catatan dalam OpenSearch domain atau koleksi.
Jika Anda ingin memasukkan ke dalam koleksi pencarian OpenSearch Tanpa Server, Anda dapat membuat ID dokumen di pipeline. Jika Anda ingin memasukkan 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.
Pipeline OpenSearch Ingestion juga memetakan tindakan peristiwa yang masuk ke dalam tindakan pengindeksan massal yang sesuai untuk membantu menyerap dokumen. Ini membuat data tetap konsisten, sehingga setiap perubahan data di Amazon DocumentDB direkonsiliasi dengan perubahan dokumen yang sesuai. OpenSearch
Pemetaan tipe data
OpenSearch Layanan secara dinamis memetakan tipe data di setiap dokumen yang masuk ke tipe data yang sesuai di Amazon DocumentDB. Tabel berikut menunjukkan bagaimana OpenSearch Layanan secara otomatis memetakan berbagai tipe data.
Jenis data | OpenSearch | Amazon DocumentDB |
---|---|---|
Bilangan Bulat |
OpenSearch secara otomatis memetakan nilai bilangan bulat Amazon DocumentDB ke bilangan bulat. OpenSearch OpenSearch secara dinamis memetakan bidang berdasarkan dokumen terkirim pertama. Jika Anda memiliki campuran tipe data untuk atribut yang sama di Amazon DocumentDB, pemetaan otomatis mungkin gagal. Misalnya, jika dokumen pertama Anda memiliki atribut yang panjang, dan dokumen selanjutnya memiliki atribut yang sama dengan bilangan bulat, OpenSearch gagal untuk menelan dokumen kedua. Dalam kasus ini, Anda harus menyediakan template pemetaan eksplisit yang memilih jenis nomor paling fleksibel, seperti berikut ini:
|
|
Panjang |
OpenSearch secara otomatis memetakan nilai panjang Amazon DocumentDB ke long. OpenSearch OpenSearch secara dinamis memetakan bidang berdasarkan dokumen terkirim pertama. Jika Anda memiliki campuran tipe data untuk atribut yang sama di Amazon DocumentDB, pemetaan otomatis mungkin gagal. Misalnya, jika dokumen pertama Anda memiliki atribut yang panjang, dan dokumen selanjutnya memiliki atribut yang sama dengan bilangan bulat, OpenSearch gagal untuk menelan dokumen kedua. Dalam kasus ini, Anda harus menyediakan template pemetaan eksplisit yang memilih jenis nomor paling fleksibel, seperti berikut ini:
|
|
String |
OpenSearch secara otomatis memetakan nilai string sebagai teks. Dalam beberapa situasi, seperti nilai yang disebutkan, Anda dapat memetakan ke jenis kata kunci. Contoh berikut menunjukkan cara memetakan atribut Amazon DocumentDB
|
|
Ganda |
OpenSearch secara otomatis memetakan Amazon DocumentDB nilai ganda menjadi dua kali lipat. OpenSearch OpenSearch secara dinamis memetakan bidang berdasarkan dokumen terkirim pertama. Jika Anda memiliki campuran tipe data untuk atribut yang sama di Amazon DocumentDB, pemetaan otomatis mungkin gagal. Misalnya, jika dokumen pertama Anda memiliki atribut yang panjang, dan dokumen selanjutnya memiliki atribut yang sama dengan bilangan bulat, OpenSearch gagal untuk menelan dokumen kedua. Dalam kasus ini, Anda harus menyediakan template pemetaan eksplisit yang memilih jenis nomor paling fleksibel, seperti berikut ini:
|
Amazon DocumentDB mendukung ganda. |
Tanggal |
Secara default, tanggal memetakan ke bilangan bulat di OpenSearch. Anda dapat menentukan template pemetaan khusus untuk memetakan tanggal ke OpenSearch tanggal.
|
Amazon DocumentDB mendukung tanggal. |
Stempel Waktu |
Secara default, stempel waktu memetakan ke bilangan bulat di. OpenSearch Anda dapat menentukan template pemetaan khusus untuk memetakan tanggal ke OpenSearch tanggal.
|
Amazon DocumentDB mendukung stempel waktu. |
Boolean |
OpenSearch memetakan jenis Boolean Amazon DocumentDB menjadi tipe Boolean. OpenSearch |
Amazon DocumentDB mendukung atribut tipe Boolean. |
Decimal |
OpenSearch memetakan atribut peta Amazon DocumentDB ke bidang bersarang. Pemetaan yang sama berlaku dalam bidang bersarang. Contoh berikut memetakan string dalam bidang bersarang ke jenis kata kunci di OpenSearch:
Dengan pemetaan khusus ini, Anda dapat menanyakan dan menggabungkan bidang dengan presisi tingkat ganda. Nilai asli mempertahankan presisi penuh dalam |
Amazon DocumentDB mendukung desimal. |
Ekspresi reguler | Tipe regex membuat bidang bersarang. Ini termasuk dan . |
|
Data Biner |
OpenSearch secara otomatis memetakan data biner Amazon DocumentDB ke teks. OpenSearch Anda dapat memberikan pemetaan untuk menulis ini sebagai bidang OpenSearch biner. Contoh berikut menunjukkan cara memetakan bidang Amazon DocumentDB
|
Amazon DocumentDB mendukung bidang data biner. |
ObjectId | Bidang dengan jenis peta ObjectId ke bidang OpenSearch teks. Nilai akan menjadi representasi string dari ObjectId. | Amazon DocumentDB mendukung ObjectIds. |
Null |
OpenSearch dapat menelan dokumen dengan jenis null Amazon DocumentDB. Ini menyimpan nilai sebagai nilai nol dalam dokumen. Tidak ada pemetaan untuk jenis ini, dan bidang ini tidak diindeks atau dicari. Jika nama atribut yang sama digunakan untuk tipe null dan kemudian berubah ke tipe yang berbeda seperti string, OpenSearch membuat pemetaan dinamis untuk nilai non-null pertama. Nilai selanjutnya masih bisa berupa nilai null Amazon DocumentDB. |
Amazon DocumentDB mendukung bidang tipe null. |
Tidak terdefinisi |
OpenSearch dapat menelan dokumen dengan jenis Amazon DocumentDB yang tidak ditentukan. Ini menyimpan nilai sebagai nilai nol dalam dokumen. Tidak ada pemetaan untuk jenis ini, dan bidang ini tidak diindeks atau dicari. Jika nama bidang yang sama digunakan untuk tipe yang tidak ditentukan dan kemudian berubah menjadi tipe yang berbeda seperti string, OpenSearch membuat pemetaan dinamis untuk nilai non-undefined pertama. Nilai selanjutnya masih dapat berupa nilai Amazon DocumentDB yang tidak ditentukan. |
Amazon DocumentDB mendukung bidang tipe yang tidak ditentukan. |
MinKey |
OpenSearch dapat menelan dokumen dengan jenis Amazon DocumentDB MinKey. Ini menyimpan nilai sebagai nilai nol dalam dokumen. Tidak ada pemetaan untuk jenis ini, dan bidang ini tidak diindeks atau dicari. Jika nama bidang yang sama digunakan untuk tipe MinKey dan kemudian berubah menjadi tipe yang berbeda seperti string, OpenSearch membuat pemetaan dinamis untuk nilai non-MinKey pertama. Nilai selanjutnya masih bisa berupa nilai MinKey Amazon DocumentDB. |
Amazon DocumentDB mendukung bidang tipe MinKey. |
MaxKey |
OpenSearch dapat menelan dokumen dengan jenis Amazon DocumentDB MaxKey. Ini menyimpan nilai sebagai nilai nol dalam dokumen. Tidak ada pemetaan untuk jenis ini, dan bidang ini tidak diindeks atau dicari. Jika nama bidang yang sama digunakan untuk tipe maxKey dan kemudian berubah ke jenis yang berbeda seperti string, OpenSearch membuat pemetaan dinamis untuk nilai non-MaxKey pertama. Nilai selanjutnya masih bisa berupa nilai Amazon DocumentDB MaxKey. |
Amazon DocumentDB mendukung bidang tipe MaxKey. |
Kami menyarankan Anda mengonfigurasi antrian 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 untuk menentukan aturan pemetaan eksplisit. Atau, Anda dapat membuat templat pemetaan langsung di domain atau koleksi penelusuran sebelum memulai pipeline.
Batasan
Pertimbangkan batasan berikut saat menyiapkan pipeline OpenSearch Ingestion untuk Amazon DocumentDB:
-
Integrasi OpenSearch Ingestion dengan Amazon DocumentDB saat ini tidak mendukung konsumsi lintas wilayah. Cluster Amazon DocumentDB OpenSearch dan pipeline Ingestion Anda harus sama. Wilayah AWS
-
Integrasi OpenSearch Ingestion dengan Amazon DocumentDB saat ini tidak mendukung konsumsi lintas akun. Cluster Amazon DocumentDB OpenSearch dan pipeline Ingestion Anda harus sama. Akun AWS
-
Pipeline OpenSearch Ingestion hanya mendukung satu cluster Amazon DocumentDB sebagai sumbernya.
-
Integrasi OpenSearch Ingestion dengan Amazon DocumentDB secara khusus mendukung cluster berbasis instans Amazon DocumentDB. Itu tidak mendukung cluster elastis Amazon DocumentDB.
-
Integrasi OpenSearch Ingestion hanya mendukung AWS Secrets Manager sebagai mekanisme otentikasi untuk klaster Amazon DocumentDB Anda.
-
Anda tidak dapat memperbarui konfigurasi pipeline yang ada untuk menyerap data dari database atau koleksi yang berbeda. Sebagai gantinya, Anda harus membuat pipeline baru.
CloudWatch Alarm yang direkomendasikan
Untuk performa terbaik, sebaiknya gunakan CloudWatch alarm berikut saat membuat pipeline OpenSearch Ingestion untuk mengakses kluster Amazon DocumentDB sebagai sumber.
CloudWatch Alarm | Deskripsi |
---|---|
<pipeline-name> .doucmentdb.credentialsChanged |
Metrik ini menunjukkan seberapa sering AWS rahasia diputar. |
<pipeline-name> .doucmentdb. executorRefreshErrors |
Metrik ini menunjukkan kegagalan untuk menyegarkan AWS rahasia. |
<pipeline-name> .doucmentdb. exportRecordsTotal |
Metrik ini menunjukkan jumlah catatan yang diekspor dari Amazon DocumentDB. |
<pipeline-name> .doucmentdb. exportRecordsProcessed |
Metrik ini menunjukkan jumlah catatan yang diproses oleh pipa OpenSearch Ingestion. |
<pipeline-name> .doucmentdb. exportRecordProcessingKesalahan |
Metrik ini menunjukkan jumlah kesalahan pemrosesan dalam pipeline OpenSearch Ingestion saat membaca data dari klaster Amazon DocumentDB. |
<pipeline-name> .doucmentdb. exportRecordsSuccessJumlah |
Metrik ini menunjukkan jumlah total catatan ekspor yang berhasil diproses. |
<pipeline-name> .doucmentdb. exportRecordsFailedJumlah |
Metrik ini menunjukkan jumlah total catatan ekspor yang gagal diproses. |
<pipeline-name> .doucmentdb.bytesDiterima |
Metrik ini menunjukkan jumlah total byte yang diterima oleh pipeline OpenSearch Ingestion. |
<pipeline-name> .doucmentdb.bytesdiproses |
Metrik ini menunjukkan jumlah total byte yang diproses oleh pipeline OpenSearch Ingestion. |
<pipeline-name> .doucmentdb. exportPartitionQueryJumlah |
Metrik ini menunjukkan total partisi ekspor. |
<pipeline-name> .doucmentdb. streamRecordsSuccessJumlah |
Metrik ini menunjukkan jumlah catatan yang berhasil diproses dari aliran. |
<pipeline-name> .doucmentdb. streamRecordsFailedJumlah |
Metrik ini menunjukkan jumlah total rekaman yang gagal diproses dari aliran. |