Nozioni generali e di streaming ETL

D: Cos'è lo streaming ETL?

Lo streaming ETL consiste nell'elaborazione e nel trasferimento di dati in tempo reale da un luogo ad un altro. ETL indica le funzioni di database "estrai" (extract), "trasforma" (transform) e "carica" (load). "Estrai" fa riferimento alla raccolta di dati da una fonte. "Trasforma" fa riferimento a qualsiasi processo effettuato su tali dati. "Carica" fa riferimento all'invio dei dati elaborati a una destinazione, come warehouse, datalake o qualsiasi altro strumento di analisi.

D: Cos'è Amazon Kinesis Data Firehose?

Kinesis Data Firehose è una soluzione di streaming ETL. *È il mezzo più semplice per caricare dati in streaming in datastore e strumenti di analisi. È in grado di acquisire, trasformare e caricare automaticamente dati in streaming in Amazon S3, Amazon Redshift, Amazon OpenSearch Service e Splunk, per ottenere analisi quasi in tempo reale con gli strumenti di business intelligence e i pannelli di controllo che usi tutti i giorni. Si tratta di un servizio completamente gestito che dimensiona automaticamente le risorse in base alla velocità effettiva dei dati e non richiede alcuna attività di amministrazione durante il funzionamento. Inoltre può elaborare in batch, comprimere e crittografare i dati prima del caricamento, riducendo al minimo lo storage utilizzato e migliorando il livello di sicurezza.

D: Cos'è un'origine in Kinesis Data Firehose?

Un'origine è la sorgente da cui vengono generati e acquisiti in modo continuo i flussi di dati. Ad esempio, un'origine può essere un server di logging in un'istanza Amazon EC2, un'applicazione su dispositivi mobili, un sensore su un dispositivo IoT. È possibile collegare le origini a Kinesis Data Firehose utilizzando 1) l'API Amazon Kinesis Data Firehose, che utilizza AWS SDK per Java, .NET, Node.js, Python o Ruby. 2) Kinesis Data Streams, in cui Kinesis Data Firehose legge i dati senza difficoltà da un flusso di dati Kinesis esistente e li carica sulle destinazioni Kinesis Data Firehose. 3) Amazon MSK, in cui Kinesis Data Firehose legge i dati senza difficoltà da un cluster Amazon MSK esistente e li carica su bucket Amazon S3. 4) i servizi nativi supportati su AWS come AWS CloudWatch, AWS EventBridge, AWS IoT o AWS Pinpoint. Per un elenco completo, consulta la guida per gli sviluppatori di Amazon Kinesis Data Firehose. 5) Kinesis Agents, un'applicazione software Java che funziona in modo autonomo e che monitora di continuo un set di file e invia nuovi dati al flusso. 6) Fluentbit, un processore server di inoltro open source di log. 7) AWS Lambda, un servizio di elaborazione serverless che consente di eseguire un codice senza dover effettuare il provisioning né gestire server. È possibile utilizzare la funzione di scrittura di Lambda per inviare traffico da S3 o DynamoDB a Kinesis Data Firehose sulla base di un evento attivato.

D: Cos'è una destinazione in Kinesis Data Firehose?

Una destinazione è il datastore in cui saranno distribuiti i dati. Le destinazioni supportate al momento da Kinesis Data Firehose sono Amazon S3, Amazon Redshift, Servizio OpenSearch di Amazon, Splunk, Datadog, NewRelic, Dynatrace, Sumologic, LogicMonitor, MongoDB e gli endpoint HTTP.

D: Quali attività sono gestite da Amazon Kinesis Data Firehose per mio conto?

Kinesis Data Firehose gestisce infrastruttura, storage, rete e configurazione necessari per acquisire e caricare i dati in Amazon S3, Amazon Redshift, Amazon OpenSearch Service o Splunk. Non è necessario occuparsi personalmente di provisioning, implementazione e manutenzione continua di hardware o software, né occorre scrivere altre applicazioni per gestire il processo. Kinesis Data Firehose dimensiona le risorse in modo elastico senza alcun intervento manuale o impegno da parte degli sviluppatori. Inoltre, Kinesis Data Firehose replica i dati in modo sincrono in tre diverse strutture in una Regione AWS, garantendo disponibilità e durabilità elevate dei dati durante il trasferimento a destinazione.

D: Come si utilizza Kinesis Data Firehose?

Dopo la registrazione ad Amazon Web Services, è possibile per iniziare a utilizzare Amazon Kinesis Data Firehose seguendo questa procedura:

  • Crea un flusso di distribuzione Kinesis Data Firehose tramite la console di Firehose o il comando CreateDeliveryStream. È anche possibile configurare una funzione AWS Lambda nel flusso di distribuzione per preparare e trasformare i dati grezzi prima di caricarli.
  • Configura i produttori di dati affinché inviino in modo continuo i dati al flusso di distribuzione utilizzando Amazon Kinesis Agent o l'API di Firehose.
  • Firehose caricherà in modo automatico e continuo i dati alle destinazioni specificate.

D: Cos'è un flusso di consegna in Kinesis Data Firehose?

Un flusso di consegna è l'entità di base di Kinesis Data Firehose. Con Firehose è possibile creare un flusso di consegna a cui inviare dati. Per creare un flusso di consegna Kinesis Data Firehose, è possibile utilizzare la console di Firehose o il comando CreateDeliveryStream. Per ulteriori informazioni, consulta Creazione di un flusso di consegna.

D: Cos'è un record in Kinesis Data Firehose?

