Effiziente Datenworkflows und schnellere Einblicke mit einer skalierbaren Extract, Transform, Load (ETL)-Lösung auf Unternehmensebene erschließen
Diese Anleitung hilft dabei, die Lücke zwischen den Anforderungen an den Datenverbrauch und den Datenverarbeitungsaktivitäten auf niedriger Ebene zu schließen, die nach gängigen ETL-Praktiken durchgeführt werden. Für Unternehmen, die mit SQL-basierten Datenmanagementsystemen arbeiten, kann die Anpassung an moderne Datentechnikpraktiken den Fortschritt bei der Nutzung aussagekräftiger Erkenntnisse aus ihren Daten verlangsamen. Diese Anleitung bietet ein qualitätsbewusstes Design zur Steigerung der Produktivität von Datenprozessen mithilfe des Open-Source-Datenframeworks Arc für einen benutzerzentrierten ETL-Ansatz. Die Anleitung beschleunigt die Interaktion mit ETL-Praktiken, fördert die Einfachheit und erhöht den Abstraktionsgrad, um ETL-Aktivitäten sowohl im Batch- als auch im Streaming-Modus zu vereinheitlichen.
Wir bieten auch Optionen für ein optimales Design unter Verwendung effizienter Datenverarbeitungsinstances (wie AWS-Graviton-Prozessoren), mit denen Sie die Leistung und die Kosten der skalierbaren Ausführung von ETL-Aufträgen in Amazon EKS optimieren können.
Bitte beachten Sie: [Haftungsausschluss]
Architekturdiagramm
[Beschreibung des Architekturdiagramms]
Schritt 1
Interagieren Sie mit ETL-Entwicklungs- und Orchestrierungstools über Amazon-CloudFront-Endpunkte mit Ursprüngen von Application Load Balancer, die sichere Verbindungen zwischen Clients und den Endpunkten der ETL-Tools bereitstellen.
Schritt 2
Entwickeln, testen und planen Sie ETL-Aufträge, die Batch- und Stream-Daten verarbeiten. Der Datenverkehr zwischen ETL-Prozessen und Datenspeichern fließt über Amazon Virtual Private Cloud (Amazon VPC)-Endpunkte, die von AWS PrivateLink betrieben werden, ohne das AWS-Netzwerk zu verlassen.
Schritt 3
JupyterHub integrierte Entwicklungsumgebung (IDE), Argo Workflows und Apache Spark Operator werden als Container auf einem Amazon Elastic Kubernetes Service (Amazon EKS)-Cluster ausgeführt. Die JupyterHub-IDE kann in ein Quellcode-Repository (wie GitHub) integriert werden, um die von Benutzern vorgenommenen Änderungen an ETL-Assets zu verfolgen. Zu den Ressourcen gehören Jupyter-Notebook-Dateien und SQL-Skripte, die mit dem Arc-ETL-Framework ausgeführt werden sollen.
Schritt 4
Aktualisieren Sie die ETL-Assets im Quellcode-Repository und laden Sie sie dann in einen Amazon Simple Storage Service (Amazon S3)-Bucket hoch. Der Synchronisationsprozess kann durch eine automatisierte Continuous Integration and Continuous Deployment (CI/CD)-Pipeline implementiert werden, die durch Aktualisierungen im Quellcode-Repository initiiert oder manuell durchgeführt wird.
Schritt 5
Sie können optional den Docker-Build-Quellcode ändern, der aus einem Code-Repository in den S3-ETL-Asset-Bucket hochgeladen wurde. Er aktiviert eine AWS-CodeBuild- und AWS-CodePipeline-CI/CD-Pipeline, um das Arc-ETL-Framework-Container-Image automatisch neu aufzubauen und in eine private Amazon Elastic Container Registry (Amazon ECR)-Registry zu übertragen.
Schritt 6
Planen Sie ETL-Aufträge über Argo Workflows so, dass sie in einem Amazon-EKS-Cluster ausgeführt werden. Diese Aufträge rufen automatisch das Arc-Container-Image aus Amazon ECR ab, laden ETL-Assets aus dem Artefakt-S3-Bucket herunter und senden Anwendungsprotokolle an Amazon CloudWatch. VPC-Endpunkte sichern den Zugriff auf alle AWS-Services.
Schritt 7
Als authentifizierter Benutzer können Sie Notebooks interaktiv als ETL-Aufträge in der JupyterHub-IDE entwickeln und testen, die automatisch Anmeldeinformationen von AWS Secrets Manager abruft, um Anmeldebenutzeranfragen zu validieren.
Schritt 8
Greifen Sie auf die ETL-Ausgabedaten zu, die im S3-Bucket gespeichert sind, das das transaktionale Data-Lake-Format unterstützt. Sie können die Delta-Lake-Tabellen über Amazon Athena abfragen, das in den AWS-Glue-Datenkatalog integriert ist.
Well-Architected-Säulen
Das AWS-Well-Architected-Framework hilft Ihnen, die Vor- und Nachteile der Entscheidungen zu verstehen, die Sie beim Aufbau von Systemen in der Cloud treffen. Die sechs Säulen des Frameworks ermöglichen es Ihnen, architektonische bewärhte Methoden für die Entwicklung und den Betrieb zuverlässiger, sicherer, effizienter, kostengünstiger und nachhaltiger Systeme zu erlernen. Mit dem AWS-Well-Architected-Tool, das kostenlos in der AWS-Managementkonsole verfügbar ist, können Sie Ihre Workloads anhand dieser bewährten Methoden überprüfen, indem Sie eine Reihe von Fragen für jede Säule beantworten.
Das obige Architekturdiagramm ist ein Beispiel für eine Lösung, die unter Berücksichtigung der bewährten Methoden von Well-Architected erstellt wurde. Um eine vollständige Well-Architected-Lösung zu erhalten, sollten Sie so viele bewährte Methoden von Well-Architected wie möglich befolgen.
-
Betriebliche Exzellenz
Innerhalb der Amazon-EKS-Cluster agieren Amazon Elastic Compute Cloud (Amazon EC2)-Instances (X86_64 CPU, Graviton ARM64) als Datenverarbeitungsknoten, auf denen Anleitungs-Workloads ausgeführt werden. Spark-Aufträge werden auf elastisch bereitgestellten Amazon-EC2-Spot-Instances ausgeführt, die auf den Workload-Anforderungen basieren.
CodeBuild und CodePipeline automatisieren den GitOps-Prozess, indem sie Container-Images aus Git-Code-Updates erstellen und sie in die private Amazon-ECR-Registry übertragen. Argo Workflows plant ETL-Aufträge auf Amazon EKS, ruft automatisch das Arc-Docker-Image aus Amazon ECR ab, lädt ETL-Assets aus dem Artefakt-S3-Bucket herunter und sendet Anwendungsprotokolle an CloudWatch.
Diese automatisierte Bereitstellung und Ausführung von Daten-ETL-Aufträgen minimiert den betrieblichen Aufwand und verbessert die Produktivität. Darüber hinaus trägt die CI/CD-Pipeline mithilfe von CodeBuild und CodePipeline dazu bei, eine kontinuierliche Verbesserung und Weiterentwicklung sicherzustellen und gleichzeitig das Arc-Docker-Image der Anleitung sicher in Amazon ECR zu speichern.
-
Sicherheit
Die Amazon-EKS-Clusterressourcen werden in einer Amazon VPC bereitgestellt und bieten eine logische Netzwerkisolierung vom öffentlichen Internet. Amazon VPC unterstützt Sicherheits-Features wie VPC-Endpunkte (Aufrechterhaltung des Datenverkehrs innerhalb des AWS-Netzwerks), Sicherheitsgruppen, Netzwerk-Zugriffssteuerungslisten (ACL) sowie AWS Identity and Access Management (IAM)-Rollen und -Richtlinien zur Steuerung des eingehenden und ausgehenden Datenverkehrs und der Autorisierung. Die Amazon-ECR-Image-Registry bietet Sicherheits-Features auf Containerebene, wie z. B. das Scannen von Schwachstellen. Amazon ECR und Amazon EKS folgen den Registry- und Kubernetes-API-Standards der Open Container Initiative (OCI) und beinhalten strenge Sicherheitsprotokolle.
IAM bietet Zugriffskontrolle für Amazon-S3-Anwendungsdaten, während der AWS Key Management Service (AWS KMS) Daten im Ruhezustand auf Amazon S3 verschlüsselt. IAM-Rollen für Service-Konten (IRSA) auf Amazon-EKS-Clustern ermöglicht eine detaillierte Zugriffskontrolle für Pods, erzwingt eine rollenbasierte Zugriffskontrolle und begrenzt den unbefugten Amazon-S3-Datenzugriff. Secrets Manager speichert und verwaltet Anmeldeinformationen sicher. CloudFront bietet SSL-kodierte sichere Einstiegspunkte für die Webtools von Jupyter und Argo Workflows.
-
Zuverlässigkeit
Amazon EKS ermöglicht hochverfügbare Topologien, indem die Steuerungs- und Datenverarbeitungspläne von Kubernetes in mehreren Availability Zones (AZs) bereitgestellt werden. Dies trägt dazu bei, die kontinuierliche Verfügbarkeit von Datenanwendungen sicherzustellen – selbst wenn es bei einer AZ zu einer Unterbrechung kommt – was zu einer zuverlässigen Multi-AZ-EC2-Instance-Bereitstellung auf Amazon EKS führt.
Für die Datenspeicherung bietet Amazon S3 eine hohe Beständigkeit und Verfügbarkeit und repliziert Datenobjekte automatisch über mehrere AZs innerhalb einer Region. Darüber hinaus hostet Amazon ECR Docker-Images in einer hochverfügbaren und skalierbaren Architektur, die zuverlässig die containerbasierte Anwendungsbereitstellung und Inkremente unterstützt.
Amazon S3, Amazon EKS und Amazon ECR sind vollständig verwaltete Services, die für hohe Service Level Agreements (SLAs) mit reduzierten Betriebskosten konzipiert sind. Sie ermöglichen die Bereitstellung geschäftskritischer Anwendungen, um Hochverfügbarkeitsanforderungen zu erfüllen.
-
Leistung und Effizienz
Die Amazon-EC2-Datenverarbeitungsknoten des Amazon-EKS-Clusters können basierend auf dem Anwendungs-Workload dynamisch hoch- und herunterskaliert werden. Graviton-basierte EC2-Instances bieten eine höhere Leistungseffizienz durch speziell entwickelte ARM-basierte Prozessoren, optimierte Hardware und architektonische Verbesserungen.
Ein entkoppeltes Datenverarbeitungsspeichermuster (mit Eingabe- und Ausgabedaten, die in Amazon S3 gespeichert sind) verbessert die Effizienz der dynamischen Datenverarbeitungsskalierung. Der Datenkatalog optimiert das Metadatenmanagement und lässt sich nahtlos in Athena integrieren, um das Metadatenmanagement zu vereinfachen und die Abfrageleistung zu verbessern. Der Datenkatalog automatisiert das Crawling und Pflegen technischer Metadaten für eine effiziente Datenverarbeitung und -abfrage. Athena bietet schnelle Abfragen von Amazon-S3-Daten, ohne sie zu verschieben, wodurch die Effizienz des Analysen-Workflows weiter verbessert wird.
-
Kostenoptimierung
Amazon ECR ist ein verwalteter Service zur Sicherung und Unterstützung von Container-Anwendungen mit einer festen monatlichen Gebühr für das Speichern und Bereitstellen von Container-Images. Amazon-EKS-Cluster-Datenverarbeitungsknoten können basierend auf den Spark-Workloads hoch- und herunterskaliert werden und bieten kosteneffiziente Graviton- und Spot-Instance-Typen. Der Datenkatalog bietet ein vollständig verwaltetes Serverless-Metadaten-Repository, wodurch die Einrichtung und Wartung einer lang laufenden Metadatendatenbank entfällt und der Betriebsaufwand und die Kosten reduziert werden. CodeBuild und CodePipeline automatisieren die Erstellung und die Bereitstellung des Docker-Images des Arc-ETL-Frameworks in einer Serverless-Umgebung. Dadurch entfällt die Notwendigkeit, Buildserver bereitzustellen und zu verwalten. Außerdem werden die Wartungskosten für die Infrastruktur reduziert.
-
Nachhaltigkeit
In dieser Anleitung wird ein Amazon-EKS-Cluster mit effizienten Datenverarbeitungsarten ausgeführt, die auf Graviton-Prozessoren basieren. Amazon ECR macht benutzerdefinierte Hardware oder physische Serververwaltung überflüssig. Der Datenkatalog und Athena sind Serverless-Services, die die Energie- und Umweltbelastung weiter reduzieren.
Durch die Optimierung der Amazon-EKS-Datenverarbeitungsschicht für umfangreiche Apache-Spark-Workloads werden die Umweltauswirkungen von Analyse-Workloads minimiert. Sie haben die Flexibilität, je nach Leistungsanforderungen und Ihren Nachhaltigkeitsprioritäten ARM-basierte Prozessoren auszuwählen.
Implementierungsressourcen
Der Beispielcode dient als Ausgangspunkt. Er ist branchenerprobt, präskriptiv, aber nicht endgültig, und ein Blick unter die Motorhaube, der Ihnen den Einstieg erleichtert.
Ähnliche Inhalte
[Titel]
Haftungsausschluss
Der Beispielcode, die Softwarebibliotheken, die Befehlszeilentools, die Machbarkeitsnachweise, die Vorlagen oder andere zugehörige Technologien (einschließlich derjenigen, die von unseren Mitarbeitern bereitgestellt werden) werden Ihnen als AWS-Inhalte im Rahmen der AWS-Kundenvereinbarung oder der entsprechenden schriftlichen Vereinbarung zwischen Ihnen und AWS (je nachdem, was zutrifft) zur Verfügung gestellt. Sie sollten diese AWS-Inhalte nicht in Ihren Produktionskonten oder für Produktions- oder andere kritische Daten verwenden. Sie sind verantwortlich für das Testen, Sichern und Optimieren des AWS-Inhalts, z. B. des Beispielcodes, für die Verwendung in der Produktion auf der Grundlage Ihrer spezifischen Qualitätskontrollverfahren und -standards. Bei der Bereitstellung von AWS-Inhalten können AWS-Gebühren für die Erstellung oder Nutzung von kostenpflichtigen AWS-Ressourcen anfallen, z. B. für den Betrieb von Amazon-EC2-Instances oder die Nutzung von Amazon-S3-Speicher.
Verweise auf Services oder Organisationen von Drittanbietern in diesen Leitlinien bedeuten nicht, dass Amazon oder AWS eine Billigung, Förderung oder Zugehörigkeit zwischen Amazon oder AWS und dem Drittanbieter darstellt. Die Beratung durch AWS ist ein technischer Ausgangspunkt, und Sie können Ihre Integration mit Services von Drittanbietern anpassen, wenn Sie die Architektur bereitstellen.