View a markdown version of this page

Gestisci dischi di grandi dimensioni - 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à.

Gestisci dischi di grandi dimensioni

Amazon Kinesis Data Streams supporta record fino a 10 MiBs mebibyte (). Questa funzionalità è consigliata per l'elaborazione di payload di dati intermittenti che superano il limite predefinito di dimensione del record di 1 MiB. La dimensione massima di registrazione predefinita per gli stream esistenti e quelli appena creati è impostata su 1 MiB.

Questa funzionalità offre vantaggi alle applicazioni Internet of Things (IoT), alle pipeline di acquisizione dei dati di modifica (CDC) e ai flussi di lavoro di apprendimento automatico che richiedono l'elaborazione di payload di dati occasionali più grandi. Per iniziare a utilizzare record di grandi dimensioni nel tuo stream, aggiorna il limite massimo di dimensione dei record dello stream.

Importante

Il limite di velocità effettiva dei singoli shard, pari a 1 MB/s per le scritture e 2 MB/s per le letture, rimane invariato e supporta record di dimensioni maggiori. Kinesis Data Streams è progettato per ospitare record intermittenti di grandi dimensioni insieme a un traffico di record di base inferiore o uguale a 1 MiB. Non è progettato per consentire l'ingestione sostenuta di record di grandi dimensioni e ad alto volume.

Come funzionano i dischi di grandi dimensioni

Amazon Kinesis Data Streams accetta record di dimensioni fino a 10 MiB. Il tuo stream può contenere record di grandi dimensioni superando temporaneamente il suo throughput di scrittura sostenuto, per poi tornare alla frequenza di base nel tempo. Questa capacità di burst viene continuamente rifornita, quindi lo stream può gestire record intermittenti di grandi dimensioni parallelamente al traffico normale senza alcuna regolazione manuale della capacità.

Per visualizzare questo comportamento, pensate alla capacità di scrittura dello stream come a un serbatoio che si ricarica a una velocità costante. Quando si invia un record di grandi dimensioni, ad esempio un record da 10 MiB, il serbatoio è temporaneamente esaurito. Inizia quindi a ricaricarsi immediatamente, il che significa che è possibile continuare a inviare record di dimensioni inferiori non appena la capacità diventa disponibile.

La velocità di rifornimento della capacità dipende da diversi fattori:

  • La dimensione dei dischi di grandi dimensioni

  • La dimensione dei record di base

  • L'andamento generale del traffico sullo stream

  • La strategia di chiave di partizione prescelta

Per ottenere i migliori risultati, utilizzate una chiave di partizione distribuita in modo uniforme per distribuire record di grandi dimensioni su tutta la capacità disponibile dello stream.

In modalità on-demand, Kinesis Data Streams gestisce automaticamente la capacità. Il tuo stream aumenta e diminuisce la velocità effettiva in base ai modelli di traffico, e la capacità di burst record di grandi dimensioni viene gestita in modo trasparente. Non è necessario fornire o gestire la capacità per utilizzare record di grandi dimensioni. Per ulteriori informazioni sulla scalabilità della modalità on demand, consulta Caratteristiche e casi d'uso della modalità On-demand.

Aggiorna lo stream per utilizzare record di grandi dimensioni

Per elaborare record di grandi dimensioni con Kinesis Data Streams
  1. Accedere alla console Kinesis Data Streams.

  2. Seleziona il tuo stream e vai alla scheda Configurazione.

  3. Fai clic su Modifica, che si trova accanto a Dimensione massima del record.

  4. Imposta la dimensione massima del record (fino a 10 MiB).

  5. Salvare le modifiche.

Questa impostazione regola solo la dimensione massima del record per questo flusso di dati Kinesis. Prima di aumentare questo limite, verifica che tutte le applicazioni downstream siano in grado di gestire record più grandi.

Puoi anche aggiornare questa impostazione utilizzando la AWS CLI:

aws kinesis update-max-record-size \ --stream-arn \ --max-record-size-in-ki-b 5000

Ottimizza le prestazioni dello streaming con record di grandi dimensioni

I dischi di grandi dimensioni sono progettati per un uso intermittente. Per ottenere risultati ottimali, mantieni record di grandi dimensioni, pari a meno del 2% del traffico complessivo. Poiché lo stream supera temporaneamente il suo throughput sostenuto per generare un record di grandi dimensioni, l'invio di record di grandi dimensioni con una frequenza eccessiva può ridurre la capacità disponibile per il traffico di base. Per ulteriori informazioni sull'ottimizzazione delle prestazioni di streaming con record di grandi dimensioni, consulta Throttling e best practice per prestazioni ottimali.

