View a markdown version of this page

Model metadata 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.

Model metadata dalam Konversi Skema DMS

Ketika Anda bekerja dengan DMS Schema Conversion, layanan mewakili skema database Anda sebagai pohon hierarkis. Pohon ini disebut pohon metadata, dan berlaku untuk skema sumber dan target. Setiap elemen dalam pohon, termasuk elemen root (“Server”), adalah model metadata.

Pohon metadata berisi dua jenis elemen:

  • Objek - Mewakili objek database aktual seperti tabel, fungsi, tampilan, urutan, dan indeks. Anda dapat mengambil definisi SQL dari suatu objek menggunakan permintaan. DescribeMetadataModel

  • Kategori — Wadah pengelompokan virtual seperti “Skema”, “Tabel”, “Fungsi”, dan “Indeks”. Kategori mengatur objek di pohon untuk navigasi tetapi tidak memiliki definisi SQL sendiri.

Pohon metadata memuat data hanya ketika Anda memintanya. Pendekatan ini disebut on-demand loading (juga dikenal sebagai lazy loading), yang berarti DMS Schema Conversion mengambil data dari database Anda hanya sesuai kebutuhan. Anda menggunakan operasi impor untuk memuat metadata — baik dengan menyegarkan model metadata tertentu atau mengimpor seluruh subpohon sekaligus. Operasi seperti penilaian dan konversi juga memuat pohon metadata secara otomatis.

Cara kerja model metadata

Model metadata dalam Konversi Skema DMS mengikuti siklus hidup operasi. Operasi yang memodifikasi pohon metadata (seperti impor dan konversi) bersifat asinkron. Anda memulai permintaan untuk operasi ini, dan itu berjalan di latar belakang. Panggil API deskripsi yang sesuai untuk memeriksa status permintaan. Operasi yang membaca pohon (seperti menggambarkan anak-anak atau definisi) sinkron.

catatan

Dalam Konversi Skema DMS, istilah operasi dan permintaan digunakan secara bergantian.

Alur kerja tipikal mencakup langkah-langkah berikut:

  1. Impor - Muat metadata dari sumber atau basis data target Anda ke dalam pohon metadata. Anda dapat memuat model metadata awal atau memuat ulang model yang ada dari database. Untuk informasi selengkapnya, lihat Menavigasi pohon. Untuk referensi API, lihat StartMetadataModelImport.

  2. Menilai — Menganalisis model metadata sumber yang dipilih untuk mengidentifikasi kompleksitas konversi dan potensi masalah. Untuk informasi selengkapnya, lihat Membuat laporan penilaian migrasi database dengan Konversi Skema DMS.

  3. Konversi — Konversi model metadata sumber yang dipilih ke format yang kompatibel dengan target. Definisi yang dikonversi disimpan sebagai bagian dari pohon metadata target. Untuk informasi selengkapnya, lihat Mengonversi skema database dalam Konversi Skema DMS: panduan langkah demi langkah.

  4. Ekspor — Simpan definisi metadata. Anda dapat mengekspor metadata sumber dan target sebagai skrip SQL ke bucket Amazon S3 Anda. Untuk target non-virtual, Anda juga dapat menerapkan objek yang dikonversi langsung ke database target Anda. Untuk informasi lebih lanjut tentang target virtual, lihatPenyedia data virtual. Untuk informasi selengkapnya tentang menerapkan objek yang dikonversi, lihatMenerapkan kode konversi Anda.

Setelah menilai atau mengonversi model metadata sumber, Anda dapat membuat laporan penilaian untuk meninjau hasilnya. Untuk informasi selengkapnya, lihat Membuat laporan penilaian migrasi database dengan Konversi Skema DMS.

Untuk pasangan migrasi yang didukung, Anda juga dapat membuat model metadata pernyataan kustom dari definisi SQL menggunakan. StartMetadataModelCreation Untuk informasi selengkapnya, lihat Buat model pernyataan.

Menavigasi pohon model metadata

Anda dapat menavigasi pohon metadata menggunakan permintaan API berikut:

  • DescribeMetadataModelChildren— Mengembalikan anak-anak dari model metadata yang diberikan. Setiap anak menyertakan aturan pemilihan (filter yang mengidentifikasi model metadata tertentu) yang dapat Anda teruskan ke panggilan berikutnya untuk menelusuri lebih dalam.

  • DescribeMetadataModel— Mengembalikan nama, jenis, dan definisi SQL dari model metadata tertentu.

