Menggunakan Babelfish sebagai target untuk AWS Database Migration Service - AWS Layanan Migrasi Database

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 memigrasikan data dari database sumber Microsoft SQL Server ke target Babelfish menggunakan. AWS Database Migration Service

Babelfish for Aurora PostgreSQL memperluas basis data Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL Anda dengan kemampuan menerima koneksi basis data dari klien Server SQL Microsoft. 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 PostgreSQL Aurora adalah cara yang lebih disukai untuk memigrasikan data ke Babelfish. Untuk informasi selengkapnya, lihat Menggunakan Babelfish untuk Aurora PostgreSQL sebagai target.

Untuk informasi tentang menggunakan Babelfish sebagai titik akhir database, lihat Babelfish for Aurora PostgreSQL di Panduan Pengguna Amazon Aurora untuk Aurora

Prasyarat untuk menggunakan Babelfish sebagai target untuk AWS DMS

Anda harus membuat tabel sebelum memigrasi data untuk memastikannya AWS DMS menggunakan tipe data dan metadata tabel yang benar. Jika Anda tidak membuat tabel pada target sebelum menjalankan migrasi, AWS DMS dapat membuat tabel dengan tipe data dan izin yang salah. Misalnya, AWS DMS membuat kolom stempel waktu sebagai biner (8) sebagai gantinya, dan tidak menyediakan fungsionalitas stempel waktu/versi baris yang diharapkan.

Untuk mempersiapkan dan membuat tabel Anda sebelum migrasi
  1. Jalankan pernyataan DDL tabel buat Anda yang menyertakan batasan unik, kunci utama, atau batasan default.

    Jangan menyertakan batasan kunci asing, atau pernyataan DDL apa pun untuk objek seperti tampilan, prosedur tersimpan, fungsi, atau pemicu. Anda dapat menerapkannya setelah memigrasi basis data sumber Anda.

  2. Identifikasi kolom identitas, kolom yang dihitung, atau kolom yang berisi tipe data versi baris atau stempel waktu 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.

  3. Identifikasi kolom dengan tipe data yang tidak didukung Babelfish. Kemudian, ubah kolom yang terpengaruh dalam 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 untuk digunakan.

    Jenis data sumber

    Jenis data Babelfish yang direkomendasikan

    HEIRARKIID

    NVARCHAR (250)

    GEOMETRY

    VARCHAR (MAKS)

    GEOGRAPHY

    VARCHAR (MAKS)

Untuk mengatur tingkat unit kapasitas Aurora (ACUs) untuk basis data sumber Aurora PostgreSQL Serverless V2 Anda

Anda dapat meningkatkan kinerja tugas AWS DMS migrasi Anda sebelum menjalankannya dengan menetapkan nilai ACU minimum.

Setelah menjalankan tugas AWS DMS migrasi, Anda dapat mengatur ulang nilai minimum Anda ke tingkat yang wajar ACUs untuk basis data sumber Aurora PostgreSQL Serverless V2 Anda.

Persyaratan keamanan saat menggunakan Babelfish sebagai target AWS Database Migration Service

Berikut ini menjelaskan persyaratan keamanan untuk menggunakan AWS DMS dengan target Babelfish:

  • Nama pengguna administrator (pengguna Admin) digunakan untuk membuat database.

  • Login PSQL dan pengguna dengan izin SELECT, INSERT, UPDATE, DELETE, dan REFERENCES yang memadai.

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 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
  1. Buat login dan kata sandi untuk digunakan saat menghubungkan ke server.

    CREATE LOGIN dms_user WITH PASSWORD = 'password'; GO
  2. Buat database virtual untuk cluster Babelfish Anda.

    CREATE DATABASE my_database; GO
  3. Buat pengguna T-SQL untuk database target Anda.

    USE my_database GO CREATE USER dms_user FOR LOGIN dms_user; GO
  4. Untuk setiap tabel dalam database Babelfish Anda, BERIKAN izin ke tabel.

    GRANT SELECT, DELETE, INSERT, REFERENCES, UPDATE ON [dbo].[Categories] TO dms_user;

Keterbatasan penggunaan Babelfish sebagai target 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.

  • Jenis data sql_variant tidak didukung.

  • Mode LOB penuh didukung. Menggunakan SQL Server sebagai titik akhir sumber memerlukan pengaturan Atribut Koneksi Titik Akhir SQL Server ForceFullLob=True untuk disetel agar dapat dimigrasi LOBs ke titik akhir target.

  • Pengaturan tugas replikasi memiliki batasan berikut:

    { "FullLoadSettings": { "TargetTablePrepMode": "DO_NOTHING", "CreatePkAfterFullLoad": false, }. }
  • Tipe data TIME (7), DATETIME2 (7), dan DATETIMEOFFSET (7) di Babelfish membatasi nilai presisi untuk porsi detik waktu menjadi 6 digit. Pertimbangkan untuk menggunakan nilai presisi 6 untuk tabel target Anda saat menggunakan tipe data ini. Untuk Babelfish versi 2.2.0 dan lebih tinggi, saat menggunakan TIME (7) dan DATETIME2 (7), digit presisi ketujuh 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 tipe data yang ditentukan pengguna ke tipe data dasarnya.

  • 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 di sumber Anda diubah untuk menghapus semua kolom yang dimulai dengan karakter col dari Actor 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 terhitung, 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, Buat huruf kecil menggunakan konsol. AWS DMS Untuk informasi selengkapnya, lihat Aturan dan tindakan transformasi.

    Aturan transformasi babelfish
  • 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 batas meningkat menjadi 100 kolom. Tetapi dengan Babelfish versi 2.4.0 dan lebih tinggi, jumlah kolom yang dapat Anda tiru meningkat lagi. Anda dapat menjalankan contoh kode berikut terhadap database SQL Server Anda untuk menentukan tabel mana 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 ;

Jenis 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 AWS DMS data, lihatTipe data untuk AWS Database Migration Service.

AWS DMS tipe data

Jenis data Babelfish

BOOLEAN

TINYINT

BYTES

VARBINARY(length)

DATE

DATE

TIME

TIME

INT1

SMALLINT

INT2

SMALLINT

INT4

INT

INT8

BIGINT

NUMERIC

NUMERIK (p, s)

REAL4

REAL

REAL8

FLOAT

STRING

Jika kolom berupa kolom tanggal atau waktu, lakukan hal berikut:

  • Untuk SQL Server 2008 dan yang lebih tinggi, gunakan DATETIME2.

  • Untuk versi sebelumnya, jika skalanya 3 atau kurang, gunakan DATETIME. Selain itu gunakan VARCHAR (37).

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 BLOBs 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 CLOBs untuk tugas tertentu.

NCLOB

NVARCHAR(max)

Untuk menggunakan tipe data ini dengan DMS, Anda harus mengaktifkan penggunaan NCLOBs untuk tugas tertentu. Selama CDC, DMS mendukung tipe data NCLOB hanya dalam tabel yang menyertakan kunci utama.