Inizia a usare Amazon Kinesis Data Streams »

Novità di Amazon Kinesis Data Streams »

Richiedi il supporto per un proof of concept o una valutazione »

Amazon Kinesis Data Streams è un servizio di acquisizione ed elaborazione dati estremamente durevole e a scalabilità elevata ottimizzato per i flussi di dati. È possibile configurare centinaia di migliaia di origini dati per inoltrare in modo continuo i dati in un flusso di Kinesis. I dati saranno disponibili entro millisecondi nelle applicazioni Amazon Kinesis, nell'ordine in cui sono stati generati.

Amazon Kinesis Data Streams si integra con diversi servizi AWS, ad esempio Amazon Kinesis Data Firehose per trasformazione e distribuzione in tempo reale di flussi di dati in data lake AWS come Amazon S3, Kinesis Data Analytics per l'elaborazione gestita di flussi, AWS Lambda per l'elaborazione di eventi o record, AWS PrivateLink per connettività privata, Amazon CloudWatch per elaborazione di log e parametri e AWS KMS per crittografia lato server.

Nel seguente diagramma di architettura, Amazon Kinesis Data Streams viene usato come gateway all'interno di una soluzione per i Big Data. I dati provenienti da molteplici origini vengono incanalati in un flusso Amazon Kinesis, quindi i dati nel flusso vengono elaborati da diverse applicazioni Amazon Kinesis. In questo esempio, un'applicazione (di colore giallo) esegue un pannello di controllo in tempo reale sui dati in streaming. Un'altra applicazione (di colore rosso) esegue una semplice aggregazione e trasferisce i dati elaborati in Amazon S3. In dati in S3 vengono ulteriormente elaborati e memorizzati in Amazon Redshift per eseguire operazioni di analisi complesse. Una terza applicazione (di colore verde) inoltra i dati grezzi in Amazon S3, archiviandoli infine in Amazon Glacier, soluzione di storage a lungo termine a basso costo. Le tre pipeline di elaborazione dei dati operano simultaneamente e in parallelo.

kinesis-architecture-crop

Nozioni di base

Producer di dati

Un producer di dati è un'applicazione che in genere emette record di dati mentre vengono generati in un flusso di dati di Kinesis. I producer di dati assegnano ai record chiavi di partizione. Le chiavi di partizione determinano quale shard acquisisce il record di dati per un flusso di dati.

Consumer di dati

Un consumer di dati è un'applicazione Kinesis distribuita o un servizio AWS che recupera i dati da tutti gli shard in un flusso mentre vengono generati. La maggior parte dei consumer di dati recuperano i dati più recenti in un shard, consentendo così analisi o gestione dei dati in tempo reale.

Flusso di dati

Un flusso di dati è un raggruppamento logico di shard. Non esiste alcun limite al numero di shard in un flusso di dati (richiedi di superare il limite imposto se ne occorre un numero maggiore). Un flusso di dati conserverà i dati per 24 ore o fino a 7 giorni se è abilitata la retention estesa.

Shard

Lo shard è un'unità di misura di throughput di un flusso di dati di Amazon Kinesis.

  • Uno shard è un log per soli accodamenti e l'unità di misura della capacità di un flusso. Ogni shard contiene una sequenza di record ordinata cronologicamente.
  • Uno shard può acquisire fino a 1.000 record di dati al secondo, o 1 MB al secondo. Per aumentare la capacità di acquisizione, è sufficiente aumentare il numero di shard.
  • È possibile aggiungere o rimuovere shard in modo dinamico a un flusso in base alle esigenze di throughput utilizzando la console di AWS, l'API UpdateShardCount, attivando la scalabilità automatica con AWS Lambda oppure con Auto Scaling.
  • Quando i consumer utilizzano il fan-out avanzato, uno shard fornisce una capacità di 1 MB al secondo in entrata e 2 MB al secondo in uscita per ogni consumer di dati registrato.
  • Quando i consumer non utilizzano il fan-out avanzato, uno shard fornisce una capacità di 1 MB al secondo in entrata e 2 MB al secondo in uscita e questo output è condiviso per ogni consumer che non utilizza il fan-out.
  • La numero di shard può essere indicato al momento della creazione di un flusso e modificato in qualsiasi momento. Ad esempio, è possibile creare un flusso con due shard. Se sono disponibili 5 consumer di dati che utilizzando fan-out avanzato, il flusso può fornire una capacità di 20 MB massimi in uscita (2 shard x 2 MB al secondo x 5 consumer). Quando i consumer non impiegano il fan-out avanzato, la capacità offerta è di 2 MB al secondo in entrata e 4 MB al secondo in uscita. In ogni caso, il flusso permette fino a 2.000 record PUT al secondo o 2 MB al secondo in entrata (a seconda della condizione che si verifica prima).
  • È possibile monitorare i parametri a livello di shard in Amazon Kinesis Data Streams.

