Tabel dan koleksi pengaturan aturan dan operasi - AWS Layanan Migrasi Database

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

Tabel dan koleksi pengaturan aturan dan operasi

Gunakan pengaturan tabel untuk menentukan pengaturan apa pun yang ingin Anda terapkan ke tabel atau tampilan yang dipilih untuk operasi tertentu. Aturan pengaturan tabel bersifat opsional, tergantung pada titik akhir dan persyaratan migrasi Anda.

Alih-alih menggunakan tabel dan tampilan, database MongoDB dan Amazon DocumentDB menyimpan catatan data sebagai dokumen yang dikumpulkan bersama dalam koleksi. Database tunggal untuk setiap titik akhir MongoDB atau Amazon DocumentDB adalah kumpulan koleksi tertentu yang diidentifikasi dengan nama database.

Saat bermigrasi dari sumber MongoDB atau Amazon DocumentDB, Anda bekerja dengan pengaturan beban paralel sedikit berbeda. Dalam hal ini, pertimbangkan jenis autosegmentasi atau segmentasi rentang pengaturan beban paralel untuk koleksi yang dipilih daripada tabel dan tampilan.

Untuk aturan pemetaan tabel yang menggunakan jenis aturan tabel-pengaturan, Anda dapat menerapkan parameter berikut.

Parameter Kemungkinan nilai Deskripsi
rule-type table-settings Nilai yang menerapkan aturan ke tabel, tampilan, atau koleksi yang ditentukan oleh aturan pemilihan.
rule-id Nilai numerik. Nilai numerik yang unik untuk mengidentifikasi aturan.
rule-name Nilai alfanumerik. Nama unik untuk mengidentifikasi aturan.
object-locator Objek dengan parameter berikut:
  • schema-name— Nama skema. Untuk titik akhir MongoDB dan Amazon DocumentDB, ini adalah nama database yang menyimpan satu set koleksi.

  • table-name— Nama tabel, tampilan, atau koleksi.

Nama skema dan tabel atau tampilan tertentu atau nama database dan koleksi tertentu (tidak ada wildcard).

parallel-load Objek dengan parameter berikut:
  • type- Menentukan apakah pemuatan paralel dihidupkan.

    Jika ya, parameter ini juga menentukan mekanisme untuk mengidentifikasi tabel atau tampilan partisi, subpartisi, atau segmen lain untuk memuat secara paralel. Partisi adalah segmen yang sudah didefinisikan dan diidentifikasi dengan nama dalam tabel sumber atau tampilan.

    Untuk titik akhir MongoDB dan Amazon DocumentDB, partisi adalah segmen. AWS DMS dapat menghitung ini secara otomatis diberikan parameter autosegmentasi terkait. Atau Anda dapat menentukan ini secara manual menggunakan parameter segmentasi rentang.

    Untuk Oracle endpoint saja, subpartisi adalah tingkat tambahan segmen yang sudah didefinisikan dan diidentifikasi oleh nama dalam tabel sumber atau tampilan. Anda dapat mengidentifikasi segmen lain ditable-settingsaturan dengan menentukan batas-batas dalam kisaran nilai untuk satu atau lebih tabel atau tampilan kolom.

  • partitionsSaattypeadalahpartitions-list, nilai ini menentukan semua partisi untuk memuat secara paralel.

  • subpartitions— Untuk Endpoint Oracle saja, ketikatypeadalahpartitions-listnilai ini menentukan semua subpartisi untuk memuat secara paralel.

  • columnsSaattypeadalahranges, nilai ini menentukan nama-nama kolom yang digunakan untuk mengidentifikasi segmen berbasis rentang untuk memuat secara paralel.

  • boundariesSaattypeadalahranges, nilai ini menentukan nilai-nilaicolumnsdigunakan untuk mengidentifikasi segmen berbasis rentang untuk dimuat secara paralel.

Nilai yang menentukan beban paralel (multithreaded) operasi di atas meja atau tampilan diidentifikasi olehobject-locatorPilihan. Dalam kasus ini, Anda dapat memuat secara paralel dengan cara berikut:

  • Dengan segmen yang ditentukan oleh semua partisi atau subpartisi yang tersedia.

  • Dengan partisi dan subpartisi yang dipilih.

  • Dengan autosegmentasi atau segmen berbasis rentang yang Anda tentukan.

Untuk informasi lebih lanjut tentang beban paralel, lihatMenggunakan beban paralel untuk tabel, tampilan, dan koleksi yang dipilih.

