Sblocca flussi di lavoro di dati efficienti e informazioni più rapide con una soluzione di estrazione, trasformazione e caricamento (ETL) scalabile di livello aziendale
Questa guida aiuta a colmare il divario tra i requisiti di consumo dei dati e le attività di elaborazione dei dati di basso livello eseguite con pratiche ETL comuni. Per le organizzazioni che operano su sistemi di gestione dei dati basati su SQL, l'adattamento alle moderne pratiche di ingegneria dei dati può rallentare il progresso dello sfruttamento di potenti informazioni dai propri dati. Questa guida fornisce un design attento alla qualità per aumentare la produttività dei processi di dati attraverso il framework di dati open source Arc per un approccio ETL incentrato sull'utente. La Guida accelera l'interazione con le pratiche ETL, promuovendo la semplicità e aumentando il livello di astrazione per unificare le attività ETL sia in batch che in streaming.
Offriamo anche opzioni per una progettazione ottimale utilizzando istanze di calcolo efficienti (come i processori AWS Graviton) che consentono di ottimizzare le prestazioni e i costi di esecuzione di processi ETL su larga scala su Amazon EKS.
Nota: [Disclaimer]
Diagramma dell'architettura
[Descrizione del diagramma dell’architettura]
Fase 1
Interagisci con gli strumenti di sviluppo e orchestrazione ETL tramite gli endpoint Amazon CloudFront con origini Application Load Balancer, che forniscono connessioni sicure tra i client e gli endpoint degli strumenti ETL.
Fase 2
Sviluppa, testa e pianifica processi ETL che elaborano dati in batch e in streaming. Il traffico di dati tra i processi ETL e gli archivi di dati fluisce attraverso gli endpoint Amazon Virtual Private Cloud (Amazon VPC) basati su AWS PrivateLink senza lasciare la rete AWS.
Fase 3
Ambiente di sviluppo integrato JupyterHub (IDE), Argo Workflows e Apache Spark Operator vengono eseguiti come container su un cluster Amazon Elastic Kubernetes Service (Amazon EKS). JupyterHub IDE può integrarsi con un repository di codice sorgente (come GitHub) per tenere traccia delle modifiche agli asset ETL apportate dagli utenti. Le risorse includono i file del notebook Jupyter e gli script SQL da eseguire con il framework Arc ETL.
Fase 4
Aggiorna gli asset ETL nel repository del codice sorgente, quindi caricali in un bucket Amazon Simple Storage Service (Amazon S3). Il processo di sincronizzazione può essere implementato mediante una pipeline automatizzata di integrazione continua e implementazione continua (CI/CD) avviata da aggiornamenti nel repository del codice sorgente o eseguita manualmente.
Fase 5
Facoltativamente, puoi modificare il codice sorgente della build Docker caricato da un repository di codice nel bucket di asset S3 ETL. Attiva una pipeline CI/CD di AWS CodeBuild e AWS CodePipeline per ricostruire e inviare automaticamente l'immagine del contenitore Arc ETL Framework a un registro privato Amazon Elastic Container Registry (Amazon ECR).
Fase 6
Pianifica i job ETL tramite Argo Workflows per eseguirli su un cluster Amazon EKS. Questi processi estraggono automaticamente l'immagine del container Arc da Amazon ECR, scaricano risorse ETL dal bucket artefatto S3 e inviano i log delle applicazioni ad Amazon CloudWatch. Gli endpoint VPC proteggono l'accesso a tutti i servizi AWS.
Fase 7
In qualità di utente autenticato, puoi sviluppare e testare in modo interattivo i notebook come processi ETL nell'IDE JupyterHub, che recupera automaticamente le credenziali di accesso da AWS Secrets Manager per convalidare le richieste degli utenti di accesso.
Fase 8
Accedi ai dati di output ETL archiviati nel bucket S3 che supporta il formato del data lake transazionale. Puoi interrogare le tabelle Delta Lake tramite Amazon Athena integrato con Catalogo dati AWS Glue.
Principi di Well-Architected
Il framework AWS Well-Architected consente di valutare i pro e i contro delle decisioni prese durante il processo di creazione di sistemi nel cloud. I sei principi del framework consentono di apprendere le best practice architetturali per la progettazione e il funzionamento di sistemi affidabili, sicuri, efficienti, convenienti e sostenibili. Grazie allo strumento AWS Well-Architected, disponibile gratuitamente nella Console di gestione AWS, puoi rivedere i tuoi carichi di lavoro rispetto a queste best practice rispondendo a una serie di domande per ciascun principio.
Il diagramma dell'architettura sopra riportato è un esempio di una soluzione creata tenendo conto delle best practice Well-Architected. Per essere completamente Well-Architected, dovresti seguire il maggior numero possibile di best practice.
-
Eccellenza operativa
All'interno dei cluster Amazon EKS, le istanze Amazon Elastic Compute Cloud (Amazon EC2) (CPU X86_64, Graviton ARM64) agiscono come nodi di calcolo, eseguendo carichi di lavoro di Guida. I processi Spark vengono eseguiti su istanze Amazon EC2 Spot con provisioning elastico in base alle richieste di carico di lavoro.
CodeBuild e CodePipeline automatizzano il processo GitOps, creando immagini di container a partire dagli aggiornamenti del codice Git e inviandole al registro privato Amazon ECR. Argo Workflows pianifica i processi ETL su Amazon EKS, estraendo automaticamente l'immagine Arc Docker da Amazon ECR, scaricando le risorse ETL dal bucket S3 dell'artefatto e inviando i log delle applicazioni a CloudWatch.
Questa implementazione ed esecuzione automatizzate dei processo Data ETL riduce al minimo il sovraccarico operativo e migliora la produttività. Inoltre, la pipeline CI/CD che utilizza CodeBuild e CodePipeline aiuta a garantire il miglioramento e lo sviluppo continui archiviando in modo sicuro l'immagine Arc Docker di Guida in Amazon ECR.
-
Sicurezza
Le risorse del cluster Amazon EKS sono distribuite all'interno di un Amazon VPC, fornendo un isolamento logico della rete dalla rete Internet pubblica. Amazon VPC supporta funzionalità di sicurezza come gli endpoint VPC (che mantengono il traffico all'interno della rete AWS), i gruppi di sicurezza, le liste di controllo degli accessi alla rete (ACL) e i ruoli e le politiche di AWS Identity and Access Management (IAM) per il controllo del traffico e delle autorizzazioni in entrata e in uscita. Il registro di immagini Amazon ECR offre funzionalità di sicurezza a livello di container, come la scansione delle vulnerabilità. Amazon ECR e Amazon EKS seguono gli standard del registro Open Container Initiative (OCI) e delle API Kubernetes, incorporando protocolli di sicurezza rigorosi.
IAM fornisce il controllo degli accessi per i dati delle applicazioni Amazon S3, mentre il servizio AWS di gestione delle chiavi (AWS KMS) crittografa i dati a riposo su Amazon S3. IAM Roles for Service Accounts (IRSA) sui cluster Amazon EKS consente un controllo granulare degli accessi per i pod, applicando il controllo degli accessi basato sui ruoli e limitando l'accesso non autorizzato ai dati Amazon S3. Secrets Manager archivia e gestisce in modo sicuro le credenziali. CloudFront fornisce punti di ingresso sicuri con codifica SSL per gli strumenti web Jupyter e Argo Workflows.
-
Affidabilità
Amazon EKS abilita topologie ad alta disponibilità distribuendo i piani di controllo e calcolo di Kubernetes su più zone di disponibilità (AZ). Questo aiuta a garantire la disponibilità continua delle applicazioni di dati, anche se un AZ subisce un'interruzione, con conseguente implementazione affidabile di istanze EC2 Multi-AZ su Amazon EKS.
Per l'archiviazione di dati, Amazon S3 offre elevata durabilità e disponibilità, replicando automaticamente gli oggetti di dati su più AZ all'interno di una regione. Inoltre, Amazon ECR ospita immagini Docker in un'architettura altamente disponibile e scalabile, supportando in modo affidabile l'implementazione e gli incrementi di applicazioni basate su container.
Amazon S3, Amazon EKS e Amazon ECR sono servizi completamente gestiti progettati per contratti di servizio (SLA) elevati con costi operativi ridotti. Consentono l'implementazione di applicazioni aziendali critiche per soddisfare i requisiti di elevata disponibilità.
-
Efficienza delle prestazioni
I nodi di calcolo Amazon EKS del cluster Amazon EC2 possono scalare dinamicamente verso l'alto e verso il basso in base al carico di lavoro delle applicazioni. Le istanze EC2 basate su Graviton offrono una maggiore efficienza delle prestazioni grazie a processori basati su ARM progettati su misura, hardware ottimizzato e miglioramenti dell'architettura.
Un modello di storage di calcolo disaccoppiato (con dati di input e output archiviati in Amazon S3) migliora l'efficienza di scalabilità dinamica del calcolo. Data Catalog semplifica la gestione dei metadati, integrandosi perfettamente con Athena per una gestione semplificata dei metadati e prestazioni delle query migliorate. Data Catalog automatizza il crawling e la manutenzione dei metadati tecnici per un'elaborazione e un'interrogazione efficienti dei dati. Athena offre query rapide sui dati di Amazon S3 senza spostarli, migliorando ulteriormente l'efficienza del flusso di lavoro di analisi.
-
Ottimizzazione dei costi
Amazon ECR è un servizio gestito per la protezione e il supporto delle applicazioni container con una tariffa mensile fissa per l'archiviazione e la distribuzione delle immagini dei contenitori. I nodi di calcolo del cluster Amazon EKS possono scalare verso l'alto e verso il basso in base ai carichi di lavoro Spark, offrendo tipi di istanze Graviton e Spot convenienti. Data Catalog fornisce un repository di metadati serverless e completamente gestito, eliminando la necessità di configurare e mantenere un database di metadati a lunga durata e riducendo i costi e i costi operativi. CodeBuild e CodePipeline automatizzano la creazione e l'implementazione dell'immagine Docker di Arc ETL Framework in un ambiente serverless, eliminando la necessità di provisioning e gestione dei server di sviluppo oltre a ridurre i costi di manutenzione dell'infrastruttura.
-
Sostenibilità
Questa guida esegue un cluster Amazon EKS con tipi di calcolo efficienti basati su processori Graviton. Amazon ECR elimina la necessità di hardware personalizzato o gestione di server fisici. Data Catalog e Athena sono servizi serverless, che riducono ulteriormente l'impatto energetico e ambientale.
L'ottimizzazione del livello di calcolo di Amazon EKS per carichi di lavoro Apache Spark su larga scala riduce al minimo l'impatto ambientale dei carichi di lavoro di analisi. Hai la flessibilità di scegliere processori basati su ARM in base alle esigenze di prestazioni e alle tue priorità di sostenibilità.
Risorse per l'implementazione
Il codice di esempio è un punto di partenza. È convalidato dal settore, prescrittivo ma non definitivo, ed è il punto di partenza per iniziare a lavorare.
Contenuti correlati
[Titolo]
Avvertenza
Il codice di esempio, le librerie software, gli strumenti della linea di comando, le proof of concept, i modelli e le altre tecnologie correlate (comprese tutte le tecnologie di cui sopra fornite dal nostro personale) vengono forniti all'utente sotto forma di contenuto AWS ai sensi dell'Accordo cliente AWS o del relativo accordo scritto stipulato tra l'utente e AWS (a seconda dei casi). Non bisogna utilizzare il contenuto AWS in questione negli account di produzione o sui dati di produzione o altri dati fondamentali. L'utente è responsabile dei test, della sicurezza e dell'ottimizzazione del contenuto AWS, come il codice di esempio, in modo appropriato per l'utilizzo in produzione sulla base delle pratiche e degli standard di qualità specifici. L'implementazione del contenuto AWS può comportare costi AWS per la creazione o l'utilizzo di risorse AWS addebitabili, quali le istanze Amazon EC2 in esecuzione o l'archiviazione Amazon S3.
Eventuali riferimenti a servizi o organizzazioni di terze parti contenuti in questa guida non implicano alcuna approvazione, sponsorizzazione o affiliazione tra Amazon o AWS e dette terze parti. La guida di AWS è un punto di partenza tecnico e l'integrazione con servizi di terze parti può essere personalizzata al momento dell'implementazione dell'architettura.