Un record rappresenta i dati di interesse che il produttore di dati invia a un flusso di distribuzione. La dimensione massima di un record (prima della codifica con Base64) è pari a 1024 KB se l'origine dati PUT Diretto o Kinesis Data Streams. La dimensione massima di un record (prima della codifica con Base64) è pari a 10 MB se l'origine dati è Amazon MSK.

D: Quali sono i limiti di Kinesis Data Firehose?

Per ulteriori informazioni sui limiti, consulta Limiti di Amazon Kinesis Data Firehose nella guida per gli sviluppatori.

Origini dati

D: Quali piattaforme o linguaggi di programmazione è possibile utilizzare per accedere all'API di Kinesis Data Firehose?

L'API di Kinesis Data Firehose è disponibile nei kit SDK di Amazon Web Services. Per un elenco di piattaforme e linguaggi di programmazione per i kit SDK di Amazon Web Services, consulta la pagina Strumenti per Amazon Web Services.

D: Cos'è Amazon Kinesis Agent?

Kinesis Agent è un'applicazione Java preinstallata che offre un modo semplice per raccogliere e inviare dati in un flusso di consegna. È possibile installare l'agente su ambienti server basati su Linux quali server Web, server di log e server di database. L'agente monitora determinati file e invia in modo continuo dati nel flusso di consegna. Amazon Kinesis Agent al momento supporta Amazon Linux, Red Hat Enterprise Linux e Microsoft Windows. Per ulteriori informazioni, consulta Scrivere con gli agenti.

D: Dove è possibile ottenere Amazon Kinesis Agent?

Per scaricare e installare Kinesis Agent, utilizza i seguenti comandi e collegamenti:

  • Su Amazon Linux: sudo yum install –y aws-kinesis-agent
  • In Red Hat Enterprise Linux: sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm
  • Da GitHub: awlabs/amazon-kinesis-agent
  • Su Windows: https://docs.aws.amazon.com/kinesis-agent-windows/latest/userguide/getting-started.html#getting-started-installation

D: Qual è la differenza tra PutRecord e PutRecordBatch?

Per aggiungere dati a un flusso di consegna Kinesis Data Firehose, è possibile utilizzare Kinesis Agent oppure i comandi PutRecord e PutRecordBatch di Firehose. PutRecord consente un solo registro di dati per chiamata API, mentre PutRecordBatch consente più registri di dati per chiamata API. Per ulteriori informazioni, consulta PutRecord e PutRecordBatch.

D: Come si aggiungono dati provenienti da Amazon MSK a un flusso di consegna Kinesis Data Firehose?

Al momento della creazione o dell'aggiornamento di un flusso di consegna tramite la Console AWS o le API Firehose, è possibile configurare un cluster/argomento Amazon MSK come origine del flusso di consegna. Una volta completata tale configurazione, Firehose leggerà automaticamente i dati provenienti dall'argomento MSK e caricherà i dati nel bucket o nei bucket S3 indicati.

D: Quali sono i vantaggi chiave dell'integrazione di Amazon MSK e Kinesis Data Firehose?

È possibile ridurre la complessità operativa e il sovraccarico dell'applicazione trasformando e caricando i dati in streaming provenienti dagli argomenti Amazon MSK in Amazon S3 senza bisogno di codice. Ad esempio, con Amazon MSK e Kinesis Data Firehose, puoi lavorare senza codice e ottieni funzionalità integrate di conversione e trasformazione dei dati come la conversione del formato Parquet/ORC, il buffering dei dati e la convalida dei dati lato servizio. Dispongono anche di nuovi tentativi di consegna automatici, conservazione dei dati, dimensionamento automatico e ridondanza, così i dati vengono consegnati in modo affidabile.

D: Quali tipi di endpoint Amazon MSK sono supportati con Kinesis Data Firehose?

Per utilizzare questa funzionalità, i cluster MSK devono avere endpoint pubblici o link privati abilitati.

D: È possibile connettere Kinesis Data Firehose a un cluster Amazon MSK in un altro account AWS?

Sì, Kinesis Data Firehose può connettersi ai cluster Amazon MSK disponibili in diversi account AWS. Kinesis Data Firehose è in grado di effettuare consegne anche a bucket S3 che appartengono a diversi account.

D: Come aggiungo dati da un flusso di consegna Kinesis Data Firehose al mio flusso Kinesis Data Stream?

Al momento della creazione o dell'aggiornamento di un flusso di consegna tramite la console AWS o le API Firehose, è possibile configurare il flusso Kinesis come origine del flusso di consegna. Una volta completata tale configurazione, Firehose leggerà automaticamente i dati provenienti dal flusso Kinesis e caricherà i dati nella destinazione specificata.

D: Con quale frequenza Kinesis Data Firehose legge i dati provenienti dal flusso Kinesis?

Kinesis Data Firehose richiama l'operazione GetRecords() di Kinesis Data Streams una volta al secondo per ogni partizione di Kinesis.

D: Da dove legge i dati Kinesis Data Firehose quando un flusso Kinesis viene configurato come origine di un flusso di consegna?

Quando un flusso di dati Kinesis è configurato come origine del flusso di consegna, Kinesis Data Firehose inizia a leggere i dati dall'ULTIMA posizione del flusso. Per ulteriori informazioni sulle posizioni dei flussi di dati Kinesis, consulta la sezione GetShardIterator nella documentazione di riferimento delle API del servizio Kinesis Data Streams.

D: È possibile configurare un flusso di dati Kinesis come origine di più flussi di consegna di Kinesis Firehose?

Sì. Tuttavia, le chiamate GetRecords() da Kinesis Data Firehose sono incluse nel calcolo della limitazione dello shard di Kinesis, perciò è necessario pianificare il flusso di distribuzione insieme alle altre applicazioni Kinesis per accertarsi di non superare le restrizioni impostate. Per ulteriori informazioni, consulta la sezione Limiti di Kinesis Data Streams nella Guida per gli sviluppatori di Kinesis Data Streams.