Record di dati

Il record è l'unità di dati memorizzati in un flusso Amazon Kinesis. Un record è composto da un numero di sequenza, una chiave di partizione e un blob di dati. Un blob di dati rappresenta i dati di interesse che il producer di dati aggiunge a un flusso. Le dimensioni massime di un blob di dati (il payload di dati dopo decodifica con Code64) è di 1 megabyte (MB).

Chiave di partizione

Una chiave di partizione è in genere un identificatore leggibile, ad esempio un ID utente o un timestamp. Viene specificato dal producer di dati quando i dati vengono inoltrati nel flusso di dati di Amazon Kinesis ed è un valore utile per i consumer perché in base alla chiave di partizione è possibile ricostruire uno storico dei dati. La chiave di partizione viene inoltre usata per separare e instradare i record di dati nei diversi shard di un flusso. Ad esempio, poniamo di avere un flusso di dati di Amazon Kinesis con due shard (Shard 1 e Shard 2). È possibile configurare il produttore di dati con due chiavi di partizione (Chiave A e Chiave B), in modo che tutti i record di dati con la Chiave A vengono aggiunti allo Shard 1 e quelli con la Chiave B vengono aggiunti allo Shard 2.

Numero di sequenza

Il numero di sequenza è un identificatore univoco dei record di dati. Il numero di sequenza viene assegnato da Amazon Kinesis Data Streams quando un produttore di dati richiama le API PutRecord o PutRecords per aggiungere dati in un flusso di dati di Amazon Kinesis. I numeri di sequenza per la stessa chiave di partizione in genere diventano più grandi con il passare del tempo; maggiore è l'intervallo di tempo tra le richieste PutRecord o PutRecords, più elevati diventano i numeri di sequenza.

Utilizzo di Kinesis Data Streams

Dopo la registrazione ad Amazon Web Services, per iniziare a usare Amazon Kinesis Data Streams è sufficiente:

  • Creare un flusso di dati di Amazon Kinesis tramite la console di gestione di Amazon Kinesis oppure l'API CreateStream.
  • Configurare i producer di dati in modo che inoltrino continuativamente dati nel flusso di dati di Amazon Kinesis.
  • Creare applicazioni Amazon Kinesis che leggano ed elaborino i dati del flusso Amazon Kinesis.

Invio di dati in un flusso

I producer di dati possono inviare i dati in flussi di dati di Amazon Kinesis tramite le API di Amazon Kinesis Data Streams, Amazon Kinesis Producer Library (KPL) o Amazon Kinesis Agent.

Amazon Kinesis Data Generator

È ora possibile aggiungere dati di esempio in un flusso di dati di Kinesis o in Kinesis Data Firehose utilizzando Amazon Kinesis Data Generator.

API di Amazon Kinesis Data Streams

Amazon Kinesis Data Streams fornisce due API per immettere i dati in un flusso Amazon Kinesis: PutRecord e PutRecords. PutRecord consente un solo record di dati per chiamata API, mentre PutRecords consente più record di dati per chiamata API.

Amazon Kinesis Producer Library (KPL)

Amazon Kinesis Producer Library (KPL) è una libreria configurabile e semplice da utilizzare che facilita l'invio di dati in un flusso di Amazon Kinesis. Amazon Kinesis Producer Library (KPL) offre un'interfaccia semplice, affidabile e asincrona che consente di raggiungere throughput elevati con una quantità limitata di risorse client.