Kedua permintaan memerlukan Origin parameter (SOURCEatauTARGET) dan menggunakan aturan pemilihan untuk mengidentifikasi model metadata. Pola navigasinya sama untuk pohon sumber dan target. Untuk informasi selengkapnya tentang format aturan pemilihan, lihatAturan pemilihan dalam Konversi Skema DMS.

Pilih antarmuka pilihan Anda untuk melihat petunjuk navigasi.

AWS Management Console

Setelah membuka proyek konversi skema, Anda dapat menelusuri pohon metadata sumber dan target. Untuk informasi selengkapnya tentang membuka proyek, lihatMengonversi skema database dalam Konversi Skema DMS: panduan langkah demi langkah.

Konsol menampilkan dua panel pohon: pohon sumber di sebelah kiri dan pohon target di sebelah kanan. Setiap panel terdiri dari header yang menunjukkan mesin database, menu Actions, dan pohon metadata itu sendiri.

Menu Tindakan bergantung pada konteks. Tidak setiap model metadata memiliki semua tindakan yang tersedia. Pohon sumber dan target memiliki daftar tindakan yang berbeda.

Untuk melihat definisi SQL dan properti model metadata, pilih di pohon. Panel tengah menampilkan tab Source SQL dan Target SQL dengan definisi, dan tab Properties dengan atribut metadata. Tab tambahan mungkin muncul tergantung pada jenis model metadata — misalnya, Kolom untuk tabel dan tampilan, atau Parameter untuk rutinitas.

Untuk memperluas anak-anak dari model metadata, pilih ikon perluas (segitiga hitam) di sebelahnya. Pilih ikon perluas atau nama model metadata untuk memuat turunannya secara otomatis.

Saat Anda memilih model metadata sumber yang telah dikonversi, model metadata target yang sesuai dipilih secara otomatis di panel pohon target.

Jelajahi pohon metadata

Panduan berikut menunjukkan cara menelusuri pohon metadata dan melihat definisi model metadata.

  1. Di panel pohon, pilih ikon perluas di sebelah server Anda untuk menampilkan kategori tingkat atas, seperti Database atau Skema tergantung pada mesin database.

  2. Lanjutkan memperluas kategori untuk menavigasi ke model metadata yang ingin Anda jelajahi. Misalnya, perluas Database, lalu database tertentu, lalu Skema, lalu nama skema, lalu kategori seperti Tabel, Tampilan, atau Prosedur. Beberapa mesin database tidak memiliki tingkat Database — dalam hal ini, perluas Skema secara langsung.

  3. Pilih model metadata untuk melihat definisi SQL di panel tengah. Tab SQL Sumber menunjukkan definisi sumber, dan tab Target SQL menunjukkan definisi yang dikonversi jika model metadata telah dikonversi.

AWS CLI
Jelajahi pohon metadata

Untuk menelusuri pohon metadata, Anda mengikuti pola berulang: impor metadata pada tingkat tertentu, lalu jelaskan anak-anak pada tingkat itu. Ulangi proses ini untuk mengebor lebih dalam ke pohon.

Mulailah dengan memanggil start-metadata-model-import dengan aturan pemilihan yang mengidentifikasi model metadata tingkat atas. Sertakan server-name dan tingkat atas category-name (baik Databases atauSchemas, tergantung pada mesin database) di. object-locator Untuk informasi selengkapnya tentang struktur aturan pemilihan, lihatAturan pemilihan dalam Konversi Skema DMS.

aws dms start-metadata-model-import \ --migration-project-identifier "my-migration-project" \ --origin SOURCE \ --refresh \ --selection-rules '{"rules":[{"rule-type":"selection","rule-id":"1", "rule-name":"1","object-locator":{"server-name":"my-server","category-name":"top-level-category"},"rule-action":"explicit"}]}'

Permintaan impor bersifat asinkron. Gunakan describe-metadata-model-imports untuk memeriksa status sebelum menjelajah. Gunakan request-id filter dengan RequestIdentifier nilai yang dikembalikan oleh start-metadata-model-import untuk menemukan impor tertentu:

