Nozioni generali e sullo 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 Data Firehose?

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, nel Servizio OpenSearch di Amazon, Snowflake, nelle tabelle Apache Iceberg e Splunk, per ottenere analisi quasi in tempo reale con gli strumenti esistenti di business intelligence e i pannelli di controllo che usi tutti i giorni. Si tratta di un servizio completamente gestito che scala automaticamente le risorse in base al throughput 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 spazio di archiviazione utilizzato e migliorando il livello di sicurezza.

D: Cos'è un'origine su Firehose?

Un'origine è la sorgente da cui vengono generati e acquisiti in modo continuo i dati in streaming. Ad esempio, un'origine può essere un server di registrazione in un'istanza Amazon EC2, un'applicazione su dispositivi mobili, un sensore su un dispositivo IoT. È possibile collegare le origini a Firehose utilizzando: 1) l'API Amazon Data Firehose, che utilizza AWS SDK per Java, .NET, Node.js, Python o Ruby. 2) Kinesis Data Streams, in cui Firehose legge facilmente i dati da un flusso di dati Kinesis esistente e li carica sulle destinazioni Firehose. 3) Amazon MSK, in cui Firehose legge facilmente i dati 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 Data Firehose. 5) Kinesis Agents, un'applicazione software Java che funziona in modo autonomo, 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 codici senza dover effettuare il provisioning né gestire server. È possibile utilizzare la funzione di scrittura di Lambda per inviare traffico da S3 o DynamoDB a Firehose sulla base di un evento attivato.

D: Cos'è una destinazione su Firehose?

La destinazione è il datastore in cui saranno distribuiti i dati. Le destinazioni attualmente supportate da Firehose sono Amazon S3, Amazon Redshift, il Servizio OpenSearch di Amazon, Snowflake, le tabelle Apache Iceberg, Splunk, Datadog, NewRelic, Dynatrace, Sumo Logic, LogicMonitor, MongoDB e gli endpoint HTTP.

D: Quali attività gestisce Firehose per mio conto?

Data Firehose gestisce infrastruttura, archiviazione, rete e configurazione sottostanti necessari per acquisire e caricare i dati in Amazon S3, Amazon Redshift, nel Servizio OpenSearch di Amazon, Snowflake, nelle tabelle Apache Iceberg 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. Data Firehose dimensiona le risorse in modo elastico senza alcun intervento manuale o impegno da parte degli sviluppatori. Inoltre, 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 Firehose?

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

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

D: Cos'è un flusso Firehose su Firehose?

Un flusso Firehose è l'entità di base di Firehose. Firehose si utilizza creando un flusso Firehose e inviandogli dati. È possibile creare un flusso Firehose tramite la console di Firehose o l'operazione CreateDeliveryStream. Per ulteriori informazioni, consulta Creazione di un flusso Firehose.

D: Cos'è un record su Firehose?

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

D: Quali sono i limiti di Firehose?

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

Origini dati

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

L'API 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 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 Firehose. È 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 Firehose. Attualmente, Amazon Kinesis Agent 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
  • Su 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.thinkwithwp.com/kinesis-agent-windows/latest/userguide/getting-started.html#getting-started-installation

D: Qual è la differenza tra le operazioni PutRecord e PutRecordBatch?

Per aggiungere dati a un flusso Firehose, è possibile utilizzare Kinesis Agent oppure le operazioni di Firehose PutRecord e PutRecordBatch. L'operazione PutRecord consente un solo record di dati per chiamata API, mentre l'operazione PutRecordBatch ne consente più di uno. Per ulteriori informazioni, vedi PutRecord e PutRecordBatch.

D: Come faccio ad aggiungere dati al flusso Firehose da Amazon MSK?

Al momento della creazione o dell'aggiornamento di un flusso Firehose tramite la Console AWS o le API Firehose, è possibile configurare un cluster/argomento Amazon MSK come origine del flusso Firehose. 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 principali vantaggi dell'integrazione di Amazon MSK e Firehose?

È possibile ridurre la complessità operativa e il sovraccarico dell'applicazione trasformando e caricando i dati in streaming provenienti dagli argomenti Amazon MSK su Amazon S3 senza bisogno di codice. Ad esempio, con Amazon MSK e Firehose, è possibile lavorare senza codice e ottenere 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. Inoltre, si ottengono nuovi tentativi di consegna automatici, conservazione dei dati, dimensionamento automatico e ridondanza, affinché i dati vengano consegnati in modo affidabile.

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

Per utilizzare questa funzionalità, è necessario che gli endpoint pubblici o i link privati dei cluster MSK siano abilitati.

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

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

