Implementa e gestisci un data lake serverless sul AWS cloud utilizzando l'infrastruttura come codice - Prontuario AWS

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

Implementa e gestisci un data lake serverless sul AWS cloud utilizzando l'infrastruttura come codice

Creato da Kirankumar Chandrashekar () e Abdel Jaidi () AWS AWS

Ambiente: produzione

Tecnologie: analisi; Senza server; DevOps

Carico di lavoro: tutti gli altri carichi di lavoro

AWSservizi: Amazon S3; Amazon; AWS CloudFormation AWS GlueSQS; Amazon; CloudWatch AWS Lambda; Step Functions; Amazon AWS DynamoDB

Riepilogo

Avviso: non AWS CodeCommit è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni

Questo modello descrive come utilizzare l'elaborazione e l'infrastruttura senza server come codice (IaC) per implementare e amministrare un data lake sul cloud Amazon Web Services ()AWS. Questo modello si basa sul workshop serverless data lake framework (SDLF) sviluppato da. AWS

SDLFè una raccolta di risorse riutilizzabili che accelera la distribuzione di data lake aziendali sul AWS cloud e aiuta a velocizzare l'implementazione in produzione. Viene utilizzato per implementare la struttura di base di un data lake seguendo le migliori pratiche.

SDLFimplementa un processo di integrazione continua/distribuzione continua (CI/CD) in tutta la distribuzione del codice e dell'infrastruttura utilizzando AWS servizi come AWS CodePipeline, e. AWS CodeBuild AWS CodeCommit

Questo modello utilizza più servizi AWS serverless per semplificare la gestione del data lake. Questi includono Amazon Simple Storage Service (Amazon S3) e Amazon DynamoDB per lo storage, AWS Lambda e AWS Glue per l'informatica e Amazon CloudWatch Events, Amazon Simple Queue Service (AmazonSQS) e Step Functions per l'orchestrazione. AWS

AWS CloudFormation e i servizi di AWS codice fungono da livello IAc per fornire implementazioni riproducibili e veloci con operazioni e amministrazione semplici.

Prerequisiti e limitazioni

Prerequisiti

Architettura

Il diagramma di architettura illustra un processo basato sugli eventi con i seguenti passaggi. 

Implementazione e amministrazione di un data lake sul cloud. AWS
  1. Dopo aver aggiunto un file al bucket S3 di dati grezzi, una notifica di evento Amazon S3 viene inserita in una coda. SQS Ogni notifica viene consegnata come JSON file, che contiene metadati come il nome del bucket S3, la chiave dell'oggetto o il timestamp.

  2. Questa notifica viene utilizzata da una funzione Lambda che indirizza l'evento al processo di estrazione, trasformazione e caricamento (ETL) corretto in base ai metadati. La funzione Lambda può anche utilizzare configurazioni contestuali archiviate in una tabella Amazon DynamoDB. Questo passaggio consente il disaccoppiamento e la scalabilità su più applicazioni nel data lake.

  3. L'evento viene indirizzato alla prima funzione Lambda del processo, che trasforma e sposta i dati dall'area dei dati grezzi all'area di staging per il data lake. ETL Il primo passaggio consiste nell'aggiornare il catalogo completo. Questa è una tabella DynamoDB che contiene tutti i metadati dei file del data lake. Ogni riga di questa tabella contiene metadati operativi su un singolo oggetto archiviato in Amazon S3. Viene effettuata una chiamata sincrona a una funzione Lambda che esegue una trasformazione della luce, un'operazione computazionalmente poco costosa (come la conversione di un file da un formato all'altro), sull'oggetto S3. Poiché è stato aggiunto un nuovo oggetto al bucket S3 di staging, il catalogo completo viene aggiornato e viene inviato un messaggio alla coda in attesa della fase successiva delSQS. ETL

  4. Una regola CloudWatch Events attiva una funzione Lambda ogni 5 minuti. Questa funzione verifica se i messaggi sono stati recapitati alla SQS coda nella fase precedente. ETL Se è stato recapitato un messaggio, la funzione Lambda avvia la seconda funzione di AWSStep Functions nel ETL processo.

  5. Una trasformazione pesante viene quindi applicata a un batch di file. Questa pesante trasformazione è un'operazione computazionalmente costosa, come una chiamata sincrona a un lavoro AWS Glue, un'attività AWS Fargate, Amazon EMR Step o un notebook Amazon. SageMaker I metadati delle tabelle vengono estratti dai file di output utilizzando un crawler AWS Glue, che aggiorna il catalogo Glue. AWS I metadati dei file vengono inoltre aggiunti alla tabella di catalogo completa in DynamoDB. Infine, viene eseguita anche una fase di qualità dei dati che sfrutta Deequ.

