Ruang kerja konversi

Ruang kerja konversi membantu Anda mengonversi skema dan objek dari database sumber ke dalam sintaksis SQL yang kompatibel dengan database tujuan. Halaman ini memberikan ringkasan ruang kerja konversi Database Migration Service:

Ada jenis data tertentu yang tidak didukung untuk migrasi Oracle. Untuk mengetahui informasi selengkapnya, lihat Batasan yang diketahui untuk jenis data.

Ringkasan progres konversi

Informasi ringkasan yang kuat di ruang kerja konversi, tempat Anda dapat memperoleh insight tentang jumlah total masalah konversi yang belum terselesaikan atau telah diselesaikan, peningkatan yang dibantu Gemini, dan performa umum proses konversi Anda.

Layar ruang kerja konversi dengan tab Ringkasan Konversi tempat
           Anda dapat melihat jumlah objek yang dikonversi, masalah konversi,
           dan peningkatan konversi yang dibantu Gemini.
Gambar 1. Layar ringkasan ruang kerja konversi, tempat Anda dapat memantau progres konversi, melihat masalah, dan memeriksa kode PostgreSQL yang dihasilkan. (klik untuk memperbesar)
Layar ruang kerja konversi dengan tab Ringkasan Konversi tempat
           Anda dapat melihat jumlah objek yang dikonversi, masalah konversi,
           dan peningkatan konversi yang dibantu Gemini.

Anda dapat menggunakan tampilan ini untuk memfilter objek dalam skema menurut jenis, tingkat keparahan masalah, tindakan yang diperlukan, atau status konversi.

Layar ruang kerja konversi yang menunjukkan cara memfilter objek yang dikonversi menurut jenis atau status.
Gambar 2. Objek yang dikonversi difilter menurut status dan jenis objek. (klik untuk memperbesar)
Layar ruang kerja konversi yang menunjukkan cara memfilter objek yang dikonversi menurut jenis atau status.

Untuk mengetahui informasi selengkapnya tentang cara menggunakan ringkasan konversi untuk memeriksa hasil konversi, lihat Bekerja dengan ruang kerja konversi.

Konversi kode dan skema deterministik

Saat Anda membuat ruang kerja konversi, Database Migration Service akan segera melakukan konversi skema awal menggunakan serangkaian aturan konversi deterministik yang memetakan jenis data dan objek Oracle tertentu ke jenis data dan objek PostgreSQL tertentu. Proses ini mendukung subkumpulan objek database Oracle yang sangat spesifik.

Konversi kode deterministik memberikan dukungan untuk objek database Oracle berikut:

Elemen skema Oracle yang didukung

  • Batasan
  • Indeks (hanya indeks yang dibuat dalam skema yang sama dengan tabelnya)
  • Tampilan Terwujud
  • Jenis Objek (dukungan sebagian)
  • Urutan
  • Sinonim
  • Tabel
  • Dilihat

Elemen kode Oracle yang didukung

  • Pemicu (khusus tingkat tabel)
  • Paket
  • Functions
  • Prosedur Tersimpan

Editor SQL interaktif

Editor SQL interaktif memungkinkan Anda mengubah sintaksis PostgreSQL yang dikonversi secara langsung di Database Migration Service. Anda dapat menggunakannya untuk memperbaiki masalah konversi atau menyesuaikan skema agar lebih sesuai dengan kebutuhan Anda. Beberapa objek tidak dapat diubah di editor bawaan.

Objek Oracle yang dapat diedit

Setelah mengonversi kode dan skema database sumber, Anda dapat menggunakan editor interaktif untuk mengubah SQL yang dihasilkan untuk jenis objek tertentu. Objek Oracle berikut didukung oleh editor:

  • Pemicu tabel (memerlukan izin)
  • Tampilan terwujud
  • Paket
  • Fungsi, prosedur tersimpan
  • Sinonim
  • Dilihat
  • Batasan
  • Indeks
  • Urutan