D: Qual è il tempo limite necessario per iniziare a consumare dati dall'argomento Amazon MSK?

Il tempo limite per iniziare a consumare i dati dall'argomento Amazon MSK è il momento della creazione dello stream Firehose. Firehose non legge i valori di offset personalizzati.

D: Come si aggiungono dati al flusso Firehose dal flusso di dati Kinesis?

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

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

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

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

Firehose inizia a leggere i dati dalla posizione PIÙ RECENTE del flusso di dati Kinesis quando è configurato come sorgente di un flusso Firehose. Per ulteriori informazioni sulle posizioni del flusso di dati Kinesis, consulta la sezione GetShardIterator nella documentazione di riferimento delle API del servizio Kinesis Data Streams.

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

Sì. Tuttavia, la chiamata GetRecords() da Firehose è inclusa nel calcolo della limitazione totale della larghezza di banda della rete della partizione di Kinesis. È dunque necessario pianificare il flusso Firehose 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 Firehose tramite Kinesis Agent o le operazioni di Firehose PutRecord e PutRecordBatch una volta configurato il flusso di dati Kinesis come origine?

No. Quando un flusso di dati Kinesis è configurato come origine di un flusso 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 da AWS IoT a un flusso Firehose?

Per aggiungere dati da AWS IoT a un flusso Firehose, è necessario creare un'operazione di AWS IoT che vi inoltri gli eventi. Per ulteriori informazioni, consulta la sezione Writing to Amazon Firehose Using AWS IoT nella guida agli sviluppatori di Firehose.

D: Come è possibile trasmettere i log di flusso VPC a Firehose?

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

D: Come si aggiungono dati da CloudWatch Logs a un flusso Firehose?

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

D: Come si aggiungono dati da CloudWatch Events a un flusso Firehose?

Per aggiungere dati da CloudWatch Events a un flusso di distribuzione Firehose è necessario creare una regola CloudWatch Events impostando come destinazione il flusso Firehose. Per ulteriori informazioni, consulta la sezione Writing to Amazon Firehose Using CloudWatch Events nella guida agli sviluppatori di Firehose.

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

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

D: Quali tipi di crittografia è possibile utilizzare?

Firehose consente di crittografare i dati dopo la consegna al bucket Amazon S3. Al momento della creazione del flusso Firehose, è 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 Firehose?

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

Firehose si connette ai database che si trovano all'interno di VPC?

Sì, Firehose utilizza AWS PrivateLink per connettersi ai database che si trovano all'interno di VPC.

Posso scegliere di trasmettere in streaming gli aggiornamenti di Change Data Capture (CDC) da tabelle e colonne specifiche del mio database?

Sì, quando configuri un flusso di distribuzione Firehose, puoi selezionare tabelle e colonne specifiche nel database di origine. Firehose fornisce aggiornamenti CDC solo per le tabelle e le colonne selezionate.

Posso inviare record da diverse tabelle di origine in diverse tabelle Iceberg nel mio data lake Amazon S3?

Sì, quando configuri Firehose per distribuire flussi CDC in tabelle Apache Iceberg su Amazon S3, puoi configurare il flusso per distribuire record da diverse tabelle di origine in diverse tabelle Apache Iceberg.

Trasformazione dei dati e conversione del formato

D: In che modo è possibile preparare e trasformare i dati grezzi su Firehose?

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, Firehose permette di suddividere in maniera dinamica i dati in streaming prima della consegna ad S3 tramite chiavi definite in modo statico o dinamico, quali "customer_id" o "transaction_id". 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 Data Firehose, è possibile utilizzare una funzione AWS Lambda per preparare e trasformare i dati grezzi in ingresso nel flusso Firehose 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 Firehose, oppure quando ne viene modificato uno esistente. Amazon ha creato numerose planimetrie Lambda tra cui scegliere per iniziare rapidamente. Per un elenco completo, consulta la guida per gli sviluppatori di Amazon Data Firehose.

D: Quali formati di compressione è possibile utilizzare?

Amazon 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 funzionalità di abbonamento a CloudWatch Logs?

La funzionalità di abbonamento a CloudWatch Logs permette di inoltrare dati in streaming da CloudWatch Logs su Firehose. Tutti i log eventi 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 funzionalità di abbonamento di CloudWatch Logs, consulta la sezione Filtri di iscrizione tramite Amazon Data Firehose nella guida per l'utente di Amazon CloudWatch Logs.

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

È necessario reindirizzare tutti i record trasformati da Lambda a 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?