type Salah satu dari berikut ini untuk parallel-load:
  • partitions-auto— Semua partisi dari tabel atau tampilan dimuat secara paralel. Setiap partisi dialokasikan untuk thread sendiri.

    Ini adalah pengaturan yang diperlukan untuk titik akhir sumber MongoDB dan Amazon DocumentDB untuk menggunakan opsi autosegmentasi dari beban penuh paralel.

  • subpartitions-auto— (Oracle endpoint saja) Semua subpartisi dari tabel atau tampilan dimuat secara paralel. Setiap subpartisi dialokasikan untuk thread sendiri.

  • partitions-list— Semua partisi yang ditentukan dari tabel atau tampilan dimuat secara paralel. Untuk Endpoint Oracle saja, semua subpartisi yang ditentukan dari tabel atau tampilan dimuat secara paralel. Setiap partisi dan subpartisi yang Anda tentukan dialokasikan untuk thread sendiri. Anda menentukan partisi dan subpartisi untuk dimuat secara paralel dengan nama partisi (partitions) dan nama subpartisi (subpartitions).

  • ranges— Semua segmen tabel, tampilan, atau koleksi yang ditentukan rentang dimuat secara paralel. Setiap tabel, tampilan, atau segmen koleksi yang Anda identifikasi dialokasikan ke utasnya sendiri. Anda menentukan segmen ini dengan nama kolom (columns) dan nilai kolom (boundaries).

    PostgreSQL endpoint hanya mendukung jenis beban paralel ini. MongoDB dan Amazon DocumentDB sebagai titik akhir sumber mendukung jenis segmentasi rentang ini dan tipe autosegmentasi dari beban penuh paralel (). partitions-auto

  • none— Tabel, tampilan, atau koleksi dimuat dalam tugas single-threaded (default), terlepas dari partisi atau subpartisi. Untuk informasi selengkapnya, lihat Membuat tugas.

Mekanisme untuk mengidentifikasi tabel, tampilan, atau koleksi partisi, subpartisi, atau segmen untuk memuat secara paralel.
number-of-partitions (Opsional) type Kapan partitions-auto untuk koleksi tertentu dari titik akhir MongoDB atau Amazon DocumentDB, parameter ini menentukan jumlah total partisi (segmen) yang digunakan untuk migrasi. Defaultnya adalah 16. Menentukan jumlah yang tepat dari partisi untuk memuat secara paralel.
collection-count-from-metadata (Opsional) type Kapan partitions-auto untuk koleksi tertentu dari titik akhir MongoDB atau Amazon DocumentDB dan parameter ini diatur true ke AWS DMS , menggunakan perkiraan jumlah koleksi untuk menentukan jumlah partisi. Jika parameter ini disetel kefalse, AWS DMS gunakan jumlah koleksi yang sebenarnya. Nilai default-nya true. Menentukan apakah akan menggunakan perkiraan jumlah koleksi atau jumlah koleksi aktual untuk menghitung jumlah partisi untuk memuat secara paralel.
max-records-skip-per-page (Opsional) type Kapan partitions-auto untuk koleksi tertentu dari titik akhir MongoDB atau Amazon DocumentDB, ini adalah jumlah catatan yang harus dilewati sekaligus saat menentukan batas untuk setiap partisi. AWS DMS menggunakan pendekatan skip paginated untuk menentukan batas minimum untuk partisi. Default adalah 10.000. Menentukan jumlah catatan untuk melewati sekaligus ketika menentukan batas-batas untuk setiap partisi. Menyetel nilai yang relatif besar dari default dapat mengakibatkan batas waktu kursor dan kegagalan tugas. Menetapkan nilai yang relatif rendah dari default menghasilkan lebih banyak operasi per halaman dan beban penuh yang lebih lambat.
batch-size (Opsional) type Kapan partitions-auto untuk koleksi tertentu dari titik akhir MongoDB atau Amazon DocumentDB, nilai integer ini membatasi jumlah dokumen yang dikembalikan dalam satu batch pulang-pergi. Jika ukuran batch nol (0), kursor menggunakan ukuran batch maksimum yang ditentukan server. Default-nya adalah 0. Menentukan jumlah maksimum dokumen yang dikembalikan dalam satu batch. Setiap batch membutuhkan perjalanan pulang pergi ke server.
partitions Saattypeadalahpartitions-list, ini adalah array string yang menentukan nama partisi untuk dimuat secara paralel. Nama-nama partisi untuk dimuat secara paralel.
subpartitions (Endpoint Oracle saja) Kapantypeadalahpartitions-list, ini adalah array string yang menentukan nama subpartisi untuk dimuat secara paralel. Nama-nama subpartisi untuk dimuat secara paralel.
columns typeKapanranges, array string diatur ke nama kolom yang mengidentifikasi tabel berbasis rentang, tampilan, atau segmen koleksi untuk dimuat secara paralel. Nama-nama kolom yang mengidentifikasi tabel berbasis rentang, tampilan, atau segmen koleksi untuk dimuat secara paralel.
boundaries Saattypeadalahranges, array array kolom-nilai. Setiap array kolom-nilai berisi nilai-nilai kolom dalam kuantitas dan urutan yang ditentukan olehcolumns. Sebuah larik kolom-nilai menentukan batas atas tabel, tampilan, atau segmen koleksi. Setiap larik nilai kolom tambahan menambahkan batas atas untuk satu tabel tambahan, tampilan, atau segmen koleksi. Semua tabel, tampilan, atau segmen koleksi berbasis rentang tersebut dimuat secara paralel. Nilai kolom yang mengidentifikasi tabel berbasis rentang, tampilan, atau partisi koleksi untuk dimuat secara paralel.
lob-settings Objek dengan parameter berikut:
  • mode— Menentukan modus penanganan migrasi untuk LOB.

  • bulk-max-size— Menentukan ukuran maksimum LOB, tergantung padamodePengaturan.