Riduci il throttling con dischi di grandi dimensioni

Poiché i record di grandi dimensioni occupano temporaneamente la capacità di burst, lo stream potrebbe limitare le scritture successive fino al ripristino della capacità. I seguenti passaggi aiutano a ridurre il throttling:

Per mitigare la limitazione
  1. Implementa la logica dei tentativi con back-off esponenziale nella tua applicazione di produzione.

  2. Utilizza chiavi di partizione randomizzate per distribuire record di grandi dimensioni in tutta la capacità disponibile dello stream.

  3. Archivia i payload in Amazon S3 e invia solo riferimenti di metadati allo stream per flussi continui di record di grandi dimensioni. Per ulteriori informazioni, consulta Elaborazione di record di grandi dimensioni con Amazon Kinesis Data Streams.

Gestisci record di grandi dimensioni utilizzando Kinesis Data Streams APIs

Il supporto per record di grandi dimensioni introduce una nuova API e aggiorna due piani di controllo esistenti APIs per gestire record fino a 10. MiBs

API per modificare la dimensione dei record:

  • UpdateMaxRecordSize: configura il limite massimo di dimensione dei record per gli stream esistenti fino a 10. MiBs

Aggiornamenti a quelli esistenti: APIs

  • CreateStream: aggiunge il MaxRecordSizeInKiB parametro opzionale per impostare i limiti di dimensione dei record durante la creazione dello stream.

  • DescribeStreamSummary: restituisce il MaxRecordSizeInKiB campo per mostrare la configurazione corrente dello stream.

Tutti gli APIs elenchi mantengono la compatibilità con le versioni precedenti per gli stream esistenti. Per la documentazione completa sulle API, consulta il riferimento alle API del servizio Amazon Kinesis Data Streams.

AWS componenti compatibili con record di grandi dimensioni

I seguenti AWS componenti sono compatibili con dischi di grandi dimensioni:

Componente Description

AWS SDK

AWS L'SDK supporta la gestione di record di grandi dimensioni. Puoi aggiornare la dimensione massima di registrazione del tuo stream fino a 10 MiB utilizzando i metodi disponibili in. AWS SDKs Per ulteriori informazioni, consulta Usare questo servizio con un SDK. AWS

Libreria per consumatori Kinesis (KCL)

A partire dalla versione 2.x, KCL supporta la gestione di record di grandi dimensioni. Per utilizzare il supporto per record maxRecordSize di grandi dimensioni, aggiorna il tuo stream e usa KCL. Per ulteriori informazioni, consulta Use Kinesis Client Library.

Libreria Kinesis Producer (KPL)

A partire dalla versione 1.0.5, KPL supporta la gestione di record di grandi dimensioni. Per utilizzare il supporto per record maxRecordSize di grandi dimensioni, aggiorna lo stream e usa KPL. Per ulteriori informazioni, consulta Sviluppare produttori utilizzando Amazon Kinesis Producer Library (KPL).

Amazon EMR

Amazon EMR con Apache Spark supporta la gestione di record di grandi dimensioni fino al limite di Kinesis Data Streams (10). MiBs Per utilizzare il supporto per record di grandi dimensioni, usa la funzione. readStream Per ulteriori informazioni, consulta l'integrazione tra Amazon EMR e Amazon Kinesis.

Amazon Data Firehose

Se utilizzato con Kinesis Data Streams, il comportamento di Amazon Data Firehose con record di grandi dimensioni dipende dalla destinazione di consegna:

  • Amazon S3: la consegna di record di grandi dimensioni è supportata senza alcuna configurazione aggiuntiva. Quando si utilizza la conversione del formato dei dati, Firehose supporta la consegna di record di grandi dimensioni. Quando si utilizza il partizionamento dinamico, la consegna di record di grandi dimensioni non è supportata con Firehose.

  • Lambda: non è consigliabile utilizzare record di grandi dimensioni con Firehose quando attiva funzioni Lambda a valle. Ciò può portare a guasti intermittenti.

  • HTTP: la consegna di record di grandi dimensioni non è supportata con Firehose.

  • Snowflake: la consegna di dischi di grandi dimensioni non è supportata con Firehose.

  • Amazon Redshift: la distribuzione di record di grandi dimensioni non è supportata con Firehose.