Utilizzando la trasformazione dei dati di Lambda, è anche possibile configurare il backup dei record di origine; Amazon 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 è consigliato utilizzare la partizione dinamica di Firehose?

La partizione dinamica di Firehose elimina le complessità e i ritardi tipici della partizione manuale all'origine o dopo l'archiviazione dei dati e consente un'analisi dei dati più veloce per le query di set di dati ottimizzati. Da un lato, questo 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; dall'altro, 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 funzionalità, insieme a quella esistente di conversione dal formato JSON al formato Parquet di Amazon Data Firehose, rende Amazon Data Firehose uno strumento di streaming ETL ideale per S3.

D: Come si imposta la partizione dinamica con Firehose?

È possibile impostare la capacità di partizione dei dati di Firehose tramite la console di gestione, le CLI o gli SDK di AWS. Al momento della creazione o dell'aggiornamento di un flusso Firehose, seleziona Amazon S3 come destinazione di consegna per il flusso Firehose e abilita la partizione dinamica. È possibile specificare chiavi o creare un'espressione da valuta al runtime per definire le 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?

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

Distribuzione e destinazioni dei dati

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

Sì, 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. È possibile abilitare il backup dei record di origine al momento della creazione o dell'aggiornamento di un flusso Firehose.

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

La frequenza di distribuzione dei dati su Amazon S3 è determinata dalle dimensioni del buffer di S3 e dall'intervallo di buffer configurati per il flusso Firehose. 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 ad Amazon S3. Se hai attivato Apache parquet o una partizione dinamica, la dimensione del buffer è espressa in MB e varia tra 64 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'importazione dei dati nel flusso Firehose, 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 si decide di comprimere i dati, le dimensioni degli oggetti nel bucket Amazon S3 saranno minori rispetto a quelle del buffer specificate.

D: Al momento della creazione di un flusso Firehose, quali privilegi è necessario specificare per l'utente Amazon Redshift?

L'utente Redshift deve disporre del privilegio Redshift INSERT per poter copiare i dati dal bucket Amazon S3 nell'istanza Redshift.

D: Quali operazioni è necessario eseguire se l'istanza Amazon Redshift si trova all'interno di un VPC?

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

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

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

D: È possibile che un singolo flusso Firehose fornisca dati a più tabelle Snowflake?

Attualmente, un singolo flusso Firehose può fornire dati solo a una tabella Snowflake. Per fornire dati a più tabelle Snowflake, è necessario creare più stream Firehose.

D: Quale modello di distribuzione utilizza Firehose per fornire dati allo streaming di Snowflake?

Firehose utilizza la semantica di elaborazione singola per Snowflake. Ciò significa che ogni record viene inviato a Snowflake esattamente una volta, anche in caso di errori o tentativi. Tuttavia, una consegna effettuata una volta sola non garantisce l'assenza di duplicati nei dati dall'inizio alla fine, in quanto i dati possono essere duplicati dal produttore o da altre parti della pipeline ETL.

D: Qual è la latenza minima per la distribuzione allo streaming di Snowflake utilizzando Firehose?

Prevediamo che la maggior parte dei flussi di dati venga consegnata entro 5 secondi.

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. Il servizio OpenSearch di Amazon 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 sul servizio OpenSearch di Amazon, fai clic qui.

D: Cosa si intende per rotazione degli indici per le destinazioni nel servizio OpenSearch di Amazon?

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

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

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

D: È possibile modificare le configurazioni dei flussi Firehose dopo la loro creazione?

È possibile modificare le configurazioni dei flussi Firehose in qualsiasi momento. Per farlo, basta utilizzare la console di Firehose oppure l'operazione UpdateDestination. Il flusso Firehose manterrà lo stato ACTIVE anche durante l'aggiornamento delle configurazioni, perciò sarà possibile continuare a inviarvi dati. Generalmente, le configurazioni aggiornate iniziano a funzionare nel giro di pochi minuti.

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

D: È possibile utilizzare un flusso Firehose in un account per distribuire i dati in una destinazione VPC del dominio del servizio OpenSearch di Amazon in un altro account?

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

Se invece sono connessi tramite un VPC privato, è necessario che il VPC del dominio di destinazione del servizio OpenSearch di Amazon e del flusso Firehose si trovino nel medesimo account.

D: È possibile utilizzare un flusso Firehose in una regione per distribuire i dati in una destinazione VPC del dominio del servizio OpenSearch di Amazon in un'altra regione?

No, è necessario che il flusso Firehose e il dominio di destinazione del servizio OpenSearch di Amazon si trovino nella medesima regione.

D: Con quale frequenza Firehose distribuisce dati in un dominio del servizio OpenSearch di Amazon?

