

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à.

# Data lake moderni
<a name="data-lakes"></a>

## Casi d'uso avanzati nei data lake moderni
<a name="use-cases"></a>

L'evoluzione dello storage dei dati è passata dai database ai data warehouse e ai data lake, dove ogni tecnologia risponde a requisiti aziendali e di dati unici. I database tradizionali si sono distinti nella gestione di dati strutturati e carichi di lavoro transazionali, ma hanno dovuto affrontare problemi di prestazioni con l'aumento dei volumi di dati. I data warehouse sono nati per affrontare problemi di prestazioni e scalabilità, ma, come i database, si basavano su formati proprietari all'interno di sistemi integrati verticalmente.

I data lake offrono una delle migliori opzioni per l'archiviazione dei dati in termini di costi, scalabilità e flessibilità. Puoi utilizzare un data lake per conservare grandi volumi di dati strutturati e non strutturati a basso costo e utilizzare questi dati per diversi tipi di carichi di lavoro di analisi, dai report di business intelligence all'elaborazione di big data, all'analisi in tempo reale, all'apprendimento automatico e all'intelligenza artificiale generativa (AI), per guidare decisioni migliori.

Nonostante questi vantaggi, i data lake non sono stati inizialmente progettati con funzionalità simili a quelle dei database. Un data lake non fornisce supporto per la semantica di elaborazione basata sull'atomicità, la coerenza, l'isolamento e la durabilità (ACID), che potrebbe essere necessaria per ottimizzare e gestire i dati in modo efficace su larga scala per centinaia o migliaia di utenti utilizzando molte tecnologie diverse. I data lake non forniscono supporto nativo per le seguenti funzionalità:
+ Esecuzione di aggiornamenti ed eliminazioni efficienti a livello di record man mano che i dati cambiano nell'azienda
+ Gestione delle prestazioni delle query man mano che le tabelle crescono fino a milioni di file e centinaia di migliaia di partizioni
+ Garantire la coerenza dei dati tra più scrittori e lettori simultanei
+ Prevenzione del danneggiamento dei dati quando le operazioni di scrittura falliscono a metà dell'operazione
+ Evoluzione degli schemi di tabelle nel tempo senza riscrivere (parzialmente) i set di dati

Queste sfide sono diventate particolarmente frequenti in casi d'uso come la gestione dell'acquisizione dei dati di modifica (CDC) o in casi d'uso relativi alla privacy, alla cancellazione dei dati e all'inserimento di dati in streaming, che possono portare a tabelle non ottimali.

I data lake che utilizzano le tradizionali tabelle in formato Hive supportano le operazioni di scrittura solo per interi file. Ciò rende gli aggiornamenti e le eliminazioni difficili da implementare, dispendiosi in termini di tempo e costi. Inoltre, i controlli e le garanzie di concorrenza offerti nei sistemi conformi agli ACID sono necessari per garantire l'integrità e la coerenza dei dati.

Queste sfide pongono gli utenti di fronte a un dilemma: scegliere tra una piattaforma completamente integrata ma proprietaria oppure optare per un data lake autocostruito, indipendente dal fornitore ma che richiede molte risorse e che richiede manutenzione e migrazione costanti per realizzarne il potenziale valore.