Selain itu, beberapa objek dikonversi tetapi tidak tersedia untuk diedit secara langsung di dalam Database Migration Service. Untuk mengubah objek tersebut, Anda harus melakukan update langsung di database tujuan setelah Anda menerapkan skema dan kode yang dikonversi.

Objek yang tidak didukung untuk pengeditan:

  • Jenis objek yang ditentukan pengguna
  • Tabel
  • Skema

Mempercepat konversi kode dan skema dengan Gemini

Database Migration Service mengintegrasikan Gemini untuk Google Cloud ke dalam ruang kerja konversi untuk membantu Anda mempercepat dan meningkatkan proses konversi di area berikut:

  • Tingkatkan hasil konversi deterministik dengan konversi otomatis yang didukung Gemini untuk memanfaatkan kecanggihan AI guna mengurangi secara signifikan jumlah penyesuaian manual yang diperlukan dalam kode PostgreSQL Anda.

  • Menyediakan fitur penjelasan kode dengan asisten konversi: serangkaian perintah khusus yang dapat membantu Anda lebih memahami logika konversi, menyarankan perbaikan untuk masalah konversi, atau mengoptimalkan kode yang dikonversi.

  • Percepat penerapan perbaikan untuk masalah konversi dengan saran konversi kode Gemini: mekanisme yang memungkinkan model Gemini belajar saat Anda memperbaiki masalah konversi dan menyarankan perubahan pada objek rusak lainnya di ruang kerja.

Untuk mengetahui informasi selengkapnya tentang konversi yang didukung Gemini, lihat halaman berikut:

File pemetaan konversi

Anda dapat menyesuaikan logika konversi dengan file pemetaan konversi. File pemetaan konversi adalah file teks yang berisi petunjuk yang tepat (disebut sebagai petunjuk konversi) tentang cara mengonversi objek Oracle menjadi objek PostgreSQL.

Arahan konversi yang didukung

Database Migration Service mendukung direktif konversi berikut untuk file pemetaan konversi:

EXPORT_SCHEMA

EXPORT_SCHEMA adalah direktif wajib untuk semua file pemetaan konversi. Database Migration Service memerlukan petunjuk ini untuk memastikan bahwa skema sumber Anda dikonversi ke skema tujuan yang benar. Pastikan file pemetaan konversi Anda menyertakan baris ini:

EXPORT_SCHEMA 1

SCHEMA

Database Migration Service harus dapat menentukan skema mana yang berisi objek yang harus diubah dengan perintah konversi Anda. Direktif SCHEMA menghasilkan penyesuaian berikut pada alur konversi:

  • Database Migration Service hanya mengonversi skema ini. Jika Anda perlu mengonversi skema lain dalam satu ruang kerja konversi, Anda harus mengupload beberapa file dengan skema yang berbeda.
  • Semua petunjuk penyesuaian lainnya yang diberikan dalam file Anda hanya berlaku untuk objek dalam skema tertentu ini.

Gunakan format berikut:

SCHEMA SCHEMA_NAME

Dengan SCHEMA_NAME adalah nama skema Anda dalam database sumber.

  • Jika Anda menyertakan direktif ini dalam file pemetaan konversi, semua penyesuaian hanya diterapkan ke objek yang ada dalam skema tertentu ini. Jika ingin menyesuaikan objek dalam skema lain, Anda harus membuat beberapa file pemetaan konversi dan menguploadnya ke ruang kerja konversi.
  • Jika Anda melewati petunjuk ini, Anda harus memberikan nama skema eksplisit untuk objek yang diubah oleh petunjuk konversi lainnya. Misalnya, daripada menggunakan SOURCE_TABLE_NAME untuk REPLACE_TABLES, Anda harus menggunakan "SCHEMA_NAME.SOURCE_TABLE_NAME".

DATA_TYPE

Anda dapat menggunakan direktif ini untuk memetakan secara eksplisit jenis data yang didukung antara sintaksis Oracle dan PostgreSQL. Petunjuk ini mengharapkan daftar pemetaan yang dipisahkan dengan koma. Seluruh definisi harus disediakan dalam satu baris, tetapi Anda menyertakan beberapa direktif DATA_TYPE dalam file konfigurasi. Gunakan format berikut:

DATA_TYPE ORACLE_DATA_TYPE1:PGSQL_DATA_TYPE1
DATA_TYPE ORACLE_DATA_TYPE2:PGSQL_DATA_TYPE2...

Dengan ORACLE_DATA_TYPE dan PGSQL_DATA_TYPE adalah jenis data yang didukung oleh versi Oracle dan PostgreSQL yang Anda gunakan dalam migrasi. Untuk mengetahui informasi tentang versi yang didukung, lihat Ringkasan skenario.

Contoh:

DATA_TYPE REAL:double precision,SMALLINT:integer

Untuk mengetahui informasi selengkapnya tentang jenis data Oracle dan PostgreSQL, lihat:

MODIFY_TYPE

Dengan direktif MODIFY_TYPE, Anda dapat mengontrol jenis data yang dikonversi oleh Database Migration Service untuk kolom tertentu dalam tabel sumber. Petunjuk ini mengharapkan daftar pemetaan yang dipisahkan dengan koma. Seluruh definisi harus diberikan dalam satu baris, tetapi Anda menyertakan beberapa direktif MODIFY_TYPE dalam file konfigurasi. Gunakan format berikut:

MODIFY_TYPE SOURCE_TABLE_NAME1:COLUMN_NAME:EXPECTED_END_RESULT_DATA_TYPE
MODIFY_TYPE SOURCE_TABLE_NAME2:COLUMN_NAME:EXPECTED_END_RESULT_DATA_TYPE...

Dengan:

  • SOURCE_TABLE_NAME adalah nama tabel yang berisi kolom tempat Anda ingin mengubah jenis data.
  • COLUMN_NAME adalah nama kolom yang pemetaan konversinya ingin Anda sesuaikan.
  • EXPECTED_END_RESULT_DATA_TYPE adalah jenis data PostgreSQL yang ingin Anda gunakan untuk kolom yang dikonversi.

Contoh:

MODIFY_TYPE events:dates_and_times:DATETIME,users:pseudonym:TEXT

PG_INTEGER_TYPE

Secara default,Database Migration Service mengonversi jenis NUMBER(p,s) ke jenis DECIMAL(p,s) PostgreSQL.

Anda dapat mengubah perilaku ini dengan direktif PG_INTEGER_TYPE. Tetapkan nilainya ke 1 dan paksa semua jenis NUMBER dengan presisi dan skala (NUMBER(p,s)) dikonversi menjadi jenis smallint, integer, atau bigint PostgreSQL berdasarkan jumlah digit presisi.

Sertakan setelan berikut dalam file pemetaan konversi Anda:

PG_INTEGER_TYPE 1

PG_NUMERIC_TYPE

Tetapkan direktif ini ke 1 jika Anda ingin mengonversi semua jenis NUMBER dengan presisi dan skala (NUMBER(p,s)) ke jenis real atau float PostgreSQL (berdasarkan jumlah digit presisinya).

Jika Anda menetapkan direktif ini ke 0, nilai NUMBER(p,s) akan mempertahankan nilai aslinya yang tepat dan menggunakan jenis data PostgreSQL internal.

Sertakan setelan berikut dalam file pemetaan konversi Anda:

PG_NUMERIC_TYPE 1

DEFAULT_NUMERIC

Konversi default untuk NUMBERs tanpa presisi mengubah apakah Anda juga menggunakan PG_INTEGER_TYPE direktif:

  • Jika Anda menggunakan direktif PG_INTEGER, NUMBER tanpa presisi akan dikonversi menjadi nilai DECIMAL.
  • Jika Anda tidak menggunakan direktif PG_INTEGER, NUMBER tanpa presisi akan dikonversi menjadi nilai BIGINT.

Anda dapat mengubah perilaku ini dan menggunakan direktif DEFAULT_NUMERIC untuk menentukan jenis data yang harus digunakan untuk jenis NUMBER tanpa titik presisi yang ditentukan. Gunakan format berikut:

DEFAULT_NUMERIC POSTGRESQL_NUMERIC_DATA_TYPE

Dengan POSTGRESQL_NUMERIC_DATA_TYPE adalah salah satu dari berikut: integer, smallint, bigint.

Contoh:

DEFAULT_NUMERIC integer

REPLACE_COLS

Anda dapat menggunakan perintah REPLACE_COLS untuk mengganti nama kolom dalam skema yang dikonversi. Petunjuk ini mengharapkan daftar pemetaan yang dipisahkan dengan koma. Gunakan format berikut:

REPLACE_COLS SOURCE_TABLE_NAME1(SOURCE1_TABLE1_COLUMN_NAME1:DESTINATION_TABLE1_COLUMN_NAME1,SOURCE_TABLE1_COLUMN_NAME2:DESTINATION_TABLE1_COLUMN_NAME2),SOURCE_TABLE_NAME2(SOURCE_TABLE2_COLUMN_NAME1:DESTINATION_TABLE2_COLUMN_NAME1,SOURCE_TABLE2_COLUMN_NAME2:DESTINATION_TABLE2_COLUMN_NAME2)...

Dengan:

  • SOURCE_TABLE_NAME adalah nama tabel yang berisi kolom yang namanya ingin Anda ubah.
  • SOURCE_COLUMN_NAME adalah nama kolom di sumber yang ingin Anda ubah namanya.
  • DESTINATION_COLUMN_NAME adalah nama baru untuk kolom yang ingin Anda gunakan dalam skema yang dikonversi.

Contoh:

REPLACE_COLS events(dates_and_times:event_dates),users(pseudonym:nickname)

REPLACE_TABLES

Anda dapat menggunakan direktif REPLACE_TABLES untuk mengganti nama tabel atau memindahkannya ke skema baru. Direktif ini mengharapkan daftar pemetaan yang dipisahkan dengan spasi. Untuk mengetahui informasi selengkapnya tentang sintaksis untuk setiap kasus penggunaan, luaskan bagian berikut.

Mengganti nama tabel

Untuk mengganti nama tabel dalam skema yang dikonversi, gunakan format berikut:

REPLACE_TABLES SOURCE_TABLE_NAME1:DESTINATION_TABLE_NAME1 SOURCE_TABLE_NAME2:DESTINATION_TABLE_NAME2

Dengan:

  • SOURCE_TABLE_NAME adalah nama tabel sumber yang ingin Anda ganti namanya dalam skema yang dikonversi.
  • DESTINATION_TABLE_NAME adalah nama baru untuk tabel yang ingin Anda gunakan dalam skema yang dikonversi.

Contoh:

REPLACE_TABLES "events:login_events" "users:platform_users"

Memindahkan tabel antar-skema

Anda dapat menggunakan direktif ini untuk memindahkan tabel antar-skema dengan menambahkan awalan skema ke nama tabel baru. Mekanisme ini dapat digunakan terlepas dari cara Anda menggunakan direktif SCHEMA untuk seluruh file konversi. Contoh:

REPLACE_TABLES "events:NEW_SCHEMA_NAME.login_events"
    

Alias untuk menyesuaikan jenis data

Saat menggunakan direktif konversi untuk mengubah cara Database Migration Service mengonversi berbagai jenis data (misalnya, dengan direktif DATA_TYPE, MODIFY_TYPE, atau PG_NUMERIC_TYPE), Anda dapat menggunakan alias, bukan jenis data SQL sumber.

Luaskan bagian berikut untuk melihat daftar alias jenis data yang didukung oleh Database Migration Service.

Alias jenis data

Alias Dikonversi ke jenis PostgreSQL
bigint, int8 BIGINT
bool, boolean BOOLEAN
bytea BYTEA
char, character CHAR
character varying, varchar VARCHAR
date DATE
decimal, numeric DECIMAL
double precision, float8 DOUBLE PRECISION
real, float4 REAL
int, integer, int4 INTEGER
int2 SMALLINT
interval INTERVAL
json JSON
smallint SMALLINT
text TEXT
time TIME
timestamp TIMESTAMP
timestamptz TIMESTAMPTZ
timetz TIMETZ
uuid UUID
XML XML

