Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Menggunakan Amazon S3 sebagai sumber untuk AWS DMS

Mode fokus
Menggunakan Amazon S3 sebagai sumber untuk AWS DMS - AWS Layanan Migrasi Database

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Anda dapat memigrasikan data dari bucket Amazon S3 menggunakan. AWS DMS Untuk melakukan ini, berikan akses ke Amazon S3 bucket yang berisi file data satu atau lebih. Dalam bucket S3, termasuk file JSON yang menggambarkan pemetaan antara data dan tabel basis data data dalam file-file tersebut.

File data sumber harus ada dalam Amazon S3 bucket sebelum beban penuh dimulai. Anda menentukan nama bucket menggunakan parameter bucketName.

File data sumber dapat dalam format berikut:

Untuk file data sumber dalam format nilai dipisahkan koma (.csv), beri nama menggunakan konvensi penamaan berikut. Dalam konvensi ini, schemaName adalah skema sumber dan tableNameadalah nama tabel dalam skema itu.

/schemaName/tableName/LOAD001.csv /schemaName/tableName/LOAD002.csv /schemaName/tableName/LOAD003.csv ...

Misalnya, anggaplah file data Anda berada di mybucket, di jalur Amazon S3 berikut.

s3://mybucket/hr/employee

Pada waktu muat, AWS DMS mengasumsikan bahwa nama skema sumber adalahhr, dan bahwa nama tabel sumber adalah. employee

Selain bucketName (yang diperlukan), Anda dapat memberikan bucketFolder parameter opsional untuk menentukan di mana AWS DMS harus mencari file data di bucket Amazon S3. Melanjutkan contoh sebelumnya, jika Anda mengatur bucketFolder kesourcedata, kemudian AWS DMS membaca file data di jalur berikut.

s3://mybucket/sourcedata/hr/employee

Anda dapat menentukan pembatas kolom, baris pembatas, indikator nilai null, dan parameter lainnya menggunakan atribut sambungan tambahan. Untuk informasi selengkapnya, lihat Pengaturan titik akhir untuk Amazon S3 sebagai sumber untuk AWS DMS.

Anda dapat menentukan pemilik bucket dan mencegah sniping dengan menggunakan setelan endpoint ExpectedBucketOwner Amazon S3, seperti yang ditunjukkan berikut ini. Kemudian, saat Anda membuat permintaan untuk menguji koneksi atau melakukan migrasi, S3 memeriksa ID akun pemilik bucket terhadap parameter yang ditentukan.

--s3-settings='{"ExpectedBucketOwner": "AWS_Account_ID"}'

Mendefinisikan tabel eksternal untuk Amazon S3 sebagai sumber untuk AWS DMS

Selain file data, Anda juga harus memberikan definisi tabel eksternal. Definisi tabel eksternal adalah dokumen JSON yang menjelaskan bagaimana AWS DMS seharusnya menafsirkan data dari Amazon S3. Ukuran maksimum dokumen ini adalah 2 MB. Jika Anda membuat titik akhir sumber menggunakan AWS DMS Management Console, Anda dapat memasukkan JSON langsung ke kotak pemetaan tabel. Jika Anda menggunakan AWS Command Line Interface (AWS CLI) atau AWS DMS API untuk melakukan migrasi, Anda dapat membuat file JSON untuk menentukan definisi tabel eksternal.

Misalkan Anda memiliki file data yang mencakup hal berikut.

101,Smith,Bob,2014-06-04,New York 102,Smith,Bob,2015-10-08,Los Angeles 103,Smith,Bob,2017-03-13,Dallas 104,Smith,Bob,2017-03-13,Dallas

Berikut ini adalah contoh definisi tabel eksternal untuk data ini.

{ "TableCount": "1", "Tables": [ { "TableName": "employee", "TablePath": "hr/employee/", "TableOwner": "hr", "TableColumns": [ { "ColumnName": "Id", "ColumnType": "INT8", "ColumnNullable": "false", "ColumnIsPk": "true" }, { "ColumnName": "LastName", "ColumnType": "STRING", "ColumnLength": "20" }, { "ColumnName": "FirstName", "ColumnType": "STRING", "ColumnLength": "30" }, { "ColumnName": "HireDate", "ColumnType": "DATETIME" }, { "ColumnName": "OfficeLocation", "ColumnType": "STRING", "ColumnLength": "20" } ], "TableColumnsTotal": "5" } ] }

