Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Aturan dan tindakan transformasi
Anda menggunakan tindakan transformasi untuk menentukan setiap transformasi Anda ingin menerapkan skema yang dipilih, tabel, atau tampilan. Aturan transformasi adalah opsional.
Batasan
Anda tidak dapat menerapkan lebih dari satu tindakan aturan transformasi terhadap objek yang sama (skema, tabel, kolom, table-tablespace, atau index-tablespace). Anda dapat menerapkan beberapa tindakan aturan transformasi pada tingkat apa pun selama setiap tindakan transformasi diterapkan terhadap objek yang berbeda. Namun, pembatasan ini tidak berlaku saat menggunakan aturan transformasi masking data di mana Anda dapat memiliki transformasi lain seperti
ADD-COLUMN
atauCHANGE-DATA-TYPE
untuk kolom yang sama.Nama tabel dan nama kolom dalam aturan transformasi peka huruf besar/kecil. Misalnya, Anda harus memberikan nama tabel dan nama kolom untuk database Oracle atau Db2 dalam huruf besar.
Transformasi tidak didukung untuk nama kolom dengan Right-to-Left bahasa.
Transformasi tidak dapat dilakukan pada kolom yang berisi karakter khusus (misalnya #,\,/, -) dalam namanya.
Satu-satunya transformasi yang didukung untuk kolom yang dipetakan BLOB ke/tipe CLOB data adalah dengan menjatuhkan kolom pada target.
AWS DMS tidak mendukung replikasi dua tabel sumber ke satu tabel target. AWS DMS mereplikasi catatan dari tabel ke tabel, dan dari kolom ke kolom, sesuai dengan aturan transformasi tugas replikasi. Nama objek harus unik untuk mencegah tumpang tindih.
Misalnya, tabel sumber memiliki kolom bernama
ID
dan tabel target yang sesuai memiliki kolom yang sudah ada sebelumnya yang disebutid
. Jika aturan menggunakanADD-COLUMN
pernyataan untuk menambahkan kolom baru yang disebutid
, dan SQLite pernyataan untuk mengisi kolom dengan nilai kustom, ini menciptakan duplikat, objek ambigu bernamaid
dan tidak didukung.Saat membuat aturan transformasi, sebaiknya gunakan
data-type
parameter hanya jika aturan pemilihan menentukan beberapa kolom, misalnya, saat Andacolumn-name
menyetelnya%
. Kami tidak menyarankan menggunakandata-type
untuk memilih satu kolom.
Nilai
Untuk aturan pemetaan tabel yang menggunakan jenis aturan transformasi, Anda dapat menerapkan nilai berikut.
Parameter | Kemungkinan nilai | Deskripsi |
---|---|---|
rule-type |
transformation |
Nilai yang berlaku aturan untuk setiap objek yang ditentukan oleh aturan seleksi. Gunakantransformation kecuali dinyatakan lain. |
rule-id |
Nilai numerik. | Nilai numerik yang unik untuk mengidentifikasi aturan. Jika Anda menentukan beberapa aturan transformasi untuk objek yang sama (skema, tabel, kolom, ruang antar-tabel, atau ruang tabel indeks), AWS DMS terapkan aturan transformasi dengan rule-id yang lebih rendah. |
rule-name |
Nilai alfanumerik. | Nama unik untuk mengidentifikasi aturan. |
object-locator |
Objek dengan parameter berikut:
|
Nama setiap skema, tabel atau tampilan, tabel tablespace, tablespace indeks, dan kolom yang aturan berlaku. Anda dapat menggunakan tanda persen “%” sebagai wildcard untuk semua atau sebagian dari nilai di setiap parameter
Juga, parameter
|
rule-action |
|
Transformasi yang ingin Anda terapkan ke objek. Semua tindakan aturan transformasi peka huruf besar-kecil. Nilai Ketika digunakan dengan Nilai Nilai Anda tidak dapat menggunakan Untuk tugas yang ada, tindakan aturan transformasi yang mengubah skema tabel target seperti The |
rule-target |
schema , table ,
column , table-tablespace ,
index-tablespace |
Jenis objek yang Anda ubah. Parameter Pastikan untuk menentukan nilai untuk parameter yang Anda tentukan sebagai bagian dari |
value |
Nilai alfanumerik yang mengikuti aturan penamaan untuk jenis target. | Nilai baru untuk tindakan yang memerlukan masukan, sepertirename . |
old-value |
Nilai alfanumerik yang mengikuti aturan penamaan untuk jenis target. | Nilai lama untuk tindakan yang memerlukan penggantian, sepertireplace-prefix . |
data-type |
Atau, nama tipe data pengganti saat AWS DMS mendukung transformasi tipe data kolom untuk tipe DMS data berikut:
|
Berikut ini adalah contoh parameter
Di sini, |
expression |
Nilai alfanumerik yang mengikuti sintaks. SQLite |
Ketika digunakan dengan Ketika digunakan dengan Perhatikan bahwa hanya ekspresi yang didukung untuk parameter ini. Operator dan perintah tidak didukung. Untuk informasi selengkapnya tentang penggunaan ekspresi untuk aturan transformasi, lihatMenggunakan ekspresi aturan transformasi untuk menentukan isi kolom. Untuk informasi selengkapnya tentang SQLite ekspresi, lihatMenggunakan SQLite fungsi untuk membangun ekspresi. |
primary-key-def |
Objek dengan parameter berikut:
|
Parameter ini dapat menentukan nama, jenis, dan isi dari kunci unik pada tabel atau tampilan yang diubah. Hal itu dilakukan ketikarule-action diatur kedefine-primary-key danrule-target diatur ketable . Secara default, kunci unik didefinisikan sebagai kunci primer. |
before-image-def |
Objek dengan parameter berikut:
|
Parameter ini mendefinisikan konvensi penamaan untuk mengidentifikasi kolom citra sebelumnya dan menentukan filter untuk mengidentifikasi kolom sumber mana yang dapat memiliki kolom citra sebelumnya dibuat untuk mereka pada target. Anda dapat menentukan parameter ini ketika Jangan atur keduanya Untuk
Untuk informasi lebih lanjut tentang dukungan sebelum-gambar untuk AWS DMS target endpoint, lihat: |
Contoh
contoh Ubah Nama Skema
Contoh berikut mengganti nama skema dariTest
di sumber Anda untukTest1
dalam target Anda.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "schema", "object-locator": { "schema-name": "Test" }, "value": "Test1" } ] }
contoh Ubah Nama Tabel
Contoh berikut mengganti nama tabel dariActor
di sumber Anda untukActor1
dalam target Anda.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table", "object-locator": { "schema-name": "Test", "table-name": "Actor" }, "value": "Actor1" } ] }
contoh Ubah Nama Kolom
Contoh berikut mengganti nama kolom dalam tabelActor
darifirst_name
di sumber Anda untukfname
dalam target Anda.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "4", "rule-name": "4", "rule-action": "rename", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name" : "first_name" }, "value": "fname" } ] }
contoh Mengubah nama tablespace tabel Oracle
Contoh berikut mengganti nama tablespace tabel bernamaSetSpace
untuk sebuah tabel bernamaActor
di sumber Oracle Anda untukSceneTblSpace
di titik akhir target Oracle Anda.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Play", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "Play", "table-name": "Actor", "table-tablespace-name": "SetSpace" }, "value": "SceneTblSpace" } ] }
contoh Mengubah nama sebuah tablespace indeks Oracle
Contoh berikut mengganti nama tablespace indeks bernamaSetISpace
untuk sebuah tabel bernamaActor
di sumber Oracle Anda untukSceneIdxSpace
di titik akhir target Oracle Anda.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Play", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "Play", "table-name": "Actor", "table-tablespace-name": "SetISpace" }, "value": "SceneIdxSpace" } ] }
contoh Tambahkan kolom
Contoh berikut menambahkandatetime
kolom ke tabelActor
dalam skematest
.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "add-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "actor" }, "value": "last_updated", "data-type": { "type": "datetime", "precision": 6 } } ] }
contoh Hapus kolom
Contoh berikut mengubah tabel bernamaActor
di sumber Anda untuk menghapus semua kolom yang dimulai dengan karaktercol
dari itu di target Anda.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name": "col%" } }] }
contoh Mengkonversi ke lowercase
Contoh berikut mengkonversi nama tabel dariACTOR
di sumber Anda untukactor
dalam target Anda.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "test", "table-name": "ACTOR" } }] }
contoh Mengkonversi ke huruf besar
Contoh berikut mengkonversi semua kolom di semua tabel dan semua skema dari huruf kecil di sumber Anda untuk huruf besar dalam target Anda.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "convert-uppercase", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" } } ] }
contoh Tambahkan prefiks
Contoh berikut mengubah semua tabel di sumber Anda untuk menambahkan awalanDMS_
kepada mereka dalam target Anda.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "add-prefix", "rule-target": "table", "object-locator": { "schema-name": "test", "table-name": "%" }, "value": "DMS_" }] }
contoh Ganti awalan
Contoh berikut mengubah semua kolom yang berisi awalanPre_
di sumber anda untuk mengganti awalan denganNewPre_
dalam target Anda.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "replace-prefix", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" }, "value": "NewPre_", "old-value": "Pre_" } ] }
contoh Hapus sufiks
Contoh berikut mengubah semua tabel di sumber Anda untuk menghapus akhiran_DMS
dari mereka di target Anda.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-suffix", "rule-target": "table", "object-locator": { "schema-name": "test", "table-name": "%" }, "value": "_DMS" }] }
contoh Mendefinisikan kunci primer
Contoh berikut mendefinisikan kunci primer bernamaITEM-primary-key
pada tiga kolomITEM
tabel bermigrasi ke titik akhir target Anda.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "inventory", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "define-primary-key", "rule-target": "table", "object-locator": { "schema-name": "inventory", "table-name": "ITEM" }, "primary-key-def": { "name": "ITEM-primary-key", "columns": [ "ITEM-NAME", "BOM-MODEL-NUM", "BOM-PART-NUM" ] } }] }
contoh Tentukan indeks yang unik
Contoh berikut mendefinisikan indeks unik bernamaITEM-unique-idx
pada tiga kolomITEM
tabel bermigrasi ke titik akhir target Anda.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "inventory", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "define-primary-key", "rule-target": "table", "object-locator": { "schema-name": "inventory", "table-name": "ITEM" }, "primary-key-def": { "name": "ITEM-unique-idx", "origin": "unique-index", "columns": [ "ITEM-NAME", "BOM-MODEL-NUM", "BOM-PART-NUM" ] } }] }
contoh Mengubah tipe data dari kolom target
Contoh berikut mengubah tipe data dari kolom target bernamaSALE_AMOUNT
dari tipe data yang ada keint8
.
{ "rule-type": "transformation", "rule-id": "1", "rule-name": "RuleName 1", "rule-action": "change-data-type", "rule-target": "column", "object-locator": { "schema-name": "dbo", "table-name": "dms", "column-name": "SALE_AMOUNT" }, "data-type": { "type": "int8" } }
contoh Tambahkan kolom gambar sebelum
Untuk kolom sumber bernamaemp_no
, aturan transformasi dalam contoh berikut menambahkan kolom baru bernamaBI_emp_no
target.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "employees" }, "rule-action": "add-before-image-columns", "before-image-def": { "column-prefix": "BI_", "column-suffix": "", "column-filter": "pk-only" } } ] }
Di sini, pernyataan berikut populatesBI_emp_no
kolom di baris yang sesuai dengan 1.
UPDATE employees SET emp_no = 3 WHERE BI_emp_no = 1;
Saat menulis CDC pembaruan ke AWS DMS target yang didukung, BI_emp_no
kolom memungkinkan untuk mengetahui baris mana yang memiliki nilai terbaru di emp_no
kolom.