Nilai yang menentukan LOB penanganan untuk tabel atau tampilan diidentifikasi olehobject-locatorPilihan. Penanganan LOB ditentukan menimpa setiap pengaturan LOB tugas untuk tabel ini atau hanya melihat. Untuk informasi selengkapnya tentang penggunaan parameter pengaturan LOB, lihatMenentukan pengaturan LOB untuk tabel yang dipilih atau tampilan.
mode

Menentukan penanganan migrasi untuk LOB dalam tabel tertentu atau tampilan menggunakan nilai berikut:

  • limited— (Default) Nilai ini menetapkan migrasi ke mode LOB terbatas, dengan semua LOB bermigrasi inline bersama-sama dengan semua jenis data kolom lainnya dalam tabel atau tampilan. Gunakan nilai ini ketika mereplikasi LOB yang sebagian besar kecil (100 MB atau kurang). Juga, menentukanbulk-max-sizenilai (nol tidak valid). Semua LOB bermigrasi lebih besar daribulk-max-sizedipotong ke ukuran yang Anda tetapkan.

  • unlimited— Nilai ini menetapkan migrasi ke modus LOB penuh. Gunakan nilai ini ketika semua atau sebagian besar LOB yang ingin Anda mereplikasi lebih besar dari 1 GB. Jika Anda menentukan nilai nol di bulk-max-size, semua LOB bermigrasi di Mode LOB penuh Standar. Dalam bentukunlimitedmode, semua LOB dimigrasi secara terpisah dari jenis data kolom lain menggunakan pencarian dari tabel sumber atau tampilan. Jika Anda menentukanbulk-max-sizenilai lebih besar dari nol, semua LOB dimigrasi diKombinasiMode LOB penuh. Dalam bentuk mode unlimited, LOB yang lebih besar dari bulk-max-size bermigrasi menggunakan tabel sumber atau tampilan pencarian, mirip dengan mode LOB lengkap standar. Jika tidak, LOB hingga dan termasuk ukuran ini bermigrasi inline, mirip dengan modus LOB terbatas. Tidak ada LOB yang pernah terpotong diunlimitedmode, terlepas dari bentuk yang Anda gunakan.

  • none— Semua tabel atau tampilan LOB dimigrasi sesuai dengan pengaturan LOB tugas.

    Untuk informasi lebih lanjut tentang pengaturan kebijakan cache, lihat Menargetkan pengaturan tugas metadata.

    Untuk informasi selengkapnya tentang cara memigrasi LOB dan cara menentukan pengaturan LOB tugas ini, lihatMenetapkan LOB dukungan untuk basis data sumber dalam suatu tugas AWS DMS.

Mekanisme yang digunakan untuk migrasi LOB.
bulk-max-size Efek dari nilai ini tergantung padamode. Ukuran maksimum LOB dalam kelipatan kilobyte. Tentukan opsi ini hanya jika Anda perlu mereplikasi LOB kecil atau jika target endpoint tidak mendukung ukuran LOB tak terbatas.

Wildcard dalam pengaturan tabel dibatasi

Menggunakan persen wildcard ("%") dalam "table-settings" aturan tidak didukung untuk database sumber seperti yang ditunjukkan berikut.

{ "rule-type": "table-settings", "rule-id": "8", "rule-name": "8", "object-locator": { "schema-name": "ipipeline-prod", "table-name": "%" }, "parallel-load": { "type": "partitions-auto", "number-of-partitions": 16, "collection-count-from-metadata": "true", "max-records-skip-per-page": 1000000, "batch-size": 50000 } }

Jika Anda menggunakan "%" dalam "table-settings" aturan seperti yang ditunjukkan, kemudian AWS DMS mengembalikan pengecualian berikut.

Error in mapping rules. Rule with ruleId = x failed validation. Exact schema and table name required when using table settings rule.

Selain itu, AWS merekomendasikan agar Anda tidak memuat banyak koleksi besar menggunakan satu tugas denganparallel-load. Perhatikan bahwa AWS DMS membatasi pertentangan sumber daya serta jumlah segmen yang dimuat secara paralel dengan nilai parameter pengaturan MaxFullLoadSubTasks tugas, dengan nilai maksimum 49.

Sebagai gantinya, tentukan semua koleksi untuk database sumber Anda untuk koleksi terbesar dengan menentukan masing-masing "schema-name" dan satu "table-name" per satu. Juga, tingkatkan migrasi Anda dengan benar. Misalnya, jalankan beberapa tugas di sejumlah contoh replikasi yang cukup untuk menangani sejumlah besar koleksi besar dalam database Anda.

Menggunakan beban paralel untuk tabel, tampilan, dan koleksi yang dipilih

Untuk mempercepat migrasi dan membuatnya lebih efisien, Anda dapat menggunakan beban paralel untuk tabel relasional, tampilan, dan koleksi yang dipilih. Dengan kata lain, Anda dapat memigrasikan satu tabel, tampilan, atau koleksi tersegmentasi menggunakan beberapa utas secara paralel. Untuk melakukan ini, AWS DMS pisahkan tugas beban penuh menjadi utas, dengan setiap segmen tabel dialokasikan ke utasnya sendiri.