Unsur-unsur dalam dokumen JSON ini adalah sebagai berikut:

TableCount — jumlah tabel sumber. Dalam contoh ini, hanya ada satu tabel.

Tables — susunan yang terdiri dari satu peta JSON per tabel sumber. Dalam contoh ini, hanya ada satu peta. Setiap peta terdiri atas elemen-elemen berikut:

  • TableName — nama tabel sumber.

  • TablePath — jalur di Amazon S3 bucket Anda di mana AWS DMS dapat menemukan file beban data lengkap. Jika bucketFolder nilai ditentukan, nilainya ditambahkan ke jalur.

  • TableOwner — nama skema untuk tabel ini.

  • TableColumns — susunan dari satu peta atau lebih, masing-masing menggambarkan kolom dalam tabel sumber:

    • ColumnName — nama kolom dalam tabel sumber.

    • ColumnType — jenis data untuk kolom. Untuk jenis data yang valid, lihat Jenis data sumber untuk Amazon S3.

    • ColumnLength — jumlah byte dalam kolom ini. Panjang kolom maksimum dibatasi untuk2147483647 Bytes (2.047 MegaBytes) karena sumber S3 tidak mendukung mode LOB PENUH. ColumnLengthberlaku untuk tipe data berikut:

      • BYTE

      • STRING

    • ColumnNullable — nilai Boolean yang true jika kolom ini dapat berisi nilai-nilai NULL (default=false).

    • ColumnIsPk — nilai Boolean yang true jika kolom ini adalah bagian dari kunci primer (default=false).

    • ColumnDateFormat— format tanggal input untuk kolom dengan tipe DATE, TIME, dan DATETIME, dan digunakan untuk mengurai string data menjadi objek tanggal. Nilai yang mungkin termasuk:

      - YYYY-MM-dd HH:mm:ss - YYYY-MM-dd HH:mm:ss.F - YYYY/MM/dd HH:mm:ss - YYYY/MM/dd HH:mm:ss.F - MM/dd/YYYY HH:mm:ss - MM/dd/YYYY HH:mm:ss.F - YYYYMMdd HH:mm:ss - YYYYMMdd HH:mm:ss.F
  • TableColumnsTotal — jumlah total kolom. Nomor ini harus sesuai dengan jumlah elemen dalam susunan TableColumns.

Jika Anda tidak menentukan sebaliknya, AWS DMS asumsikan ColumnLength itu nol.

catatan

Dalam versi yang didukung AWS DMS, data sumber S3 juga dapat berisi kolom operasi opsional sebagai kolom pertama sebelum nilai TableName kolom. Kolom operasi ini mengidentifikasi operasi (INSERT) yang digunakan untuk memigrasikan data ke titik akhir target S3 selama beban penuh.

Jika ada, nilai kolom ini adalah karakter awal dari operasi kata kunci INSERT (I). Jika ditentukan, kolom ini umumnya menunjukkan bahwa sumber S3 dibuat oleh DMS sebagai target S3 selama migrasi sebelumnya.

Dalam versi DMS sebelum 3.4.2, kolom ini tidak ada dalam data sumber S3 yang dibuat dari beban penuh DMS sebelumnya. Menambahkan kolom ini ke data target S3 memungkinkan format semua baris ditulis ke target S3 agar konsisten apakah mereka ditulis selama beban penuh atau selama beban CDC. Untuk informasi lebih lanjut tentang pilihan format S3 target data, lihat Menunjukkan operasi sumber DB dalam data S3 bermigrasi.

Untuk kolom dari jenis NUMERIC, tentukan presisi dan skala. Presisi adalah jumlah digit dalam angka, dan skala adalah jumlah digit di sebelah kanan titik desimal. Anda menggunakan unsur-unsur ColumnPrecision dan ColumnScale untuk ini, seperti yang ditunjukkan berikut.

... { "ColumnName": "HourlyRate", "ColumnType": "NUMERIC", "ColumnPrecision": "5" "ColumnScale": "2" } ...

Untuk kolom tipe DATETIME dengan data yang berisi detik pecahan, tentukan skala. Skala adalah jumlah digit untuk detik pecahan, dan dapat berkisar dari 0 hingga 9. Anda menggunakan ColumnScale elemen untuk ini, seperti yang ditunjukkan berikut.

