Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Aturan pemilihan dalam Konversi Skema DMS
Konversi Skema DMS mengubah skema database dari satu mesin ke mesin lainnya. Anda menggunakan aturan pemilihan untuk mengontrol objek database mana Konversi Skema DMS bertindak selama operasi seperti penilaian, konversi, dan ekspor. Aturan seleksi adalah objek JSON yang Anda lewati SelectionRules parameter (atau --selection-rules di AWS CLI). Tanpa aturan seleksi, operasi tidak ada yang harus ditindaklanjuti. Dengan aturan, Anda dapat mencakup operasi ke satu objek, seluruh skema, seluruh database (untuk sumber Microsoft SQL Server dan SAP ASE (Sybase ASE)), atau sekelompok objek yang cocok dengan pola.
catatan
Saat Anda menggunakan Konsol AWS Manajemen, Konversi Skema DMS akan membuat aturan pemilihan secara otomatis berdasarkan pilihan Anda di UI proyek migrasi. Anda hanya perlu menulis aturan pemilihan secara langsung saat menggunakan DMS Schema Conversion API atau CLI AWS .
Anda menggunakan bentuk aturan yang sama di sisi sumber dan target proyek migrasi. server-nameBidang di pencari objek menentukan apakah aturan menargetkan penyedia data sumber atau penyedia data target. Proyek migrasi tunggal biasanya menggunakan kedua jenis aturan: aturan sumber untuk penilaian dan konversi; aturan target untuk ekspor SQL.
Format aturan pemilihan
Sebuah dokumen aturan seleksi adalah objek JSON dengan rules array tunggal. Setiap entri dalam array adalah satu aturan, dan setiap aturan harus berisi semua bidang berikut.
| Parameter | Nilai | Deskripsi |
|---|---|---|
rule-type |
selection |
Nilai yang mengidentifikasi jenis aturan. Untuk semua aturan pemilihan, atur ini keselection. Parameter yang diperlukan. |
rule-id |
Nilai numerik (integer). | Pengidentifikasi numerik unik untuk aturan tersebut. Parameter yang diperlukan. |
rule-name |
Nilai alfanumerik. | Nama unik untuk mengidentifikasi aturan. Parameter yang diperlukan. |
rule-action |
explicit,include, atau exclude |
Nilai yang menentukan bagaimana locator objek ditafsirkan. Lihat Tindakan aturan. Parameter yang diperlukan. |
object-locator |
Objek JSON yang berisi kunci pencari lokasi khusus mesin. | Objek yang mengidentifikasi objek database aturan berlaku untuk. Lihat Hirarki pencari objek. Parameter yang diperlukan. |
Contoh minimal berikut menargetkan satu skema pada server sumber.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "explicit", "object-locator": { "server-name": "source_server", "schema-name": "schema_name" } } ] }
catatan
Saat menggunakan AWS CLI, Anda dapat melewati aturan pemilihan dengan cara berikut. Ini adalah fitur AWS CLI standar yang bekerja dengan parameter string apa pun.
-
Inline:
--selection-rules '{"rules":[...]}'(gunakan tanda kutip tunggal untuk menghindari lolos dari tanda kutip ganda JSON) -
Jalur relatif:
--selection-rules file://example-rules.json -
Jalur absolut:
--selection-rules file:///tmp/example-rules.json
Semua nilai bidang di dalamnya object-locator harus berupa string yang tidak kosong. String kosong (misalnya,"schema-name": "") ditolak dengan kesalahan.
catatan
database-nameKuncinya hanya berlaku untuk sumber Microsoft SQL Server dan SAP ASE (Sybase ASE). Mengirim database-name pencari lokasi untuk mesin sumber lain ditolak sebagai kunci yang tidak didukung.
Aturan penulisan
Hirarki pencari objek
object-locatorMengidentifikasi satu atau lebih objek database melalui hierarki kunci khusus mesin. Setiap kunci mempersempit ruang lingkup; hilangkan kunci tingkat yang lebih rendah untuk memperluas cakupan. Hirarki tergantung pada mesin sumber:
-
Microsoft SQL Server dan SAP ASE (Sybase ASE) — kunci
server-name→database-name→schema-name→tingkat objek (misalnya,).table-nameMesin ini memilikidatabase-namelevel ekstra antara server dan skema. -
Semua mesin lainnya (Oracle, IBM Db2 untuk, dan semua mesin target: PostgreSQL z/OS, Aurora PostgreSQL, MySQL, Aurora MySQL, MySQL, dan IBM Db2 LUW) — kunci tingkat objek.
server-name→schema-name→Mesin ini tidak memilikidatabase-namelevel; skema adalah wadah atas langsung di bawahserver-name.
Contoh berikut memilih satu tabel Microsoft SQL Server tertentu.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "explicit", "object-locator": { "server-name": "source_server", "database-name": "database_name", "schema-name": "schema_name", "table-name": "table_name" } } ] }
Untuk memperluas cakupan ke seluruh skema, hilangkan kunci tingkat daun. Aturan tersebut kemudian berlaku untuk semua jenis objek yang dapat dialamatkan dalam skema tersebut, termasuk tabel, tampilan, prosedur, fungsi, urutan, dan objek lain yang diekspos oleh mesin sumber.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "explicit", "object-locator": { "server-name": "source_server", "database-name": "database_name", "schema-name": "schema_name" } } ] }
Kunci pencari lokasi yang dapat Anda gunakan bergantung pada sumber atau mesin target. Untuk referensi kunci lengkap per mesin, lihatKunci pencari objek berdasarkan basis data.
Aturan sumber dan aturan target
Tidak ada rule-type bidang eksplisit yang menandai aturan sebagai “sumber” atau “target”. Anda mengontrol perbedaan sepenuhnya melalui server-name nilai dalamobject-locator: jika server-name cocok dengan penyedia data sumber Anda, aturan menargetkan pohon metadata sumber; jika cocok dengan penyedia data target Anda, aturan menargetkan pohon metadata target.
Untuk server-name Anda dapat menggunakan salah satu:
-
Nilai Nama Server dikonfigurasi dalam penyedia data. Ini biasanya nama host atau alamat IP, tetapi harus sama dengan nilai yang disimpan di penyedia data dengan tepat — bukan nama DNS atau IP yang berbeda yang diselesaikan ke mesin yang sama.
-
ID sumber daya penyedia data — segmen terakhir dari ARN-nya (misalnya, jika ARN adalah
arn:aws:dms:us-east-1:111122223333:data-provider:EXAMPLEABCDEFGHIJKLMNOPQRS, ID sumber daya adalah).EXAMPLEABCDEFGHIJKLMNOPQRS
Tindakan aturan
Gunakan rule-action bidang untuk menentukan bagaimana Konversi Skema DMS menafsirkan nilai di dalam pencari objek. Anda dapat menggunakan wildcard hanya dengan include danexclude.
Nilai |
Perilaku |
Kapan menggunakannya |
|---|---|---|
|
Memilih semua objek yang namanya cocok dengan pola. Mendukung |
Gunakan untuk mencocokkan sekelompok objek dengan pola penamaan bersama. |
|
Menghapus objek dari set yang sudah dipilih oleh aturan sebelumnya. |
Gunakan untuk mengukir pengecualian dari yang lebih luas. |
|
Memilih persis objek bernama. Setiap nilai locator, termasuk |
Gunakan ketika Anda tahu nama pasti dari setiap objek yang ingin Anda tindaklanjuti. |
catatan
Beberapa operasi hanya menerima "explicit" aturan dan tidak mendukung "include" atau"exclude". Periksa Referensi AWS API untuk operasi spesifik untuk mengonfirmasi tindakan aturan mana yang didukungnya.
Referensi pencari objek
Kunci pencari objek berdasarkan basis data
Tab berikut menunjukkan kunci locator untuk setiap database yang didukung.
Nama kategori berdasarkan mesin
category-nameNilai dalam aturan seleksi menargetkan seluruh kelas objek daripada objek individu. Nama kategori khusus mesin dan peka huruf besar/kecil. Apakah operasi menerima category-name tergantung pada operasi — periksa Referensi AWS API untuk operasi yang Anda gunakan. Tab di bawah ini mencakup mesin sumber dan target.
penting
Mengirim nama kategori dari satu mesin ke proyek yang dikonfigurasi untuk mesin yang berbeda mengembalikan kesalahan.
Contoh aturan seleksi
Contoh berikut menunjukkan cara menulis aturan pemilihan untuk skenario migrasi umum. Setiap contoh menggunakan nilai --selection-rules parameter yang akan Anda berikan ke operasi API Konversi Skema DMS seperti StartMetadataModelConversion atau. StartMetadataModelAssessment
Pilih satu tabel tertentu untuk konversi dari sumber Microsoft SQL Server. Microsoft SQL Server membutuhkan database-name tambahan untukschema-name.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "explicit", "object-locator": { "server-name": "source_server", "database-name": "database_name", "schema-name": "schema_name", "table-name": "table_name" } } ] }
Pilih semua objek dalam skema Oracle dengan menghilangkan kunci tingkat objek. Oracle tidak memiliki database-name level; skema adalah wadah teratas di bawah. server-name
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "explicit", "object-locator": { "server-name": "source_server", "schema-name": "schema_name" } } ] }
Tampilan Oracle ditangani menggunakan table-name dengan"table-type": "view". Tidak ada view-name kunci terpisah.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "explicit", "object-locator": { "server-name": "source_server", "schema-name": "schema_name", "table-name": "view_name", "table-type": "view" } } ] }
Pilih satu prosedur tersimpan tertentu dari IBM Db2 untuk sumber. z/OS IBM Db2 untuk z/OS penggunaan procedure-name dan langsung dari server-name ke schema-name tanpa level. database-name
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "explicit", "object-locator": { "server-name": "source_server", "schema-name": "schema_name", "procedure-name": "procedure_name" } } ] }
Pilih setiap prosedur dalam skema SAP ASE (Sybase ASE) dengan menggunakan % sebagai wildcard untuk. procedure-name SAP ASE (Sybase ASE) membutuhkan database-name antara server-name dan. schema-name
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "include", "object-locator": { "server-name": "source_server", "database-name": "database_name", "schema-name": "dbo", "procedure-name": "%" } } ] }
Gunakan % untuk mencocokkan beberapa tabel dengan awalan. Contoh ini memilih semua tabel yang namanya dimulai denganFact_.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "include", "object-locator": { "server-name": "source_server", "database-name": "database_name", "schema-name": "dbo", "table-name": "Fact_%" } } ] }
Sertakan semua objek dalam skema Oracle, lalu kecualikan tabel apa pun yang namanya dimulai. TMP_ Aturan dievaluasi secara rule-id berurutan; exclude diutamakan saat cocok.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "include", "object-locator": { "server-name": "source_server", "schema-name": "schema_name" } }, { "rule-type": "selection", "rule-id": "2", "rule-name": "rule_name", "rule-action": "exclude", "object-locator": { "server-name": "source_server", "schema-name": "schema_name", "table-name": "TMP_%" } } ] }
Gunakan beberapa explicit aturan dalam satu dokumen untuk memilih serangkaian prosedur tertentu berdasarkan nama.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "explicit", "object-locator": { "server-name": "source_server", "database-name": "database_name", "schema-name": "dbo", "procedure-name": "PROC_A" } }, { "rule-type": "selection", "rule-id": "2", "rule-name": "rule_name", "rule-action": "explicit", "object-locator": { "server-name": "source_server", "database-name": "database_name", "schema-name": "dbo", "procedure-name": "PROC_B" } }, { "rule-type": "selection", "rule-id": "3", "rule-name": "rule_name", "rule-action": "explicit", "object-locator": { "server-name": "source_server", "database-name": "database_name", "schema-name": "dbo", "procedure-name": "PROC_C" } } ] }
Gunakan include aturan untuk mencocokkan setiap prosedur yang namanya dimulaiPROC_, lalu exclude aturan untuk dihapus PROC_TEST dari set itu. excludeAturan harus mengikuti include aturan; standalone tidak exclude berpengaruh.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "rule_name", "rule-action": "include", "object-locator": { "server-name": "source_server", "database-name": "database_name", "schema-name": "dbo", "procedure-name": "PROC_%" } }, { "rule-type": "selection", "rule-id": "2", "rule-name": "rule_name", "rule-action": "exclude", "object-locator": { "server-name": "source_server", "database-name": "database_name", "schema-name": "dbo", "procedure-name": "PROC_TEST" } } ] }