Dengan menggunakan proses pemuatan paralel ini, pertama-tama Anda dapat meminta beberapa utas membongkar beberapa tabel, tampilan, dan koleksi secara paralel dari titik akhir sumber. Anda kemudian dapat memiliki beberapa thread yang bermigrasi dan memuat tabel, tampilan, dan koleksi yang sama secara paralel dengan titik akhir target. Untuk beberapa mesin database, Anda dapat segmen tabel dan pandangan oleh partisi yang ada atau subpartisi. Untuk mesin database lainnya, Anda dapat AWS DMS secara otomatis mengelompokkan koleksi sesuai dengan parameter tertentu (autosegmentasi). Jika tidak, Anda dapat mengelompokkan tabel, tampilan, atau koleksi apa pun berdasarkan rentang nilai kolom yang Anda tentukan.

Beban paralel didukung untuk endpoint sumber berikut:

  • Oracle

  • Microsoft SQL Server

  • MySQL

  • PostgreSQL

  • IBM Db2 LUW

  • SAP Adaptive Server Enterprise (ASE)

  • MongoDB (hanya mendukung opsi autosegmentasi dan segmentasi rentang dari beban penuh paralel)

  • Amazon DocumentDB (hanya mendukung opsi segmentasi otomatis dan segmentasi rentang beban penuh paralel)

Untuk titik akhir MongoDB dan Amazon DocumentDB AWS DMS , mendukung tipe data berikut untuk kolom yang merupakan kunci partisi untuk opsi segmentasi rentang beban penuh paralel.

  • Dua Kali

  • String

  • ObjectId

  • 32 bit integer

  • 64 bit integer

Beban paralel untuk digunakan dengan pengaturan tabel aturan yang didukung untuk target akhir berikut:

  • Oracle

  • Microsoft SQL Server

  • MySQL

  • PostgreSQL

  • Amazon S3

  • SAP Adaptive Server Enterprise (ASE)

  • Amazon Redshift

  • MongoDB (hanya mendukung opsi autosegmentasi dan segmentasi rentang dari beban penuh paralel)

  • Amazon DocumentDB (hanya mendukung opsi segmentasi otomatis dan segmentasi rentang beban penuh paralel)

  • Db2 LUW

Untuk menentukan jumlah maksimum tabel dan tampilan untuk memuat secara paralel, gunakanMaxFullLoadSubTaskspengaturan tugas.

Untuk menentukan jumlah maksimum utas per tabel atau tampilan untuk target yang didukung dari tugas beban paralel, tentukan lebih banyak segmen menggunakan batas nilai kolom.

penting

MaxFullLoadSubTasksmengontrol jumlah tabel atau segmen tabel untuk memuat secara paralel. ParallelLoadThreadsmengontrol jumlah thread yang digunakan oleh tugas migrasi untuk mengeksekusi beban secara paralel. Pengaturan ini bersifat multiplikatif. Dengan demikian, jumlah total utas yang digunakan selama tugas pemuatan penuh kira-kira merupakan hasil dari nilai ParallelLoadThreads dikalikan dengan nilai MaxFullLoadSubTasks (ParallelLoadThreads*. MaxFullLoadSubtasks)

Jika Anda membuat tugas dengan jumlah sub tugas Full Load yang tinggi dan sejumlah besar thread beban paralel, tugas Anda dapat menghabiskan terlalu banyak memori dan gagal.

Untuk menentukan jumlah maksimum thread per tabel untuk Amazon DynamoDB, Amazon Kinesis Data Streams, Apache Kafka, atau Amazon Elasticsearch Service target, gunakan setelan tugas metadata target. ParallelLoadThreads

Untuk menentukan ukuran buffer untuk tugas beban paralel saat ParallelLoadThreads digunakan, gunakan pengaturan tugas metadata ParallelLoadBufferSize target.

Ketersediaan dan pengaturan ParallelLoadThreads dan ParallelLoadBufferSize tergantung pada titik akhir target.

Untuk informasi selengkapnya tentang pengaturan ParallelLoadThreads dan ParallelLoadBufferSize, lihat Menargetkan pengaturan tugas metadata. Untuk informasi selengkapnya tentang pengaturan MaxFullLoadSubTasks, lihat Pengaturan tugas beban penuh. Untuk informasi yang spesifik untuk menargetkan titik akhir, lihat topik terkait.

Untuk menggunakan beban paralel, membuat aturan pemetaan tabel jenistable-settingsdenganparallel-loadPilihan. Dalam table-settings aturan, Anda dapat menentukan kriteria segmentasi untuk satu tabel, tampilan, atau koleksi yang ingin Anda muat secara paralel. Untuk melakukannya, tetapkan parameter type dari opsi parallel-load untuk salah satu dari beberapa opsi.