Contoh file pemetaan konversi

Lihat contoh file pemetaan konversi berikut yang menggunakan semua direktif konversi skema yang didukung:

EXPORT_SCHEMA 1
SCHEMA root

PG_NUMERIC_TYPE 0
PG_INTEGER_TYPE 1
DEFAULT_NUMERIC integer
DATA_TYPE NUMBER(4\,0):integer
MODIFY_TYPE events:dates_and_times:TIMESTAMP
REPLACE_COLS events(dates_and_times:event_dates),users(pseudonym:nickname)
REPLACE_TABLES events:login_events users:platform_users

Hasil penggunaan file ini adalah sebagai berikut:

  • EXPORT_SCHEMA 1 adalah perintah wajib.
  • SCHEMA root menghasilkan penyesuaian berikut pada alur konversi:
    • Database Migration Service hanya melakukan konversi untuk entity dalam skema root. Tidak ada skema lain yang dikonversi.
    • Semua petunjuk penyesuaian lainnya dalam file ini hanya berlaku untuk kolom dan jenis data yang ditentukan dalam skema root.
  • PG_INTEGER_TYPE 1 membuat Database Migration Service mengonversi semua jenis data numerik Oracle yang ditemukan dalam tabel di skema root menjadi jenis khusus PostgreSQL, bukan jenis numerik yang kompatibel dengan ANSI.
  • DEFAULT_NUMERIC menyebabkan Database Migration Service mengonversi nilai NUMBER yang tidak memiliki titik presisi yang ditentukan menjadi jenis INTEGER PostgreSQL. Hal ini hanya berlaku untuk nilai NUMBER yang ditemukan dalam tabel di skema root.
  • DATA_TYPE NUMBER(4\,0):integer menyebabkan Database Migration Service mengonversi nilai NUMBER(4,0) tertentu ke INTEGER PostgreSQL.
  • Direktif MODIFY_TYPE menyebabkan Database Migration Service mengonversi data di kolom dates_and_times dalam tabel sumber events secara khusus ke jenis DATETIME PostgreSQL, terlepas dari format kolom sumber yang sebenarnya.
  • REPLACE_COLS events(dates_and_times:event_dates),users(pseudonym:nickname) membuat Database Migration Service mengganti nama kolom berikut dalam skema yang dikonversi:
    • Kolom dates_and_times dalam tabel events sumber diganti namanya menjadi event_dates dalam tabel yang sama dalam skema yang dikonversi.
    • Kolom pseudonym dalam tabel users sumber diganti namanya menjadi nickname dalam tabel yang sama dalam skema yang dikonversi.
    Operasi penggantian nama hanya diterapkan pada tabel events dan users dalam skema root.
  • REPLACE_TABLES events:login_events users:platform_users mengganti nama tabel berikut dalam skema yang dikonversi:
    • Tabel events diganti namanya menjadi login_events.
    • Tabel users diganti namanya menjadi platform_users.
    Operasi penggantian nama hanya diterapkan pada tabel events dan users dalam skema root.

Ruang kerja konversi lama

Ruang kerja konversi lama adalah jenis ruang kerja konversi yang lebih lama dan lebih terbatas. Ruang kerja konversi lama tidak mendukung fitur konversi yang ditingkatkan Gemini atau editor SQL interaktif. Anda hanya dapat menggunakannya untuk mengonversi skema sumber dengan alat migrasi Ora2Pg.

Sebaiknya jangan gunakan jenis ruang kerja konversi lama untuk migrasi Anda. Jika skenario Anda memerlukan penggunaan ruang kerja konversi lama, lihat Bekerja dengan ruang kerja konversi lama.

Langkah berikutnya

Untuk mempelajari cara menggunakan ruang kerja konversi, lihat: