Utilizzo di Kinesis Data Streams per acquisire le modifiche apportate a Dynamo DB.
Utilizzare Amazon Kinesis Data Streams per acquisire le modifiche apportate a Amazon DynamoDB.
Kinesis Data Streams acquisisce le modifiche a livello di elemento in qualsiasi tabella DynamoDB e le replica in un flusso dei dati Kinesis. Le applicazioni possono accedere a questo flusso e visualizzare le modifiche a livello di elemento quasi in tempo reale. Puoi acquisire e archiviare in modo continuo terabyte di dati ogni ora. Puoi sfruttare tempi di conservazione dei dati più lunghi e, grazie alla funzionalità di fan-out migliorata, puoi raggiungere contemporaneamente due o più applicazioni downstream. Altri vantaggi includono controlli aggiuntivi e trasparenza della sicurezza.
Il flusso di dati Kinesis consente inoltre di accedere ad Amazon Data Firehose e al Servizio gestito da Amazon per Apache Flink. Questi servizi consentono di creare applicazioni per utilizzare pannelli di controllo in tempo reale, generare avvisi, implementare prezzi e inserzioni dinamici ed eseguire analisi dei dati e algoritmi di machine learning sofisticati.
Nota
L'utilizzo di Kinesis Data Streams per DynamoDB è soggetto ai prezzi di Kinesis Data Streams
Funzionamento di Kinesis Data Streams con DynamoDB
Quando un flusso dei dati Kinesis è abilitato per una tabella DynamoDB, quest'ultima invia un record di dati che acquisisce eventuali modifiche ai dati della tabella. Questo record di dati include:
-
L'ora specifica in cui qualsiasi elemento è stato creato, aggiornato o eliminato di recente
-
La chiave primaria di quell'elemento
-
Uno snapshot del record prima della modifica
-
Uno snapshot del record dopo la modifica
Questi record di dati vengono acquisiti e pubblicati quasi in tempo reale. Dopo essere stati scritti sul flusso dei dati Kinesis, possono essere letti come qualsiasi altro record. Puoi utilizzare Kinesis Client Library, utilizzare AWS Lambda, richiamare l'API Kinesis Data Streams e utilizzare altri servizi connessi. Per ulteriori informazioni, consulta Lettura di dati da Amazon Kinesis Data Streams nella Guida per gli sviluppatori di Amazon Kinesis Data Streams.
Queste modifiche dei dati vengono acquisite anche in modo asincrono. Kinesis non ha alcun impatto sulle prestazioni di una tabella da cui esegue lo streaming. I record del flusso archiviati nel flusso dei dati Kinesis sono crittografati anche a riposo. Per ulteriori informazioni, consulta Protezione dei dati in Amazon Kinesis Data Streams.
I record del flusso di dati Kinesis potrebbero essere visualizzati in un ordine diverso rispetto alle modifiche apportate all’elemento. Le notifiche dello stesso elemento potrebbero apparire anche più di una volta nel flusso. È possibile controllare l’attributo ApproximateCreationDateTime per identificare l’ordine in cui sono state apportate le modifiche all’elemento e i record duplicati.
Abilitando un flusso di dati Kinesis come destinazione di streaming di una tabella DynamoDB, è possibile configurare la precisione dei valori ApproximateCreationDateTime in millisecondi o microsecondi. Per impostazione predefinita, ApproximateCreationDateTime indica l’ora della modifica in millisecondi. Inoltre, è possibile modificare questo valore su una destinazione di streaming attiva. Dopo tale aggiornamento, i record di flussi scritti su Kinesis avranno i valori ApproximateCreationDateTime della precisione desiderata.
I valori binari scritti in DynamoDB devono essere codificati in formato con codifica base64. Tuttavia, quando i record di dati vengono scritti su un flusso di dati Kinesis, questi valori binari codificati vengono codificati una seconda volta con la codifica base64. Quando leggono questi record da un flusso di dati Kinesis, per recuperare i valori binari non elaborati, le applicazioni devono decodificare questi valori due volte.
DynamoDB addebita l’utilizzo di Kinesis Data Streams nelle unità di acquisizione dei dati di modifica. 1 KB di modifica per singolo elemento conta come un'unità di acquisizione dei dati di modifica. I KB di modifica in ogni elemento sono calcolati in base alla più grande delle immagini "prima" e "dopo" dell'elemento scritto nello stream, utilizzando la stessa logica di consumo di unità di capacità per operazioni di scrittura. In modo analogo al funzionamento della modalità on demand di DynamoDB, non è necessario effettuare il provisioning del throughput della capacità per le unità di acquisizione dei dati di modifica.
Attivazione di un flusso di dati Kinesis per la tabella DynamoDB
Puoi abilitare o disabilitare lo streaming su Kinesis da una tabella DynamoDB esistente utilizzando la Console di gestione AWS, l'SDK AWS o AWS Command Line Interface (AWS CLI).
-
Puoi eseguire lo streaming dei dati da DynamoDB a Kinesis Data Streams solo nello stesso account AWS e nella stessa regione AWS della tabella.
-
Puoi eseguire lo streaming dei dati solo da una tabella DynamoDB a un flusso dei dati Kinesis.
Applicazione di modifiche a una destinazione di un flusso di dati Kinesis su una tabella DynamoDB
Per impostazione predefinita, tutti i record del flusso di dati Kinesis includono un attributo ApproximateCreationDateTime. Questo attributo rappresenta un timestamp in millisecondi dell’ora approssimativa in cui ogni record è stato creato. È possibile modificare la precisione di questi valori utilizzando https://console.aws.amazon.com/kinesis