D: È ancora possibile aggiungere dati a un flusso di consegna tramite Kinesis Agent o tramite le operazioni PutRecord e PutRecordBatch di Firehose una volta configurato il flusso di dati Kinesis come origine?

No, non è possibile. Quando un flusso di dati Kinesis è configurato come origine di un flusso di consegna Firehose, le operazioni PutRecord e PutRecordBatch vengono disabilitate. Per aggiungere dati al flusso di dati Kinesis, sarà necessario utilizzare le operazioni PutRecord e PutRecords di Kinesis Data Streams.

D: Come si aggiungono dati provenienti da AWS IoT a un flusso di consegna?

Per aggiungere dati provenienti da AWS IoT a un flusso di distribuzione, è necessario creare un'operazione di AWS IoT che vi inoltri gli eventi. Per ulteriori informazioni: Consulta Scrivere ad Amazon Kinesis Data Firehose utilizzando AWS IoT nella Guida per gli sviluppatori di Kinesis Data Firehose.

D: Come posso trasmettere i miei registri di flusso VPC a Firehose?

Al momento della creazione o dell'aggiornamento di un flusso di distribuzione tramite la console AWS o le API Firehose, è possibile configurare il PUT Diretto come origine del flusso di distribuzione. Dopo la creazione del flusso, è possibile configurare il flusso Firehose creato come flusso di distribuzione nella sezione Registri Venduti della console Registri di flusso VPC.

D: Come si aggiungono dati provenienti da CloudWatch Logs a un flusso di distribuzione?

Per aggiungere dati provenienti da CloudWatch Logs a un flusso di consegna Kinesis Data Firehose è necessario creare un filtro di sottoscrizione CloudWatch Logs che inoltri gli eventi al flusso di consegna. Per ulteriori informazioni, consulta la sezione Utilizzo di filtri di sottoscrizione di File di log CloudWatch nella Guida per l'utente di Amazon CloudWatch.

D: Come si aggiungono dati provenienti da CloudWatch Events a un flusso di consegna Kinesis Data Firehose?

Per aggiungere dati provenienti da CloudWatch Events a un flusso di distribuzione Kinesis Firehose è necessario creare una regola CloudWatch Events impostando come destinazione il flusso di consegna. Per ulteriori informazioni, consulta la sezione Scrivere su Amazon Kinesis Data Firehose utilizzando Eventi CloudWatch nella Guida per gli sviluppatori di Kinesis Data Firehose.

D: Come si aggiungono dati provenienti da AWS EventBridge a un flusso di consegna Amazon Kinesis Data Firehose?

È possibile aggiungere dati al tuo flusso di consegna Kinesis Data Firehose dalla console AWS EventBridge. Per ulteriori informazioni, consulta la documentazione di AWS EventBridge.

D: Quali tipi di crittografia è possibile utilizzare?

Kinesis Data Firehose consente di crittografare i dati dopo la consegna al bucket Amazon S3. Al momento della creazione del flusso di consegna, è possibile scegliere di crittografare i dati con una chiave AWS Key Management Service (KMS) già in uso. Per ulteriori informazioni su KMS, consulta AWS Key Management Service.

D: Quale ruolo IAM è necessario specificare durante la creazione di un flusso di consegna?

Kinesis Data Firehose presuppone che sia specificato un ruolo IAM per accedere a risorse quali bucket Amazon S3 e domini Amazon OpenSearch. Per ulteriori informazioni, consulta la sezione Controllo degli accessi con Kinesis Data Firehose nella guida per sviluppatori di Kinesis Data Firehose.

Trasformazione dei dati e conversione del formato

D: In che modo è possibile preparare e trasformare i dati grezzi in Kinesis Data Firehose?

Kinesis Data Firehose supporta la conversione del formato di dati integrati da dati grezzi o Json in formati come Apache Parquet e Apache ORC, richiesti dai datastore di destinazione senza la necessità di creare una pipeline di elaborazione apposita. Inoltre, Kinesis Data Firehose permette di suddividere in maniera dinamica il flusso di dati prima della consegna ad S3 tramite chiavi definite in modo statico o dinamico, quali "customer_id" o "transaction_id". Kinesis Data Firehose raggruppa i dati sulla base di tali chiavi e li consegna tramite prefissi S3 unici, consentendo di effettuare analisi dei dati migliori ed economicamente vantaggiose in maniera semplice su S3 con Athena, EMR e Redshift Spectrum.

Oltre all'opzione di conversione del formato integrata su Amazon Kinesis Data Firehose, è possibile utilizzare una funzione AWS Lambda per preparare e trasformare i dati grezzi in ingresso nel flusso di consegna prima del caricamento a destinazione. È possibile configurare una funzione AWS Lambda per operare la trasformazione dei dati al momento della creazione di un nuovo flusso di consegna, oppure quando viene modificato un flusso di consegna esistente. Amazon ha creato numerose planimetrie Lambda tra cui scegliere per iniziare velocemente. Per un elenco completo, consulta la guida per gli sviluppatori di Amazon Kinesis Data Firehose.

D: Quali formati di compressione è possibile utilizzare?

Amazon Kinesis Data Firehose consente di comprimere i dati prima di inoltrarli in Amazon S3. Al momento, il servizio supporta i formati di compressione GZIP, ZIP e SNAPPY. Se i dati vengono successivamente caricati in Amazon Redshift, è supportato solo il formato GZIP.

D: Come opera la compressione quando si usa la funzione di abbonamento a CloudWatch Logs?

