Open-Source-Data Lakehouse auf OCI bereitstellen
Architektur
Diese Architektur führt eine Plattformtopologie, einen Komponentenüberblick, empfohlene Best Practices und Terraform-Automatisierung ein, um ein Open-Source-Data Lakehouse in OCI bereitzustellen.
Ein Data Lakehouse kann Daten von Unternehmensanwendungen speichern und aggregieren. Daten können an den Data Lake oder an das Data Warehouse gesendet werden. Die im Data Lake vorhandenen Daten können entweder verarbeitet und in das Data Warehouse geladen oder direkt aus dem Data Lake für erweiterte Analysen gelesen werden.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung der Abbildung open-source-data-lakehouse.png
open-source-data-lakehouse-oracle.zip
In dieser Data Lakehouse-Architektur auf OCI wird Oracle MySQL HeatWave für Data Warehousing verwendet. Oracle MySQL HeatWave ist der einzige MySQL-Cloud-Service mit einem integrierten, leistungsstarken In-Memory-Abfragebeschleuniger. Für Datenbankadministratoren und Anwendungsentwickler ist es der einzige Service, mit dem sie OLTP- und OLAP-Workloads direkt aus ihrer MySQL-Datenbank ausführen können. Da MySQL für OLTP optimiert ist, verwenden viele MySQL-Implementierungen eine separate OLAP-Datenbank für Geschäftsanalysen.
Oracle MySQL HeatWave steigert die MySQL-Performance nach Größenordnungen für Analysen und gemischte Workloads, ohne Änderungen an vorhandenen Anwendungen vornehmen zu müssen. Oracle MySQL HeatWave bietet eine zentrale, einheitliche Plattform für Transaktions- und Analyse-Workloads. Dadurch entfällt die Notwendigkeit für das komplexe, zeitaufwendige und kostspielige ETL und die Integration mit einer separaten Analysedatenbank. MySQL Autopilot in Oracle MySQL HeatWave automatisiert Provisioning, Laden von Daten, Ausführung von Abfragen und Fehlerbehandlung. Dadurch werden Entwickler und DBAs erheblich Zeit gespart.
Oracle Cloud Infrastructure Object Storage dient als Data Lake in dieser Architektur. Mit OCI Object Storage kann ein Unternehmen alle Daten in einer kosteneffizienten, elastischen Umgebung speichern und gleichzeitig die erforderlichen Verarbeitungs-, Persistenz- und Analyseservices bereitstellen, um neue Geschäftseinblicke zu erhalten. Mit einem Data Lake in OCI Object Storage können Sie strukturierte und unstrukturierte Daten speichern und pflegen und Methoden zum Organisieren großer Mengen unterschiedlichster Daten aus mehreren Quellen verwenden.
Die vorgestellte Architektur enthält die folgenden Open-Source-Komponenten:
- Apache Zeppelin
Apache Zeppelin ist ein webbasiertes Notizbuch, das datengesteuerte, interaktive Datenanalysen und kollaborative Dokumente mit SQL, Scala, Python, R und mehr ermöglicht.
Zeppelin wird für die Datenwissenschaft und Datenforschung in dieser Architektur verwendet. In Zeppelin können Sie Notebooks erstellen und das Zeppelin-Interpreter-Konzept nutzen, mit dem jede Sprache oder jedes Backend-Datenverarbeitungssystem integriert werden kann. Mit der Konnektivität von Zeppelin zu MySQL und zu Object Storage können Sie gemeinsame Abfragen ausführen und Daten aus dem Data Warehouse und dem Data Lake gleichzeitig in einer echten Data Lakehouse-Abfrageerfahrung abrufen.
- Grafana
Grafana ist die Open-Source-Plattform in dieser Architektur. Grafana ist eine beliebte Webanwendung, die in TypeScript (Frontend) und Go (Backend) geschrieben wird. Es enthält Diagramme und Diagramme für die unterstützten Datenquellen. Eine davon ist MySQL. Zahlreiche Plug-ins sind online verfügbar, damit Sie Grafana erweitern können.
Zeppelin und Grafana verwenden ein Network File System (NFS), das von zwei Instanzen virtueller Maschinen in einem privaten Subnetz gemeinsam verwendet wird. Diese Instanzen sind in zwei unterschiedlichen Faultdomains innerhalb einer Availability-Domain vorhanden. Das Dateisystem ist in einem dedizierten privaten Subnetz mit einer Netzwerksicherheitsgruppe (NSG) vorhanden, die Zugriff auf das Mountziel von allen Instanzen zulässt. Benutzer können über einen OCI Load Balancer, der Teil dieses hochverfügbaren Designs ist, auf Zeppelin und Grafana zugreifen.
Diese Architektur verwendet Oracle Cloud Infrastructure Data Integration, um Dateien aus Object Storage in MySQL zu laden. In MySQL, Data Integration und Data Science for Marine Life Workshop wird beschrieben, wie Sie Datenflüsse mit Object Storage als Quelle und MySQL als Ziel einrichten und ausführen.
Die Architektur enthält die folgenden OCI-Komponenten:
- Mandant
Ein Mandant ist eine sichere und isolierte Partition, die Oracle in Oracle Cloud einrichtet, wenn Sie sich für Oracle Cloud Infrastructure registrieren. Sie können Ihre Ressourcen in Oracle Cloud in Ihrem Mandanten erstellen, organisieren und verwalten. Ein Mandant entspricht einem Unternehmen oder einer Organisation. Normalerweise hat ein Unternehmen einen einzelnen Mandanten und spiegelt seine Organisationsstruktur innerhalb dieses Mandanten wider. Ein einzelner Mandant ist in der Regel mit einem einzelnen Abonnement verknüpft, und ein einzelnes Abonnement hat in der Regel nur einen Mandanten.
- Compartment
Compartments sind regionsübergreifende logische Partitionen in einem Oracle Cloud Infrastructure-Mandanten. Organisieren Sie Ihre Ressourcen in Oracle Cloud mit Compartments, kontrollieren Sie den Zugriff auf die Ressourcen, und legen Sie Nutzungsquoten fest. Um den Zugriff auf die Ressourcen in einem bestimmten Compartment zu kontrollieren, definieren Sie Policys, mit denen angegeben wird, wer auf die Ressourcen zugreifen kann und welche Aktionen sie ausführen können.
- Policy
Eine Oracle Cloud Infrastructure Identity and Access Management-Policy gibt an, wer auf welche Ressourcen zugreifen kann und wie. Der Zugriff wird auf Gruppen- und Compartment-Ebene erteilt. Sie können also eine Policy schreiben, die einer Gruppe einen bestimmten Zugriffstyp innerhalb eines bestimmten Compartments oder dem Mandanten gibt.
- Region
Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der ein oder mehrere Data Center, so genannte Availability-Domains, enthält. Regionen sind nicht von anderen Regionen abhängig, und große Distanzen können sie trennen (über Länder oder sogar Kontinente).
- Virtuelles Cloud-Netzwerk (VCN) und Subnetze
Ein VCN ist ein anpassbares, Softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten. Wie bei traditionellen Data Center-Netzwerken haben VCNs die vollständige Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere sich nicht überschneidende CIDR-Blöcke aufweisen, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die für eine Region oder eine Availability-Domain gelten können. Jedes Subnetz besteht aus einem nachfolgenden Adressbereich, der sich nicht mit den anderen Subnetzen im VCN überschneidet. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.
- Availability-Domains
Availability-Domains sind eigenständige, unabhängige Data Center innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was Fehlertoleranz bietet. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung oder Kühlung oder das interne Availability-Domainnetzwerk. Es ist also unwahrscheinlich, dass der Fehler in einer Availability-Domain die anderen Availability-Domains in der Region beeinflusst.
- Faultdomains
Eine Faultdomain ist eine Gruppierung aus Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain umfasst drei Faultdomains mit unabhängiger Stromversorgung und Hardware. Wenn Sie Ressourcen über mehrere Faultdomains verteilen, können Ihre Anwendungen Fehler, Systemwartung und Stromausfälle innerhalb einer Faultdomain tolerieren.
- Object Storage
OCI Object Storage ist eine internetbasierte, leistungsstarke Speicherplattform, die zuverlässige und kostengünstige Dauerhaftigkeit von Daten bietet. Object Storage kann eine unbegrenzte Menge unstrukturierter Daten eines beliebigen Inhaltstyps speichern. einschließlich Analysedaten. Sie können Daten sicher speichern oder direkt aus dem Internet oder aus der Cloud-Plattform abrufen. Mit mehreren Managementschnittstellen können Sie ganz einfach klein anfangen und den Service nahtlos skalieren, ohne dass dabei eine Beeinträchtigung der Performance oder Zuverlässigkeit auftritt.
Verwenden Sie Object Storage als Cold Storage-Layer für das Data Warehouse, indem Sie selten verwendete Daten speichern und dann nahtlos mit den neuesten Daten mit Apache Zeppelin verbinden. Verwenden Sie den Archivspeicher für Dateien, die für lange Zeiträume aufbewahrt werden müssen und auf die selten zugegriffen wird.
- MySQL HeatWave
Oracle MySQL Database Service ist ein vollständig verwalteter Datenbankservice, mit dem Entwickler sichere, cloudnative Anwendungen mit der beliebtesten Open-Source-Datenbank der Welt schnell entwickeln und bereitstellen können. Oracle MySQL HeatWave ist ein neuer, integrierter, leistungsstarker und speicherresidenter Abfrage-Accelerator für Oracle MySQL Database Service, der die MySQL-Performance für Analysen und Transaktionsabfragen beschleunigt.
- Data Integration
Oracle Cloud Infrastructure Data Integration ist ein vollständig verwalteter, serverloser, cloud-nativer Service, der Daten aus einer Vielzahl von Datenquellen in Oracle Cloud Infrastructure-Zielservices extrahiert, lädt, transformiert, bereinigt und erneut ausbildet. ETL (Extract Transform Load) nutzt vollständig verwaltete Scale-out-Verarbeitung auf Spark. Benutzer entwerfen Datenintegrationsprozesse mit einer intuitiven, codlosen Benutzeroberfläche, die Integrationsabläufe optimiert, um die effizienteste Engine und Orchestrierung zu generieren. Die Ausführungsumgebung wird automatisch zugewiesen und skaliert. OCI Data Integration bietet interaktive Explorations- und Datenvorbereitung und schützt Data Engineers vor Schemaabweichung, indem sie Regeln zur Verarbeitung von Schemaänderungen definieren.
- Load Balancer
Der Oracle Cloud Infrastructure Load Balancing-Service ermöglicht automatisierte Trafficverteilung von einem einzelnen Einstiegspunkt auf mehrere Server im Backend.
- Compute-Instanzen
Mit dem Oracle Cloud Infrastructure Compute-Service können Sie Compute-Hosts in der Cloud bereitstellen und verwalten. Sie können Compute-Instanzen mit Ausprägungen starten, die Ihren Ressourcenanforderungen für CPU, Arbeitsspeicher, Netzwerkbandbreite und Speicher entsprechen. Nachdem Sie eine Compute-Instanz erstellt haben, können Sie sicher darauf zugreifen, sie neu starten, Volumes zuordnen und die Zuordnung aufheben und sie beenden, wenn Sie sie nicht mehr benötigen.
- Dateispeicher
Der Oracle Cloud Infrastructure File Storage-Service stellt ein dauerhaftes, skalierbares und sicheres Netzwerkdateisystem der Unternehmensklasse bereit. Sie können über jede Bare-Metal-, VM- oder Containerinstanz in einem VCN eine Verbindung zu einem File Storage Service-Dateisystem herstellen. Sie können auch außerhalb des VCN mit Oracle Cloud Infrastructure FastConnect und IPSec-VPN auf ein Dateisystem zugreifen.
- Internetgateway
Das Internetgateway ermöglicht Traffic zwischen den öffentlichen Subnetzen in einem VCN und dem öffentlichen Internet.
- Network Address Translation-(NAT-)Gateway
Ein NAT-Gateway ermöglicht privaten Ressourcen in einem VCN den Zugriff auf Hosts im Internet, ohne dass diese Ressourcen für eingehende Internetverbindungen freigegeben werden.
- Netzwerksicherheitsgruppe (NSG)
NSGs fungieren als virtuelle Firewalls für Ihre Cloud-Ressourcen. Mit dem Sicherheitsmodell ohne Vertrauen in Oracle Cloud Infrastructure wird der gesamte Traffic abgelehnt, und Sie können den Netzwerkverkehr innerhalb eines VCN kontrollieren. Eine NSG besteht aus einer Gruppe von Ingress- und Egress-Sicherheitsregeln, die nur für eine angegebene Gruppe von VNICs in einem einzelnen VCN gelten.
Empfehlungen
- VCN
Wenn Sie ein VCN erstellen, bestimmen Sie die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze im VCN anhängen möchten. Verwenden Sie CIDR-Blöcke, die sich im privaten Standardadressbereich befinden.
Wählen Sie einen Adressbereich aus, der sich nicht mit Ihrem On-Premise-Netzwerk oder einem anderen Netzwerk überschneidet, sodass Sie gegebenenfalls eine Verbindung zwischen dem VCN und Ihrem On-Premise-Netzwerk einrichten können.
Berücksichtigen Sie bei der Entwicklung der Subnetze Ihren Trafficfluss und Ihre Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Tier oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.
- Sicherheit
Mit Policys können Sie einschränken, wer auf die Oracle Cloud Infrastructure-(OCI-)Ressourcen Ihres Unternehmens zugreifen kann und wie diese auf diese zugreifen können.
Für eine erfolgreiche Sicherheitsimplementierung sind spezifische Policys erforderlich. Verwenden Sie Oracle Cloud Infrastructure Vault, um weitere Schutz Ihrer Schlüssel, Zertifikate und Secrets zu erhalten.Der Networking-Service bietet zwei Features einer virtuellen Firewall, die Sicherheitsregeln zur Kontrolle des Traffics auf Paketebene verwenden: Sicherheitslisten und Netzwerksicherheitsgruppen (NSG). Eine NSG besteht aus einer Gruppe von Ingress- und Egress-Sicherheitsregeln, die nur für eine Gruppe von VNICs Ihrer Wahl in einem einzelnen VCN gelten. Beispiel: Sie können alle Compute-Instanzen auswählen, die als Webserver in der Web Tier einer Multi-Tier-Anwendung in Ihrem VCN fungieren.
NSG-Sicherheitsregeln entsprechen den Sicherheitslistenregeln. Bei der Quelle oder dem Ziel einer NSG-Sicherheitsregel können Sie jedoch eine NSG anstelle eines CIDR-Blocks angeben. So können Sie leicht Sicherheitsregeln schreiben, um den Traffic zwischen zwei NSGs in ein und dasselbe VCN oder innerhalb einer einzelnen NSG zu steuern. Wenn Sie ein Datenbanksystem erstellen, können Sie eine oder mehrere NSGs angeben. Sie können auch ein vorhandenes Datenbanksystem aktualisieren, um eine oder mehrere NSGs zu verwenden.
- Compute
Wählen Sie Ausprägungen mit der entsprechenden OCPUs und Speicherkombination aus, und stellen Sie je nach Bedarf lokalen NVMe- und/oder Blockspeicher bereit. Sie sollten die verfügbaren flexiblen Ausprägungen verwenden, die mehr Flexibilität bei der Kombination von OCPUs und Arbeitsspeicher bieten.
Hinweise
Beachten Sie beim Deployment eines Data Lakehouse in Oracle Cloud Infrastructure (OCI) Folgendes:
- Datenquellen integrieren
Für die Object Storage-Integration mit MySQL haben wir uns für Oracle Cloud Infrastructure Data Integration entschieden. Wenn Sie ein Open-Source-Tool verwenden möchten, ist Talend eine Option. Talend wurde nicht in diese Architektur aufgenommen, da sein Download nicht automatisiert werden kann (der Download erfordert, dass Sie sich für Talend anmelden).
- Data Science und maschinelles Lernen
Wir haben uns für Open Source Apache Zeppelin als Plattform für Data Science und Datenerkennung entschieden. Alternativ können Sie Oracle Cloud Infrastructure Data Science verwenden, eine wichtige Grundlage für fortschrittliche datengesteuerte Einblicke und Anwendungen, die Data Scientists Zugriff auf automatisierte Workflows, JupyterLab-Notizbücher und Hunderte von Open-Source-Tools sowie einen optimierten Ansatz zur Erstellung von Modellen bietet. Die Plattform für die Zusammenarbeit ermöglicht es Teams, mit Möglichkeiten zur gemeinsamen Verwendung und Reproduktion von Modellen in einer strukturierten und sicheren Weise zusammenzuarbeiten, um Ergebnisse der Unternehmensklasse zu erzielen. Die Plattform wird vollständig verwaltet und erfüllt die Anforderungen des modernen Unternehmens.
- Analysen und Reporting
In dieser Architektur wurde Grafana als Analyseplattform gewählt. Verwenden Sie Oracle Analytics Cloud, einen erweiterten verwalteten Service, der Ihre Analyse- und Reportinganforderungen umfassend erfüllt.
- Instanzverfügbarkeit und -skalierbarkeit
In diesem Beispiel werden in der hochverfügbaren Architektur zwei Instanzen in verschiedenen Faultdomains innerhalb derselben Availability-Domain angezeigt. Sie können die Instanzen für noch höhere Fehlertoleranz in verschiedenen Availability-Domains (sofern verfügbar) platzieren.
Ein alternativer Ansatz, der eine dynamischere Anpassung an anspruchsvollere und variierendere Performanceanforderungen darstellt, ist die Verwendung eines Instanzpools und der automatischen Skalierung.
Mit Instanzpools können Sie mehrere Oracle Cloud Infrastructure Compute-Instanzen basierend auf derselben Konfiguration innerhalb derselben Region bereitstellen und erstellen.
Mit Autoscaling können Sie die Anzahl der Compute-Instanzen in einem Instanzpool basierend auf Performancekennzahlen, wie der CPU-Auslastung, automatisch anpassen. Mit der automatischen Skalierung können Sie für Benutzer in Zeiträumen mit hohem Bedarf eine konsistente Performance bereitstellen und Ihre Kosten in Zeiträumen mit geringem Bedarf reduzieren.
- Datenbankverfügbarkeit und -skalierbarkeit
Für High Availability sollten Sie ein zusätzliches Oracle MySQL-DB-System als Standbyreplikat bereitstellen. Sie können das Replikat in einer anderen Faultdomain, Availability-Domain oder Region platzieren.
- Datenbankbackups
Oracle MySQL Database Service unterstützt zwei Backuptypen: vollständiges Backup aller im Datenbanksystem enthaltenen Daten und inkrementelles Backup nur der Daten, die seit dem letzten vollständigen Backup hinzugefügt oder geändert wurden. Backups werden wie folgt ausgeführt:
- Manuell: Eine Aktion in der Konsole oder Anforderung über die API initiiert das Backup. Manuelle Backups können mindestens einen Tag und maximal 365 Tage aufbewahrt werden.
- Automatisch: Automatische Ausführung geplanter Backups ohne erforderliche Interaktion zu einem beliebigen Zeitpunkt. Automatische Backups werden zwischen einem und 35 Tagen aufbewahrt. Der Standardaufbewahrungswert beträgt sieben Tage. Nach der Definition können Sie den Aufbewahrungszeitraum eines automatischen Backups nicht bearbeiten.
- Dateispeicher
In diesem Beispiel nutzen wir den Oracle Cloud Infrastructure File Storage-Service. Alternativ kann eine Architektur mit mehreren Knoten ein gemeinsam verwendetes Block-Volume aufweisen. Ein Block-Volume kann mit Lese-/Schreibzugriff an mehrere Instanzen angehängt werden. In diesem Fall muss ein clusterfähiges System oder eine clusterfähige Lösung wie Oracle Cluster File System Version 2 (OCFS2) installiert werden.
- Sicherheit
Sie können die Sicherheit Ihrer Ressourcen in OCI mit Oracle Cloud Guard proaktiv überwachen und verwalten. Oracle Cloud Guard verwendet Detektorrezepte, die Sie definieren können, um Ihre Ressourcen auf Sicherheitsschwächen zu untersuchen und Operatoren und Benutzer auf riskante Aktivitäten zu überwachen. Wenn fehlerhafte oder unsichere Aktivitäten erkannt werden, empfiehlt Oracle Cloud Guard Korrekturmaßnahmen und unterstützt diese Aktionen auf Basis von Responder-Rezepten, die Sie definieren können. Für Ressourcen, die maximale Sicherheit erfordern, empfiehlt Oracle, Sicherheitszonen zu verwenden. Eine Sicherheitszone ist ein Compartment, das mit einem von Oracle definierten Rezept der Sicherheits-Policys verknüpft ist, die auf Best Practices basieren. Beispiel: Die Ressourcen in einer Sicherheitszone dürfen nicht vom öffentlichen Internet aus zugänglich sein und müssen mit vom Kunden verwalteten Schlüsseln verschlüsselt werden. Wenn Sie Ressourcen in einer Sicherheitszone erstellen und aktualisieren, validiert OCI die Vorgänge anhand der Policys im Rezept der Sicherheitszone und lehnt Vorgänge ab, die eine Policy verletzen.
- Anwendungsentwicklung
Oracle Application Express (Oracle APEX), die Low-Code-Entwicklungsplattform von Oracle, ist ein Beispiel für ein Tool, mit dem Sie skalierbare und sichere Unternehmens-Apps zusätzlich zum Data Warehouse erstellen können.
Mit Oracle APEX können Entwickler schnell überzeugende Apps entwickeln und bereitstellen, die echte Probleme lösen und einen unmittelbaren Mehrwert bieten. Sie müssen kein Experte für zahlreiche Technologien sein, um anspruchsvolle Lösungen anzubieten. Beheben Sie das Problem, und überlassen Sie Oracle APEX den Rest. Es verfügt über erstklassige Features und kann überall bereitgestellt werden.
Bereitstellen
Der Terraform-Code für diese Referenzarchitektur ist auf GitHub verfügbar. Sie können den Code mit nur einem Mausklick in Oracle Cloud Infrastructure Resource Manager abrufen, den Stack erstellen und bereitstellen. Alternativ können Sie den Code von GitHub auf Ihren Computer herunterladen, den Code anpassen und die Architektur mit der Terraform-CLI bereitstellen.
- Mit dem Beispielstack in Oracle Cloud Infrastructure Resource Manager bereitstellen:
- Klicken Sie auf

Wenn Sie noch nicht angemeldet sind, geben Sie den Mandanten und die Benutzerzugangsdaten ein.
- Prüfen und akzeptieren Sie die Vertragsbedingungen.
- Wählen Sie die Region aus, in der Sie den Stack bereitstellen möchten.
- Befolgen Sie die Prompts und Anweisungen zum Erstellen des Stacks auf dem Bildschirm.
- Nachdem Sie den Stack erstellt haben, klicken Sie auf Terraform-Aktionen, und wählen Sie Planen aus.
- Warten Sie, bis der Job abgeschlossen ist, und prüfen Sie den Plan.
Um Änderungen vorzunehmen, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Stack bearbeiten, und nehmen Sie die erforderlichen Änderungen vor. Führen Sie dann die Aktion Planen erneut aus.
- Wenn keine weiteren Änderungen erforderlich sind, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Terraform-Aktionen, und wählen Sie Anwenden aus.
- Klicken Sie auf
- Mit dem Terraform-Code in GitHub bereitstellen:
- Gehen Sie zu GitHub.
- Klonen oder laden Sie das Repository auf Ihren lokalen Rechner herunter.
- Befolgen Sie die Anweisungen im Dokument
README.