... { "ColumnName": "HireDate", "ColumnType": "DATETIME", "ColumnScale": "3" } ...

Jika Anda tidak menentukan sebaliknya, AWS DMS asumsi ColumnScale adalah nol dan memotong detik pecahan.

Menggunakan CDC dengan Amazon S3 sebagai sumber untuk AWS DMS

Setelah AWS DMS melakukan pemuatan data penuh, secara opsional dapat mereplikasi perubahan data ke titik akhir target. Untuk melakukan ini, Anda meng-upload file change data capture (file CDC) ke bucket Amazon S3 Anda. AWS DMS membaca file CDC ini saat Anda mengunggahnya, dan kemudian menerapkan perubahan pada titik akhir target.

File CDC dinamakan sebagai berikut:

CDC00001.csv CDC00002.csv CDC00003.csv ...
catatan

Untuk mereplikasi file CDC di folder data perubahan unggahlah file-file ini secara berhasil dalam urutan leksikal (sekuensial). Sebagai contoh, unggah file CDC00002.csv sebelum file CDC00003.csv. Jika tidak, CDC00002.csv dilewati dan tidak direplikasi jika Anda memuat setelah CDC00003.csv. Tapi file CDC00004.csv berhasil bereplikasi jika dimuat setelah CDC00003.csv.

Untuk menunjukkan di mana AWS DMS dapat menemukan file, tentukan cdcPath parameter. Melanjutkan contoh sebelumnya, jika Anda mengatur cdcPath menjadi changedata, maka AWS DMS membaca file CDC di jalur berikut.

s3://mybucket/changedata

Jika Anda mengatur cdcPath ke changedata dan bucketFolder kemyFolder, maka AWS DMS membaca file CDC di jalur berikut.

s3://mybucket/myFolder/changedata

Catatan dalam file CDC diformat sebagai berikut:

  • Operasi – perubahan yang akan dilakukan:INSERT atau I, UPDATE atau U, atau DELETE atau D. Nilai-nilai kata kunci dan karakter ini bersifat tidak peka huruf kapital.

    catatan

    Dalam AWS DMS versi yang didukung, AWS DMS dapat mengidentifikasi operasi untuk melakukan untuk setiap catatan beban dalam dua cara. AWS DMS dapat melakukan ini dari nilai kata kunci catatan (misalnya,INSERT) atau dari karakter awal kata kunci (misalnya,I). Dalam versi sebelumnya, AWS DMS mengenali operasi beban hanya dari nilai kata kunci penuh.

    Dalam versi sebelumnya AWS DMS, nilai kata kunci lengkap ditulis untuk mencatat data CDC. Selain itu, versi sebelumnya menulis nilai operasi untuk setiap target S3 hanya menggunakan kata kunci awal.

    Mengenali kedua format memungkinkan AWS DMS untuk menangani operasi terlepas dari bagaimana kolom operasi ditulis untuk membuat data sumber S3. Pendekatan ini mendukung penggunaan data target S3 sebagai sumber untuk migrasi berikutnya. Dengan pendekatan ini, Anda tidak perlu mengubah format nilai awal kata kunci yang muncul di kolom operasi sumber S3 berikutnya.

  • Tabel nama - nama tabel sumber.

  • Skema nama - nama skema sumber.

  • Data - kolom satu atau lebih yang mewakili data yang akan diubah.

Berikut ini adalah contoh file CDC untuk tabel bernama employee.

INSERT,employee,hr,101,Smith,Bob,2014-06-04,New York UPDATE,employee,hr,101,Smith,Bob,2015-10-08,Los Angeles UPDATE,employee,hr,101,Smith,Bob,2017-03-13,Dallas DELETE,employee,hr,101,Smith,Bob,2017-03-13,Dallas

Prasyarat saat menggunakan Amazon S3 sebagai sumber untuk AWS DMS

Untuk menggunakan Amazon S3 sebagai sumber AWS DMS, bucket S3 sumber Anda harus berada di AWS Wilayah yang sama dengan instance replikasi DMS yang memigrasikan data Anda. Selain itu, akun AWS yang Anda gunakan untuk migrasi harus memiliki akses baca ke bucket sumber. Untuk AWS DMS versi 3.4.7 dan yang lebih tinggi, DMS harus mengakses bucket sumber melalui titik akhir VPC atau rute umum. Untuk informasi tentang titik akhir VPC, lihat. Mengkonfigurasi titik akhir VPC sebagaiAWSSumber DMS dan titik akhir target