La funzione di abbonamento a CloudWatch Logs permette di inoltrare dati da CloudWatch Logs in Kinesis Data Firehose. Tutti gli eventi di log provenienti da CloudWatch Logs sono già compressi in formato gzip, perciò è necessario disabilitare la funzione di compressione di Firehose per evitare che venga applicata due volte. Per ulteriori informazioni sulla funzione di abbonamento di CloudWatch Logs, consulta la sezione Filtri di iscrizione tramite Amazon Kinesis Data Firehose nella guida per l'utente di Amazon CloudWatch Logs.

D: In che modo è necessario reindirizzare in Amazon Kinesis Data Firehose i dati preparati e trasformati da una funzione AWS Lambda?

Tutti i record trasformati da Lambda devono essere reindirizzati in Firehose con i tre parametri elencati di seguito; in caso contrario, Firehose rifiuterà i record e li elaborerà come errori.

  • recordId: durante la chiamata, Firehose inoltra a Lambda un recordId con ciascun record. Ogni record sottoposto a trasformazione deve tornare con lo stesso recordId. Eventuali corrispondenze errate tra il recordId originale e il recordId restituito saranno elaborate come errori di trasformazione.
  • result: lo stato della trasformazione di ciascun record. I valori consentiti per questo parametro sono i seguenti: "Ok" se il record è stato sottoposto correttamente a trasformazione. "Dropped" se la logica di elaborazione prevede che il record non venga elaborato. "ProcessingFailed" se il record non può essere sottoposto correttamente a trasformazione. Quando genera i parametri SucceedProcessing.Records e SucceedProcessing.Bytes, Firehose elencherà i record con valori "Ok" e "Dropped" tra quelli elaborati correttamente, mentre i record con stato "ProcessingFailed" saranno elencati tra gli errori.
  • dati: il payload di dati trasformati post-codifica con Base64.

D: Cos'è la registrazione di log di errore?

Se la trasformazione dei dati con Lambda è stata attivata, Firehose può registrare i log di tutte le chiamate Lambda e di tutti gli errori di inoltro dei dati in Amazon CloudWatch Logs, per esaminare gli eventuali errori verificatisi durante una chiamata Lambda o la distribuzione dei dati. Per ulteriori informazioni, consulta Monitoraggio tramite Amazon CloudWatch Logs.

D: Cos'è il backup dei record di origine?

Se utilizzi la caratteristica di trasformazione dei dati di Lambda, puoi anche configurare il backup dei record di origine; Amazon Kinesis Data Firehose distribuirà i dati in ingresso non trasformati in un bucket S3 separato. È possibile specificare un prefisso secondario che si aggiungerà al prefisso "AAAA/MM/GG/HH" nel fuso orario UTC generato da Firehose.

Trasformazione dei dati integrata per Amazon S3

D: Quando devo utilizzare la partizione dinamica di Kinesis Data Firehose?

La partizione dinamica di Kinesis Data Firehose elimina le complessità e i ritardi tipici della partizione manuale alla fonte o dopo l'archiviazione dei dati e consente un'analisi dei dati più veloce per le query di set dati ottimizzati. Ciò fa sì che i set di dati siano immediatamente disponibili affinché gli strumenti di analisi dei dati possano eseguire le loro query in maniera efficiente e migliora il controllo granulare degli accessi ai dati. Ad esempio, i clienti dell'automazione del marketing possono suddividere i dati al volo sulla base dell'id del cliente, consentendo alle query specifiche per il cliente di effettuare query su set di dati ottimizzati e di ottenere risultati più velocemente. I clienti delle operazioni IT o del monitoraggio della sicurezza possono creare gruppi sulla base di timestamp di eventi integrati nei log, in modo da effettuare query su set di dati ottimizzati e ottenere risultati più velocemente. Questa funzione, insieme alla funzione esistente di conversione dal formato JSON al formato Parquet di Amazon Kinesis Data Firehose, rende Amazon Kinesis Data Firehose uno strumento di streaming ETL ideale per S3.

D: Come si imposta la partizione dinamica con Kinesis Data Firehose?

È possibile impostare la capacità di partizione dei dati di Kinesis Data Firehose tramite la console di gestione, le CLI o gli SDK di AWS. Al momento della creazione o dell'aggiornamento di un flusso di consegna di Kinesis Data Firehose, seleziona Amazon S3 come destinazione di consegna per il flusso di consegna e consenti la partizione dinamica. È possibile specificare chiavi o creare un'espressione che sarà valutata al tempo di esecuzione per definire chiavi utilizzate per la partizione. Ad esempio, è possibile selezionale un campo dati nel flusso in entrata come id cliente e definite un'espressione di prefisso S3 come customer_id=!{partitionKey:customer_id}/, che sarà valutata al tempo di esecuzione sulla base dei record importati per stabilire quale prefisso S3 distribuisce i record.

D: Che tipo di trasformazione ed elaborazione di dati è possibile effettuare con la partizione dinamica e con le chiavi di partizione?

Kinesis Data Firehose supporta la conversione parquet/orc preconfigurata al momento della scrittura dei dati su Amazon S3. Inoltre, Kinesis Data Firehose integra la funzione Lambda, il che consente di scrivere il un codice di trasformazione personale. Kinesis Data Firehose presenta anche un supporto integrato per l'estrazione di campi dai dei dati chiave dai record in formato JSON. Kinesis Data Firehose supporta anche il linguaggio di analisi JQ per consentire la trasformazione sulla chiavi di partizione. Per ulteriori informazioni, leggi la guida per gli sviluppatori di Kinesis Data Firehose.

Distribuzione e destinazioni di dati

D: È possibile conservare una copia di tutti i dati grezzi in un bucket S3?

