Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di Amazon Timestream come obiettivo per AWS Database Migration Service
Puoi utilizzarli AWS Database Migration Service per migrare i dati dal tuo database di origine a un endpoint di destinazione Amazon Timestream, con supporto per le migrazioni di dati Full Load e CDC.
Amazon Timestream è un servizio di database di serie temporali veloce, dimensionabile e serverless creato per l'importazione di grandi volumi di dati. I dati di serie temporali sono una sequenza di punti dati raccolti in un intervallo di tempo che vengono utilizzati per misurare gli eventi che cambiano nel tempo. Viene utilizzato per raccogliere, archiviare e analizzare metriche da applicazioni IoT, DevOps applicazioni e applicazioni di analisi. Una volta che i dati sono disponibili in Timestream, puoi visualizzarne e identificarne le tendenze e i modelli pressoché in tempo reale. Per informazioni su Amazon Timestream, consulta What is Amazon Timestream? nella Guida per gli sviluppatori di Amazon Timestream.
Argomenti
Impostazioni dell'endpoint quando si utilizza Timestream come destinazione per AWS DMS
Creazione e modifica di un endpoint di destinazione Amazon Timestream
Utilizzo della mappatura degli oggetti per la migrazione dei dati in un argomento Timestream
Limitazioni nell'utilizzo di Amazon Timestream come destinazione per AWS Database Migration Service
Prerequisiti per l'utilizzo di Amazon Timestream come destinazione per AWS Database Migration Service
Prima di configurare Amazon Timestream come obiettivo AWS DMS per, assicurati di creare un ruolo IAM. Questo ruolo deve consentire l'accesso AWS DMS ai dati migrati in Amazon Timestream. Il set minimo di autorizzazioni di accesso per il ruolo utilizzato per la migrazione a Timestream è illustrato nella seguente policy IAM.
{ "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
" } ] }
Se intendi migrare tutte le tabelle, usa *
for TABLE_NAME
nell'esempio precedente.
Tieni presenti le seguenti indicazioni sull'utilizzo di Timestream come destinazione:
-
Se intendi importare dati storici con timestamp creati da più di un anno, ti consigliamo di usare AWS DMS per scrivere i dati su Amazon S3 nel formato con valori separati da virgole (csv). Quindi, utilizza il caricamento in batch di Timestream per importare i dati in Timestream. Per ulteriori informazioni, consulta Using batch load in Timestream nella Guida per gli sviluppatori di Amazon Timestream.
Per le migrazioni di dati di tipo pieno carico eseguite da meno di un anno, ti consigliamo di impostare un periodo di conservazione dell'archivio di memoria della tabella Timestream maggiore o uguale al timestamp più vecchio. Quindi, una volta completata la migrazione, modifica il periodo di conservazione dell'archivio di memoria della tabella impostando il valore desiderato. Ad esempio, per migrare i dati con un timestamp creato da più 2 mesi, procedi come segue:
Imposta il periodo di conservazione dell'archivio di memoria della tabella di destinazione Timestream su 2 mesi.
Inizia la migrazione dei dati utilizzando AWS DMS.
Una volta completata la migrazione dei dati, modifica il periodo di conservazione della tabella di destinazione Timestream impostando il valore desiderato.
Ti consigliamo di stimare il costo dell'archivio di memoria prima della migrazione utilizzando le informazioni presenti nelle pagine seguenti:
Per le migrazioni dei dati di tipo CDC, ti consigliamo di impostare il periodo di conservazione dell'archivio di memoria della tabella di destinazione in modo che i dati importati rientrino nei limiti stabiliti. Per ulteriori informazioni, consulta Writes Best Practices nella Guida per gli sviluppatori di Amazon Timestream.
Impostazioni attività a pieno carico multithread
Per contribuire ad aumentare la velocità di trasferimento dei dati, AWS DMS supporta un'attività di migrazione multithread a pieno carico verso un endpoint di destinazione Timestream con queste impostazioni di attività:
-
MaxFullLoadSubTasks
: imposta questa opzione per indicare il numero massimo di tabelle da caricare in parallelo. DMS carica ogni tabella nella tabella di destinazione Amazon Timestream corrispondente utilizzando una sottoattività dedicata. Il valore predefinito è 8; il valore il massimo è 49. -
ParallelLoadThreads
— Usa questa opzione per specificare il numero di thread da utilizzare per caricare ogni tabella nella relativa tabella di destinazione Amazon Timestream. AWS DMS Il valore massimo per una destinazione Timestream è 32. Puoi chiedere che questo limite massimo venga aumentato. -
ParallelLoadBufferSize
: utilizza questa opzione per specificare il numero massimo di record da archiviare nel buffer usato dai thread di caricamento parallelo per caricare i dati nella destinazione Amazon Timestream. Il valore predefinito è 50. Il valore massimo è 1.000. Utilizzare questo parametro conParallelLoadThreads
;ParallelLoadBufferSize
è valido solo quando è presente più di un thread. -
ParallelLoadQueuesPerThread
: utilizza questa opzione per specificare il numero di code a cui accede ogni thread simultaneo per eliminare i record di dati dalle code e generare un carico batch per la destinazione. Il valore di default è 1. Tuttavia, per le destinazioni Amazon Timestream con varie dimensioni del payload, l'intervallo valido è compreso tra 5 e 512 code per thread.
Impostazioni attività di carico CDC multithread
Per promuovere le prestazioni del CDC, AWS DMS supporta le seguenti impostazioni delle attività:
-
ParallelApplyThreads
— specifica il numero di thread simultanei che vengono AWS DMS utilizzati durante un caricamento CDC per inviare i record di dati a un endpoint di destinazione Timestream. Il valore predefinito è 0 e il valore massimo è 32. -
ParallelApplyBufferSize
: specifica il numero massimo di record da archiviare in ogni coda di buffer per eseguire il push dei thread simultanei a un endpoint di destinazione Timestream durante un carico CDC. Il valore predefinito è 100 e il valore massimo è 1.000. Utilizzare questa opzione quandoParallelApplyThreads
specifica più di un thread. -
ParallelApplyQueuesPerThread
: specifica il numero di code a cui ogni thread accede per eliminare i record di dati dalle code e generare un carico in batch per un endpoint Timestream durante la CDC. Il valore predefinito è 1 e il valore massimo è 512.
Impostazioni dell'endpoint quando si utilizza Timestream come destinazione per AWS DMS
È possibile utilizzare le impostazioni di endpoint per configurare il database di destinazione Timestream in modo simile a come si usano gli attributi aggiuntivi di connessione. Le impostazioni vengono specificate quando si crea l'endpoint di destinazione utilizzando la AWS DMS console o utilizzando il create-endpoint
comando in AWS CLI, con la sintassi JSON. --timestream-settings '{"
EndpointSetting"
:
"value"
, ...
}'
La tabella riportata di seguito mostra le impostazioni degli endpoint che è possibile utilizzare con Timestream come destinazione.
Nome | Descrizione |
---|---|
|
Imposta questo attributo per specificare il limite di conservazione dei dati migrati nell'archivio di memoria di Timestream. Il tempo è misurato in unità di ore. L'archivio di memoria di Timestream è ottimizzato per l'elevata velocità di trasmissione effettiva di importazione e l'accesso rapido. Valore predefinito: 24 (ore) Valori validi: da 1 a 8.736 (da 1 ora a 12 mesi misurati in ore) Esempio: |
|
Imposta questo attributo per specificare il nome del database di destinazione Timestream. Tipo: stringa Esempio: |
|
Imposta questo attributo per specificare il nome della tabella di destinazione Timestream. Tipo: stringa Esempio: |
|
Imposta questo attributo per specificare in giorni la durata dell'archivio magnetico applicata alle tabelle Timestream. Questo è il limite di conservazione per i dati importati. Timestream elimina qualsiasi timestamp che supera il limite di conservazione. Per ulteriori informazioni, consulta Storage nella Guida per gli sviluppatori di Amazon Timestream. Esempio: |
|
Imposta questo attributo su Valore predefinito: Esempio: |
|
Imposta questo attributo su Valore predefinito: Esempio: |
Creazione e modifica di un endpoint di destinazione Amazon Timestream
Dopo aver creato un ruolo IAM e stabilito il set minimo di autorizzazioni di accesso, puoi creare un endpoint di destinazione Amazon Timestream AWS DMS utilizzando la console o create-endpoint
utilizzando il comando AWS CLIin, con la sintassi JSON. --timestream-settings '{"
EndpointSetting"
:
"value"
, ...
}'
Negli esempi seguenti viene illustrato come creare o modificare un endpoint di destinazione Timestream mediante la AWS CLI.
Comando per creare l'endpoint di destinazione 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, }
Comando per modificare l'endpoint di destinazione 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, }
Utilizzo della mappatura degli oggetti per la migrazione dei dati in un argomento Timestream
AWS DMS utilizza regole di mappatura delle tabelle per mappare i dati dall'argomento Timestream di origine a quello di destinazione. Per mappare i dati a un argomento di destinazione, è necessario utilizzare una regola di mappatura delle tabelle denominata mappatura degli oggetti. La mappatura degli oggetti consente di definire il modo in cui i record di dati dell'origine vengono mappati ai record di dati pubblicati nell'argomento Timestream.
Gli argomenti Timestream non dispongono di una struttura preimpostata oltre a una chiave di partizione.
Nota
Non è necessario utilizzare la mappatura degli oggetti. È possibile utilizzare la normale mappatura delle tabelle per varie trasformazioni. Tuttavia, il tipo di chiave della partizione segue questi comportamenti predefiniti:
-
La chiave primaria viene utilizzata come chiave di partizione per il pieno carico.
-
Se non vengono utilizzate le impostazioni delle attività di applicazione parallela,
schema.table
viene usato come chiave di partizione per la CDC. -
Se vengono utilizzate le impostazioni delle attività di applicazione parallela, la chiave primaria viene utilizzata come chiave di partizione per CDC.
Per creare una regola di mappatura degli oggetti, è necessario impostare il parametro rule-type
su object-mapping
. Questa regola specifica il tipo di mappatura degli oggetti da utilizzare. Di seguito è riportata la struttura per la regola.
{ "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 attualmente supporta map-record-to-record
e map-record-to-document
è l'unico valore valido per il parametro. rule-action
map-record-to-document
I valori map-record-to-record
and specificano cosa AWS DMS fa per impostazione predefinita ai record che non sono esclusi dall'elenco degli exclude-columns
attributi. Questi valori non influiscono in alcun modo sulle mappature degli attributi.
Utilizza map-record-to-record
per la migrazione da un database relazionale a un argomento Timestream. Questo tipo di regola utilizza il valore taskResourceId.schemaName.tableName
del database relazionale come chiave di partizione nell'argomento Timestream e crea un attributo per ogni colonna del database di origine. Quando si utilizzamap-record-to-record
, per ogni colonna della tabella di origine non elencata nell'elenco exclude-columns
degli attributi, AWS DMS crea un attributo corrispondente nell'argomento di destinazione. Questo attributo corrispondente viene creato indipendentemente dal fatto che tale colonna di origine venga utilizzata o meno in una mappatura degli attributi.
Per comprendere il funzionamento di map-record-to-record
, è opportuno esaminarne il comportamento in azione. Per questo esempio, supponiamo che tu stia iniziando con una riga di tabella del database relazionale con la struttura e i dati seguenti.
FirstName | LastName | StoreId | HomeAddress | HomePhone | WorkAddress | WorkPhone | DateofBirth |
---|---|---|---|---|---|---|---|
Randy |
Marsh | 5 |
221B Baker Street |
1234567890 |
31 Spooner Street, Quahog |
9876543210 |
02/29/1988 |
Per eseguire la migrazione di queste informazioni da uno schema denominato Test
a un argomento Timestream, crea le regole per mappare i dati sull'argomento di destinazione. La regola seguente illustra la mappatura.
{ "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" } } ] }
Dato un argomento Timestream e una chiave di partizione (in questo caso, taskResourceId.schemaName.tableName
), il seguente esempio illustra il formato di record risultante per l'argomento di destinazione Timestream utilizzando i dati di esempio:
{ "FirstName": "Randy", "LastName": "Marsh", "StoreId": "5", "HomeAddress": "221B Baker Street", "HomePhone": "1234567890", "WorkAddress": "31 Spooner Street, Quahog", "WorkPhone": "9876543210", "DateOfBirth": "02/29/1988" }
Limitazioni nell'utilizzo di Amazon Timestream come destinazione per AWS Database Migration Service
Quando si utilizza Amazon Timestream come destinazione si applicano le seguenti limitazioni:
Dimensioni e timestamp: Timestream utilizza le dimensioni e i timestamp dei dati di origine come chiave primaria composita e non consente di alterare questi valori. Ciò significa che se modifichi il timestamp o le dimensioni di un record nel database di origine, il database Timestream prova a creare un nuovo record. È quindi possibile che, se modifichi la dimensione o il timestamp di un record in modo che corrispondano a quelli di un altro record esistente, AWS DMS aggiorni i valori dell'altro record anziché creare un nuovo record o aggiornare il record precedente corrispondente.
Comandi DDL: la versione corrente dei AWS DMS soli supporti
CREATE TABLE
eDROP TABLE
comandi DDL.Limitazioni relative ai record: Timestream include delle limitazioni per i record, ad esempio la dimensione del record e la dimensione della misura. Per ulteriori informazioni, consultare Quote nella Guida per gli sviluppatori di Amazon Timestream.
Eliminazione di record e valori nulli: Timestream non supporta l'eliminazione di record. Per supportare la migrazione dei record eliminati dall'origine, AWS DMS cancella i campi corrispondenti nei record nel database di destinazione Timestream. AWS DMS modifica i valori nei campi del record di destinazione corrispondente con 0 per i campi numerici, null per i campi di testo e false per i campi booleani.
Timestream come destinazione non supporta origini diverse da database relazionali.
AWS DMS supporta Timestream come destinazione solo nelle seguenti regioni:
Stati Uniti orientali (Virginia settentrionale)
Stati Uniti orientali (Ohio)
US West (Oregon)
Europa (Irlanda)
Europa (Francoforte)
Asia Pacifico (Sydney)
Asia Pacifico (Tokyo)
Timestream come destinazione non supporta l'impostazione di
TargetTablePrepMode
suTRUNCATE_BEFORE_LOAD
. Ti consigliamo di utilizzareDROP_AND_CREATE
per questa impostazione.