

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Amazon Kinesis Data Streams Terminologia e concetti
<a name="key-concepts"></a>

Prima di iniziare a usare Amazon Kinesis Data Streams, scopri la sua architettura e la sua terminologia.

**Topics**
+ [Esamina l'architettura di alto livello di Kinesis Data Streams](#high-level-architecture)
+ [Acquisisci familiarità con la terminologia di Kinesis Data Streams](#terminology)

## Esamina l'architettura di alto livello di Kinesis Data Streams
<a name="high-level-architecture"></a>

Nel diagramma seguente viene illustrata l'architettura di alto livello di . I *producer* inviano continuamente dati al flusso di dati Kinesis e i *consumer* li elaborano in tempo reale. I consumatori (ad esempio un'applicazione personalizzata in esecuzione su Amazon EC2 o un flusso di distribuzione di Amazon Data Firehose) possono archiviare i risultati utilizzando un AWS servizio come Amazon DynamoDB, Amazon Redshift o Amazon S3. 

![\[Diagramma dell'architettura di alto livello di Kinesis Data Streams\]](http://docs.aws.amazon.com/it_it/streams/latest/dev/images/architecture.png)


## Acquisisci familiarità con la terminologia di Kinesis Data Streams
<a name="terminology"></a>

### Kinesis Data Streams
<a name="stream"></a>

Un *flusso di dati Kinesis* è un insieme di [partizioni](#shard). Ogni shard è una sequenza di record di dati. Ogni record di dati ha un [numero di sequenza](#sequence-number) assegnato dal flusso di dati Kinesis. 

### Record di dati
<a name="data-record"></a>

Un *record di dati* è l'unità di dati archiviati in un [flusso di dati Kinesis](#stream). I record di dati sono costituiti da un [numero di sequenza](#sequence-number), una [chiave di partizione](#partition-key) e di blob di dati, che è una sequenza di byte non modificabile. Il flusso di dati Kinesis non ispeziona, interpreta o modifica i dati nel blob in qualsiasi modo. Un data blob può essere fino a 1 MB.

### Modalità di capacità
<a name="stream-capacity-mode"></a>

Una *modalità di capacità* del flusso di dati determina come viene gestita la capacità e come viene addebitato l'utilizzo del flusso di dati. Attualmente, in Kinesis Data Streams, puoi scegliere **tra** una modalità on demand **e** una modalità provisioning per i tuoi flussi di dati. Per ulteriori informazioni, consulta [Scegli la modalità giusta per lo streaming](how-do-i-size-a-stream.md).

Con la modalità **on demand**, il flusso di dati Kinesis gestisce automaticamente le partizioni per fornire la velocità di trasmissione effettiva necessaria. Ti viene addebitato solo la velocità di trasmissione effettiva che utilizzi e il flusso di dati Kinesis soddisfa automaticamente le esigenze di velocità di trasmissione effettiva dei tuoi carichi di lavoro man mano che aumentano o diminuiscono. Per ulteriori informazioni, consulta [Caratteristiche e casi d'uso della modalità Standard su richiesta](how-do-i-size-a-stream.md#ondemandmode).

Con la modalità **provisioning**, devi specificare il numero di partizioni per il flusso di dati. La capacità totale di un flusso di dati è la somma di capacità delle relative partizioni. È possibile aumentare o diminuire il numero di partizioni in un flusso di dati in base alle esigenze e il numero di partizioni viene addebitato su base oraria. Per ulteriori informazioni, consulta [Caratteristiche e casi d'uso della modalità Provisioned Mode](how-do-i-size-a-stream.md#provisionedmode).

### Periodo di retention
<a name="retention"></a>

Il *periodo di ritenzione* è il periodo di tempo in cui i record di dati sono accessibili dopo essere stati aggiunti al flusso. Un periodo di ritenzione del flusso è impostato su un periodo predefinito di 24 ore dopo la creazione. È possibile aumentare il periodo di conservazione fino a 8760 ore (365 giorni) utilizzando l'[IncreaseStreamRetentionPeriod](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_IncreaseStreamRetentionPeriod.html)operazione e ridurlo a un minimo di 24 ore utilizzando l'operazione. [DecreaseStreamRetentionPeriod](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DecreaseStreamRetentionPeriod.html) Sono applicabili costi aggiuntivi per flussi con un periodo di ritenzione impostato su più di 24 ore. Per ulteriori informazioni, consulta [Prezzi dei flussi di dati per Amazon Kinesis](https://aws.amazon.com/kinesis/pricing/).

### Producer
<a name="producers"></a>

*I produttori* inseriscono record in Amazon Kinesis Data Streams. Ad esempio, un server Web che invia dati di log a un flusso è un producer.

### Consumer
<a name="consumers"></a>

I *consumer* ottengono i record da Flusso di dati Amazon Kinesis e li elaborano. Questi consumatori sono conosciuti come [Applicazione di flussi di dati Amazon Kinesis](#enabled-application).

### Applicazione di flussi di dati Amazon Kinesis
<a name="enabled-application"></a>

Un’*applicazione del flusso di dati Amazon Kinesis* è un consumer di un flusso che in genere viene eseguito su un parco istanze EC2.

Sono disponibili due tipi di consumatori che è possibile sviluppare: i consumatori fan-out condivisi e i consumatori fan-out ottimizzati. Per ulteriori informazioni sulle differenze tra loro e per vedere in che modo è possibile creare ogni tipo di consumer, consulta [Leggi i dati da Amazon Kinesis Data Streams](building-consumers.md).

L'output di un'applicazione del flusso di dati Kinesis può essere un input da un altro flusso, che consente di creare topologie complesse per l'elaborazione di dati in tempo reale. Un'applicazione può anche inviare dati a una varietà di altri AWS servizi. Possono esserci più applicazioni per un flusso e ogni applicazione può consumare i dati dal flusso in modo indipendente e simultaneo

### Shard
<a name="shard"></a>

Uno *shard* è una sequenza identificata in modo univoco di record di dati in un flusso. Un flusso è composto da uno o più shard, ciascuno dei quali fornisce un'unità fissa di capacità. Ogni partizione può supportare fino a 5 transazioni al secondo per le letture, fino a una velocità totale massima di lettura dei dati di 2 MB al secondo e fino a 1.000 record al secondo per le scritture, fino a una velocità di scrittura totale massima dei dati di 1 MB al secondo (incluse le chiavi di partizione). La capacità di dati del flusso è una funzione del numero di shard specificati per il flusso. La capacità totale del flusso è la somma delle capacità del suo shard.

Se il tasso di dati aumenta, è possibile aumentare o diminuire il numero di shard allocati al flusso. Per ulteriori informazioni, consulta [Condividi nuovamente uno stream](kinesis-using-sdk-java-resharding.md).

### Chiave di partizione
<a name="partition-key"></a>

Una *chiave di partizione* viene utilizzata per raggruppare i dati in base alla partizione in un flusso. Il flusso di dati Kinesis suddivide i record di dati appartenenti a un flusso in più partizioni. Utilizza la chiave di partizione che è associata a ogni record di dati per determinare a quale shard appartiene un determinato record di dati. Le chiavi di partizione sono stringhe Unicode, con un limite di lunghezza massima di 256 caratteri per ogni chiave. Una funzione MD5 hash viene utilizzata per mappare le chiavi di partizione su valori interi a 128 bit e per mappare i record di dati associati ai frammenti utilizzando gli intervalli di chiavi hash degli shard. Quando un'applicazione inserisce dati in un flusso, deve specificare una chiave di partizione. 

### Numero sequenza
<a name="sequence-number"></a>

Ogni record di dati ha un *numero di sequenza* univoco per chiave di partizione nella partizione. Il flusso di dati Kinesis assegna il numero di sequenza dopo aver scritto nel flusso con `client.putRecords` o `client.putRecord`. I numeri di sequenza per la stessa chiave di partizione generalmente aumentano nel corso del tempo. Maggiore è il periodo di tempo compreso tra le richieste di scrittura e più grande sarà il numero di sequenza.

**Nota**  
i numeri di sequenza non possono essere utilizzati come indici per set di dati all'interno dello stesso flusso. Per separare i set di dati logicamente, utilizza le chiavi di partizione o crea un flusso separato per ogni set di dati.

### Kinesis Client Library
<a name="client-library"></a>

Kinesis Client Library è compilata nell'applicazione per consentire il consumo tollerante ai guasti dei dati dal flusso. Kinesis Client Library assicura che per ogni shard sia in esecuzione un processore di registrazione che elabora lo shard. La libreria, inoltre, semplifica la lettura di dati dal flusso. Kinesis Client Library utilizza le tabelle Amazon DynamoDB per archiviare i metadati relativi al consumo di dati. Crea tre tabelle per applicazione che elabora i dati. Per ulteriori informazioni, consulta [Usa la libreria client Kinesis](kcl.md). 

### Nome applicazione
<a name="application-name"></a>

Il nome di un'applicazione del flusso di dati Amazon Kinesis identifica l'applicazione. Ciascuna delle applicazioni deve avere un nome univoco che corrisponda all' AWS account e alla regione utilizzati dall'applicazione. Questo nome viene utilizzato come nome per la tabella di controllo in Amazon DynamoDB e lo spazio dei nomi per i parametri Amazon. CloudWatch 

### Crittografia lato server
<a name="server-side-encryption-concept"></a>

Flusso di dati Amazon Kinesis è in grado di criptare automaticamente i dati sensibili nel momento in cui un producer li inserisce in un flusso. Il flusso di dati Kinesis utilizza le chiavi master di [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/) per la crittografia. Per ulteriori informazioni, consulta [Protezione dei dati in Amazon Kinesis Data Streams](server-side-encryption.md).

**Nota**  
Per eseguire operazioni di lettura o scrittura in un flusso crittografato, le applicazioni del producer e consumer devono avere l'autorizzazione di accedere alla chiave master. Per informazioni sulla concessione di autorizzazioni per le applicazioni di producer e consumer, consulta [Autorizzazioni per utilizzare le chiavi KMS generate dall'utente](permissions-user-key-KMS.md).

**Nota**  
L'utilizzo della crittografia lato server comporta dei costi (). AWS Key Management Service AWS KMS Per ulteriori informazioni, consulta [Prezzi di AWS Key Management Service](https://aws.amazon.com/kms/pricing).