La frequenza di distribuzione dei dati nel servizio OpenSearch di Amazon è determinata dai valori dalle dimensioni e dell'intervallo del buffer di OpenSearch configurati per il flusso Firehose. Firehose memorizza nella cache i dati in entrata prima di distribuirli al servizio OpenSearch di Amazon. È possibile 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 al servizio OpenSearch di Amazon. In situazioni in cui l'inoltro dei dati alla destinazione è più lento rispetto all'importazione dei dati nel flusso Firehose, Amazon Data Firehose aumenta automaticamente le dimensioni del buffer per assicurarsi che tutti i dati raggiungano la destinazione.

D: Cos'è la cartella manifests nel bucket Amazon S3?
Per le destinazioni Redshift, Amazon Data Firehose genera file manifesto per il caricamento in batch di oggetti Amazon S3 su istanze 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?
Utilizzando la modalità "All documents", Amazon Data Firehose concatenerà diversi record in entrata in base alla configurazione del buffer del flusso Firehose e li distribuirà nel bucket S3 come oggetto S3. Indipendentemente dalla modalità di backup configurata, i documenti il cui caricamento non è riuscito verranno distribuiti nel bucket S3 utilizzando un formato JSON che fornisce informazioni aggiuntive quali codice di errore e data e ora del tentativo non riuscito. Per ulteriori informazioni, consulta la sezione Backup di Amazon S3 per la destinazione del servizio OpenSearch di Amazon nella guida per gli sviluppatori di Amazon Data Firehose.

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

Al momento, un singolo flusso Firehose può distribuire dati in un solo bucket Amazon S3. Per distribuire dati in più bucket S3, è necessario creare più flussi Firehose.

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

Attualmente, un singolo flusso Firehose può distribuire dati solo a un'istanza e a una tabella Redshift. Per distribuire dati in più istanze o tabelle Redshift, è necessario creare più flussi Firehose.

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

Attualmente, un singolo flusso Firehose può distribuire dati contemporaneamente in un solo dominio e in un solo indice del servizio OpenSearch di Amazon. Per distribuire dati in più domini o indici del servizio OpenSearch di Amazon, è possibile creare più flussi Firehose.

D: In che modo Amazon Data Firehose distribuisce dati al dominio del servizio OpenSearch di Amazon in un VPC?

Abilitando Firehose per la distribuzione dei dati a una destinazione del servizio OpenSearch di Amazon in un VPC, Amazon Data Firehose crea una o più interfacce di rete elastiche (ENI) per più account nel VPC per ciascuna sottorete a scelta. Amazon Data Firehose utilizza queste ENI per distribuire i dati nel VPC. Il numero di ENI si dimensiona automaticamente per soddisfare i requisiti del servizio.

D: È possibile che un singolo flusso Firehose fornisca dati a più tabelle Apache Iceberg?

Sì, un flusso Firehose può fornire dati a più tabelle Apache Iceberg.

D: Firehose supporta la connessione al Catalogo dati AWS Glue in un account diverso o in una regione AWS diversa?

Sì, Firehose supporta la connessione al Catalogo dati AWS Glue in un account diverso o in una regione AWS diversa.

D: Posso utilizzare la funzionalità di trasformazione dei dati con Lambda per la distribuzione alle tabelle Apache Iceberg?

Sì, è possibile utilizzare la trasformazione dei dati con Lambda per la distribuzione alle tabelle Apache Iceberg. 

Risoluzione dei problemi e gestione dei flussi Firehose

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

Di default, ogni flusso Firehose 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'apposita richiesta di aumento dei limiti dei servizi.

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

Per l'invio di dati, Amazon Data Firehose utilizza semantica at-least-once. In rari casi, ad esempio quando una richiesta scade a seguito di un tentativo di invio di dati, il nuovo tentativo eseguito da Firehose potrebbe generare duplicati se poi 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 l'origine dati è PUT Diretto e la loro distribuzione nel bucket Amazon S3 non va a buon fine, Amazon Data Firehose riprova a distribuirli ogni 5 secondi per un massimo di 24 ore, oltre le quali, se il problema persiste, li eliminerà.

Se l'origine dati è Kinesis Data Streams e la loro distribuzione nel bucket Amazon S3 non va a buon fine, Amazon Data Firehose riprova a distribuirli ogni 5 secondi per un periodo massimo equivalente a quello configurato su Kinesis Data Streams.

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 Data Firehose riprova a distribuirli ogni 5 minuti per un massimo di 120 minuti, trascorsi i quali salta l'attuale batch di oggetti S3 pronti per il comando COPY e passa a quello successivo. Le informazioni relative agli oggetti non elaborati vengono inviate al bucket S3 sotto forma di file manifesto nella cartella errors, che è possibile utilizzare per recuperare le informazioni manualmente. Per ulteriori informazioni su come eseguire il comando COPY sui dati con un file manifesto, consulta Utilizzo di un manifesto per specificare i file di dati.

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