Cara melakukannya tergantung pada bagaimana Anda ingin mengelompokkan tabel, tampilan, atau koleksi untuk beban paralel:

  • Dengan partisi (atau segmen) - Muat semua tabel yang ada atau lihat partisi (atau segmen) menggunakan tipe. partitions-auto Atau muat hanya partisi yang dipilih menggunakan partitions-list tipe dengan array partisi tertentu.

    Hanya untuk titik akhir MongoDB dan Amazon DocumentDB, muat semua atau koleksi tertentu berdasarkan segmen AWS DMS yang secara otomatis menghitung juga menggunakan jenis dan parameter opsional tambahan. partitions-auto table-settings

  • (Oracle endpoint saja) Dengan subpartisi — Muat semua tabel yang ada atau lihat subpartisi menggunakansubpartitions-autoJenis. Atau memuat hanya subpartisi yang dipilih menggunakanpartitions-listketik dengan dispesifikasikansubpartitionsArray.

  • Berdasarkan segmen yang Anda tentukan — Muat tabel, tampilan, atau segmen koleksi yang Anda tentukan dengan menggunakan batas nilai kolom. Untuk melakukannya, gunakanrangestipe dengan dispesifikasikancolumnsdanboundariesSusunan.

    catatan

    PostgreSQL endpoint hanya mendukung jenis beban paralel ini. MongoDB dan Amazon DocumentDB sebagai titik akhir sumber mendukung jenis segmentasi rentang ini dan tipe autosegmentasi dari beban penuh paralel (). partitions-auto

Untuk mengidentifikasi tabel, tampilan, atau koleksi tambahan untuk dimuat secara paralel, tentukan table-settings objek tambahan dengan parallel-load opsi.

Dalam prosedur berikut, Anda dapat mengetahui cara mengkodekan JSON untuk setiap jenis beban paralel, dari yang paling sederhana hingga yang paling kompleks.

Untuk menentukan semua tabel, tampilan, atau koleksi partisi, atau semua tabel atau tampilan subpartisi
  • Tentukanparallel-loaddengan baikpartitions-autoJenis atausubpartitions-autojenis (tetapi tidak keduanya).

    Setiap tabel, tampilan, atau partisi koleksi (atau segmen) atau subpartisi kemudian secara otomatis dialokasikan ke utasnya sendiri.

    Untuk beberapa titik akhir, beban paralel mencakup partisi atau subpartisi hanya jika sudah ditentukan untuk tabel atau tampilan. Untuk titik akhir sumber MongoDB dan Amazon DocumentDB, Anda dapat AWS DMS menghitung partisi (atau segmen) secara otomatis berdasarkan parameter tambahan opsional. Ini termasuk number-of-partitions, collection-count-from-metadata, max-records-skip-per-page, dan batch-size.

Untuk menentukan tabel yang dipilih atau tampilan partisi, subpartisi, atau keduanya
  1. Tentukanparallel-loaddenganpartitions-listJenis.

  2. (Opsional) Sertakan partisi dengan menentukan sebuah array dari nama partisi sebagai nilai daripartitions.

    Setiap partisi yang ditentukan kemudian dialokasikan ke benangnya sendiri.

    penting

    Untuk endpoint Oracle, pastikan partisi dan subpartisi tidak tumpang tindih saat memilihnya untuk beban paralel. Jika Anda menggunakan partisi dan subpartisi yang tumpang tindih untuk memuat data secara paralel, itu menduplikasi entri, atau gagal karena pelanggaran duplikat kunci utama.

  3. (Opsional), Untuk endpoint Oracle saja, sertakan subpartisi dengan menentukan array nama subpartisi sebagai nilai. subpartitions

    Setiap subpartisi yang ditentukan kemudian dialokasikan ke benangnya sendiri.

    catatan

    Beban paralel mencakup partisi atau subpartisi hanya jika sudah ditentukan untuk tabel atau tampilan.

Anda dapat menentukan tabel atau tampilan segmen sebagai rentang nilai kolom. Ketika Anda melakukannya, menyadari karakteristik kolom ini:

  • Menentukan kolom diindeks secara signifikan meningkatkan kinerja.

  • Anda dapat menentukan hingga 10 kolom.

  • Anda tidak dapat menggunakan kolom untuk menentukan batas segmen dengan tipe AWS DMS data berikut: DOUBLE, FLOAT, BLOB, CLOB, dan NCLOB

  • Catatan dengan nilai null tidak direplikasi.

