Ruang kerja konversi membantu Anda mengonversi skema dan objek dari database sumber menjadi sintaksis SQL yang kompatibel dengan database tujuan. Halaman ini memberikan ringkasan ruang kerja konversi Database Migration Service:
Objek yang didukung oleh konversi kode dan skema otomatis mencantumkan objek Oracle yang didukung untuk konversi skema otomatis.
Editor SQL interaktif menjelaskan objek yang dapat Anda ubah secara langsung di editor ruang kerja konversi.
Fitur konversi dengan bantuan Gemini membahas cara Anda dapat mengintegrasikan dukungan AI generatif untuk mempercepat proses konversi skema.
Bagian File pemetaan konversi memberikan ringkasan tentang perintah penyesuaian yang dapat Anda gunakan untuk mengganti aturan konversi skema otomatis.
Ruang kerja konversi lama menjelaskan ruang kerja lama yang tidak memberikan dukungan untuk editor SQL interaktif.
Terlepas dari apakah Anda menggunakan konversi skema otomatis atau membuat file pemetaan konversi tambahan, ada jenis data tertentu yang tidak didukung untuk migrasi Oracle. Untuk mengetahui informasi selengkapnya, lihat Batasan yang diketahui untuk jenis data.
Konversi kode dan skema otomatis
Saat Anda membuat ruang kerja konversi, Database Migration Service akan otomatis melakukan konversi skema awal. Konversi skema otomatis mendukung subset objek database Oracle yang sangat spesifik yang tersedia.
Konversi kode otomatis 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 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 perlu melakukan update langsung di database tujuan setelah menerapkan skema dan kode yang dikonversi.
Objek yang tidak didukung untuk pengeditan:
- Jenis objek yang ditentukan pengguna
- Tabel
- Skema
Fitur konversi terbantu Gemini
Database Migration Service mengintegrasikan Gemini untuk Google Cloud ke dalam workspace konversi untuk membantu Anda mempercepat dan meningkatkan proses konversi di dua area:
Berikan fitur penjelasan kode dengan asisten konversi: serangkaian perintah khusus yang dapat membantu Anda lebih memahami logika konversi, mengusulkan perbaikan untuk masalah konversi, atau mengoptimalkan kode yang dikonversi.
Percepat penerapan perbaikan untuk masalah konversi dengan saran konversi kode Gemini: mekanisme tempat model Gemini dapat belajar saat Anda memperbaiki masalah konversi dan menyarankan perubahan pada objek lain yang rusak di ruang kerja.
Untuk mengetahui informasi selengkapnya tentang konversi yang dibantu 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 perintah konversi) untuk cara objek Oracle Anda dikonversi menjadi objek PostgreSQL.
Perintah konversi yang didukung
Database Migration Service mendukung perintah konversi berikut untuk file pemetaan konversi:
EXPORT_SCHEMA
EXPORT_SCHEMA
adalah perintah 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
Layanan Migrasi Database harus dapat menentukan skema mana yang berisi objek yang harus diubah dengan perintah konversi Anda.
Perintah 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 perlu mengupload beberapa file dengan skema yang berbeda.
- Semua perintah penyesuaian lainnya yang diberikan dalam file Anda hanya berlaku untuk objek dalam skema khusus ini.
Gunakan format berikut:
SCHEMA SCHEMA_NAME
Dengan SCHEMA_NAME adalah nama skema Anda di database sumber.
- Jika Anda menyertakan perintah ini dalam file pemetaan konversi, semua penyesuaian hanya diterapkan ke objek yang terdapat dalam skema khusus ini. Jika ingin menyesuaikan objek dalam skema lain, Anda perlu membuat beberapa file pemetaan konversi dan menguploadnya ke ruang kerja konversi.
- Jika Anda melewati perintah ini, Anda harus memberikan nama skema eksplisit untuk objek yang diubah oleh perintah konversi lainnya.
Misalnya, daripada menggunakan
SOURCE_TABLE_NAME
untuk perintahREPLACE_TABLES
, Anda harus menggunakan"SCHEMA_NAME.SOURCE_TABLE_NAME"
.
DATA_TYPE
Anda dapat menggunakan perintah ini untuk memetakan jenis data yang didukung secara eksplisit antara sintaksis Oracle dan PostgreSQL. Perintah ini
mengharapkan daftar pemetaan yang dipisahkan koma. Seluruh definisi harus
diberikan dalam satu baris, tetapi Anda menyertakan beberapa perintah
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 masing-masing yang Anda gunakan dalam migrasi. Untuk mengetahui informasi tentang versi yang didukung, lihat Ringkasan skenario.
Contoh:
DATA_TYPE REAL:double precision,SMALLINT:integer
Untuk informasi selengkapnya tentang jenis data Oracle dan PostgreSQL, lihat:
- Jenis data Oracle dalam dokumentasi Oracle.
- Jenis data PostgreSQL dalam dokumentasi PostgreSQL.
MODIFY_TYPE
Dengan perintah MODIFY_TYPE
, Anda dapat mengontrol jenis data yang digunakan Layanan Migrasi Database untuk mengonversi kolom tertentu dalam tabel sumber.
Perintah ini mengharapkan daftar pemetaan yang dipisahkan koma.
Seluruh definisi harus diberikan dalam satu baris, tetapi Anda menyertakan
beberapa perintah 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 keterangan:
- 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)
menjadi jenis DECIMAL(p,s)
PostgreSQL.
Anda dapat mengubah perilaku ini dengan perintah
PG_INTEGER_TYPE
. Tetapkan nilainya ke 1
dan paksa semua jenis
NUMBER
dengan presisi dan skala (NUMBER(p,s)
)
untuk 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 perintah ini ke 1
jika Anda ingin mengonversi semua jenis NUMBER
dengan presisi dan skala (NUMBER(p,s)
) menjadi jenis real
atau float
PostgreSQL (berdasarkan jumlah digit presisinya).
Jika Anda menetapkan perintah 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 NUMBER
tanpa presisi
akan berubah, baik Anda juga menggunakan
perintah PG_INTEGER_TYPE
:
- Jika Anda menggunakan perintah
PG_INTEGER
,NUMBER
tanpa presisi akan dikonversi menjadi nilaiDECIMAL
. - Jika Anda tidak menggunakan perintah
PG_INTEGER
,NUMBER
tanpa presisi akan dikonversi menjadi nilaiBIGINT
.
Anda dapat mengubah perilaku ini dan menggunakan perintah 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
hal berikut: integer
, smallint
, bigint
.
Contoh:
DEFAULT_NUMERIC integer
REPLACE_COLS
Anda dapat menggunakan perintah REPLACE_COLS
untuk mengganti nama kolom dalam skema yang dikonversi. Perintah ini mengharapkan daftar pemetaan yang dipisahkan 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 keterangan:
- SOURCE_TABLE_NAME adalah nama tabel yang berisi kolom yang namanya ingin Anda ubah.
- SOURCE_COLUMN_NAME adalah nama kolom di sumber yang namanya ingin Anda ubah.
- 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 perintah REPLACE_TABLES
untuk mengganti nama tabel atau memindahkannya ke skema baru. Perintah ini mengharapkan daftar pemetaan yang dipisahkan spasi. Untuk 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 keterangan:
- SOURCE_TABLE_NAME adalah nama tabel sumber yang ingin diganti 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 perintah ini untuk memindahkan tabel antar-skema dengan menambahkan awalan skema ke nama tabel baru. Mekanisme ini dapat digunakan terlepas dari cara Anda menggunakan perintah SCHEMA untuk seluruh file konversi. Contoh:
REPLACE_TABLES "events:NEW_SCHEMA_NAME.login_events"
Alias untuk menyesuaikan jenis data
Saat menggunakan perintah konversi untuk mengubah cara Database Migration Service mengonversi
jenis data yang berbeda (misalnya, dengan perintah
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 Layanan Migrasi Database.
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 perintah 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 yang diperlukan.SCHEMA root
menghasilkan penyesuaian berikut pada flow konversi:- Layanan Migrasi Database hanya melakukan konversi untuk entity dalam skema
root
. Tidak ada skema lain yang dikonversi. - Semua perintah penyesuaian lainnya dalam file ini hanya berlaku untuk kolom dan jenis data yang ditentukan dalam skema
root
.
- Layanan Migrasi Database hanya melakukan konversi untuk entity dalam skema
PG_INTEGER_TYPE 1
membuat Database Migration Service mengonversi semua jenis data numerik Oracle yang ditemukan dalam tabel dalam skemaroot
menjadi jenis khusus PostgreSQL, bukan jenis numerik portabel ANSI.DEFAULT_NUMERIC
menyebabkan Database Migration Service mengonversi nilaiNUMBER
yang tidak memiliki titik presisi yang ditentukan menjadi jenisINTEGER
PostgreSQL. Hal ini hanya berlaku untuk nilaiNUMBER
yang ditemukan dalam tabel dalam skemaroot
.DATA_TYPE NUMBER(4\,0):integer
menyebabkan Database Migration Service mengonversi nilaiNUMBER(4,0)
tertentu keINTEGER
PostgreSQL.- Perintah
MODIFY_TYPE
menyebabkan Database Migration Service mengonversi data di kolomdates_and_times
dalam tabel sumberevents
secara khusus ke jenisDATETIME
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
di tabelevents
sumber diganti namanya menjadievent_dates
di tabel yang sama dalam skema yang dikonversi. - Kolom
pseudonym
di tabelusers
sumber diganti namanya menjadinickname
di tabel yang sama dalam skema yang dikonversi.
events
danusers
dalam skemaroot
.- Kolom
REPLACE_TABLES events:login_events users:platform_users
mengganti nama tabel berikut dalam skema yang dikonversi:- Tabel
events
diganti namanya menjadilogin_events
. - Tabel
users
diganti namanya menjadiplatform_users
.
events
danusers
dalam skemaroot
.- Tabel
Ruang kerja konversi lama
Ruang kerja konversi lama adalah jenis ruang kerja konversi lama yang 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 interaktif, lihat Membuat ruang kerja konversi interaktif.