View a markdown version of this page

Tabelle di streaming e distribuzione S3 per Amazon Kinesis Data Streams - Flusso di dati Amazon Kinesis

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à.

Tabelle di streaming e distribuzione S3 per Amazon Kinesis Data Streams

Con Amazon Kinesis Data Streams, puoi distribuire dati in streaming dai tuoi flussi di dati Kinesis a due tipi di destinazione: tabelle di streaming su Apache Iceberg (Amazon S3 Tables) o bucket Amazon S3 per uso generico. Non è necessario gestire alcuna infrastruttura e puoi iniziare a distribuire in pochi minuti. Amazon Kinesis Data Streams legge i tuoi flussi, memorizza nel buffer e aggrega i record e li consegna alla destinazione configurata. La distribuzione è completamente gestita: non ci sono connettori, applicazioni consumer o risorse di elaborazione da fornire.

Queste funzionalità sono supportate per gli stream eseguiti in modalità di capacità On-Demand Advantage o On-Demand Standard. Puoi configurare la consegna dal tuo stream e specificare una destinazione. Amazon Kinesis Data Streams gestisce quindi automaticamente la scalabilità, i nuovi tentativi e l'affidabilità della distribuzione. La distribuzione non consuma la velocità di lettura dello stream e non ha alcun impatto sui consumatori esistenti.

Come funziona la distribuzione dei dati

La distribuzione dei dati collega il flusso di dati Kinesis a una destinazione di consegna tramite una pipeline gestita:

  1. I dati vengono pubblicati su un flusso di dati Kinesis in On-Demand modalità.

  2. CreateChannelChiamate lo stream e specificate una destinazione (tabelle di streaming su Apache Iceberg o un bucket Amazon S3 per uso generico).

  3. La distribuzione legge dal flusso, memorizza i record nel buffer e li aggrega in file di dimensioni ottimali.

  4. La consegna scrive i file nella destinazione configurata all'interno della finestra di aggiornamento dei dati specificata.

Destinazioni di consegna

La consegna dei dati supporta due tipi di destinazione:

Tabelle di streaming su Apache Iceberg

Le tabelle di streaming trasferiscono continuamente il flusso di dati Kinesis nelle tabelle Apache Iceberg archiviate in Amazon S3 Tables. Non appena i dati arrivano, vengono convertiti automaticamente in formato Apache Parquet ottimizzato con una compattazione intelligente in linea che elimina il problema dei file di piccole dimensioni e riduce i costi delle query a valle. Entro pochi minuti dalla pubblicazione nel tuo stream, i dati diventano interrogabili tramite Amazon Athena, Amazon EMR, Amazon Managed Service for Apache Flink o qualsiasi motore che supporti Apache Iceberg.

Bucket Amazon S3 per uso generico

Amazon S3 Delivery scrive i dati di streaming dal flusso di dati Kinesis direttamente in un bucket S3. I record vengono consegnati nel formato sorgente originale senza alcuna trasformazione applicata. Più record vengono memorizzati nel buffer e raggruppati in oggetti di dimensioni ottimali, con compressione configurabile e una struttura di chiavi S3 definita tramite il modello di chiave di output. È ideale per casi d'uso come l'archiviazione di log non elaborati, la riproduzione di eventi e l'elaborazione in batch a valle, in cui è necessario uno storage durevole e a basso costo dei dati di streaming senza il sovraccarico della gestione di una pipeline di distribuzione.

Flusso di dati

Il diagramma seguente mostra un flusso di dati end-to-end per la distribuzione alle tabelle di streaming su Apache Iceberg. Il diagramma utilizza un caso d'uso relativo alle transazioni con carta come esempio. Un produttore serializza i record in base a uno AWS Glue schema in Schema Registry e li scrive in un flusso di dati Kinesis. Amazon Kinesis Data Streams fornisce i record alle tabelle Apache Iceberg su Amazon S3 Tables. Se abiliti l'integrazione dell'analisi in S3 Tables, i metadati della tabella vengono registrati anche nel AWS Glue Data Catalog; ciò non avviene per impostazione predefinita. I dati forniti e i relativi metadati sono quindi disponibili per i motori di analisi e intelligenza artificiale come Amazon Athena, Amazon Redshift e Amazon EMR.