Untuk menentukan tabel, tampilan, atau segmen koleksi sebagai rentang nilai kolom
  1. Tentukanparallel-loaddenganrangesJenis.

  2. Mendefinisikan batas antara tabel atau tampilan segmen dengan menentukan array nama kolom sebagai nilaicolumns. Lakukan ini untuk setiap kolom yang Anda ingin menentukan batas antara tabel atau tampilan segmen.

    Urutan kolom adalah signifikan. Kolom pertama adalah yang paling signifikan dan kolom terakhir paling tidak signifikan dalam mendefinisikan setiap batas, seperti yang dijelaskan berikut.

  3. Mendefinisikan rentang data untuk semua tabel atau tampilan segmen dengan menentukan array batas sebagai nilaiboundaries. Abatas arrayadalah array dari array kolom-nilai. Untuk melakukannya, ikuti langkah-langkah berikut ini:

    1. Tentukan setiap elemen dari array kolom-nilai sebagai nilai yang sesuai dengan setiap kolom. Aarray kolom-nilaimewakili batas atas setiap tabel atau tampilan segmen yang ingin Anda definisikan. Tentukan setiap kolom dalam urutan yang sama yang Anda tentukan kolom dicolumnsArray.

      Masukkan nilai untuk kolom DATE dalam format yang didukung oleh sumber.

    2. Tentukan setiap larik nilai kolom sebagai batas atas, secara berurutan, dari setiap segmen dari bawah ke next-to-top segmen tabel atau tampilan. Jika ada baris di atas batas atas yang Anda tentukan, baris ini menyelesaikan segmen atas tabel atau tampilan. Dengan demikian, jumlah segmen berbasis rentang berpotensi satu lebih dari jumlah batas segmen dalam array batas. Setiap segmen berbasis rentang tersebut dialokasikan ke benangnya sendiri.

      Semua data non-null direplikasi, bahkan jika Anda tidak menentukan rentang data untuk semua kolom dalam tabel atau tampilan.

    Misalnya, Anda mendefinisikan tiga array nilai kolom untuk kolom COL1, COL2, dan COL3 sebagai berikut.

    COL1 COL2 COL3
    10 30 105
    20 20 120
    100 12 99

    Anda telah menetapkan batas tiga segmen untuk kemungkinan total empat segmen.

    Untuk mengidentifikasi rentang baris untuk mereplikasi untuk setiap segmen, contoh replikasi berlaku pencarian untuk tiga kolom ini untuk masing-masing empat segmen. Pencarian adalah sebagai berikut:

    Segmen 1

    Mereplikasi semua baris di mana berikut ini benar: Nilai dua kolom pertama kurang dari atau sama dengan mereka yang sesuaiSegmen 1nilai batas atas. Juga, nilai-nilai kolom ketiga kurang dari yangSegmen 1nilai batas atas.

    Segmen 2

    Mereplikasi semua baris (kecualiSegmen 1baris) di mana berikut ini benar: Nilai dua kolom pertama kurang dari atau sama dengan mereka yang sesuaiSegmen 2nilai batas atas. Juga, nilai-nilai kolom ketiga kurang dari yangSegmen 2nilai batas atas.

    Segmen 3

    Mereplikasi semua baris (kecualiSegmen 2baris) di mana berikut ini benar: Nilai dua kolom pertama kurang dari atau sama dengan mereka yang sesuaiSegmen 3nilai batas atas. Juga, nilai-nilai kolom ketiga kurang dari yangSegmen 3nilai batas atas.

    Segmen 4

    Mereplikasi semua baris yang tersisa (kecualiSegmen 1, 2, dan 3baris).

    Dalam kasus ini, contoh replikasi menciptakanWHEREklausul untuk memuat setiap segmen sebagai berikut:

    Segmen 1

    ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105)))

    Segmen 2

    NOT ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105))) AND ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120)))

    Segmen 3

    NOT ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120))) AND ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))

    Segmen 4

    NOT ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))

Menentukan pengaturan LOB untuk tabel yang dipilih atau tampilan

Anda dapat mengatur pengaturan LOB tugas untuk satu atau lebih tabel dengan menciptakan aturan pemetaan tabel jenistable-settingsdenganlob-settingspilihan untuk satu atau lebihtable-settingsobjek.

Menentukan pengaturan LOB untuk dipilih tabel atau tampilan didukung untuk endpoint sumber berikut:

  • Oracle

  • Microsoft SQL Server

  • MySQL

  • PostgreSQL

  • IBM Db2, tergantung padamodedanbulk-max-size, dijelaskan sebagai berikut

  • SAP Adaptive Server Enterprise (ASE), tergantung padamodedanbulk-max-sizepengaturan, seperti yang dijelaskan berikut

Menentukan pengaturan LOB untuk dipilih tabel atau tampilan didukung untuk target akhir berikut:

  • Oracle

  • Microsoft SQL Server

  • MySQL

  • PostgreSQL

  • SAP ASE, tergantung padamodedanbulk-max-sizepengaturan, seperti yang dijelaskan berikut

catatan

Anda dapat menggunakan LOB tipe data hanya dengan tabel dan pandangan yang mencakup kunci primer.