Per le destinazioni nel servizio OpenSearch di Amazon, al momento della creazione del flusso Firehose è possibile specificare una durata di tentativi compresa tra 0 e 7200 secondi. Se la distribuzione dei dati verso il dominio del servizio OpenSearch di Amazon non va a buon fine, Amazon Data Firehose riprova a distribuirli per il tempo specificato, trascorso il quale salta l'attuale batch di dati e passa a quello successivo. I dettagli relativi ai documenti non inoltrati vengono memorizzati nella cartella opensearch_failed del bucket S3 e possono essere utilizzati 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, è anche possibile utilizzare la funzionalità di Firehose per la registrazione degli errori ed emettere errori di invocazione su CloudWatch Logs. Per ulteriori informazioni, consulta Monitoraggio tramite log Amazon CloudWatch.
  • 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, è anche possibile utilizzare la funzionalità di Lambda per la registrazione degli errori ed emettere log di errore su CloudWatch Logs. Per ulteriori informazioni, consulta Accesso ad Amazon CloudWatch Logs per AWS Lambda.

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

D: Perché le dimensioni degli oggetti S3 distribuiti sono maggiori rispetto alle dimensioni del buffer specificate nella configurazione del flusso Firehose?

Il più 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 Firehose, Firehose aumenta in modo dinamico le dimensioni del buffer per assicurarsi che tutti i dati vengano distribuiti alla destinazione. In queste circostanze, le dimensioni degli oggetti S3 consegnati potrebbero essere maggiori rispetto a quelle specificate per il buffer.

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 Redshift COPY. Per ulteriori informazioni su come eseguire il comando COPY sui dati con un file manifesto, consulta Utilizzo di un manifesto per specificare i 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 si monitorano il funzionamento e le prestazioni di un flusso Amazon Data Firehose?

La console di Firehose mostra i principali parametri operativi e prestazionali, come il volume di dati in entrata e il volume di dati distribuiti. Inoltre, Amazon Data Firehose integra i parametri di Amazon CloudWatch per raccogliere, visualizzare e analizzare i parametri dei flussi Firehose. Per ulteriori informazioni sui parametri di Amazon Data Firehose, consulta la sezione Monitoraggio con metriche Amazon CloudWatch nella guida per gli sviluppatori di Amazon Data Firehose.

D: Come si monitorano gli errori di trasformazione e distribuzione di un flusso Amazon Data Firehose?

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

D: Come è possibile gestire e controllare gli accessi a un flusso Amazon Data Firehose?

Amazon 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 Firehose. Per ulteriori informazioni su gestione e controllo degli accessi dei flussi, consulta Controllo degli accessi tramite Amazon Data Firehose.

D: Come si registrano le chiamate API inoltrate a un flusso di dati Amazon Data Firehose per analisi di sicurezza e risoluzione dei problemi di funzionamento?

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

Prezzi e fatturazione

D: Firehose è disponibile nel Piano gratuito di AWS?

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

D: Quanto costa Firehose?

I prezzi di Firehose sono calcolati in base al consumo effettivo. Non sono previsti pagamenti anticipati né tariffe minime: si pagano solo le risorse utilizzate. I prezzi di Amazon Data Firehose si basano sul volume di dati (in GB) importati da Firehose, arrotondando per eccesso le dimensioni di ciascun registro ai 5 KB più vicini per PUT Diretto e Kinesis Data Streams utilizzati come origine. Per Log venduti come origine, i prezzi si basano sul volume di dati (in GB) importati da Firehose. Per ulteriori informazioni sui costi di Amazon Data Firehose, consulta i Prezzi di Amazon Data Firehose.

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

L'arrotondamento 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 Data Firehose include anche i costi relativi ad Amazon S3, ad Amazon Redshift, al servizio OpenSearch di Amazon e ad AWS Lambda?

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

Contratto sul livello di servizio

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

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

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

Hai diritto a un credito di assistenza SLA per Amazon Data Firehose, secondo lo SLA di Amazon 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 su termini e condizioni del contratto dello SLA e per indicazioni sulla presentazione di una richiesta, consulta la pagina dei dettagli relativa allo SLA di Amazon Data Firehose.

Ulteriori informazioni sui prezzi di Amazon Data Firehose

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