aws dms describe-metadata-model-imports \ --migration-project-identifier "my-migration-project" \ --filters Name=request-id,Values=request-identifier

Setelah impor selesai, panggil describe-metadata-model-children untuk mengambil anak-anak pada tingkat itu:

aws dms describe-metadata-model-children \ --migration-project-identifier "my-migration-project" \ --origin SOURCE \ --selection-rules '{"rules":[{"rule-type":"selection","rule-id":"1", "rule-name":"1","object-locator":{"server-name":"my-server"}, "rule-action":"explicit"}]}'

Setiap anak dalam tanggapan mencakup SelectionRules bidang. Teruskan aturan pemilihan ini ke impor berikutnya dan jelaskan panggilan untuk menelusuri lebih dalam:

{ "MetadataModelChildren": [ { "MetadataModelName": "Schemas", "SelectionRules": "{\"rules\":[{\"rule-type\":\"selection\",\"rule-id\":\"1\",\"rule-name\":\"1\",\"object-locator\":{\"server-name\":\"src-database-server\",\"category-name\":\"Schemas\"},\"rule-action\":\"explicit\"}]}" } ] }

Untuk menelusuri ke tingkat berikutnya, impor pada tingkat itu menggunakan aturan pemilihan yang dikembalikan dari describe-metadata-model-children panggilan sebelumnya, dan kemudian jelaskan anak-anaknya:

aws dms start-metadata-model-import \ --migration-project-identifier "my-migration-project" \ --origin SOURCE \ --refresh \ --selection-rules 'selection-rules-from-previous-response'

Sebelum menjelaskan anak-anak, pastikan impor telah selesai dengan memeriksa statusnya dengandescribe-metadata-model-imports. Kemudian hubungidescribe-metadata-model-children:

aws dms describe-metadata-model-children \ --migration-project-identifier "my-migration-project" \ --origin SOURCE \ --selection-rules 'selection-rules-from-previous-response'

Respons mengembalikan anak-anak pada tingkat itu, masing-masing dengan aturan seleksi mereka sendiri. Teruskan aturan pemilihan ini ke impor berikutnya dan jelaskan panggilan untuk melanjutkan pengeboran lebih dalam ke pohon.

{ "MetadataModelChildren": [ { "MetadataModelName": "child-name", "SelectionRules": "selection-rules-JSON-string" } ] }

Menggunakan --refresh dibandingkan dengan impor penuh

Gunakan --refresh untuk memuat ulang model metadata tertentu dari database. Ini juga memuat nama-nama anak-anak langsungnya. Anda dapat membuat daftar anak-anak ini menggunakandescribe-metadata-model-children, tetapi untuk menjelaskan atau menelusuri mereka lebih lanjut, Anda harus menjalankan impor lain di tingkat anak.

Untuk memuat seluruh subpohon (misalnya, semua objek dalam skema, database, atau kategori tertentu seperti Tabel atau Prosedur), hilangkan --refresh bendera dan ubah rule-action ke include dalam aturan pemilihan:

aws dms start-metadata-model-import \ --migration-project-identifier "my-migration-project" \ --origin SOURCE \ --selection-rules '{"rules":[{"rule-type":"selection","rule-id":"1", "rule-name":"1","object-locator":{...}, "rule-action":"include"}]}'

Memuat subpohon penuh dapat memakan waktu beberapa menit atau jam untuk skema besar dan menempatkan beban pada database Anda. Untuk eksplorasi interaktif, gunakan --refresh dan bor ke cabang tertentu sesuai kebutuhan.

Dapatkan definisi model metadata

Untuk mengambil definisi SQL dari model metadata, gunakan deskripsi-metadata-model. Lulus aturan pemilihan yang mengidentifikasi model metadata spesifik dari respons sebelumnya: describe-metadata-model-children

aws dms describe-metadata-model \ --migration-project-identifier "my-migration-project" \ --origin SOURCE \ --selection-rules 'selection-rules-for-target-object'

Responsnya mencakup nama model metadata, tipe, dan definisi SQL:

{ "MetadataModelName": "employees", "MetadataModelType": "table", "Definition": "CREATE TABLE hr.employees(\n id integer NOT NULL,\n name varchar(100),\n department_id integer\n);" }
catatan

DefinitionBidang mungkin tidak diisi untuk beberapa model metadata, seperti skema dan kategori.

