Nozioni di base sul flusso di dati HAQM Kinesis

Nozioni di base

Il flusso di dati HAQM Kinesis è un servizio di elaborazione e importazione dei dati massivamente scalabile, duraturo e ottimizzato per i dati in streaming. È possibile configurare centinaia di migliaia di origini dati per inoltrare in modo continuo i dati in un flusso di dati Kinesis. I dati saranno disponibili in pochi millisecondi dalle tue applicazioni HAQM Kinesis, e queste applicazioni riceveranno i record di dati nell’ordine in cui sono stati generati.

Il flusso di dati HAQM Kinesis è integrato con diversi servizi AWS, tra cui HAQM Kinesis Data Firehose per la trasformazione e la consegna di dati in streaming sui data lake AWS come HAQM S3, il servizio gestito da HAQM per Apache Flink per l’elaborazione di flussi gestiti, AWS Lambda per l’elaborazione di registri o eventi, AWS PrivateLink per la connettività privata, HAQM Cloudwatch per l’elaborazione di parametri e log e AWS KMS per crittografia lato server.

Il flusso di dati HAQM Kinesis viene usato come gateway all'interno di una soluzione per i big data. I dati provenienti da molteplici fonti vengono incanalati in un flusso HAQM Kinesis, quindi i dati nel flusso vengono elaborati da diverse applicazioni HAQM 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 HAQM S3. I dati in HAQM S3 vengono ulteriormente elaborati e memorizzati in HAQM Redshift per analisi complesse. Una terza applicazione (di colore verde) inoltra i dati non elaborati in HAQM S3, archiviandoli infine in HAQM Glacier, soluzione di storage a lungo termine a basso costo. Le tre pipeline di elaborazione dei dati operano simultaneamente e in parallelo.

Inizia a usare HAQM Kinesis Video Streams

Quali sono le novità del flusso di dati HAQM Kinesis?

Richiedi il supporto per un proof of concept o una valutazione

Video

Uso di Kinesis Data Streams

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

  • Creare un flusso di dati HAQM Kinesis tramite la Console di gestione di HAQM Kinesis oppure l'API CreateStream.
  • Configurare i produttori di dati in modo che inoltrino continuativamente dati nel flusso HAQM Kinesis.
  • Creare le applicazioni HAQM Kinesis che leggono ed elaborano il flusso di dati HAQM Kinesis.

Concetti chiave

Open all

Un data producer è un'applicazione che solitamente emette record di dati quando questi vengono generati da un flusso di dati Kinesis. I data producer assegnano chiavi di partizione ai registri. Le chiavi di partizione sostanzialmente determinano quale frammento assimila il registro per un flusso di dati.

Un data consumer è un'applicazione distribuita da Kinesis o dal servizio AWS che recupera i dati da tutti i frammenti in un flusso al momento della sua generazione. La maggior parte dei data consumer recupera i dati più recenti in un frammento, e da quindi la possibilità di effettuare analisi in tempo reale o di gestire i dati.

Il flusso dei dati è un raggruppamento razionale di frammenti. Non esistono limiti in merito al numero di shard all’interno del flusso di dati (richiedi un ampliamento del limite se ne hai bisogno). Di default, un flusso di dati conserva i dati per 24 ore oppure, opzionalmente, fino a 365 giorni.

Uno shard è un'unità di misura di throughput di un flusso di dati di HAQM Kinesis.

  • Uno shard è un log append-only e un’unità di capacità dei flussi. Uno shard contiene una sequenza di registri disposta in ordine di arrivo.
  • Uno shard può contenere fino a 1000 registri di dati al secondo o 1MB/sec. Aggiungi ulteriori shard per aumentare la tua capacità di ingestione.
  • Aggiungi o rimuovi dinamicamente gli shard dal servizio di streaming a mano a mano che cambia la capacità di trasferimento della console AWS, UpdateShardCount API, realizza auto scaling tramite AWS Lambda, o utilizzando un servizio di auto scaling.
  • Quando i clienti utilizzano un fan-out avanzato, uno shard fornisce un input di dati da 1MB/sec e un output da 2MB/sec per ciascun utente registrato per l’utilizzazione del fan-out avanzato.
  • Quando i clienti non utilizzano un fan-out avanzato, uno shard fornisce un input di dati da 1MB/sec e un output da 2MB/sec e questo output viene condiviso con qualsiasi utente che non utilizza un fan-out avanzato.
  • Il numero di shard richiesti viene specificato al momento della creazione di un flusso e può variare in termini di quantità in ogni momento. Ad esempio, è possibile creare un flusso con due shard. Se ci sono 5 utenti che utilizzano i fan-out avanzati, questo flusso può fornire fino a 20 MB/sec dell’output totale di dati (2 shard x 2MB/sec x 5 utenti). Qualora l’utente non utilizzi fan-out rinforzati, questo flusso avrà una produttività pari a 2MB/sec in termini di input dei dati e di 4MB/sec in termini di output dei dati. Per tutti i casi questo streaming prevede un limite di 2000 PUT record al secondo o di 2MB/sec di ingresso, qualunque sia il limite individuato per primo.
  • È possibile monitorare il livello di shard in HAQM Kinesis Data Streams.

