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 record di grandi dimensioni
Amazon Kinesis Data Streams supporta record fino a 10 mebibyte (). MiBs Questa funzionalità è consigliata per l'elaborazione di payload di dati intermittenti che superano il limite predefinito di dimensione dei record di 1 MiB. La dimensione massima predefinita dei record per gli stream esistenti e di nuova creazione è 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 machine learning che richiedono l'elaborazione occasionale di payload di dati più ingenti. 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 supportare record intermittenti di grandi dimensioni insieme a un traffico di base di record inferiore o uguale a 1 MiB. Non è progettato per supportare l'acquisizione prolungata e ad alto volume di record di grandi dimensioni.
Come funzionano i record 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 throughput di scrittura sostenuto, per poi tornare alla velocità di base nel tempo. Questa capacità di burst viene ripristinata continuamente, quindi lo stream può gestire record intermittenti di grandi dimensioni insieme al normale traffico senza alcuna regolazione manuale della capacità.
Per visualizzare questo comportamento, immagina la capacità di scrittura del tuo stream come un serbatoio che si riempie a una velocità costante. Quando invii 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 più piccoli non appena la capacità diventa disponibile.
La velocità con cui viene ripristinata la capacità dipende da diversi fattori:
La dimensione dei record di grandi dimensioni
La dimensione dei record di base
L'andamento generale del traffico sullo stream
La strategia della chiave di partizione scelta
Per ottenere risultati ottimali, utilizza una chiave di partizione distribuita uniformemente per distribuire record di grandi dimensioni sulla capacità disponibile dello stream.
In modalità on-demand, Kinesis Data Streams gestisce la capacità automaticamente. Lo stream aumenta e diminuisce il throughput in base ai modelli di traffico e una grande capacità record burst viene gestita in modo trasparente. Non è necessario effettuare il provisioning o gestire la capacità per utilizzare record di grandi dimensioni. Per ulteriori informazioni sulla scalabilità della modalità on-demand, consulta le caratteristiche e i casi d'uso della On-demand modalità.
Aggiorna il tuo stream per utilizzare record di grandi dimensioni
Per elaborare record di dimensioni maggiori con Kinesis Data Streams
Accedi alla console Kinesis Data Streams.
Seleziona il tuo stream e vai alla scheda Configurazione.
Fai clic su Modifica, che si trova accanto a Dimensione massima del record.
Imposta la dimensione massima del record (fino a 10 MiB).
Salvare le modifiche.
Questa impostazione regola solo la dimensione massima del record per questo flusso di dati Kinesis. Prima di aumentare questo limite, verificate 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 record di grandi dimensioni sono progettati per un uso intermittente. Per ottenere risultati ottimali, mantieni registri di grandi dimensioni a meno del 2% del traffico complessivo. Poiché lo stream supera temporaneamente il throughput sostenuto per fornire 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 dello streaming con record di grandi dimensioni, consulta Throttling e best practice per prestazioni ottimali.
Riduci la limitazione con record di grandi dimensioni
Poiché i record di grandi dimensioni consumano temporaneamente la capacità massima, lo stream potrebbe limitare le scritture successive fino al ripristino della capacità. I passaggi seguenti aiutano a ridurre la limitazione:
Per mitigare la limitazione
Implementa la logica dei tentativi con back-off esponenziale nell'applicazione di produzione.
Usa chiavi di partizione randomizzate per distribuire record di grandi dimensioni su tutta la capacità disponibile dello stream.
Archivia i payload in Amazon S3 e invia solo riferimenti ai 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 le API Kinesis Data Streams
Il supporto per i record di grandi dimensioni introduce una nuova API e aggiorna due API esistenti del piano di controllo per gestire fino a 10 record. MiBs
API per modificare le dimensioni dei record:
UpdateMaxRecordSize: configura il limite massimo di dimensione dei record per gli stream esistenti fino a 10. MiBs
Aggiornamenti alle API esistenti:
CreateStream: aggiunge ilMaxRecordSizeInKiBparametro opzionale per impostare i limiti di dimensione dei record durante la creazione dello stream.DescribeStreamSummary: restituisce ilMaxRecordSizeInKiBcampo per mostrare la configurazione corrente dello stream.
Tutte le API elencate mantengono la compatibilità con le versioni precedenti per gli stream esistenti. Per una documentazione completa sulle API, consulta l'API Reference di Amazon Kinesis Data Streams Service.
AWS componenti compatibili con record di grandi dimensioni
I seguenti AWS componenti sono compatibili con record di grandi dimensioni:
| Componente | Description |
|---|---|
|
AWS SDK |
AWS L'SDK supporta la gestione di record di grandi dimensioni. Puoi aggiornare la dimensione massima dei record del tuo stream fino a 10 MiB utilizzando i metodi disponibili negli SDK. AWS Per ulteriori informazioni, consulta Utilizzo di questo servizio con un SDK. AWS |
|
Kinesis Consumer Library (KCL) |
A partire dalla versione 2.x, KCL supporta la gestione di record di grandi dimensioni. Per utilizzare il supporto per i record |
|
Kinesis Producer Library (KPL) |
A partire dalla versione 1.0.5, KPL supporta la gestione di record di grandi dimensioni. Per utilizzare il supporto per i record maxRecordSize di grandi dimensioni, aggiorna il tuo 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, utilizza la funzione. |
|
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:
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 ambiente proof-of-concept prima di passare all'utilizzo in produzione. La gestione di record di grandi dimensioni varia in base alla destinazione. |
|
AWS Lambda |
AWS Lambda supporta payload 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 che sia richiesta 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 all'invocazione 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 |
Durante lo streaming di dati da Kinesis Data Streams ad Amazon Redshift, controlla la dimensione massima dei record supportata da Amazon Redshift. Per informazioni dettagliate, consulta Guida introduttiva allo streaming ingestion from Amazon Kinesis Data Streams nella Amazon Redshift Database Developer Guide. I record che superano questo limite non vengono elaborati. Per informazioni dettagliate sulla registrazione delle informazioni per i record che non vengono elaborati, consulta https://docs.aws.amazon.com/redshift/latest/dg/r_SYS_STREAM_SCAN_ERRORS.html SYS_STREAM_SCAN_ERRORS nella Amazon Redshift Database Developer Guide. |
|
Connettore Flink per Kinesis Data Streams |
Esistono due approcci per l'utilizzo dei dati da Kinesis Data Streams: il connettore sorgente Kinesis e il connettore kinesis sink. Il connettore sorgente supporta la gestione di record inferiori a 1 MiB e fino a 10. MiBs Non utilizzare il connettore sink per record di dimensioni superiori a 1 MiB. Per ulteriori informazioni, consulta Usare i connettori per spostare i dati in Amazon Managed Service for Apache Flink with the API. DataStream |
Regioni in cui sono supportati record di grandi dimensioni
Questa funzionalità di Amazon Kinesis Data Streams è disponibile solo nelle seguenti regioni: AWS
| 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 (US-East) |
| us-gov-west-1 | AWS GovCloud (US-West) |