View a markdown version of this page

Risoluzione dei problemi relativi alla consegna 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à.

Risoluzione dei problemi relativi alla consegna dei dati

Usa questa sezione per risolvere i problemi più comuni relativi alla distribuzione dei dati.

Consegna bloccata nello stato CREATING

Quando si crea una consegna, questa passa allo stato CREATING mentre viene effettuato il provisioning delle risorse. Il provisioning viene in genere completato in pochi minuti. Se la consegna rimane in CREATING per un periodo prolungato o passa a FAILED, è probabile che la causa sia un errore di configurazione.

Chiama DescribeChannel per verificare lo stato attuale e il motivo dello stato. Le cause più comuni includono:

  • ARN del ruolo IAM non valido o autorizzazioni insufficienti nella policy del ruolo.

  • Il bucket Amazon S3 di destinazione non esiste o si trova in una regione diversa.

  • Lo schema ARN in AWS Glue Schema Registry non può essere risolto.

Consegna in stato NON RIUSCITO

Non è possibile recuperare una spedizione il cui ChannelStatus indirizzo è FAILED (come restituito daDescribeChannel). Leggi il ChannelStatusReason campo da DescribeChannel per identificare la causa principale. Risolvi il problema sottostante, elimina la consegna non riuscita e ricreala con la configurazione corretta.

Elevata freschezza dei dati

La DataFreshness metrica misura l'età del record più vecchio non consegnato. Valori elevati indicano che la consegna è in ritardo rispetto all'ingestione. Cause comuni:

  • Un numero elevato di partizioni nella tabella di destinazione aumenta il sovraccarico dei metadati.

  • La crescita dei metadati delle tabelle dovuta a numerosi commit di piccole dimensioni riduce il throughput dei commit.

  • Il basso throughput dello stream combinato con un'impostazione di bassa freschezza causa frequenti piccole consegne.

Risoluzione: per lo streaming di tabelle su Apache Iceberg, abilita la manutenzione di Amazon S3 Tables (compattazione e scadenza delle istantanee) per gestire la crescita dei metadati. Per gli stream a bassa produttività, aumenta il DataFreshnessInSeconds valore per consentire la creazione di più dati in batch per ogni ciclo di distribuzione.

L'impostazione più rigorosa di aggiornamento dei dati richiede un throughput minimo di flusso sostenuto, in modo che si accumuli una quantità sufficiente di dati per una distribuzione efficiente e una compattazione in linea a ogni ciclo. Se il tuo stream produce un throughput inferiore, utilizza un valore più alto. DataFreshnessInSeconds

Record non riusciti superiori a zero

Quando la metrica relativa ai record non riusciti è diversa da zero (DeliveryToS3.FailedRecordCountper le consegne Amazon S3 o DeliveryToIceberg.FailedRowCount per le consegne con tabelle in streaming), i record vengono inviati alla coda delle lettere morte anziché alla destinazione.

Per le tabelle di streaming su Apache Iceberg:

  • Mancata corrispondenza dello schema: il record non è conforme allo schema registrato.

  • Campo obbligatorio mancante: una colonna non annullabile non ha alcun valore nel record.

  • Non utilizzare il serializzatore AWS Glue Schema Registry per il formato GSR_JSON: i produttori devono utilizzare la libreria di produttori Schema Registry. AWS Glue

Per i bucket Amazon S3 per uso generico:

  • Mancata corrispondenza del formato: il formato del record non corrisponde al formato di input configurato.

Risoluzione: controlla le voci della coda con lettere morte per informazioni dettagliate sugli errori. Controlla CloudWatch i registri di consegna per visualizzare errori di analisi o convalida specifici. Fai in modo che il produttore invii record conformi.

Nessun dato appare nella destinazione

Se la consegna è in stato ATTIVO ma non appare alcun dato a destinazione, le cause più comuni sono:

  • Problemi di autorizzazione: il ruolo IAM non può scrivere sulla destinazione. Controlla CloudWatch i log per AccessDenied eventuali errori.

  • Mancata corrispondenza del prefisso della chiave di output (bucket Amazon S3 generici): se l's3:PutObjectautorizzazione è limitata a un prefisso comearn:aws:s3:::my-bucket/data*, le chiavi generate dal modello di chiave di output devono iniziare con. data/ Una mancata corrispondenza causa il rifiuto di ogni scrittura.

  • Autorizzazione alla tabella mancante (tabelle in streaming): quando crittografi la tabella di destinazione con una AWS KMS chiave gestita dal cliente, verifica che il ruolo di esecuzione del servizio s3tables:PutTableEncryption includa oltre alle altre s3tables azioni. In caso contrario, l'CreateTableoperazione ha esito positivo, ma la crittografia della tabella ha esito negativo, la tabella non viene mai creata e non viene inviato alcun dato.

  • Autorizzazioni di registrazione mancanti: se manca il ruolo di esecuzione del servizio logs:CreateLogStream e logs:PutLogEvents gli errori di consegna non vengono registrati nei CloudWatch log, il problema delle autorizzazioni può apparire come un errore silenzioso. Verifica innanzitutto le autorizzazioni di registrazione quando non sono presenti registri.

  • Nessun nuovo dato dopo la creazione: la consegna non riempie i dati esistenti dello stream. Vengono consegnati solo i record scritti dopo che la consegna diventa ATTIVA.

Consegna sospesa

Una consegna entra in uno stato sospeso quando la destinazione diventa non disponibile o incompatibile. Cause comuni:

  • Le tabelle di streaming sulla tabella di destinazione di Apache Iceberg sono state eliminate.

  • Il proprietario del bucket Amazon S3 non corrisponde all'account previsto (mancata corrispondenza della proprietà).

  • È stata rilevata una colonna di partizione incompatibile nella tabella di destinazione.

Una consegna sospesa non può essere ripresa. È necessario creare una nuova consegna con una configurazione di destinazione valida.

Errori di autorizzazione negata nei CloudWatch log

AccessDeniedgli errori nei CloudWatch log di spedizione indicano un problema di autorizzazioni. Cause comuni:

  • La politica del ruolo IAM è stata modificata dopo la creazione della consegna.

  • La policy del bucket Amazon S3 è stata modificata per negare l'accesso al ruolo.

  • La politica di fiducia sul ruolo non consente al servizio Kinesis Data Streams di assumerlo.

  • La politica AWS KMS chiave nega l'accesso crittografato o decrittografato al ruolo della consegna.

Rivedi e correggi la politica pertinente, quindi verifica che la consegna riprenda.

Consegna non disponibile per il mio stream

Le tabelle di streaming e la distribuzione di Amazon S3 richiedono che lo stream di Kinesis Data Streams sia in modalità di capacità On-Demand Standard o On-Demand Advantage. Se il tuo stream utilizza la modalità Provisioned, devi passare alla On-Demand modalità prima di poter creare una distribuzione.

La consegna si interrompe dopo una modifica dello schema

Le consegne non supportano l'evoluzione dello schema. Se si aggiorna lo AWS Glue schema in Schema Registry dopo aver creato una consegna, i record prodotti con la nuova versione dello schema potrebbero non superare la convalida e essere indirizzati alla coda delle lettere morte.

Per risolvere il problema: annullare la modifica dello schema presso il produttore oppure eliminare la consegna esistente e ricrearla con lo schema aggiornato.

Impossibile eliminare uno stream

Una DeleteStream richiesta ha esito negativo ResourceInUseException quando lo stream ha una o più consegne attive. Uno stream non può essere eliminato mentre vi sono allegate delle consegne.

Per risolvere: elenca le consegne nello stream con ListChannels (utilizzando un filtro di streaming), elimina ogni consegna con DeleteChannel e quindi elimina lo stream.