Amazon Kinesis Agent

Amazon Kinesis Agent è un'applicazione Java preinstallata che offre un modo semplice per raccogliere e inviare dati in un flusso Amazon Kinesis. È 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.

Esecuzione o creazione di applicazioni gestite di elaborazione di flussi

È possibile eseguire applicazioni gestite di elaborazione di flussi o crearne una da zero.

Amazon Kinesis Data Firehose

Amazon Kinesis Data Firehose è il mezzo più semplice e affidabile per trasformare e caricare flussi di dati in datastore e strumenti di analisi in modo affidabile. È possibile utilizzare un flusso di dati di Kinesis come origine per Kinesis Data Firehose.

Amazon Kinesis Data Analytics

Amazon Kinesis Data Analytics permette di eseguire query su flussi di dati o creare intere applicazioni di streaming usando SQL per ottenere informazioni concrete e rispondere prontamente alle esigenze dei clienti. I flussi di dati di Kinesis possono essere utilizzati come origine e destinazione per un'applicazione di analisi di Kinesis.

AWS Lambda

È possibile sottoscrivere funzioni Lambda che leggano automaticamente i record da un flusso di dati di Kinesis. AWS Lambda viene in genere impiegato per l'elaborazione di flusso record per record (detta anche basata su eventi).

Amazon Kinesis Client Library (KCL)

Amazon Kinesis Client Library (KCL) è una libreria preconfigurata che semplifica la creazione di applicazioni Amazon Kinesis per la lettura e l'elaborazione di dati provenienti da un flusso di Amazon Kinesis. KCL gestisce problemi complessi quali l'adattamento alle variazioni di volume del flusso, il bilanciamento del carico dei dati, la coordinazione di servizi distribuiti e l'elaborazione di dati con tolleranza ai guasti. Consente di concentrare l'attenzione sulla logica di business durante la creazione di applicazioni Amazon Kinesis. A partire dalla versione 2.0 di KCL, è possibile utilizzare un'API di streaming HTTP/1 a bassa latenza e il fan-out avanzato per recuperare dati da un flusso.

Amazon Kinesis Connector Library

Amazon Kinesis Connector Library è una libreria preconfigurata che semplifica l'integrazione di Amazon Kinesis con altri servizi di AWS e strumenti di terze parti. Amazon Kinesis Client Library (KCL) è un requisito per l'utilizzo di Amazon Kinesis Connector Library. La versione corrente della libreria offre connettori per Amazon DynamoDB, Amazon Redshift, Amazon S3 e Amazon Elasticsearch Service. La libreria, inoltre, include connettori di esempio di ciascun tipo e file di generazione di Apache Ant per poter eseguire il codice di esempio.

Amazon Kinesis Storm Spout

Amazon Kinesis Storm Spout è una libreria preconfigurata che semplifica l'integrazione di Amazon Kinesis Data Streams con Apache Storm. La versione corrente di Amazon Kinesis Storm Spout ricerca i dati provenienti da un flusso di dati di Amazon Kinesis e li inoltra sotto forma di tuple. Sarà quindi possibile aggiungere lo spout alla topologia Storm per sfruttare Amazon Kinesis Data Streams come servizio scalabile e affidabile di acquisizione di flussi, storage e riproduzione.

Caratteristiche di gestione

Accesso privato alle API Kinesis Data Streams da Amazon VPC

È possibile accedere privatamente alle API Kinesis Data Streams da Amazon Virtual Private Cloud (VPC) creando un endpoint VPC. Grazie agli endpoint VPC, l'instradamento tra il cloud privato virtuale e Kinesis Data Streams viene gestito dalla rete AWS senza chiamare in causa gateway Internet, gateway NAT o connessioni VPN. La generazione più recente di endpoint VPC utilizzata da Kinesis Data Streams è basata su AWS PrivateLink, una tecnologia che permette connessioni private tra servizi AWS con interfacce ENI (Elastic Network Interface) e IP privati in un cloud privato virtuale. Per ulteriori informazioni, consulta la documentazione di AWS PrivateLink.