Sì, Kinesis Data Firehose esegue il backup di tutti i record non sottoposti a trasformazione nel bucket S3 nello stesso momento in cui inoltra i record trasformati a destinazione. Il backup dei record di origine può essere abilitato quando crei o quando aggiorni un flusso di distribuzione.

D: Con quale frequenza Kinesis Data Firehose distribuisce dati in un bucket Amazon S3?

La frequenza di distribuzione dei dati in Amazon S3 è determinata dalle dimensioni del buffer di S3 e dall'intervallo di buffer configurati per il flusso di distribuzione. Kinesis Data Firehose memorizza nel buffer i dati in entrata prima di inoltrarli in Amazon S3. È possibile configurare le dimensioni (da 1 MB a 128 MB) o gli intervalli (da 60 a 900 secondi) del buffer di S3; la condizione che si verifica per prima attiverà l'inoltro dei dati in Amazon S3. Se hai attivato Apache parquet o una partizione dinamica, la dimensione del buffer è espressa in MB e varia tra 64 MB e 128 MB per le destinazioni Amazon S3; 128 MB è il valore di default. In situazioni in cui l'inoltro dei dati alla destinazione è più lento rispetto all'acquisizione dei dati nel flusso di distribuzione, Kinesis Data Firehose aumenta automaticamente le dimensioni del buffer per assicurarsi che tutti i dati raggiungano la destinazione.

D: In che modo di applicano le dimensioni del buffer in caso di compressione dei dati?

Le dimensioni del buffer si applicano prima della compressione. Di conseguenza, se decidi di comprimere i dati, le dimensioni degli oggetti nel bucket Amazon S3 saranno minori delle dimensioni del buffer specificate.

D: Al momento della creazione di un flusso di distribuzione, è necessario specificare alcuni privilegi di cui deve disporre l'utente di Amazon Redshift. Quali sono?

L'utente Redshift deve disporre di privilegi INSERT di Redshift per poter copiare i dati dal bucket Amazon S3 nell’istanza Redshift.

D: Quali operazioni è necessario eseguire se l’istanza Amazon Redshift si trova in un VPC?

Se l’istanza Redshift si trova in un VPC, è necessario consentire l'accesso di Amazon Kinesis Data Firehose all’istanza Redshift sbloccando gli indirizzi IP di Firehose nel VPC. Per ulteriori informazioni su come sbloccare gli IP per un cloud privato virtuale (VPC), consulta la sezione Concedi l'accesso di Firehose a una destinazione Amazon Redshift nella guida per gli sviluppatori di Amazon Kinesis Data Firehose.

D: Perché è necessario fornire un bucket Amazon S3 quando si sceglie come destinazione Amazon Redshift?

Per le destinazioni Redshift, Amazon Kinesis Data Firehose distribuisce i dati prima nel bucket Amazon S3, quindi esegue un comando COPY di Redshift per caricare i dati dal bucket S3 all’istanza Redshift.

D: Cos'è il servizio OpenSearch di Amazon?

Il servizio OpenSearch di Amazon semplifica l'esecuzione di analisi interattive dei dati dei log, il monitoraggio delle applicazioni in tempo reale, la ricerca Web e altro ancora. OpenSearch è una suite di ricerca e analisi dei dati distribuita open source derivata da Elasticsearch. Amazon OpenSearch Service offre le versioni più recenti di OpenSearch, supporto per 19 versioni di Elasticsearch (versioni da 1.5 a 7.10) e funzionalità di visualizzazione basate su Pannelli di controllo OpenSearch e Kibana (versioni da 1.5 a 7.10). Per ulteriori informazioni su Amazon OpenSearch, fai clic qui.

D: Cosa si intende per rotazione degli indici per le destinazioni in Amazon OpenSearch Service?

Kinesis Data Firehose può gestire la rotazione degli indici di Amazon OpenSearch Service secondo intervalli di tempo predeterminati. Puoi configurare questi intervalli durante la creazione del flusso di consegna. Per ulteriori informazioni, consulta la sezione Rotazione dell'indice per la destinazione Amazon OpenSearch nella guida per gli sviluppatori di Amazon Kinesis Data Firehose.

D: Perché è necessario fornire un bucket Amazon S3 quando si sceglie come destinazione Amazon OpenSearch Service?

Quando i dati vengono caricati in Amazon OpenSearch Service, Kinesis Data Firehose può eseguire il backup di tutti i dati o solo dei dati che non è stato possibile distribuire. Per sfruttare al meglio questa funzione ed evitare le perdite di dati, è necessario fornire un bucket Amazon S3 di backup.

D: È possibile modificare le configurazioni dei flussi di distribuzione dopo che sono stati creati?

È possibile modificare le configurazioni dei flussi di distribuzione in qualsiasi momento. Per farlo, è possibile utilizzare la console di Firehose oppure il comando UpdateDestination. Il flusso di distribuzione manterrà lo stato ACTIVE anche durante l'aggiornamento delle configurazioni, perciò potrai continuare a inviarvi dati. La configurazione aggiornata entra in vigore generalmente entro pochi minuti.

Quando si esegue la distribuzione a una destinazione VPC, puoi modificare l'URL dell'endpoint di destinazione, purché la nuova destinazione sia accessibile nell'ambito dello stesso VPC, delle stesse sottoreti e degli stessi gruppi di sicurezza. Per le modifiche di VPC, sottoreti e gruppi di sicurezza, è necessario ricreare il flusso di consegna Firehose.

D: Posso utilizzare un flusso di consegna Kinesis Data Firehose in una regione per erogare i miei dati in una destinazione VPC del dominio del servizio OpenSearch di Amazon in un altro account?