Stack tecnologico

  • CloudWatch Eventi Amazon

  • AWS CloudFormation

  • AWS CodePipeline

  • AWS CodeBuild

  • AWS CodeCommit

  • Amazon DynamoDB

  • AWS Glue

  • AWSLambda

  • Amazon S3

  • Amazon SQS

  • AWS Step Functions

Strumenti

  • Amazon CloudWatch Events — CloudWatch Events offre un flusso quasi in tempo reale di eventi di sistema che descrivono i cambiamenti nelle AWS risorse.

  • AWS CloudFormation— CloudFormation aiuta a creare e fornire implementazioni di AWS infrastrutture in modo prevedibile e ripetuto.

  • AWS CodeBuild— CodeBuild è un servizio di compilazione completamente gestito che compila il codice sorgente, esegue test unitari e produce artefatti pronti per l'implementazione.

  • AWS CodeCommit— CodeCommit è un servizio di controllo delle versioni ospitato da AWS che è possibile utilizzare per archiviare e gestire risorse private (come codice sorgente e file binari).

  • AWS CodePipeline— CodePipeline è un servizio di distribuzione continua che è possibile utilizzare per modellare, visualizzare e automatizzare i passaggi necessari per apportare continuamente le modifiche al software.

  • Amazon DynamoDB: DynamoDB è un servizio No database completamente SQL gestito che offre prestazioni veloci e prevedibili con scalabilità. 

  • AWSGlue — AWS Glue è un ETL servizio completamente gestito che semplifica la preparazione e il caricamento dei dati per l'analisi.

  • AWSLambda: Lambda supporta l'esecuzione di codice senza fornire o gestire server. Lambda esegue il codice solo quando è necessario e si dimensiona automaticamente, da poche richieste al giorno a migliaia al secondo. 

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) è un servizio di storage di oggetti altamente scalabile. Amazon S3 può essere utilizzato per un'ampia gamma di soluzioni di storage, tra cui siti Web, applicazioni mobili, backup e data lake.

  • AWSStep Functions - AWS Step Functions è un orchestratore di funzioni senza server che semplifica la sequenza di funzioni AWS Lambda e più servizi in applicazioni aziendali critiche. AWS

  • Amazon SQS — Amazon Simple Queue Service (AmazonSQS) è un servizio di accodamento messaggi completamente gestito che ti aiuta a disaccoppiare e scalare microservizi, sistemi distribuiti e applicazioni serverless.

  • Deequ — Deequ è uno strumento che ti aiuta a calcolare i parametri di qualità dei dati per set di dati di grandi dimensioni, a definire e verificare i vincoli di qualità dei dati e a rimanere informato sui cambiamenti nella distribuzione dei dati.

Archivio di codice

Il codice sorgente e le risorse per SDLF sono disponibili nel repository AWSLabs. GitHub

Epiche

AttivitàDescrizioneCompetenze richieste

Configura la pipeline CI/CD per gestire IAc per il data lake.

Accedi alla console di AWS gestione e segui i passaggi della sezione Configurazione iniziale del workshop. SDLF In questo modo vengono create le risorse CI/CD iniziali, come CodeCommit repository, CodeBuild ambienti e CodePipeline pipeline che forniscono e gestiscono IaC per il data lake.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Clona il CodeCommit repository sul tuo computer locale.

Segui i passaggi indicati nella sezione Implementazione delle basi del workshop. SDLF Questo ti aiuta a clonare il repository Git che ospita IAc nel tuo ambiente locale. 

Per ulteriori informazioni, consulta Connessione ai CodeCommit repository dalla documentazione. CodeCommit

DevOps ingegnere

Modifica i CloudFormation modelli.

Usa la tua workstation locale e un editor di codice per modificare i CloudFormation modelli in base ai tuoi casi d'uso o ai tuoi requisiti. Inviali nel repository Git clonato localmente. 

Per ulteriori informazioni, consulta Lavorare con i AWS CloudFormation modelli dalla documentazione. AWS CloudFormation

DevOps ingegnere

Invia le modifiche al CodeCommit repository.

Il codice dell'infrastruttura è ora sotto il controllo della versione e le modifiche alla base di codice vengono tracciate. Quando invii una modifica al CodeCommit repository, la applica CodePipeline automaticamente all'infrastruttura e la invia a. CodeBuild 

Importante: se usi AWS SAM CLI in CodeBuild, sam deploy esegui i comandi sam package and. Se usi AWSCLI, aws cloudformation deploy esegui i comandi aws cloudformation package and.

DevOps ingegnere

Risorse correlate

Configura la pipeline CI/CD per il provisioning di IaC

Controllo della versione dell'IAc

Altre risorse