Il record è l'unità di dati memorizzati in un flusso HAQM 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 produttore 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).

Un chiave di partizione corrisponde solitamente a una credenziale dettagliata, come ID utente o timestamp. Viene specificata dal produttore di dati inserendo i dati in un HAQM Kinesis Data Stream ed è utile per i consumatori perché dà loro la possibilità di utilizzare la chiave di partizione per ripetere o costruire una storia associata alla chiave di partizione. La chiave di partizione viene usata anche per separare e instradare i record di dati nei diversi shard di un flusso. Ad esempio, poniamo di avere un flusso di dati HAQM 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.

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

Invio dati nei flussi

Open all

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

Inserisci i dati campione in un flusso di dati Kinesis o in un firehose di dati utilizzando HAQM Kinesis Data Generator.

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

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

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

Open all

Esegui un servizio completamente gestito per elaborare le applicazioni utilizzando i servizi AWS o costruirne di nuove

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

Con il servizio gestito da HAQM per Apache Flink, puoi facilmente interrogare i dati di streaming o creare applicazioni di streaming utilizzando Apache Flink in modo da ottenere informazioni utili e rispondere prontamente alle esigenze della tua azienda e dei clienti. Puoi utilizzare un flusso di dati Kinesis come origine e destinazione per un'applicazione del servizio gestito da HAQM per Apache Flink.

È possibile utilizzare le funzioni Lambda per la lettura automatica dei dati dal tuo Kinesis Data Stream. AWS Lambda è solitamente utilizzata per i processi di streaming record-by-record (chiamati anche event-based).

HAQM Kinesis Client Library (KCL) è una libreria preconfigurata che semplifica la creazione di applicazioni HAQM Kinesis per la lettura e l'elaborazione di dati provenienti da un flusso HAQM 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. KCL consente di concentrare l'attenzione sulla logica di business durante la creazione di applicazioni HAQM Kinesis. A partire da KCL 2.0, è possibile utilizzare un API in streaming HTTP/2 a bassa latenza e un fan-out rinforzato per recuperare i dati da un flusso.

HAQM Kinesis Connector Library è una libreria preconfigurata che semplifica l'integrazione di HAQM Kinesis con altri servizi di AWS e strumenti di terze parti. HAQM Kinesis Client Library (KCL) è un requisito per l'utilizzo di HAQM Kinesis Connector Library. La versione corrente della libreria offre connettori per HAQM DynamoDB, HAQM Redshift, HAQM S3, e HAQM 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.

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

Gestione flussi

Open all

È possibile accedere privatamente alle API di Kinesis Data Streams da HAQM 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 nei VPC. Per ulteriori informazioni, consulta la documentazione di AWS PrivateLink.

Il fan-out rinforzato permette ai clienti di dimensionare il numero di consumer leggendo da un flusso in parallelo, mantenendo al contempo le prestazioni. È possibile utilizzare fan-out avanzato e un recupero dei dati API HTTP/2 per i dati fan-out su diverse applicazioni, solitamente entro 70 millisecondi dall'arrivo.

È 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 di dati. 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.

Utilizza un flusso come origine per un Kinesis Data Firehose per trasformare i dati durante la consegna a S3, Redshift, Elasticsearch e Splunk. Collega un'applicazione del servizio gestito da HAQM per Apache Flink per elaborare flussi di dati in tempo reale con lo standard SQL senza dover apprendere specifiche competenze su programmazione o framework di elaborazione.

HAQM Kinesis Data Streams si integra con HAQM CloudWatch per raccogliere, visionare e analizzare facilmente parametri di CloudWatch per i flussi di dati di HAQM Kinesis e gli shard all'interno di tali flussi. Per ulteriori informazioni sui parametri di HAQM Kinesis Data Streams, consulta il paragrafo Monitoring HAQM Kinesis with HAQM CloudWatch.

HAQM 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 dati di HAQM Kinesis. Per ulteriori informazioni su gestione e controllo degli accessi dei flussi di dati di HAQM Kinesis, consulta Controlling Access to HAQM Kinesis Resources using IAM.

HAQM 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 HAQM Kinesis, consulta Registrazione di log a chiamate API di HAQM Kinesis API con AWS CloudTrail.

È possibile contrassegnare con dei tag i flussi di dati di HAQM 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, puoi applicare un tag ai flussi di dati di HAQM Kinesis Data Streams per distinguere i centri di costo, in modo da suddividerli in categorie e monitorarne i costi. Per ulteriori informazioni, consulta Tagging Your HAQM Kinesis Data Streams.

Tutorial

Open all

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

Presentazioni in evidenza

Open all

Soluzioni in evidenza

La soluzione di dati in streaming di AWS per HAQM Kinesis fornisce ad AWS CloudFormation dei modelli in cui i dati fluiscono attraverso produttori, storage di streaming, consumer e destinazioni. Per supportare molteplici casi d'uso ed esigenze aziendali, questa soluzione offre quattro modelli AWS CloudFormation. I modelli vengono configurati per applicare le best practice, in modo da monitorare la funzionalità utilizzando allarmi e pannelli di controllo e proteggere i dati.