View a markdown version of this page

Aturan pemilihan dalam Konversi Skema DMS - AWS Database Migration Service

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-name Mesin ini memiliki database-name level 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 memiliki database-name level; 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 adalaharn: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

"include"

Memilih semua objek yang namanya cocok dengan pola. Mendukung % (urutan nol atau lebih karakter) dan _ (karakter tunggal apa pun) sebagai wildcard. Gunakan [_] untuk mencocokkan garis bawah literal dan [%] untuk mencocokkan karakter persen literal.

Gunakan untuk mencocokkan sekelompok objek dengan pola penamaan bersama.

"exclude"

Menghapus objek dari set yang sudah dipilih oleh aturan sebelumnya. include excludeAturan tanpa sebelumnya tidak include berpengaruh.

Gunakan untuk mengukir pengecualian dari yang lebih luas. include

"explicit"

Memilih persis objek bernama. Setiap nilai locator, termasukschema-name,database-name, dan kunci daun apa pun seperti table-name atauscalar-function-name, dicocokkan sebagai string literal. Karakter wildcard seperti%,, _[, dan tidak ] memiliki arti khusus di bawahnyaexplicit.

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.

SQL Server

Key

Memilih

server-name

Server.

database-name

Database di server.

schema-name

Skema dalam database.

table-name

Sebuah tabel secara default, atau tampilan saat digunakan dengan"table-type": "view".

table-type

"table"(default) atau"view".

procedure-name

Prosedur yang disimpan.

scalar-function-name

Fungsi bernilai skalar.

table-valued-function-name

Fungsi bernilai tabel.

inline-function-name

Fungsi inline.

aggregate-function-name

Fungsi agregat.

synonym-name

Sebuah sinonim.

sequence-name

Urutan.

type-name

Sebuah tipe.

table-type-name

Jenis tabel.

user-defined-type-name

Tipe yang ditentukan pengguna.

xml-schema-collection-name

Koleksi skema XML.

category-name

Kelas objek. Gunakan untuk menargetkan seluruh kategori objek; lihatNama kategori berdasarkan mesin.

Oracle

Key

Memilih

server-name

Server.

schema-name

Skema (pengguna Oracle).

table-name

Sebuah tabel secara default, atau tampilan saat digunakan dengan"table-type": "view".

table-type

"table"(default) atau"view".

procedure-name

Prosedur yang disimpan.

function-name

Sebuah fungsi.

package-name

Sebuah paket.

sequence-name

Urutan.

synonym-name

Sebuah sinonim.

type-name

Tipe yang ditentukan pengguna.

materialized-view-name

Pandangan yang terwujud.

category-name

Kelas objek. Gunakan untuk menargetkan seluruh kategori objek; lihatNama kategori berdasarkan mesin.

SAP ASE (Sybase ASE)

Key

Memilih

server-name

Server.

database-name

Database di server.

schema-name

Skema dalam database.

table-name

Sebuah tabel secara default, atau tampilan saat digunakan dengan"table-type": "view".

table-type

"table"(default) atau"view".

materialized-view-name

Pandangan yang terwujud.

procedure-name

Prosedur yang disimpan.

scalar-function-name

Fungsi bernilai skalar.

table-valued-function-name

Fungsi bernilai tabel.

user-defined-type-name

Tipe yang ditentukan pengguna.

default-name

Default yang ditentukan pengguna. Hanya dapat dicapai melaluiDescribe*.

category-name

Kelas objek. Gunakan untuk menargetkan seluruh kategori objek; lihatNama kategori berdasarkan mesin.

PostgreSQL

Key

Memilih

server-name

Server.

schema-name

Skema.

table-name

Tabel atau tampilan; gunakan table-type untuk membedakan.

function-name

Sebuah fungsi.

procedure-name

Prosedur yang disimpan.

sequence-name

Urutan.

materialized-view-name

Pandangan yang terwujud.

type-name

Tipe yang ditentukan pengguna.

domain-name

Sebuah domain.

category-name

Kelas objek. Gunakan untuk menargetkan seluruh kategori objek; lihatNama kategori berdasarkan mesin.

MySQL

Key

Memilih

server-name

Server.

schema-name

Skema.

table-name

Tabel atau tampilan; gunakan table-type untuk membedakan.

procedure-name

Prosedur yang disimpan.

function-name

Sebuah fungsi.

event-name

Peristiwa.

category-name

Kelas objek. Gunakan untuk menargetkan seluruh kategori objek; lihatNama kategori berdasarkan mesin.

IBM Db2 for z/OS

Key

Memilih

server-name

Server.

schema-name

Skema.

table-name

Tabel, tampilan, atau tabel sementara global; gunakan table-type untuk membedakan.

table-type

"table"(default) atau"view".

procedure-name

Prosedur tersimpan atau prosedur eksternal.

function-name

Sebuah fungsi (inline, skalar, bersumber, tabel, atau fungsi eksternal).

sequence-name

Urutan.

alias-name

Sebuah alias. Tidak ada model target PostgreSQL; gunakan dengan. StartMetadataModelExportAsScript Origin: SOURCE

mqtable-name

