Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Amazon Timestream sebagai target AWS Database Migration Service
Anda dapat menggunakan AWS Database Migration Service untuk memigrasikan data dari database sumber ke titik akhir target Amazon Timestream, dengan dukungan untuk migrasi data Beban Penuh dan CDC.
Amazon Timestream adalah layanan database deret waktu yang cepat, terukur, dan tanpa server yang dibuat untuk konsumsi data volume tinggi. Data deret waktu adalah urutan titik data yang dikumpulkan selama interval waktu, dan digunakan untuk mengukur peristiwa yang berubah seiring waktu. Ini digunakan untuk mengumpulkan, menyimpan, dan menganalisis metrik dari aplikasi IoT DevOps , aplikasi, dan aplikasi analitik. Setelah Anda memiliki data di Timestream, Anda dapat memvisualisasikan dan mengidentifikasi tren dan pola dalam data Anda dalam waktu dekat. Untuk informasi tentang Amazon Timestream, lihat Apa itu Amazon Timestream? di Panduan Pengembang Amazon Timestream.
Topik
Prasyarat untuk menggunakan Amazon Timestream sebagai target AWS Database Migration Service
Pengaturan titik akhir saat menggunakan Timestream sebagai target AWS DMS
Membuat dan memodifikasi titik akhir target Amazon Timestream
Menggunakan pemetaan objek untuk memigrasikan data ke topik Timestream
Batasan saat menggunakan Amazon Timestream sebagai target AWS Database Migration Service
Prasyarat untuk menggunakan Amazon Timestream sebagai target AWS Database Migration Service
Sebelum Anda mengatur Amazon Timestream sebagai target AWS DMS, pastikan Anda membuat peran IAM. Peran ini harus memungkinkan AWS DMS untuk mendapatkan akses ke data yang sedang dimigrasikan ke Amazon Timestream. Set minimum izin akses untuk peran yang Anda gunakan untuk bermigrasi ke Timestream ditampilkan dalam kebijakan IAM berikut.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDescribeEndpoints", "Effect": "Allow", "Action": [ "timestream:DescribeEndpoints" ], "Resource": "*" }, { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "timestream:ListTables", "timestream:DescribeDatabase" ], "Resource": "arn:aws:timestream:
region
:account_id
:database/DATABASE_NAME
" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "timestream:DeleteTable", "timestream:WriteRecords", "timestream:UpdateTable", "timestream:CreateTable" ], "Resource": "arn:aws:timestream:region
:account_id
:database/DATABASE_NAME/table/TABLE_NAME
" } ] }
Jika Anda berniat untuk memigrasikan semua tabel, gunakan *
for TABLE_NAME
dalam contoh di atas.
Perhatikan hal berikut tentang penggunaan Timestream sebagai target:
-
Jika Anda bermaksud untuk menelan data historis dengan stempel waktu melebihi 1 tahun, sebaiknya gunakan untuk menulis data AWS DMS ke Amazon S3 dalam format nilai dipisahkan koma (csv). Kemudian, gunakan pemuatan batch Timestream untuk menyerap data ke Timestream. Untuk informasi selengkapnya, lihat Menggunakan pemuatan batch di Timestream dalam panduan pengembang Amazon Timestream.
Untuk migrasi data beban penuh data yang berusia kurang dari 1 tahun, sebaiknya setel periode penyimpanan penyimpanan memori tabel Timestream lebih besar dari atau sama dengan stempel waktu tertua. Kemudian, setelah migrasi selesai, edit penyimpanan penyimpanan memori tabel ke nilai yang diinginkan. Misalnya, untuk memigrasikan data dengan stempel waktu tertua yang berumur 2 bulan, lakukan hal berikut:
Setel retensi penyimpanan memori tabel target Timestream menjadi 2 bulan.
Mulai migrasi data menggunakan AWS DMS.
Setelah migrasi data selesai, ubah periode retensi tabel Timestream target ke nilai yang Anda inginkan.
Kami merekomendasikan untuk memperkirakan biaya penyimpanan memori sebelum migrasi, menggunakan informasi pada halaman berikut:
Untuk migrasi data CDC, sebaiknya atur periode retensi penyimpanan memori dari tabel target sehingga data yang tertelan berada dalam batas retensi penyimpanan memori. Untuk informasi selengkapnya, lihat Menulis Praktik Terbaik di panduan pengembang Amazon Timestream.
Pengaturan tugas beban penuh multithread
Untuk membantu meningkatkan kecepatan transfer data, AWS DMS mendukung tugas migrasi beban penuh multithreaded ke titik akhir target Timestream dengan pengaturan tugas ini:
-
MaxFullLoadSubTasks
- Gunakan pilihan ini untuk menunjukkan jumlah maksimum tabel sumber yang dimuat secara paralel. DMS memuat setiap tabel ke dalam tabel target Amazon Timestream yang sesuai menggunakan subtugas khusus. Default adalah 8; nilai maksimum adalah 49. -
ParallelLoadThreads
— Gunakan opsi ini untuk menentukan jumlah utas yang AWS DMS digunakan untuk memuat setiap tabel ke dalam tabel target Amazon Timestream. Nilai maksimum untuk target Timestream adalah 32. Anda dapat meminta untuk meningkatkan batas maksimum ini. -
ParallelLoadBufferSize
— Gunakan opsi ini untuk menentukan jumlah maksimum catatan yang akan disimpan dalam buffer yang digunakan thread beban paralel untuk memuat data ke target Amazon Timestream. Nilai default adalah 50. Nilai maksimumnya adalah 1.000. Gunakan pengaturan ini denganParallelLoadThreads
.ParallelLoadBufferSize
hanya berlaku bila ada lebih dari satu thread. -
ParallelLoadQueuesPerThread
- Gunakan pilihan ini untuk menentukan jumlah antrean yang diakses setiap thread secara bersamaan untuk mengambil catatan data dari antrean dan menghasilkan beban batch untuk target. Default adalah 1. Namun, untuk target Amazon Timestream dengan berbagai ukuran muatan, rentang yang valid adalah 5—512 antrian per utas.
Pengaturan beban tugas CDC multithread
Untuk mempromosikan kinerja CDC, AWS DMS mendukung pengaturan tugas ini:
-
ParallelApplyThreads
— Menentukan jumlah thread bersamaan yang AWS DMS digunakan selama beban CDC untuk mendorong catatan data ke titik akhir target Timestream. Nilai default adalah 0 dan nilai maksimum adalah 32. -
ParallelApplyBufferSize
— Menentukan jumlah maksimum catatan untuk disimpan di setiap antrian buffer untuk thread bersamaan untuk mendorong ke titik akhir target Timestream selama beban CDC. Nilai default adalah 100 dan nilai maksimum adalah 1.000. Gunakan pilihan ini saatParallelApplyThreads
menentukan lebih dari satu thread. -
ParallelApplyQueuesPerThread
— Menentukan jumlah antrian yang diakses setiap thread untuk mengeluarkan catatan data dari antrian dan menghasilkan beban batch untuk titik akhir Timestream selama CDC. Nilai default adalah 1 dan nilai maksimum adalah 512.
Pengaturan titik akhir saat menggunakan Timestream sebagai target AWS DMS
Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi database target Timestream Anda mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir target menggunakan AWS DMS konsol, atau dengan menggunakan create-endpoint
perintah di AWS CLI, dengan sintaks --timestream-settings '{"
JSON.EndpointSetting"
:
"value"
, ...
}'
Tabel berikut menunjukkan pengaturan endpoint yang dapat Anda gunakan dengan Timestream sebagai target.
Nama | Penjelasan |
---|---|
|
Setel atribut ini untuk menentukan retensi terikat untuk menyimpan data yang dimigrasikan di penyimpanan memori Timestream. Waktu diukur dalam satuan jam. Penyimpanan memori Timestream dioptimalkan untuk throughput konsumsi tinggi dan akses cepat. Nilai default: 24 (jam) Nilai valid: 1 hingga 8.736 (1 jam hingga 12 bulan diukur dalam jam) Contoh: |
|
Tetapkan atribut ini untuk menentukan nama database Timestream target. Jenis: string Contoh: |
|
Tetapkan atribut ini untuk menentukan nama tabel Timestream target. Jenis: string Contoh: |
|
Atur atribut ini untuk menentukan durasi magnetik yang diterapkan ke tabel Timestream dalam beberapa hari. Ini adalah retensi yang terikat untuk data yang dicerna. Timestream menghapus stempel waktu yang melebihi batas retensi. Untuk informasi selengkapnya, lihat Penyimpanan di Panduan Pengembang Amazon Timestream. Contoh: |
|
Setel atribut ini Nilai default: Contoh: |
|
Setel atribut ini Nilai default: Contoh: |
Membuat dan memodifikasi titik akhir target Amazon Timestream
Setelah Anda membuat peran IAM dan menetapkan set minimum izin akses, Anda dapat membuat titik akhir target Amazon Timestream menggunakan konsol, atau dengan menggunakan AWS DMS perintah di, dengan create-endpoint
sintaks AWS CLIJSON. --timestream-settings '{"
EndpointSetting"
:
"value"
, ...
}'
Contoh berikut menunjukkan cara membuat dan memodifikasi titik akhir target Timestream menggunakan. AWS CLI
Buat perintah titik akhir target Timestream
aws dms create-endpoint —endpoint-identifier timestream-target-demo --endpoint-type target —engine-name timestream --service-access-role-arn arn:aws:iam::123456789012:role/my-role --timestream-settings { "MemoryDuration": 20, "DatabaseName":"db_name", "MagneticDuration": 3, "CdcInsertsAndUpdates": true, "EnableMagneticStoreWrites": true, }
Ubah perintah titik akhir target Timestream
aws dms modify-endpoint —endpoint-identifier timestream-target-demo --endpoint-type target —engine-name timestream --service-access-role-arn arn:aws:iam::123456789012:role/my-role --timestream-settings { "MemoryDuration": 20, "MagneticDuration": 3, }
Menggunakan pemetaan objek untuk memigrasikan data ke topik Timestream
AWS DMS menggunakan aturan pemetaan tabel untuk memetakan data dari sumber ke topik Timestream target. Untuk memetakan data ke topik target, Anda menggunakan jenis aturan pemetaan tabel yang disebut pemetaan objek. Anda menggunakan pemetaan objek untuk menentukan bagaimana catatan data dalam peta sumber ke catatan data yang dipublikasikan ke topik Timestream.
Topik Timestream tidak memiliki struktur preset selain memiliki kunci partisi.
catatan
Anda tidak perlu menggunakan pemetaan objek. Anda dapat menggunakan pemetaan tabel biasa untuk berbagai transformasi. Namun, jenis kunci partisi akan mengikuti perilaku default ini:
-
Primary Key digunakan sebagai kunci partisi untuk Full Load.
-
Jika tidak ada pengaturan tugas penerapan paralel yang digunakan,
schema.table
digunakan sebagai kunci partisi untuk CDC. -
Jika pengaturan tugas penerapan paralel digunakan, kunci utama digunakan sebagai kunci partisi untuk CDC.
Untuk membuat aturan pemetaan objek, tetapkan rule-type
sebagai object-mapping
. Aturan ini menentukan jenis pemetaan objek yang ingin Anda gunakan. Struktur untuk aturan tersebut adalah sebagai berikut.
{ "rules": [ { "rule-type": "object-mapping", "rule-id": "
id
", "rule-name": "name
", "rule-action": "valid object-mapping rule action
", "object-locator": { "schema-name": "case-sensitive schema name
", "table-name": "" } } ] }
{ "rules": [ { "rule-type": "object-mapping", "rule-id": "1", "rule-name": "timestream-map", "rule-action": "map-record-to-record", "target-table-name": "tablename", "object-locator": { "schema-name": "", "table-name": "" }, "mapping-parameters": { "timestream-dimensions": [ "column_name1", "column_name2" ], "timestream-timestamp-name": "time_column_name", "timestream-multi-measure-name": "column_name1or2", "timestream-hash-measure-name": true or false, "timestream-memory-duration": x, "timestream-magnetic-duration": y } } ] }
AWS DMS saat ini mendukung map-record-to-record
dan map-record-to-document
sebagai satu-satunya nilai yang valid untuk rule-action
parameter. map-record-to-document
Nilai map-record-to-record
dan menentukan AWS DMS apa yang dilakukan secara default ke catatan yang tidak dikecualikan sebagai bagian dari daftar exclude-columns
atribut. Nilai-nilai ini tidak mempengaruhi pemetaan atribut dengan cara apapun.
Gunakan map-record-to-record
saat bermigrasi dari database relasional ke topik Timestream. Jenis aturan ini menggunakan taskResourceId.schemaName.tableName
nilai dari database relasional sebagai kunci partisi dalam topik Timestream dan menciptakan atribut untuk setiap kolom dalam database sumber. Saat menggunakanmap-record-to-record
, untuk kolom apa pun di tabel sumber yang tidak tercantum dalam daftar exclude-columns
atribut, AWS DMS buat atribut yang sesuai dalam topik target. Atribut yang sesuai ini dibuat terlepas dari apakah kolom sumber tersebut digunakan dalam pemetaan atribut.
Salah satu cara untuk memahami map-record-to-record
adalah melihatnya beraksi. Untuk contoh ini, anggaplah bahwa Anda memulai dengan baris tabel basis data relasional dengan struktur dan data berikut.
FirstName | LastName | StoreId | HomeAddress | HomePhone | WorkAddress | WorkPhone | DateofBirth |
---|---|---|---|---|---|---|---|
Randy |
Marsh | 5 |
221B Baker Street |
1234567890 |
31 Spooner Street, Quahog |
9876543210 |
02/29/1988 |
Untuk memigrasikan informasi ini dari skema bernama Test
ke topik Timestream, Anda membuat aturan untuk memetakan data ke topik target. Aturan berikut menggambarkan pemetaan.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "rule-action": "include", "object-locator": { "schema-name": "Test", "table-name": "%" } }, { "rule-type": "object-mapping", "rule-id": "2", "rule-name": "DefaultMapToTimestream", "rule-action": "map-record-to-record", "object-locator": { "schema-name": "Test", "table-name": "Customers" } } ] }
Diberikan topik Timestream dan kunci partisi (dalam hal ini,taskResourceId.schemaName.tableName
), berikut ini menggambarkan format rekaman yang dihasilkan menggunakan data sampel kami dalam topik target Timestream:
{ "FirstName": "Randy", "LastName": "Marsh", "StoreId": "5", "HomeAddress": "221B Baker Street", "HomePhone": "1234567890", "WorkAddress": "31 Spooner Street, Quahog", "WorkPhone": "9876543210", "DateOfBirth": "02/29/1988" }
Batasan saat menggunakan Amazon Timestream sebagai target AWS Database Migration Service
Batasan berikut berlaku saat menggunakan Amazon Timestream sebagai target:
Dimensi dan Stempel Waktu: Timestream menggunakan dimensi dan stempel waktu dalam data sumber seperti kunci primer komposit, dan juga tidak memungkinkan Anda untuk meningkatkan nilai-nilai ini. Ini berarti bahwa jika Anda mengubah stempel waktu atau dimensi untuk catatan dalam database sumber, database Timestream akan mencoba membuat catatan baru. Dengan demikian mungkin bahwa jika Anda mengubah dimensi atau stempel waktu rekaman sedemikian rupa sehingga cocok dengan catatan lain yang ada, maka AWS DMS perbarui nilai catatan lain alih-alih membuat catatan baru atau memperbarui catatan terkait sebelumnya.
Perintah DDL: Rilis saat ini AWS DMS hanya mendukung
CREATE TABLE
dan perintahDROP TABLE
DDL.Batasan Rekam: Timestream memiliki batasan untuk catatan seperti ukuran rekaman dan ukuran ukuran. Untuk informasi selengkapnya, lihat Kuota di Panduan Developer Amazon Timestream.
Menghapus Catatan dan Nilai Null: Timestream tidak mendukung penghapusan catatan. Untuk mendukung migrasi catatan yang dihapus dari sumber, AWS DMS menghapus bidang terkait dalam catatan dalam database target Timestream. AWS DMS mengubah nilai di bidang catatan target yang sesuai dengan 0 untuk bidang numerik, null untuk bidang teks, dan false untuk bidang boolean.
Timestream sebagai target tidak mendukung sumber yang bukan database relasional (RDBMS).
AWS DMS hanya mendukung Timestream sebagai target di wilayah berikut:
AS Timur (N. Virginia)
AS Timur (Ohio)
AS Barat (Oregon)
Europe (Ireland)
Europe (Frankfurt)
Asia Pasifik (Sydney)
Asia Pasifik (Tokyo)
Timestream sebagai target tidak mendukung pengaturan
TargetTablePrepMode
keTRUNCATE_BEFORE_LOAD
. Kami merekomendasikan penggunaanDROP_AND_CREATE
untuk pengaturan ini.