View a markdown version of this page

Le migliori pratiche per la distribuzione dei dati - 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à.

Le migliori pratiche per la distribuzione dei dati

Le seguenti best practice ti aiutano a ottenere il massimo dalla distribuzione dei dati in Amazon Kinesis Data Streams. Per l'elenco completo dei parametri di consegna a cui si fa riferimento in questi consigli, consulta. Monitoraggio della distribuzione dei dati

Produttività e aggiornamento dei dati

Ottimizza la frequenza di consegna e monitora la latenza di distribuzione in modo che le dimensioni dei file di output e l'aggiornamento dei dati corrispondano al carico di lavoro:

  • Imposta il DataFreshnessInSeconds parametro in base alla velocità di trasmissione dello stream. Valori più bassi aumentano la frequenza di trasmissione, ma potrebbero comportare file di output più piccoli. Valori più alti consentono l'accumulo di più dati per ogni ciclo di consegna.

  • Crea un CloudWatch allarme Amazon sulla DataFreshness metrica per rilevare quando la latenza di consegna supera la soglia accettabile.

  • È possibile creare più consegne dallo stesso flusso Kinesis Data Streams. Ogni distribuzione opera in modo indipendente, consentendoti di inviare dati a più destinazioni contemporaneamente.

Gestione dello schema (tabelle di streaming su Apache Iceberg)

Poiché le consegne di tabelle di streaming si legano a uno schema fisso e non supportano l'evoluzione dello schema, gestisci gli schemi con attenzione per evitare consegne non riuscite:

  • Registra i tuoi schemi in Schema Registry prima di AWS Glue creare una consegna. La consegna utilizza lo schema registrato per definire la struttura della tabella di destinazione.

  • Le consegne non supportano l'evoluzione dello schema. Se lo schema cambia, è necessario eliminare e ricreare la consegna con lo schema aggiornato.

  • Utilizza la convalida dello schema lato produttore per assicurarti che tutti i record siano conformi allo schema registrato prima di essere scritti nello stream. Ciò riduce al minimo la mancata consegna dei record.

Layout degli oggetti S3 (bucket Amazon S3 per uso generico)

Disponi gli oggetti distribuiti per migliorare le prestazioni delle query a valle e controllare i costi di storage:

  • Scegliete un modello di chiave di output che corrisponda ai modelli di query dei vostri consumatori a valle. Ad esempio, utilizza prefissi basati sulla data se le query vengono spesso filtrate per intervallo di tempo.

  • Abilita la compressione GZIP o ZSTD per ridurre i costi di archiviazione e migliorare le prestazioni di lettura per i carichi di lavoro di analisi downstream.

  • Scegli la classe di storage Amazon S3 appropriata in base ai tuoi modelli di accesso ai dati. Utilizza STANDARD per i dati a cui si accede di frequente, INTELLIGENT_TIERING per consentire ad Amazon S3 di spostare automaticamente gli oggetti tra i livelli di accesso o GLACIER_IR per dati ad accesso raro che richiedono ancora un recupero in millisecondi.

Sicurezza

Proteggi i dati e le credenziali di consegna con accesso, crittografia e controllo con privilegi minimi:

  • Amplia la tua policy IAM in base al bucket o alla tabella specifici in cui la distribuzione scrive. Evita di usare ARN di risorse wildcard.

  • Includi le chiavi aws:SourceArn e aws:SourceAccount condition nella policy di fiducia del ruolo IAM utilizzato dalla distribuzione. In questo modo si evita il confuso problema del vicesceriffo, assicurando che solo il responsabile specifico del reparto possa assumere il ruolo.

  • Abilita AWS CloudTrail la registrazione per controllare tutte le chiamate API di consegna e le modifiche alla configurazione.

  • Utilizza una AWS KMS chiave gestita dal cliente per i dati sensibili. In questo modo hai il pieno controllo sulla rotazione delle chiavi, sulle politiche di accesso e sugli audit trail.

Dead-letter coda

Acquisisci e diagnostica i record che non possono essere consegnati configurando e monitorando una coda di lettere non scritte:

  • Configura sempre una coda di lettere non scritte per la consegna. I record che non possono essere consegnati a destinazione vengono inviati alla coda delle lettere non scritte per essere esaminati successivamente.

  • Monitora la DLQDeliverySuccess metrica (DeliveryToS3.DLQDeliverySuccessoDeliveryToIceberg.DLQDeliverySuccess) in CloudWatch per rilevare quando i record vengono indirizzati alla coda delle lettere morte.

  • Ispeziona regolarmente le voci in coda per identificare i modelli di mancata consegna e adottare misure correttive a livello di produttore o di configurazione di consegna.

Monitoraggio

Rileva tempestivamente i problemi di consegna segnalando le metriche chiave e abilitando i registri di consegna: CloudWatch

  • Crea CloudWatch allarmi in base alle metriche relative alla consegna DataFreshness e ai dati non riusciti (DeliveryToS3.FailedRecordCounto) per rilevare in modo proattivo i problemi di consegna. DeliveryToIceberg.FailedRowCount

  • Abilita CloudWatch i registri per la consegna per acquisire diagnosi dettagliate di consegna e messaggi di errore.

  • Tieni traccia della metrica dei byte consegnati (DeliveryToS3.BytesOutoDeliveryToIceberg.BytesOut) per monitorare la velocità effettiva e identificare cali imprevisti del volume di dati.