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
Accedere 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, 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
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
Implementa la logica dei tentativi con back-off esponenziale nella tua applicazione di produzione.
Utilizza chiavi di partizione randomizzate per distribuire record di grandi dimensioni in tutta la capacità disponibile dello stream.
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 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.
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 |
|
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. |
|
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 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 come |
|
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) |