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: DataLakes; 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
Questo modello descrive come utilizzare l'elaborazione e l'infrastruttura senza server
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
Un account AWS attivo.
AWSCommand Line Interface () AWS CLI, installata e configurata.
Un client Git, installato e configurato.
Il SDLFworkshop
, aperto in una finestra del browser Web e pronto per l'uso.
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](images/pattern-img/f4fc3ad2-1c4f-45ea-bc86-2db13105a173/images/e0cfff30-f0f8-4fc1-8e84-a152ef615c58.png)
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.
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.
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
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.
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 in modo privato le risorse (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 effettuare il provisioning o la gestione di 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à | Descrizione | Competenze 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 | DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Clona il CodeCommit repository sul tuo computer locale. | Segui i passaggi indicati nella sezione Implementazione delle basi 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, | DevOps ingegnere |
Risorse correlate
Configura la pipeline CI/CD per il provisioning di IaC
Controllo della versione dell'IAc
Altre risorse