

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
<a name="sc-metadata-model"></a>

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](https://docs.aws.amazon.com/dms/latest/APIReference/API_DescribeMetadataModel.html)
+ **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
<a name="sc-metadata-model-how-it-works"></a>

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](#sc-metadata-model-navigating). Untuk referensi API, lihat [StartMetadataModelImport](https://docs.aws.amazon.com/dms/latest/APIReference/API_StartMetadataModelImport.html).

1. **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](assessment-reports.md).

1. **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](schema-conversion-convert.md).

1. **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, lihat[Penyedia data virtual](virtual-data-provider.md). Untuk informasi selengkapnya tentang menerapkan objek yang dikonversi, lihat[Menerapkan kode konversi Anda](schema-conversion-save-apply.md#schema-conversion-apply).

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](assessment-reports.md).

Untuk pasangan migrasi yang didukung, Anda juga dapat membuat model metadata pernyataan kustom dari definisi SQL menggunakan. [StartMetadataModelCreation](https://docs.aws.amazon.com/dms/latest/APIReference/API_StartMetadataModelCreation.html) Untuk informasi selengkapnya, lihat [Buat model pernyataan](#sc-metadata-model-creation).

## Menavigasi pohon model metadata
<a name="sc-metadata-model-navigating"></a>

Anda dapat menavigasi pohon metadata menggunakan permintaan API berikut:
+ [DescribeMetadataModelChildren](https://docs.aws.amazon.com/dms/latest/APIReference/API_DescribeMetadataModelChildren.html)— 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](https://docs.aws.amazon.com/dms/latest/APIReference/API_DescribeMetadataModel.html)— Mengembalikan nama, jenis, dan definisi SQL dari model metadata tertentu.

Kedua permintaan memerlukan `Origin` parameter (`SOURCE`atau`TARGET`) dan menggunakan aturan pemilihan untuk mengidentifikasi model metadata. Pola navigasinya sama untuk pohon sumber dan target. Untuk informasi selengkapnya tentang format aturan pemilihan, lihat[Aturan pemilihan dalam Konversi Skema DMS](sc-selection-rules.md).

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, lihat[Mengonversi skema database dalam Konversi Skema DMS: panduan langkah demi langkah](schema-conversion-convert.md).

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.

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**.

1. 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.

1. 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 ]

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](https://docs.aws.amazon.com/cli/latest/reference/dms/start-metadata-model-import.html) dengan aturan pemilihan yang mengidentifikasi model metadata tingkat atas. Sertakan `server-name` dan tingkat atas `category-name` (baik `Databases` atau`Schemas`, tergantung pada mesin database) di. `object-locator` Untuk informasi selengkapnya tentang struktur aturan pemilihan, lihat[Aturan pemilihan dalam Konversi Skema DMS](sc-selection-rules.md).

```
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](https://docs.aws.amazon.com/cli/latest/reference/dms/describe-metadata-model-imports.html) 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](https://docs.aws.amazon.com/cli/latest/reference/dms/describe-metadata-model-children.html) 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 dengan`describe-metadata-model-imports`. Kemudian hubungi`describe-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 menggunakan`describe-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.

[Untuk mengambil definisi SQL dari model metadata, gunakan deskripsi-metadata-model.](https://docs.aws.amazon.com/cli/latest/reference/dms/describe-metadata-model.html) 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**  
`Definition`Bidang mungkin tidak diisi untuk beberapa model metadata, seperti skema dan kategori.

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](https://docs.aws.amazon.com/cli/latest/reference/dms/get-target-selection-rules.html) 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
<a name="sc-metadata-model-creation"></a>

**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](https://docs.aws.amazon.com/dms/latest/APIReference/API_StartMetadataModelCreation.html) 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.](https://docs.aws.amazon.com/cli/latest/reference/dms/start-metadata-model-creation.html) 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.

------