Peran AWS Identity and Access Management (IAM) yang ditetapkan ke akun pengguna yang digunakan untuk membuat tugas migrasi harus memiliki kumpulan izin berikut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::mybucket*/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::mybucket*" ] } ] }

Peran AWS Identity and Access Management (IAM) yang ditetapkan ke akun pengguna yang digunakan untuk membuat tugas migrasi harus memiliki kumpulan izin berikut jika pembuatan versi diaktifkan di bucket Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "S3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::mybucket*/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::mybucket*" ] } ] }

Keterbatasan saat menggunakan Amazon S3 sebagai sumber AWS DMS

Batasan berikut berlaku saat menggunakan Amazon S3 sebagai sumber:

  • Jangan aktifkan pembuatan versi untuk S3. Jika Anda memerlukan versi S3, gunakan kebijakan siklus hidup untuk menghapus versi lama secara aktif. Jika tidak, Anda mungkin mengalami kegagalan koneksi pengujian titik akhir karena batas waktu list-object panggilan S3. Untuk membuat kebijakan siklus hidup bucket S3, lihat Mengelola siklus hidup penyimpanan. Untuk menghapus versi objek S3, lihat Menghapus versi objek dari bucket berkemampuan versi.

  • Bucket S3 berkemampuan VPC (gateway VPC) didukung dalam versi 3.4.7 dan yang lebih tinggi.

  • MySQL mengonversi time tipe data ke. string Untuk melihat nilai tipe time data di MySQL, tentukan kolom dalam tabel target string sebagai, dan atur pengaturan mode persiapan tabel Target tugas ke Truncate.

  • AWS DMS menggunakan tipe BYTE data secara internal untuk data baik BYTE dan tipe BYTES data.

  • Titik akhir sumber S3 tidak mendukung fitur muat ulang tabel DMS.

  • AWS DMS tidak mendukung mode LOB Penuh dengan Amazon S3 sebagai Sumber.

Batasan berikut berlaku saat menggunakan file format Parket di Amazon S3 sebagai sumber:

  • Tanggal masukMMYYYYDD, atau tidak DDMMYYYY didukung untuk fitur partisi tanggal Sumber Parket S3.

Pengaturan titik akhir untuk Amazon S3 sebagai sumber untuk AWS DMS

Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi basis data sumber Amazon S3 mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan create-endpoint perintah di AWS CLI, dengan sintaks --s3-settings '{"EndpointSetting": "value", ...}' JSON.

Tabel berikut menunjukkan pengaturan titik akhir yang dapat Anda gunakan dengan Amazon S3 sebagai sumber.

Opsi Deskripsi
BucketFolder

(Opsional) Nama folder dalam bucket S3. Jika atribut ini disediakan, file data sumber dan file CDC dibaca dari jalur s3://myBucket/bucketFolder/schemaName/tableName/ dan s3://myBucket/bucketFolder/ masing-masing. Jika atribut ini tidak ditentukan, maka jalur yang digunakan adalah schemaName/tableName/.

'{"BucketFolder": "sourceData"}'

BucketName

Nama bucket S3.

'{"BucketName": "myBucket"}'

CdcPath Lokasi file CDC. Atribut ini diperlukan jika tugas menangkap perubahan data; jika tidak, itu opsional. Jika CdcPath ada, maka AWS DMS membaca file CDC dari jalur ini dan mereplikasi perubahan data ke titik akhir target. Untuk informasi selengkapnya, lihat Menggunakan CDC dengan Amazon S3 sebagai sumber untuk AWS DMS.

'{"CdcPath": "changeData"}'

CsvDelimiter

Pembatas digunakan untuk memisahkan kolom dalam file sumber. Default adalah koma. Berikut contohnya.

'{"CsvDelimiter": ","}'

CsvNullValue