Untuk menggunakan pengaturan LOB untuk tabel yang dipilih atau tampilan, Anda membuat aturan pemetaan tabel jenistable-settingsdenganlob-settingsPilihan. Melakukan hal ini menentukan LOB penanganan untuk tabel atau tampilan diidentifikasi olehobject-locatorPilihan. Dalamtable-settingsaturan, Anda dapat menentukanlob-settingsobjek dengan parameter berikut:

  • mode— Menentukan mekanisme penanganan migrasi LOB untuk tabel yang dipilih atau lihat sebagai berikut:

    • limited— Mode LOB terbatas default adalah mode tercepat dan paling efisien. Gunakan mode ini hanya jika semua LOB Anda kecil (dalam ukuran 100 MB) atau titik akhir target tidak mendukung ukuran LOB tak terbatas. Juga jika Anda menggunakanlimited, semua LOB harus dalam ukuran yang Anda tetapkan untukbulk-max-size.

      Dalam mode ini untuk tugas beban penuh, contoh replikasi bermigrasi semua LOB inline bersama-sama dengan jenis data kolom lainnya sebagai bagian dari tabel utama atau tampilan penyimpanan. Namun, contoh memotong LOB bermigrasi lebih besar daribulk-max-sizenilai untuk ukuran yang ditentukan. Untuk perubahan data capture (CDC) beban tugas, contoh bermigrasi semua LOB menggunakan pencarian tabel sumber, seperti dalam modus LOB penuh standar (lihat berikut).

      catatan

      Anda dapat memigrasi tampilan untuk tugas penuh saja.

    • unlimited— Mekanisme migrasi untuk mode LOB penuh tergantung pada nilai yang Anda tetapkan untukbulk-max-sizesebagai berikut:

      • Mode LOB penuh standar— Saat Anda mengaturbulk-max-sizeke nol, contoh replikasi bermigrasi semua LOB menggunakan standar modus LOB penuh. Mode ini memerlukan pencarian dalam tabel sumber atau tampilan untuk bermigrasi setiap LOB, terlepas dari ukuran. Pendekatan ini biasanya menghasilkan migrasi jauh lebih lambat daripada untuk modus LOB terbatas. Gunakan mode ini hanya jika semua atau sebagian besar LOB Anda besar (1 GB atau lebih besar).

      • Kombinasi mode LOB penuh— Saat Anda mengaturbulk-max-sizeke nilai nol, mode LOB penuh ini menggunakan kombinasi mode LOB terbatas dan standar modus LOB penuh. Itu adalah untuk tugas beban penuh, jika ukuran LOB dalam Andabulk-max-sizenilai, misalnya bermigrasi LOB inline seperti dalam modus LOB terbatas. Jika ukuran LOB lebih besar dari nilai ini, contoh bermigrasi LOB menggunakan tabel sumber atau tampilan pencarian seperti dalam mode LOB penuh standar. Untuk perubahan data capture (CDC) beban tugas, contoh bermigrasi semua LOB menggunakan pencarian tabel sumber, seperti dalam modus LOB penuh standar (lihat berikut). Hal itu tidak terlepas dari ukuran LOB.

        catatan

        Anda dapat memigrasi tampilan untuk tugas penuh saja.

        Mode ini menghasilkan kecepatan migrasi yang kompromi antara lebih cepat, modus LOB terbatas dan lambat, modus LOB penuh standar. Gunakan mode ini hanya jika Anda memiliki campuran LOB kecil dan besar, dan sebagian besar LOB kecil.

        Kombinasi mode LOB penuh ini tersedia hanya untuk endpoint berikut:

        • IBM Db2 sebagai sumber

        • SAP ASE sebagai sumber atau target

      Terlepas dari mekanisme yang Anda tentukan untuk mode unlimited, contoh ini memigrasikan semua LOB sepenuhnya, tanpa pemotongan.

    • none— Contoh replikasi memigrasikan LOB dalam tabel yang dipilih atau tampilan menggunakan pengaturan LOB tugas Anda. Gunakan opsi ini untuk membantu membandingkan hasil migrasi dengan dan tanpa pengaturan LOB untuk tabel atau tampilan yang dipilih.

    Jika tabel atau tampilan tertentu memiliki LOB yang ada di dalam replikasi, Anda dapat mengatur pengaturan tugas BatchApplyEnabled ke truehanya ketika menggunakan Mode LOB limited.

    Dalam beberapa kasus, Anda mungkin mengaturBatchApplyEnabledketruedanBatchApplyPreserveTransactionkefalse. Dalam kasus ini, contoh mengaturBatchApplyPreserveTransactionketruejika tabel atau tampilan memiliki LOB dan sumber dan target titik akhir adalah Oracle.

  • bulk-max-size— Set nilai ini ke nilai nol atau bukan nol dalam kilobyte, tergantung padamodeseperti yang dijelaskan untuk item sebelumnya. Masuklimitedmode, Anda harus menetapkan nilai bukan nol untuk parameter ini.

    Contoh mengkonversi LOB ke format biner. Oleh karena itu, untuk menentukan LOB terbesar Anda perlu mereplikasi, kalikan ukurannya dengan tiga. Misalnya, jika LOB terbesar Anda adalah 2 MB, mengaturbulk-max-sizehingga 6.000 (6 MB).

Contoh pengaturan tabel

Berikut ini, Anda dapat menemukan beberapa contoh yang menunjukkan penggunaan pengaturan tabel.

contoh Memuat tabel tersegmentasi oleh partisi

Contoh berikut memuatSALEStabel di sumber Anda lebih efisien dengan memuatnya secara paralel berdasarkan semua partisi.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-auto" } } ] }
contoh Memuat tabel tersegmentasi oleh subpartisi

Contoh berikut memuatSALEStabel di sumber Oracle Anda lebih efisien dengan memuat secara paralel berdasarkan semua subpartisi nya.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "subpartitions-auto" } } ] }
contoh Memuat tabel tersegmentasi oleh daftar partisi