La distribuzione di Kinesis Data Firehose può essere effettuata su un altro account nel servizio OpenSearch di Amazon solo quando Kinesis Data Firehose e il servizio OpenSearch di Amazon sono connessi tramite un endpoint pubblico.

Se Kinesis Data Firehose e il servizio OpenSearch di Amazon sono connessi tramite un VPC privato. No, il flusso di consegna Kinesis Data Firehose e il dominio di destinazione del servizio OpenSearch di Amazon devono essere nel medesimo account.

D: Posso utilizzare un flusso di consegna Kinesis Data Firehose in una regione per erogare i miei dati in una destinazione VPC del dominio del servizio OpenSearch di Amazon in un'altra regione?

No, il flusso di consegna Kinesis Data Firehose e il dominio di destinazione di Amazon OpenSearch Service devono trovarsi nella stessa regione.

D: Con quale frequenza Kinesis Data Firehose distribuisce dati in un dominio Amazon OpenSearch?

La frequenza di distribuzione dei dati in Amazon OpenSearch Service è determinata dai valori dalle dimensioni e dell'intervallo del buffer di OpenSearch configurati per il flusso di consegna. Firehose memorizza nella cache i dati in entrata prima di distribuirli ad Amazon OpenSearch Service. Puoi configurare le dimensioni (da 1 MB a 100 MB) o gli intervalli (da 60 a 900 secondi) del buffer di OpenSearch; la condizione che si verifica per prima attiverà l'inoltro dei dati in Amazon OpenSearch Service. In situazioni in cui l'inoltro dei dati alla destinazione è più lento rispetto all'acquisizione dei dati nel flusso di consegna, Amazon Kinesis Data Firehose aumenta automaticamente le dimensioni del buffer per assicurarsi che tutti i dati raggiungano la destinazione.

D: Cos'è la cartella manifest nel bucket Amazon S3?
Per le destinazioni Redshift, Amazon Kinesis Data Firehose genera file manifesto per il caricamento in batch di oggetti Amazon S3 in cluster Redshift. Nella cartella manifests vengono salvati i file manifesto generati da Firehose.

D: In che modo vengono gestiti i documenti OpenSearch di un backup in un bucket Amazon S3?
Se viene utilizzata la modalità "All documents", Amazon Kinesis Data Firehose concatenerà diversi record in entrata in base alla configurazione del buffer del flusso di consegna, quindi li inoltrerà nel bucket S3 come oggetto S3. Indipendentemente dal tipo di modalità di backup configurata, i documenti il cui caricamento non è riuscito verranno inoltrati nel bucket S3 utilizzando un formato JSON che consente l'aggiunta di informazioni aggiuntive quali codice di errore e data e ora del tentativo non riuscito. Per ulteriori informazioni, consulta la sezione Backup Amazon S3 per la destinazione Amazon OpenSearch nella guida per gli sviluppatori di Amazon Kinesis Data Firehose.

D: Un singolo flusso di distribuzione può distribuire i dati in più bucket Amazon S3?

Al momento, un singolo flusso di distribuzione può distribuire dati in un solo bucket Amazon S3. Se desideri distribuire i dati in più bucket S3, devi creare più di un flusso di distribuzione.

D: Un singolo flusso di distribuzione può distribuire i dati in più istanze Amazon Redshift o tabelle?

Un singolo flusso di distribuzione può attualmente fornire dati solo a un'istanza Redshift e a una tabella. Se desideri distribuire i dati in più istanze Redshift o tabelle, devi creare più di un flusso di consegna.

D: Un singolo flusso di consegna può distribuire i dati in più domini o indici del servizio OpenSearch di Amazon?

Al momento, un singolo flusso di consegna può distribuire dati contemporaneamente in un solo dominio e in un indice Amazon OpenSearch Service. Se desideri distribuire i dati in più domini o indici Amazon OpenSearch Service, puoi creare più di un flusso di consegna.

D: In che modo Amazon Kinesis Data Firehose distribuisce dati al mio dominio Amazon OpenSearch Service in un VPC?

Quando si abilita Kinesis Data Firehose per distribuire i dati a una destinazione Amazon OpenSearch Service in un VPC, Amazon Kinesis Data Firehose crea una o più interfacce di rete elastiche (ENI) per più account nel tuo VPC per ciascuna sottorete scelta. Amazon Kinesis Data Firehose utilizza queste ENI per distribuire i dati nel tuo VPC. Il numero di ENI si ridimensiona automaticamente per soddisfare i requisiti del servizio.

Risoluzione dei problemi e gestione dei flussi di distribuzione

D: Perché le richieste vengono respinte quando vengono inviati dati a un flusso di distribuzione Amazon Kinesis Data Firehose?

Di default, ogni flusso di distribuzione può ricevere fino a 2.000 transazioni al secondo, 5.000 record al secondo e 5 MB al secondo. È possibile aumentare questi limiti compilando l'apposito modulo di richiesta di aumento per le restrizioni dei servizi.

D: Perché compaiono record duplicati nel bucket Amazon S3, nella tabella Amazon Redshift, nell'indice Amazon OpenSearch Service o nei cluster Splunk?

Amazon Kinesis Data Firehose usa semantica at-least-once per l'invio di dati. In alcuni rari casi, ad esempio quando si verifica un timeout della richiesta inseguito ad un tentativo di invio di dati, il nuovo tentativo operato da Firehose potrebbe causare un duplicato, se la richiesta precedente va a buon fine.

D: Cosa succede se la distribuzione dei dati nel bucket Amazon S3 non va a buon fine?