Tabel kueri terwujud (MQT). Tidak ada model target PostgreSQL.

type-name

Tipe yang ditentukan pengguna (tipe berbeda atau tipe terstruktur). Tidak ada model target PostgreSQL.

category-name

Kelas objek. Gunakan untuk menargetkan seluruh kategori objek; lihatNama kategori berdasarkan mesin.

IBM Db2 LUW

Key

Memilih

server-name

Server.

schema-name

Skema.

table-name

Tabel atau tampilan; gunakan table-type untuk membedakan.

procedure-name

Prosedur yang disimpan.

function-name

Fungsi (skalar, sumber, atau fungsi tabel).

sequence-name

Urutan.

module-name

Sebuah modul.

category-name

Kelas objek. Gunakan untuk menargetkan seluruh kategori objek; lihatNama kategori berdasarkan mesin.

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.

SQL Server

Nama kategori berikut berlaku untuk sumber Microsoft SQL Server.

Nilai category-name

Apa yang dikelompokkannya

Tables

Tabel dasar.

Views

Tampilan.

Procedures

Prosedur tersimpan.

SQL scalar functions

T-SQL Fungsi skalar.

SQL table-valued functions

Multi-statement fungsi bernilai meja.

SQL inline functions

Fungsi bernilai tabel sebaris.

Aggregate functions

User-defined fungsi agregat.

Synonyms

T-SQL sinonim.

Sequences

Urutan objek.

Types

Koleksi skema XHTML dan jenis kolom.

Table types

Table-typed deklarasi parameter.

User-Defined Types

Alias dan tipe yang ditentukan pengguna CLR.

XML Schema Collections

Koleksi skema XML.

Oracle

Nama kategori berikut berlaku untuk sumber Oracle.

Nilai category-name

Apa yang dikelompokkannya

Tables

Tabel.

External Tables

Tabel eksternal.

Views

Tampilan.

Packages

PL/SQL spesifikasi paket dan badan.

Procedures

Prosedur tersimpan.

Functions

Semua fungsi pengguna, termasuk skalar dan pipelined.

User Defined Types

Jenis objek.

Collection Types

Jenis VARRAY dan tabel bersarang.

Sequences

Urutan.

Materialized Views

Pandangan terwujud.

Materialized View Logs

Materialized-view ubah log.

Synonyms

Sinonim publik dan pribadi.

Clusters

Indeks dan klaster hash.

Database Links

Tautan basis data.

SAP ASE (Sybase ASE)

Nama kategori berikut berlaku untuk sumber SAP ASE (Sybase ASE).

Nilai category-name

Apa yang dikelompokkannya

Tables

Tabel dasar.

Views

Tampilan.

Procedures

Prosedur tersimpan.

Scalar Functions

T-SQL Fungsi skalar.

Table Valued Functions

Table-valued fungsi.

Materialized Views

Pandangan terwujud.

User Defined Types

Alias tipe yang ditentukan pengguna.

Defaults

Objek default terikat. Describe-only; tidak dapat dikonversi secara independen.

PostgreSQL

Nama kategori berikut berlaku untuk target PostgreSQL dan Aurora PostgreSQL.

Nilai category-name

Apa yang dikelompokkannya

Tables

Tabel dasar.

Views

Tampilan.

Functions

Fungsi.

Procedures

Prosedur tersimpan.

Sequences

Urutan.

Materialized Views

Pandangan terwujud.

Types

User-defined jenis.

Domains

Domain.

MySQL

Nama kategori berikut berlaku untuk target MySQL dan Aurora MySQL.

Nilai category-name

Apa yang dikelompokkannya

Tables

Tabel dasar.

Views

Tampilan.

Functions

Fungsi.

Procedures

Prosedur tersimpan.

Events

Acara.

IBM Db2 for z/OS

Nama kategori berikut berlaku untuk IBM Db2 untuk sumber. z/OS

Nilai category-name

Kunci pencari lokasi

Apa yang dikelompokkannya

Tables

table-name + "table-type": "table"

Tabel dasar.

Global Temporary Tables

table-name + "table-type": "table"

Tabel sementara global. Tidak ada model target PostgreSQL.

Materialized Query Tables

mqtable-name

Tabel kueri terwujud (MQT). Tidak ada model target PostgreSQL.

Views

table-name + "table-type": "view"

Tampilan.

Aliases

alias-name

Alias. Tidak ada model target PostgreSQL.

Procedures

procedure-name

Prosedur tersimpan.

Functions

function-name

Semua sub-tipe fungsi: skalar, tabel, inline, bersumber.

Sequences

sequence-name

Urutan.

User Defined Types

type-name

Tipe yang berbeda dan tipe terstruktur. Tidak ada model target PostgreSQL.

External Routines

function-name / procedure-name

Fungsi eksternal dan prosedur eksternal.

IBM Db2 LUW

Nama kategori berikut berlaku untuk target IBM Db2 LUW.

Nilai category-name

Apa yang dikelompokkannya

Tables

Tabel dasar.

Views

Tampilan.

Functions

Fungsi (skalar, bersumber, tabel).

Procedures

Prosedur tersimpan.

Sequences

Urutan.

Modules

Modul.

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" } } ] }