Contoh berikut memuatSALEStabel di sumber Anda dengan memuatnya secara paralel dengan daftar partisi tertentu. Di sini, partisi yang ditentukan diberi nama setelah nilai dimulai dengan bagian dari alfabet, misalnyaABCD,EFGH, dan sebagainya.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-list", "partitions": [ "ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWXYZ" ] } } ] }
contoh Memuat tabel Oracle tersegmentasi oleh daftar yang dipilih dari partisi dan subpartisi

Contoh berikut memuatSALEStabel di sumber Oracle Anda dengan memuatnya secara paralel dengan daftar partisi dan subpartisi yang dipilih. Di sini, partisi yang ditentukan diberi nama setelah nilai dimulai dengan bagian dari alfabet, misalnyaABCD,EFGH, dan sebagainya. Subpartisi yang ditentukan diberi nama sesuai nilai yang dimulai dengan angka, misalnya01234dan56789.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-list", "partitions": [ "ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWXYZ" ], "subpartitions": [ "01234", "56789" ] } } ] }
contoh Memuat tabel tersegmentasi dengan rentang nilai kolom

Contoh berikut memuatSALEStabel di sumber Anda dengan memuatnya secara paralel oleh segmen yang ditentukan oleh rentangSALES_NOdanREGIONnilai kolom.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "ranges", "columns": [ "SALES_NO", "REGION" ], "boundaries": [ [ "1000", "NORTH" ], [ "3000", "WEST" ] ] } } ] }

Di sini, dua kolom yang ditentukan untuk rentang segmen dengan nama,SALES_NOdanREGION. Dua batas ditentukan dengan dua set nilai kolom (["1000","NORTH"]dan["3000","WEST"]).

Kedua batas tersebut mengidentifikasi tiga segmen tabel berikut untuk memuat secara paralel:

Segmen 1

Baris dengan SALES_NO kurang dari atau sama dengan 1.000 dan REGIONkurang dari “UTARA”. Dengan kata lain, angka penjualan hingga 1.000 di wilayah TIMUR.

Segmen 2

Baris selain dari Segmen 1 dengan SALES_NO kurang dari atau sama dengan 3.000 dan REGION kurang dari “BARAT”. Dengan kata lain, jumlah penjualan lebih dari 1.000 hingga 3.000 di wilayah UTARA dan SELATAN.

Segmen 3

Semua baris yang tersisa selainSegmen 1danSegmen 2. Dengan kata lain, jumlah penjualan lebih dari 3.000 di wilayah “WEST”.

contoh Memuat dua tabel: Satu tersegmentasi berdasarkan rentang dan lain tersegmentasi oleh partisi

Contoh berikut memuatSALEStabel secara paralel dengan batas-batas segmen yang Anda mengidentifikasi. Hal ini juga memuatORDERStabel secara paralel oleh semua partisi, seperti contoh sebelumnya.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "ranges", "columns": [ "SALES_NO", "REGION" ], "boundaries": [ [ "1000", "NORTH" ], [ "3000", "WEST" ] ] } }, { "rule-type": "table-settings", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "HR", "table-name": "ORDERS" }, "parallel-load": { "type": "partitions-auto" } } ] }
contoh Memuat meja dengan LOB menggunakan modus LOB terbatas

Contoh berikut memuatITEMStabel termasuk LOB di sumber Anda menggunakan modus LOB terbatas (default) dengan maksimum nontruncated ukuran 100 MB. Setiap LOB yang lebih besar dari ukuran ini dipotong menjadi 100 MB. Semua LOB dimuat inline dengan semua jenis data kolom lainnya.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "bulk-max-size": "100000" } } ] }
contoh Memuat meja dengan LOB menggunakan modus LOB penuh standar

Contoh berikut memuat tabel ITEMS di sumber Anda, termasuk semua LOB tanpa pemotongan, menggunakan modus LOB penuh standar. Semua LOB, terlepas dari ukuran, dimuat secara terpisah dari jenis data lain menggunakan lookup untuk setiap LOB dalam tabel sumber.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "unlimited", "bulk-max-size": "0" } } ] }
contoh Memuat meja dengan LOB menggunakan kombinasi modus LOB penuh

Contoh berikut memuatITEMStabel di sumber Anda, termasuk semua LOB tanpa pemotongan, menggunakan kombinasi modus LOB penuh. Semua LOB dalam 100 MB dalam ukuran dimuat inline bersama dengan jenis data lainnya, seperti dalam modus LOB terbatas. Semua LOB lebih dari 100 MB dalam ukuran dimuat secara terpisah dari jenis data lainnya. Beban terpisah ini menggunakan pencarian untuk masing-masing LOB tersebut dalam tabel sumber, seperti dalam modus LOB penuh standar.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "unlimited", "bulk-max-size": "100000" } } ] }
contoh Memuat meja dengan LOB menggunakan pengaturan LOB tugas

Contoh berikut memuatITEMStabel di sumber Anda, termasuk semua LOB, menggunakan pengaturan LOB tugasnya. Parameterbulk-max-sizepengaturan 100 MB diabaikan dan dibiarkan hanya untuk reset cepatlimitedatauunlimitedMode.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "none", "bulk-max-size": "100000" } } ] }