Se la tua origine dati è PUT Diretto e la distribuzione dei dati nel bucket Amazon S3 non va a buon fine, Amazon Kinesis Data Firehose prova nuovamente l'inoltro ogni 5 secondi per un massimo di 24 ore. Se il problema persiste oltre questo intervallo di tempo di 24 ore, Amazon Kinesis Data Firehose eliminerà i dati.

Se la tua origine dati è Kinesis Data Streams e la distribuzione dei dati nel bucket Amazon S3 non va a buon fine, Amazon Kinesis Data Firehose prova nuovamente l'inoltro ogni 5 secondi per un periodo massimo equivalente a quanto configurato su Flusso di dati Kinesis.

D: Cosa succede se la distribuzione dei dati nell’istanza Amazon Redshift non va a buon fine?

Se la distribuzione dei dati nell’istanza Redshift non va a buon fine, Amazon Kinesis Data Firehose prova nuovamente l'inoltro ogni 5 minuti per un massimo di 120 minuti. Dopo 120 minuti, Amazon Kinesis Data Firehose salta il batch corrente di oggetti S3 pronti per il comando COPY e passa al batch successivo. Le informazioni relative agli oggetti non elaborati vengono inviate al bucket S3 sotto forma di file manifest nella cartella errors, che potrai utilizzare per recuperare le informazioni manualmente. Per ulteriori informazioni su come eseguire il comando COPY sui dati con un file manifest, consulta Utilizzo di un manifest per specificare file di dati.

D: Cosa accade se la distribuzione dei dati nel dominio Amazon OpenSearch non va a buon fine?

Per le destinazioni nel servizio OpenSearch di Amazon, al momento della creazione del flusso di consegna puoi specificare un intervallo di tempo di durata compresa tra 0 e 7200 secondi. Se la distribuzione dei dati verso il dominio Amazon OpenSearch non va a buon fine, Amazon Kinesis Data Firehose prova nuovamente l'inoltro per l'intervallo di tempo specificato. Dopo questo periodo, Amazon Kinesis Data Firehose salta il batch di dati corrente e passa al batch successivo. I dettagli relativi ai documenti non inoltrati vengono memorizzati nella cartella opensearch_failed del bucket S3 e potrai utilizzarli per recuperare le informazioni manualmente.

D: Cosa accade se si verifica un errore durante la trasformazione dei dati?

In caso di errore durante la chiamata di una funzione Lambda per la trasformazione dei dati da parte di Firehose, possono verificarsi due scenari:

  • Nel primo scenario, la chiamata alla funzione non viene completata, ad esempio, perché viene raggiunto il timeout di rete e si applicano limitazioni di chiamata Lambda. In questi casi, Firehose prova di default ad eseguire la chiamata per tre volte, quindi salta il batch di record in questione. I record non elaborati vengono elencati tra i record con errori di elaborazione. È possibile configurare un numero di nuovi tentativi compreso tra 0 e 300 tramite le API CreateDeliveryStream e UpdateDeliveryStream. Per questo tipo di errori, è possibile anche utilizzare la funzione di log degli errori di Firehose ed emettere errori di chiamata in CloudWatch Logs. Per ulteriori informazioni, consulta Monitoraggio tramite Amazon CloudWatch Logs.
  • Nel secondo scenario, l'errore si verifica quando il parametro result della trasformazione del record restituito dalla funzione Lambda è "ProcessingFailed". Firehose elenca questi record tra quelli non elaborati correttamente. Per questo tipo di errori, è possibile anche utilizzare la funzione di log degli errori di Lambda ed emettere log di errore in CloudWatch Logs. Per ulteriori informazioni, consulta Accedere ad Amazon CloudWatch Logs per AWS Lambda.

In entrambi gli scenari di errore, i record non elaborati correttamente vengono inoltrati al bucket S3 nella cartella processing_failed.

D: Perché le dimensioni degli oggetti S3 distribuiti sono più grandi rispetto alle dimensioni del buffer specificate nella configurazione del flusso di distribuzione?

La maggior parte delle volte, le dimensioni degli oggetti S3 consegnati riflettono la dimensione di buffer specificata, purché la condizione della dimensione di buffer venga soddisfatta prima della condizione dell'intervallo di buffer. Tuttavia, quando la consegna dei dati alla destinazione è più lenta rispetto alla scrittura dei dati sul flusso di distribuzione, Firehose aumenta in modo dinamico le dimensioni del buffer per assicurarsi che tutti i dati vengano distribuiti a destinazione. In queste circostanze, le dimensioni degli oggetti S3 consegnati potrebbero essere maggiori rispetto alle dimensioni del buffer specificate.

D: Cos'è la cartella errors nel bucket Amazon S3?

La cartella errors memorizza i file manifesto che contengono le informazioni su tutti gli oggetti S3 che non è stato possibile caricare nell’istanza Redshift. È possibile caricare questi oggetti manualmente tramite il comando COPY di Redshift. Per ulteriori informazioni su come eseguire il comando COPY sui dati con un file manifest, consulta Utilizzo di un manifest per specificare file di dati.

D: Cos'è la cartella opensearch_failed nel bucket Amazon S3?

La cartella opensearch_failed archivia i documenti il cui caricamento non è riuscito sul tuo Amazon OpenSearch. Cosa succede se la distribuzione dei dati nel mio dominio Amazon OpenSearch fallisce? È possibile reindicizzare questi documenti manualmente per recuperarne le informazioni.

D: Cos'è la cartella processing_failed nel bucket Amazon S3?

La cartella processing_failed memorizza i record non sottoposti a trasformazione da parte della funzione AWS Lambda a causa di errori. È possibile effettuare nuovi tentativi di elaborazione manualmente.