String yang ditentukan pengguna yang AWS DMS diperlakukan sebagai null saat membaca dari sumbernya. Default-nya adalah string kosong. Jika Anda tidak mengatur parameter ini, AWS DMS memperlakukan string kosong sebagai nilai null. Jika Anda mengatur parameter ini ke string seperti “\ N”, AWS DMS memperlakukan string ini sebagai nilai null, dan memperlakukan string kosong sebagai nilai string kosong.

CsvRowDelimiter

Pembatas digunakan untuk memisahkan baris dalam file sumber. Default adalah newline (\n).

'{"CsvRowDelimiter": "\n"}'

DataFormat

Tetapkan nilai ini Parquet untuk membaca data dalam format Parket.

'{"DataFormat": "Parquet"}'

IgnoreHeaderRows

Ketika nilai ini diatur ke 1, AWS DMS mengabaikan header baris pertama dalam file.csv. Nilai 1 memungkinkan fitur tersebut, nilai 0 menonaktifkannya.

Default adalah 0.

'{"IgnoreHeaderRows": 1}'

Rfc4180

Ketika nilai ini diatur ke true atauy, setiap tanda kutip ganda utama harus diikuti oleh tanda kutip ganda akhir. Format ini sesuai dengan RFC 4180. Ketika nilai ini disetel ke false orn, string literal disalin ke target apa adanya. Dalam kasus ini, pembatas (baris atau kolom) menandakan akhir bidang. Dengan demikian, Anda tidak dapat menggunakan pembatas sebagai bagian dari string, karena pembatas menandakan akhir nilai.

Default adalah true.

Nilai yang valid: true, false, y, n

'{"Rfc4180": false}'

Jenis data sumber untuk Amazon S3

Migrasi data yang menggunakan Amazon S3 sebagai sumber AWS DMS kebutuhan untuk memetakan data dari Amazon S3 AWS DMS ke tipe data. Untuk informasi selengkapnya, lihat Mendefinisikan tabel eksternal untuk Amazon S3 sebagai sumber untuk AWS DMS.

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

Untuk informasi tambahan tentang tipe AWS DMS data, lihatTipe data untuk AWS Database Migration Service.

Tipe AWS DMS data berikut digunakan dengan Amazon S3 sebagai sumber:

Menggunakan file format Parket di Amazon S3 sebagai sumber untuk AWS DMS

Di AWS DMS versi 3.5.3 dan yang lebih baru, Anda dapat menggunakan file format Parquet di bucket S3 sebagai sumber untuk replikasi Full-Load atau CDC.

DMS hanya mendukung file format Parket sebagai sumber yang dihasilkan DMS dengan memigrasikan data ke titik akhir target S3. Nama file harus dalam format yang didukung, atau DMS tidak akan menyertakannya dalam migrasi.

Untuk file data sumber dalam format Parket, mereka harus dalam folder dan konvensi penamaan berikut.

schema/table1/LOAD00001.parquet schema/table2/LOAD00002.parquet schema/table2/LOAD00003.parquet

Untuk file data sumber untuk data CDC dalam format Parket, beri nama dan simpan menggunakan folder dan konvensi penamaan berikut.

schema/table/20230405-094615814.parquet schema/table/20230405-094615853.parquet schema/table/20230405-094615922.parquet

Untuk mengakses file dalam format Parket, atur pengaturan titik akhir berikut:

  • Atur DataFormat ke Parquet.

  • Jangan mengatur cdcPath pengaturan. Pastikan Anda membuat file format Parket di folder skema/tabel yang ditentukan.

Untuk informasi selengkapnya tentang setelan untuk titik akhir S3, lihat S3Settings di Referensi API.AWS Database Migration Service

Jenis data yang didukung untuk file format Parket

AWS DMS mendukung tipe data sumber dan target berikut saat memigrasi data dari file format Parket. Pastikan tabel target Anda memiliki kolom tipe data yang benar sebelum bermigrasi.

Jenis data sumber Jenis data target
BYTE BINARY
DATE DATE32
TIME TIME32
DATETIME TIMESTAMP
INT1 INT8
INT2 INT16
INT4 INT32
INT8 INT64
NUMERIC DECIMAL
REAL4 FLOAT
REAL8 DOUBLE
STRING STRING
UINT1 UINT8
UINT2 UINT16
UINT4 UINT32
UINT8 UINT
WSTRING STRING
BLOB BINARY
NCLOB STRING
CLOB STRING
BOOLEAN BOOL
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.