La consegna ai bucket Amazon S3 per uso generico segue un flusso simile, con due differenze. Un produttore scrive i record su un flusso di dati Kinesis e Amazon Kinesis Data Streams li invia al tuo bucket S3. I record vengono forniti nel formato di origine originale senza alcuna conversione, quindi non è necessario AWS Glue lo Schema Registry e nessun metadato di tabella viene registrato nel Data Catalog. AWS Glue Amazon Kinesis Data Streams memorizza nel buffer e raggruppa i record in oggetti di dimensioni ottimali e li scrive utilizzando la struttura di chiavi S3 definita tramite il modello di chiave di output. Gli oggetti consegnati sono quindi disponibili per l'elaborazione e l'analisi in batch a valle.

Diagramma di architettura che mostra i record delle transazioni con carta serializzati tramite AWS Glue Schema Registry in un flusso di dati Kinesis, distribuiti alle tabelle Apache Iceberg su Amazon S3 Tables con metadati registrati nel Data Catalog e utilizzati da motori di analisi e intelligenza AWS Glue artificiale tra cui Amazon Athena, Amazon Redshift e Amazon EMR.

Funzionalità chiave

La distribuzione dei dati offre le seguenti funzionalità chiave:

  • Auto-scaling senza server: scalabilità automatica in base al throughput dello stream, fino alla capacità di throughput dello stream. Nessuna risorsa di elaborazione da fornire.

  • Exactly-once consegna per shard: i record di uno shard vengono consegnati alla destinazione esattamente una volta, senza duplicati o omissioni all'interno dello shard.

  • Distribuzione quasi in tempo reale: aggiornamento dei dati configurabile da 5 a 15 minuti (da 300 a 900 secondi).

  • Conversione automatica di Parquet: per le tabelle in streaming su Apache Iceberg, converte i record di streaming in formato Apache Parquet ottimizzato per query di analisi efficienti.

  • Compattazione in linea: aggrega i record in file di dimensioni ottimali per le prestazioni delle query di analisi.

  • Crittografia: supporta AWS KMS le chiavi gestite dal cliente per la crittografia lato server nella destinazione. Chiave gestita da AWS (l'aws/kinesisalias) non è supportato per la crittografia della destinazione.

  • Dead-letter queue: i metadati di errore per i record che non possono essere consegnati, inclusi l'ARN dello stream, l'ID dello shard, il numero di sequenza e il contesto dell'errore, vengono scritti in una coda di lettere morte. S3-based

  • CloudWatch metriche e log: monitora i byte distribuiti, il conteggio dei record e l'aggiornamento dei dati tramite i parametri di Amazon. CloudWatch Abilita la registrazione delle consegne su Amazon CloudWatch Logs per acquisire i dettagli del batch di consegna, gli errori e il contesto degli errori per la risoluzione dei problemi.

  • Nessun impatto sugli altri consumatori: non utilizza slot di fan-out avanzati o velocità di trasmissione condivisa.

Requisiti

La distribuzione dei dati ha i seguenti requisiti:

  • Il flusso di dati Kinesis deve utilizzare la modalità di capacità On-Demand Standard o On-Demand Advantage.

  • È necessario creare un ruolo di esecuzione del servizio IAM che conceda le autorizzazioni di consegna per scrivere sulla destinazione.

  • Il bucket di destinazione o il bucket da tavolo deve trovarsi nella stessa regione del flusso di dati Kinesis. La consegna dei dati non supporta la consegna tra regioni per entrambi i tipi di destinazione.

  • Per le tabelle di streaming su Apache Iceberg, la distribuzione tra account non è supportata. Il flusso di origine, il bucket di tabelle S3 di destinazione e il registro AWS Glue dello schema devono trovarsi tutti nella stessa Account AWS regione.

  • Per i bucket Amazon S3 per uso generico, la consegna tra account è supportata solo per il bucket di destinazione. Il canale e il relativo flusso di origine devono trovarsi nello stesso account Account AWS; solo il bucket di destinazione può trovarsi in un account diverso.

  • Per le tabelle di streaming su Apache Iceberg, devi configurare una coda di lettere non scritte in Amazon S3.