Fan-out dei dati in flussi di Kinesis senza sacrificare le prestazioni

Il fan-out avanzato permette di ricalibrare il numero di consumer in lettura da un flusso di dati in parallelo senza sacrificare le prestazioni. È possibile utilizzare questa caratteristica e un'API di recupero dei dati HTTP/2 per eseguire il fan-out dei dati su più applicazioni, in genere entro 70 millisecondi dalla loro acquisizione.

Crittografia dei dati di Kinesis Data Streams

È possibile crittografare i dati immessi in Kinesis Data Streams tramite crittografia lato server o lato client. La crittografia lato server è una caratteristica completamente gestita che permette di crittografare e decrittografare i dati mentre vengono inoltrati o estratti dal flusso. La crittografia lato client interviene sui dati prima che vengano inoltrati nel flusso. Per ulteriori informazioni, consulta la sezione Sicurezza delle domande frequenti su Kinesis Data Streams.

Integrazione con Amazon Kinesis Data Firehose e Amazon Kinesis Data Analytics

È possibile utilizzare un flusso di dati come origine di Kinesis Data Firehose per trasformarne i dati distribuendoli in S3, Redshift, Elasticsearch e Splunk. Inoltre, è possibile collegare un'applicazione Kinesis Data Analytics per elaborare flussi di dati in tempo reale con lo standard ANSI SQL senza dover apprendere specifiche competenze su programmazione o framework di elaborazione.

Integrazione con Amazon CloudWatch

Amazon Kinesis Data Streams si integra con Amazon CloudWatch per raccogliere, visualizzare e analizzare parametri di CloudWatch per flussi di dati di Amazon Kinesis e relativi shard. Per ulteriori informazioni sui parametri di Amazon Kinesis Data Streams, consulta il paragrafo Monitoring Amazon Kinesis with Amazon CloudWatch.

Integrazione con AWS IAM

Amazon Kinesis Data Streams si integra con AWS Identity and Access Management (IAM), 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 Amazon Kinesis. Per ulteriori informazioni su gestione e controllo degli accessi dei flussi di dati di Amazon Kinesis, consulta Controlling Access to Amazon Kinesis Resources using IAM.

Integrazione con AWS CloudTrail

Amazon Kinesis Data Streams 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 API di Amazon Kinesis, consulta Logging Amazon Kinesis API calls Using AWS CloudTrail.

Supporto per l'applicazione di tag

È possibile contrassegnare con dei tag i flussi di dati di Amazon Kinesis per facilitare la gestione dei costi e delle risorse. Un tag è un'etichetta personalizzata in forma di coppia chiave-valore che semplifica l'organizzazione delle risorse AWS. Ad esempio, è possibile applicare un tag ai flussi di dati per distinguere i centri di costo, in modo da suddividerli in categorie e monitorarne i costi. Per ulteriori informazioni, consulta Tagging Your Amazon Kinesis Data Streams.

Tutorial

Analisi dei dati di stock con Amazon Kinesis Data Streams

Questo tutorial illustra le fasi di creazione di un flusso di dati di Amazon Kinesis, inviando dati di stock simulate sulle transazioni e scrivendo un'applicazione per elaborare i dati dal flusso.  

Analyzing Streaming Data in Real Time with Amazon Kinesis (ABD301)

Amazon Kinesis semplifica raccolta, elaborazione e analisi di flussi di dati in tempo reale, per ottenere analisi tempestive e reagire rapidamente alle nuove informazioni. In questa sessione, sarà presentata una soluzione di flussi di dati end-to-end ottenuta utilizzando Kinesis Streams per l'acquisizione di dati, Kinesis Analytics per l'elaborazione in tempo reale e Kinesis Firehose per ottenere persistenza. Sarà illustrato nel dettaglio come scrivere query SQL utilizzando i flussi di dati e saranno discusse le best practice per ottimizzare e monitorare le applicazioni Kinesis Analytics. Infine, sarà esaminato come calcolare i costi dell'intero sistema.

Guarda registrazione della sessione | Scarica presentazione 