Per le applicazioni che richiedono la consegna a Snowflake o Redshift con record di grandi dimensioni, invia prima i dati ad Amazon S3. Successivamente, utilizza i processi Extract, Transform, Load (ETL) per caricare i dati. Per tutte le altre destinazioni, testate il comportamento con record di grandi dimensioni in un proof-of-concept ambiente prima di passare all'utilizzo in produzione. La gestione di record di grandi dimensioni varia in base alla destinazione.

AWS Lambda

AWS Lambda supporta carichi utili fino a 6 MiBs. Questo limite include il payload Kinesis convertito in codifica base-64 e i metadati associati a Event Source Mapping (ESM). Per i record inferiori a 6 MiBs, Lambda li elabora utilizzando ESM senza richiedere alcuna configurazione aggiuntiva. Per i record superiori a 6 MiBs, Lambda li elabora utilizzando una destinazione in caso di errore. È necessario configurare una destinazione in caso di errore utilizzando ESM per gestire i record che superano i limiti di elaborazione di Lambda. Ogni evento inviato alla destinazione in caso di errore è un documento JSON che contiene metadati relativi alla chiamata non riuscita.

Si consiglia di creare una destinazione in caso di errore nell'ESM, indipendentemente dalla dimensione del record. Ciò garantisce che nessun record venga eliminato. Per ulteriori informazioni, vedere Configurazione delle destinazioni per chiamate non riuscite.

Amazon Redshift

Amazon Redshift supporta solo record di dimensioni inferiori a 1 MiB durante lo streaming di dati da Kinesis Data Streams. I record che superano questo limite non vengono elaborati. I record che non vengono elaborati vengono registrati comesys_stream_scan_errors. Per ulteriori informazioni, vedere SYS_STREAM_SCAN_ERRORS.

Connettore Flink per Kinesis Data Streams

Esistono due approcci per consumare i dati da Kinesis Data Streams: il connettore sorgente Kinesis e il connettore sink Kinesis. Il connettore sorgente supporta la gestione di record inferiori a 1 MiB e fino a 10. MiBs Non utilizzare il connettore sink per dischi di dimensioni superiori a 1 MiB. Per ulteriori informazioni, consulta Usare i connettori per spostare i dati in Amazon Managed Service for Apache Flink con l' DataStreamAPI.

Regioni in cui sono supportati record di grandi dimensioni

Questa funzionalità di Amazon Kinesis Data Streams è disponibile solo nelle AWS seguenti regioni:

AWS Regione Nome della regione

eu-north-1

Europa (Stoccolma)

me-south-1

Medio Oriente (Bahrein)

ap-south-1

Asia Pacifico (Mumbai)

eu-west-3

Europa (Parigi)

ap-southeast-3

Asia Pacifico (Giacarta)

us-east-2

Stati Uniti orientali (Ohio)

af-south-1

Africa (Città del Capo)

eu-west-1

Europa (Irlanda)

me-central-1

Medio Oriente (Emirati Arabi Uniti)

eu-central-1

Europa (Francoforte)

sa-east-1

Sud America (San Paolo)

ap-east-1

Asia Pacifico (Hong Kong)

ap-south-2

Asia Pacifico (Hyderabad)

us-east-1

Stati Uniti orientali (Virginia settentrionale)

ap-northeast-2

Asia Pacifico (Seul)

ap-northeast-3

Asia Pacifico (Osaka)

eu-west-2

Europa (Londra)

ap-southeast-4

Asia Pacifico (Melbourne)

ap-northeast-1

Asia Pacifico (Tokyo)

us-west-2

Stati Uniti occidentali (Oregon)

us-west-1

Stati Uniti occidentali (California settentrionale)

ap-southeast-1

Asia Pacifico (Singapore)

ap-southeast-2

Asia Pacifico (Sydney)

il-central-1

Israele (Tel Aviv)

ca-central-1

Canada (Centrale)

ca-west-1

Canada occidentale (Calgary)

eu-south-2

Europa (Spagna)

cn-northwest-1

Cina (Ningxia)

eu-central-2

Europa (Zurigo)

us-gov-east-1

AWS GovCloud (Stati Uniti orientali)

us-gov-west-1

AWS GovCloud (Stati Uniti occidentali)