[Per aiutare a superare queste sfide, Iceberg offre funzionalità aggiuntive simili a quelle dei database che semplificano l'ottimizzazione e la gestione dei data lake, pur supportando lo storage su sistemi convenienti come Amazon S3.](https://aws.amazon.com/s3)

## Introduzione ad Apache Iceberg
<a name="iceberg-intro"></a>

Apache Iceberg è un formato di tabella open source che fornisce funzionalità nelle tabelle dei data lake che storicamente erano disponibili solo nei database o nei data warehouse. È progettato per garantire scalabilità e prestazioni ed è ideale per la gestione di tabelle di oltre centinaia di gigabyte. Alcune delle caratteristiche principali dei tavoli Iceberg sono:
+ **Eliminare, aggiornare e unire.**Iceberg supporta i comandi SQL standard per il data warehousing da utilizzare con le tabelle dei data lake.
+ **Pianificazione rapida della scansione e filtraggio avanzato.** Iceberg archivia metadati come statistiche a livello di partizioni e colonne che possono essere utilizzati dai motori per velocizzare la pianificazione e l'esecuzione delle query.
+ **Evoluzione completa dello schema.** Iceberg supporta l'aggiunta, l'eliminazione, l'aggiornamento o la ridenominazione di colonne senza effetti collaterali.
+ **Evoluzione delle partizioni.** È possibile aggiornare il layout delle partizioni di una tabella man mano che il volume di dati o i modelli di query cambiano. Iceberg supporta la modifica delle colonne su cui è partizionata una tabella, l'aggiunta di colonne o la rimozione di colonne dalle partizioni composite.
+ **Partizionamento nascosto.**Questa funzione impedisce la lettura automatica delle partizioni non necessarie. Ciò elimina la necessità per gli utenti di comprendere i dettagli di partizionamento della tabella o di aggiungere filtri aggiuntivi alle loro query.
+ **Ripristino della versione.** Gli utenti possono correggere rapidamente i problemi ripristinando lo stato precedente alla transazione.
+ **Viaggio nel tempo.** Gli utenti possono interrogare una versione precedente specifica di una tabella.
+ **Isolamento serializzabile.** Le modifiche alle tabelle sono atomiche, quindi i lettori non vedono mai modifiche parziali o non eseguite.
+ **Scrittori concorrenti.** Iceberg utilizza la concorrenza ottimistica per consentire il successo di più transazioni. In caso di conflitto, uno degli autori deve ritentare la transazione.
+ **Formati di file aperti.** [Iceberg supporta diversi formati di file open source, tra cui [Apache Parquet, Apache](https://parquet.apache.org/)[Avro e Apache](https://avro.apache.org/) ORC.](https://orc.apache.org/)

In sintesi, i data lake che utilizzano il formato Iceberg traggono vantaggio dalla coerenza transazionale, dalla velocità, dalla scalabilità e dall'evoluzione dello schema. [Per ulteriori informazioni su queste e altre funzionalità di Iceberg, consulta la documentazione di Apache Iceberg.](https://iceberg.apache.org/docs/latest/)

## AWS supporto per Apache Iceberg
<a name="iceberg-support"></a>

[Apache Iceberg è supportato da Servizi AWS Amazon [EMR, Amazon](https://aws.amazon.com/pm/emr/)[Athena,](https://aws.amazon.com/athena/) Amazon [Redshift e Amazon](https://aws.amazon.com/pm/redshift/). [AWS Glue](https://aws.amazon.com/glue/) SageMaker](https://aws.amazon.com/sagemaker/) Il diagramma seguente illustra un'architettura di riferimento semplificata di un data lake basato su Iceberg.

![Architettura transazionale di data lake per Apache Iceberg on. AWS](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/apache-iceberg-on-aws/images/data-lake-architecture.png)


Di seguito vengono Servizi AWS fornite integrazioni native di Iceberg. Ce ne sono altre Servizi AWS che possono interagire con Iceberg, indirettamente o impacchettando le librerie Iceberg.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è il posto migliore per creare data lake grazie alle sue capacità di durabilità, disponibilità, scalabilità, sicurezza, conformità e audit. [Iceberg è stato progettato e realizzato per interagire con Amazon S3 senza problemi e fornisce supporto per molte funzionalità di Amazon S3 elencate nella documentazione di Iceberg.](https://iceberg.apache.org/docs/latest/aws/#s3-fileio) Inoltre, [Amazon S3 Tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables.html) offre il primo archivio di oggetti cloud con supporto Iceberg integrato e semplifica l'archiviazione di dati tabulari su larga scala. Con il supporto di S3 Tables per Iceberg, puoi facilmente interrogare i tuoi dati tabulari utilizzando motori di query popolari e di terze parti. AWS 
+ [La nuova generazione di SageMaker](https://aws.amazon.com/sagemaker/) è basata su un'architettura aperta Lakehouse che unifica l'accesso ai dati tra data lake Amazon S3, data warehouse Amazon Redshift e fonti di dati federate e di terze parti. Queste funzionalità ti aiutano a creare analisi e AI/ML applicazioni potenti su un'unica copia dei dati. The Lakehouse è completamente compatibile con Iceberg, quindi hai la flessibilità di accedere e interrogare i dati sul posto utilizzando l'API REST di Iceberg. 
+ [Amazon EMR](https://docs.aws.amazon.com/emr/) è una soluzione di big data per l'elaborazione di dati su scala petabyte, l'analisi interattiva e l'apprendimento automatico che utilizza framework open source come Apache Spark, Flink, Trino e Hive. Amazon EMR può essere eseguito su cluster Amazon Elastic Compute Cloud (Amazon EC2) personalizzati, Amazon Elastic Kubernetes Service (Amazon EKS) o Amazon EMR Serverless. AWS Outposts
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) è un servizio di analisi interattivo senza server basato su framework open source. Supporta formati di file e tabelle aperte e offre un modo semplificato e flessibile per analizzare petabyte di dati nel luogo in cui risiedono. Athena fornisce supporto nativo per lettura, viaggio nel tempo, scrittura e query DDL per Iceberg e utilizza il metastore for the AWS Glue Data Catalog Iceberg.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/) è un data warehouse cloud su scala petabyte che supporta opzioni di distribuzione basate su cluster e serverless. Amazon Redshift Spectrum può eseguire query su tabelle esterne registrate e archiviate su Amazon S3. AWS Glue Data Catalog Redshift Spectrum supporta anche il formato di storage Iceberg.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)è un servizio di integrazione dei dati senza server che semplifica l'individuazione, la preparazione, lo spostamento e l'integrazione di dati provenienti da più fonti per l'analisi, l'apprendimento automatico (ML) e lo sviluppo di applicazioni. È completamente integrato con Iceberg. In particolare, è possibile eseguire operazioni di lettura e scrittura sulle tabelle Iceberg utilizzando AWS Glue job, gestire le tabelle tramite [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/start-data-catalog.html)(compatibile con Hive metastore), scoprire e registrare automaticamente le tabelle utilizzando i AWS Glue crawler e valutare la qualità dei dati nelle tabelle Iceberg tramite la funzione Data Quality. AWS Glue Supporta AWS Glue Data Catalog anche la raccolta di statistiche sulle colonne, il calcolo e l'aggiornamento del numero di valori distinti (NDVs) per ogni colonna nelle tabelle Iceberg e le ottimizzazioni automatiche delle tabelle (compattazione, conservazione delle istantanee, eliminazione di file orfani). AWS Glue supporta anche integrazioni zero-ETL da un elenco di applicazioni di terze parti nelle tabelle Iceberg. Servizi AWS 
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) è un servizio completamente gestito per la distribuzione di dati di streaming in tempo reale a destinazioni come Amazon S3, Amazon Redshift, Amazon OpenSearch Service, OpenSearch Amazon Serverless, Splunk, tabelle Apache Iceberg e qualsiasi endpoint HTTP o HTTP personalizzato di proprietà di provider di servizi terzi supportati, tra cui Datadog, Dynatrace, MongoDB, New Relic, Coralogix e Elastico LogicMonitor Con Firehose, non è necessario scrivere applicazioni o gestire risorse. È sufficiente configurare i produttori dati perché inviino i dati a Firehose, che li distribuirà automaticamente alla destinazione specificata. È anche possibile configurare Firehose per trasformare i dati prima di distribuirli.
+ [Amazon Managed Service per Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/what-is.html) è un servizio Amazon completamente gestito che consente di utilizzare un'applicazione Apache Flink per elaborare dati in streaming. Supporta sia la lettura che la scrittura su tabelle Iceberg e consente l'elaborazione e l'analisi dei dati in tempo reale.
+ [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html) supporta l'archiviazione di set di funzionalità in Amazon SageMaker AI Feature Store utilizzando il formato Iceberg.
+ [AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html)fornisce autorizzazioni di controllo degli accessi grossolane e dettagliate per accedere ai dati, incluse le tabelle Iceberg utilizzate da Athena o Amazon Redshift. Per saperne di più sul supporto delle autorizzazioni per le tabelle Iceberg, consulta la documentazione di [Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/working-with-services.html).

AWS offre un'ampia gamma di servizi che supportano Iceberg, ma coprire tutti questi servizi non rientra nello scopo di questa guida. Le seguenti sezioni trattano Spark (streaming batch e strutturato) su Amazon EMR AWS Glue e Athena SQL. La [sezione seguente](getting-started.md) fornisce una rapida panoramica del supporto Iceberg in Athena SQL.