Workshop: Building Your First Big Data Application on AWS (ABD317)

Desideri approfondire le competenze sui servizi Web di AWS per i Big Data e creare la tua prima applicazione per Big Data nel cloud? Illustreremo come ridurre l'elaborazione di Big Data, per semplicità, a un bus di dati comprensivo di acquisizione, memorizzazione, elaborazione e visualizzazione. Creerai un'applicazione per Big Data utilizzando i servizi gestiti di AWS, tra cui Amazon Athena, Amazon Kinesis, Amazon DynamoDB e Amazon S3. Durante la procedura, esamineremo diversi modelli di progettazione dell'architettura di applicazioni per Big Data e forniremo l'accesso a esercizi pratici ripetibili nel proprio ambiente, per offrire la possibilità di ricreare e personalizzare l'applicazione. Per ottenere il massimo da questa sessione, è importante portare con sé il proprio laptop e avere familiarità con i servizi AWS.

Scarica presentazione 

Workshop: Don't Wait Until Tomorrow How to Use Streaming Data to Gain Real-time Insights into Your Business (ABD321)

Negli ultimi anni, il numero di dispositivi connessi e di origini dati in tempo reale è cresciuto a dismisura. I dati vengono prodotti senza soluzione di continuità e a velocità sempre maggiori. Le aziende non possono più permettersi di attendere ore o giorni per utilizzare questi dati. Per ottenere informazioni di valore, devono poter utilizzare questi dati immediatamente e prendere provvedimenti rapidi in risposta alle novità. In questo workshop, sarà illustrato come sfruttare le origini di flussi di dati per ottenere analisi e reagire alle informazioni in tempo reale. Sarà stabilito uno scenario realistico di flussi di dati con diversi requisiti; l'obiettivo sarà creare una soluzione che li soddisfi tutti utilizzando servizi quali Amazon Kinesis, AWS Lambda e Amazon SNS.

Scarica presentazione

How Amazon Flex Uses Real-time Analytics to Deliver Packages on Time (ABD217)

Ridurre le tempistiche necessarie per ottenere informazioni concrete dai dati è importante per tutte le aziende e i clienti che impiegano strumenti di analisi di dati in batch e desiderano scoprire i vantaggi dell'analisi dei flussi di dati. Apprendi le best practice per estendere l'architettura aziendale da data warehouse e database a soluzioni che operano in tempo reale. Scopri come utilizzare Amazon Kinesis per ottenere informazioni in tempo reale e integrarle con Amazon Aurora, Amazon RDS, Amazon Redshift e Amazon S3. Il team di Amazon Flex descrive come hanno utilizzato l'analisi di flussi di dati nella loro app per dispositivi mobili, utilizzata da tutti i conducenti di mezzi Amazon per recapitare in perfetto orario milioni di pacchi ogni mese. Inoltre, illustrerà l'architettura che ha permesso di passare da un sistema di elaborazione in batch a un sistema in tempo reale, superando le problematiche relative alla migrazione dei dati nelle batch esistenti in flussi di dati, e spiegherà come trarre il massimo dall'analisi in tempo reale.

Guarda registrazione della sessione | Scarica presentazione

Real-Time Streaming Applications on AWS: Use Cases and Patterns (ABD203)

Per avere successo sul mercato e differenziarsi dalla concorrenza, le aziende devono poter utilizzare i dati in tempo reale per prendere decisioni informate. In questa sessione, saranno presi in esame casi d'uso e architetture comuni relativi all'elaborazione di flussi di dati. Prima di tutto, sarà fornita una panoramica dei flussi di dati e delle relative funzionalità presenti in AWS. Quindi saranno esaminati alcuni esempi di clienti, con le loro applicazioni di streaming in tempo reale. Infine, saranno illustrati architetture e modelli di progettazione utilizzate di frequente nei casi d'uso più importanti.

Guarda registrazione della sessione | Scarica presentazione

Inizia a usare Amazon Kinesis Data Streams

Guarda la guida per gli sviluppatori
Sei pronto per iniziare?
Registrati
Hai altre domande?
Contattaci