Lihat definisi yang dikonversi

Setelah Anda mengonversi model metadata sumber, definisi yang dikonversi tersedia di pohon target. Ada tiga cara untuk mengambilnya.

Menggunakan aturan pemilihan target dari respons sumber

Saat Anda menjelaskan model metadata sumber setelah konversi, respons menyertakan TargetMetadataModels bidang dengan aturan pemilihan target:

{ "MetadataModelName": "employees", "MetadataModelType": "table", "TargetMetadataModels": [ { "MetadataModelName": "employees", "SelectionRules": "{\"rules\":[{\"rule-type\":\"selection\",\"rule-id\":\"1\",\"rule-name\":\"1\",\"object-locator\":{\"server-name\":\"tgt-database-server\",\"schema-name\":\"hr\",\"table-name\":\"employees\",\"table-type\":\"table\"},\"rule-action\":\"explicit\"}]}" } ], "Definition": "CREATE TABLE hr.employees(\n id integer NOT NULL,\n name varchar(100),\n department_id integer\n);" }

Lulus aturan pemilihan dari TargetMetadataModels ke describe-metadata-model dengan--origin TARGET:

aws dms describe-metadata-model \ --migration-project-identifier "my-migration-project" \ --origin TARGET \ --selection-rules 'selection-rules-from-TargetMetadataModels'

Respons berisi definisi SQL yang dikonversi dalam sintaks mesin target:

{ "MetadataModelName": "employees", "MetadataModelType": "table", "Definition": "CREATE TABLE hr.employees (\nid INT NOT NULL,\nname VARCHAR(100) DEFAULT NULL,\ndepartment_id INT DEFAULT NULL,\nPRIMARY KEY (id)\n);" }

Menggunakan get-target-selection-rules

Anda dapat menggunakan get-target-selection-rules untuk mengonversi aturan pemilihan sumber menjadi rekan targetnya secara langsung, tanpa terlebih dahulu memanggil sumber: describe-metadata-model

aws dms get-target-selection-rules \ --migration-project-identifier "my-migration-project" \ --selection-rules 'source-selection-rules'

Menavigasi pohon target secara langsung

Anda juga dapat menelusuri pohon target dengan cara yang sama seperti pohon sumber, menggunakan--origin TARGET. Ini berguna ketika Anda ingin menjelajahi semua objek yang dikonversi tanpa memulai dari sumbernya.

Buat model metadata pernyataan

catatan

Pembuatan pernyataan saat ini hanya mendukung petunjuk berikut: dari SQL Server ke Aurora PostgreSQL, atau dari SQL Server ke Amazon RDS for PostgreSQL.

Anda dapat membuat model metadata pernyataan dari definisi SQL menggunakan. StartMetadataModelCreation Ini berguna ketika Anda ingin mengonversi pernyataan SQL yang tidak ada sebagai objek dalam database sumber Anda - misalnya, kueri aplikasi atau kode SQL ad-hoc.

AWS Management Console

Membuat model metadata pernyataan tidak tersedia di AWS Management Console. Gunakan AWS CLI atau AWS SDK sebagai gantinya.

AWS CLI

Untuk membuat model metadata pernyataan, gunakan start-metadata-model-creation. Aturan pemilihan harus menentukan skema yang ada di database sumber Anda. Model metadata yang dibuat muncul di bawah Statements kategori dalam skema itu.

aws dms start-metadata-model-creation \ --migration-project-identifier "my-migration-project" \ --metadata-model-name "GetAllEmployees" \ --selection-rules '{"rules":[{"rule-type":"selection","rule-id":"1", "rule-name":"1","object-locator":{"server-name":"my-server", "database-name":"my_database","schema-name":"dbo"}, "rule-action":"explicit"}]}' \ --properties '{"StatementProperties":{"Definition":"SELECT * FROM dbo.Employees;"}}'

Setelah pembuatan, Anda dapat menemukan model metadata di pohon di bawah Statements kategori dan menjelaskannya:

{ "MetadataModelName": "GetAllEmployees", "MetadataModelType": "statement", "Definition": "SELECT * FROM dbo.Employees;" }

Setelah pembuatan, Anda dapat menjalankan operasi apa pun yang didukung pada model metadata pernyataan, seperti penilaian, konversi, atau ekspor.