Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Babelfish sebagai target untuk AWS Database Migration Service
Anda dapat memigrasi data dari database sumber Microsoft SQL Server ke target Babelfish menggunakan. AWS Database Migration Service
Babelfish untuk Aurora PostgreSQL memperluas database Edisi Kompatibel Amazon Aurora PostgreSQL Anda dengan kemampuan untuk menerima koneksi database dari klien Microsoft SQL Server. Melakukan hal ini memungkinkan aplikasi awalnya dibangun untuk SQL Server untuk bekerja secara langsung dengan Aurora PostgreSQL dengan beberapa perubahan kode dibandingkan dengan migrasi tradisional, dan tanpa mengubah driver database.
Untuk informasi tentang versi Babelfish yang AWS DMS mendukung sebagai target, lihat. Target untuk AWS DMS Versi Babelfish sebelumnya di Aurora PostgreSQL memerlukan peningkatan sebelum menggunakan titik akhir Babelfish.
catatan
Titik akhir target Aurora PostgreSQL adalah cara yang lebih disukai untuk memigrasi data ke Babelfish. Untuk informasi selengkapnya, lihat Menggunakan Babelfish untuk Aurora PostgreSQL sebagai target.
Untuk informasi tentang penggunaan Babelfish sebagai titik akhir database, lihat Babelfish for Aurora PostgreSQL di Panduan Pengguna Amazon Aurora untuk Aurora
Prasyarat untuk menggunakan Babelfish sebagai target AWS DMS
Anda harus membuat tabel sebelum memigrasi data untuk memastikan bahwa AWS DMS menggunakan tipe data yang benar dan metadata tabel. Jika Anda tidak membuat tabel pada target sebelum menjalankan migrasi, AWS DMS dapat membuat tabel dengan jenis data yang salah dan izin. Misalnya, AWS DMS membuat kolom timestamp sebagai biner (8) sebagai gantinya, dan tidak menyediakan fungsionalitas timestamp/rowversion yang diharapkan.
Untuk mempersiapkan dan membuat tabel Anda sebelum migrasi
-
Jalankan pernyataan membuat tabel DDL Anda yang mencakup kendala unik, kunci primer, atau kendala default.
Jangan menyertakan kendala kunci asing, atau pernyataan DDL untuk objek seperti tampilan, prosedur yang disimpan, fungsi, atau pemicu. Anda dapat menerapkannya setelah memigrasi database sumber Anda.
-
Mengidentifikasi setiap kolom identitas, kolom dihitung, atau kolom yang berisi rowversion atau timestamp jenis data untuk tabel Anda. Kemudian, buat aturan transformasi yang diperlukan untuk menangani masalah yang diketahui saat menjalankan tugas migrasi. Untuk informasi lebih lanjut lihat, Aturan dan tindakan transformasi.
-
Identifikasi kolom dengan tipe data yang tidak didukung Babelfish. Kemudian, ubah kolom yang terpengaruh di tabel target untuk menggunakan tipe data yang didukung, atau buat aturan transformasi yang menghapusnya selama tugas migrasi. Untuk informasi lebih lanjut lihat, Aturan dan tindakan transformasi.
Tabel berikut mencantumkan tipe data sumber yang tidak didukung oleh Babelfish, dan jenis data target yang direkomendasikan sesuai untuk digunakan.
Jenis data sumber
Tipe data Babelfish yang direkomendasikan
PUSAKA
NVARCHAR (250)
GEOMETRY
VARCHAR (MAKS)
GEOGRAPHY
VARCHAR (MAKS)
Untuk mengatur level unit kapasitas Aurora (ACU) untuk basis data sumber V2 Tanpa Server Aurora PostgreSQL Anda
Anda dapat meningkatkan kinerja tugas AWS DMS migrasi sebelum menjalankannya dengan menetapkan nilai ACU minimum.
-
Dari jendela pengaturan kapasitas Severless v2, tetapkan ACU Minimum ke
2
, atau level yang wajar untuk klaster Aurora DB Anda.Untuk informasi tambahan tentang pengaturan unit kapasitas Aurora, lihat Memilih rentang kapasitas v2 Tanpa Server Aurora untuk klaster Aurora di Panduan Pengguna Amazon Aurora
Setelah menjalankan tugas AWS DMS migrasi, Anda dapat mengatur ulang nilai minimum ACU Anda ke tingkat yang wajar untuk basis data sumber V2 Tanpa Server Aurora PostgreSQL Anda.
Persyaratan keamanan saat menggunakan Babelfish sebagai target AWS Database Migration Service
Berikut ini menjelaskan persyaratan keamanan untuk digunakan AWS DMS dengan target Babelfish:
-
Nama pengguna administrator (pengguna Admin) yang digunakan untuk membuat database.
-
Login PSQL dan pengguna dengan izin SELECT, INSERT, UPDATE, DELETE, dan REFERENCES yang cukup.
Izin pengguna untuk menggunakan Babelfish sebagai target untuk AWS DMS
penting
Untuk tujuan keamanan, akun pengguna yang digunakan untuk migrasi data harus merupakan pengguna terdaftar dalam database Babelfish apa pun yang Anda gunakan sebagai target.
Titik akhir target Babelfish Anda memerlukan izin pengguna minimum untuk menjalankan migrasi. AWS DMS
Untuk membuat login dan pengguna Transact-SQL (T-SQL) dengan hak istimewa rendah
-
Buat login dan kata sandi untuk digunakan saat menghubungkan ke server.
CREATE LOGIN dms_user WITH PASSWORD =
'password'
; GO -
Buat database virtual untuk klaster Babelfish Anda.
CREATE DATABASE my_database; GO
-
Buat pengguna T-SQL untuk database target Anda.
USE my_database GO CREATE USER dms_user FOR LOGIN dms_user; GO
-
Untuk setiap tabel dalam database Babelfish Anda, izin GRANT ke tabel.
GRANT SELECT, DELETE, INSERT, REFERENCES, UPDATE ON [dbo].[Categories] TO dms_user;
Batasan dalam menggunakan Babelfish sebagai target untuk AWS Database Migration Service
Batasan berikut berlaku saat menggunakan database Babelfish sebagai target untuk: AWS DMS
-
Hanya mode persiapan meja “Do Nothing “yang didukung.
-
Tipe data ROWVERSION memerlukan aturan pemetaan tabel yang menghapus nama kolom dari tabel selama tugas migrasi.
-
Tipe data sql_variant tidak didukung.
-
Mode LOB penuh didukung. Menggunakan SQL Server sebagai titik akhir sumber memerlukan SQL Server Endpoint Connection Atribut pengaturan
ForceFullLob=True
yang akan ditetapkan agar LOB untuk dimigrasi ke titik akhir target. -
Pengaturan tugas replikasi memiliki batasan berikut:
{ "FullLoadSettings": { "TargetTablePrepMode": "DO_NOTHING", "CreatePkAfterFullLoad": false, }. }
-
TIME (7), DATETIME2 (7), dan DATETIMEOFFSET (7) tipe data di Babelfish membatasi nilai presisi untuk bagian detik waktu untuk 6 digit. Pertimbangkan untuk menggunakan nilai presisi 6 untuk tabel target Anda saat menggunakan tipe data ini. Untuk Babelfish versi 2.2.0 dan yang lebih tinggi, saat menggunakan TIME (7) dan DATETIME2 (7), digit ketujuh presisi selalu nol.
-
Dalam mode DO_NOTHING, DMS memeriksa untuk melihat apakah tabel sudah ada. Jika tabel tidak ada dalam skema target, DMS membuat tabel berdasarkan definisi tabel sumber, dan memetakan setiap jenis data yang ditetapkan pengguna ke tipe data dasar mereka.
-
Tugas AWS DMS migrasi ke target Babelfish tidak mendukung tabel yang memiliki kolom menggunakan tipe data ROWVERSION atau TIMESTAMP. Anda dapat menggunakan aturan pemetaan tabel yang menghapus nama kolom dari tabel selama proses transfer. Dalam contoh aturan transformasi berikut, tabel bernama
Actor
dalam sumber Anda diubah untuk menghapus semua kolom dimulai dengan karaktercol
dariActor
tabel di target Anda.{ "rules": [{ "rule-type": "selection",is "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%" } }] }
-
Untuk tabel dengan identitas atau kolom yang dihitung, di mana tabel target menggunakan nama kasus campuran seperti Kategori, Anda harus membuat tindakan aturan transformasi yang mengubah nama tabel menjadi huruf kecil untuk tugas DMS Anda. Contoh berikut menunjukkan cara membuat tindakan aturan transformasi, Membuat huruf kecil menggunakan konsol. AWS DMS Untuk informasi selengkapnya, lihat Aturan dan tindakan transformasi.
-
Sebelum Babelfish versi 2.2.0, DMS membatasi jumlah kolom yang dapat Anda replikasi ke titik akhir target Babelfish menjadi dua puluh (20) kolom. Dengan Babelfish 2.2.0 batasnya meningkat menjadi 100 kolom. Tetapi dengan Babelfish versi 2.4.0 dan lebih tinggi, jumlah kolom yang dapat Anda replikasi meningkat lagi. Anda dapat menjalankan contoh kode berikut terhadap database SQL Server Anda untuk menentukan tabel yang terlalu panjang.
USE myDB; GO DECLARE @Babelfish_version_string_limit INT = 8000; -- Use 380 for Babelfish versions before 2.2.0 WITH bfendpoint AS ( SELECT [TABLE_SCHEMA] ,[TABLE_NAME] , COUNT( [COLUMN_NAME] ) AS NumberColumns , ( SUM( LEN( [COLUMN_NAME] ) + 3) + SUM( LEN( FORMAT(ORDINAL_POSITION, 'N0') ) + 3 ) + LEN( TABLE_SCHEMA ) + 3 + 12 -- INSERT INTO string + 12) AS InsertIntoCommandLength -- values string , CASE WHEN ( SUM( LEN( [COLUMN_NAME] ) + 3) + SUM( LEN( FORMAT(ORDINAL_POSITION, 'N0') ) + 3 ) + LEN( TABLE_SCHEMA ) + 3 + 12 -- INSERT INTO string + 12) -- values string >= @Babelfish_version_string_limit THEN 1 ELSE 0 END AS IsTooLong FROM [INFORMATION_SCHEMA].[COLUMNS] GROUP BY [TABLE_SCHEMA], [TABLE_NAME] ) SELECT * FROM bfendpoint WHERE IsTooLong = 1 ORDER BY TABLE_SCHEMA, InsertIntoCommandLength DESC, TABLE_NAME ;
Tipe data target untuk Babelfish
Tabel berikut menunjukkan tipe data target Babelfish yang didukung saat menggunakan AWS DMS dan pemetaan default dari AWS DMS tipe data.
Untuk informasi tambahan tentang tipe data AWS DMS, lihat Tipe data untuk AWS Database Migration Service.
Tipe data AWS DMS |
Tipe data babelfish |
---|---|
BOOLEAN |
TINYINT |
BYTES |
VARBINARY(length) |
TANGGAL |
DATE |
TIME |
WAKTU |
INT1 |
SMALLINT |
INT2 |
SMALLINT |
INT4 |
INT |
INT8 |
BIGINT |
NUMERIK |
NUMERIK (p, s) |
REAL4 |
REAL |
REAL8 |
FLOAT |
STRING |
Jika kolom berupa kolom tanggal atau waktu, lakukan hal berikut:
Jika kolom bukan berupa kolom tanggal atau waktu, gunakan VARCHAR (length). |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INT |
UINT8 |
BIGINT |
WSTRING |
NVARCHAR (panjang) |
BLOB |
VARBINARY(max) Untuk menggunakan tipe data ini dengan DMS, Anda harus mengaktifkan penggunaan gumpalan untuk tugas tertentu. DMS mendukung tipe data BLOB hanya dalam tabel yang menyertakan kunci primer. |
CLOB |
VARCHAR(max) Untuk menggunakan tipe data ini dengan DMS, Anda harus mengaktifkan penggunaan CLOB untuk tugas tertentu. |
NCLOB |
NVARCHAR(max) Untuk menggunakan tipe data ini dengan DMS, Anda harus mengaktifkan penggunaan NCLOB untuk tugas tertentu. Selama CDC, DMS mendukung tipe data NCLOB hanya dalam tabel yang menyertakan kunci primer. |