D: Come è possibile monitorare il funzionamento e le prestazioni di un flusso di distribuzione Amazon Kinesis Data Firehose?

La console di Firehose mostra i principali parametri operativi e prestazionali, ad esempio il volume di dati in entrata e il volume di dati distribuiti. Amazon Kinesis Data Firehose integra inoltre i parametri di Amazon CloudWatch per raccogliere, visualizzare e analizzare i parametri dei flussi di distribuzione. Per ulteriori informazioni sui parametri di Amazon Kinesis Data Firehose, consulta la sezione Monitoraggio tramite Amazon CloudWatch Metrics nella guida per gli sviluppatori di Amazon Kinesis Data Firehose.

D: In che modo è possibile monitorare gli errori di trasformazione e distribuzione di un flusso di distribuzione Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose si integra con Amazon CloudWatch Logs, consentendoti di aprire log di errore specifici in caso di mancata trasformazione o mancato recapito dei dati. Puoi abilitare la registrazione di log di errore al momento della creazione del flusso di distribuzione. Per ulteriori informazioni, consulta la sezione Monitoraggio tramite Amazon CloudWatch Logs nella guida per gli sviluppatori di Amazon Kinesis Data Firehose.

D: In che modo è possibile controllare e gestire gli accessi a un flusso di distribuzione Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose si integra con AWS Identity and Access Management, un servizio che consente di controllare gli accessi degli utenti alle risorse e ai servizi AWS. Ad esempio, è possibile creare una policy che consente solo a un utente o a un gruppo di utenti specifico di immettere dati in un flusso di distribuzione di Amazon Kinesis Firehose. Per ulteriori informazioni su gestione e controllo degli accessi dei flussi, consulta Controllo degli accessi tramite Amazon Kinesis Data Firehose.

D: Come è possibile creare un log delle chiamate API inoltrate a un flusso Amazon Kinesis Data Firehose per analisi di sicurezza e risoluzione dei problemi di funzionamento?

Amazon Kinesis Data Firehose si integra con AWS CloudTrail, un servizio che registra le chiamate API di AWS sull'account e ne inoltra i file di log. Per ulteriori informazioni sulla registrazione delle chiamate API e per ottenere un elenco delle operazioni API di Amazon Kinesis Data Firehose, consulta Registro di chiamate API Amazon Kinesis Data Firehose tramite AWS CloudTrail.

Prezzi e fatturazione

D: Kinesis Data Firehose è disponibile nel piano gratuito di AWS?

Kinesis Data Firehose non è attualmente disponibile nel piano gratuito di AWS. Il piano gratuito di AWS è un programma che offre prove gratuite per una serie di servizi AWS. Per ulteriori informazioni, consulta la pagina Web relativa al piano gratuito di AWS.

D: Quanto costa Kinesis Data Firehose?

I prezzi di Kinesis Data Firehose sono calcolati in base al consumo effettivo. Non sono previsti pagamenti anticipati né tariffe minime: paghi solo le risorse che utilizzi. I prezzi di Amazon Kinesis Data Firehose si basano sul volume di dati (in GB) acquisiti da Firehose, arrotondando per eccesso le dimensioni di ciascun registro ai 5 KB più vicini per quanto riguarda PUT Diretto e flussi di dati Kinesis come origine. Per Registri Venduti come origine, i prezzi si basano sul volume di dati (in GB) acquisiti da Firehose. Per ulteriori informazioni sui prezzi di Amazon Kinesis Data Firehose, consulta Prezzi di Amazon Kinesis Data Firehose.

D: Quando viene usata l'operazione PutRecordBatch per inviare dati in Amazon Kinesis Data Firehose, come viene calcolato l'arrotondamento a incrementi di 5 KB?

L'arrotondamento per eccesso a incrementi di 5 KB viene calcolato a livello di record, non a livello di operazione API. Ad esempio, se la chiamata PutRecordBatch contiene due record da 1 KB, il volume di dati calcolato per quella chiamata sarà di 10 KB (5 KB per record)

D: La tariffa di Kinesis Data Firehose include anche i costi relativi ad Amazon S3, Amazon Redshift, Amazon OpenSearch Service e AWS Lambda?

No, i costi associati all'utilizzo di Amazon S3, Amazon Redshift, Amazon OpenSearch Service e AWS Lambda, inclusi i costi per lo storage e per le richieste, saranno fatturati separatamente. Per ulteriori informazioni, consulta le pagine relative ai prezzi di Amazon S3, Amazon Redshift, Amazon OpenSearch Service e AWS Lambda.

Accordo sul livello di servizio (SLA)

D: Che cosa garantisce il contratto sul livello di servizio (SLA) di Amazon Kinesis Data Firehose?

Lo SLA di Amazon Kinesis Data Firehose garantisce una percentuale di tempo di attività mensile di almeno il 99,9% per Amazon Kinesis Data Firehose.

D: Come posso sapere se ho diritto a un credito di assistenza SLA?

Hai diritto a un credito di assistenza SLA per Amazon Kinesis Data Firehose, secondo lo SLA di Amazon Kinesis Data Firehose, se più di una zona di disponibilità in cui stai eseguendo un'attività, all'interno della stessa regione ha una percentuale di tempo di attività mensile inferiore al 99,9% durante un qualsiasi ciclo di fatturazione mensile.

Per dettagli completi sui termini e le condizioni del contratto sul livello di servizio e per indicazioni sulla presentazione di una richiesta, consulta la pagina dei dettagli relativa allo SLA di Amazon Kinesis Data Firehose.

Ulteriori informazioni sui prezzi di Amazon Kinesis Data Firehose

Visita la pagina dei prezzi
Sei pronto per iniziare?
Registrati
Hai altre domande?
Contattaci