Katalogisierungsdaten für ein Lakehouse
Für einen nahtlosen Zugriff auf die gesamte Plattform ist ein leistungsstarker Katalogserver erforderlich
Verwenden von AWS Glue als Katalog für Databricks
Um Daten in allen Ihren Diensten zu entdecken, benötigen Sie einen leistungsstarken Katalog, um Daten finden und darauf zugreifen zu können. Der AWS Glue-Dienst ist ein Apache-kompatibler Hive Server-Metastore, mit dem Sie Tabellenmetadaten problemlos über AWS Dienste, Anwendungen oder AWS Konten hinweg teilen können. Databricks und Delta Lake sind in AWS Glue integriert, um Daten in Ihrer Organisation zu erkennen, Daten in Delta Lake zu registrieren und Daten zwischen Databricks-Instanzen zu erkennen.
Vorteile
Databricks ist bereits in AWS Glue integriert
Einfach
Vereinfacht die Verwaltbarkeit durch die Verwendung des gleichen AWS Glue-Katalogs in mehreren Databricks-Arbeitsbereichen.
Sichern
Integrierte Sicherheit durch Verwendung von Identity and Access Management Credential Pass-Through für Metadaten in AWS Glue. Eine ausführliche Erklärung finden Sie in den Databricks -Blogs mit der Einführung zu Databricks AWS IAM Credential Pass-Through.
Kollaborativ
Bietet einfacheren Zugriff auf Metadaten über den Amazon Dienst und Zugriff auf den Datenkatalog in AWS Glue.
Databricks Delta Lake-Integration mit AWS Kerndienst
Diese Referenzimplementierung veranschaulicht die einzigartig positionierte Databricks Delta Lake-Integration mit AWS Kerndienst, um Sie bei der Lösung Ihrer komplexesten Data Lake Herausforderungen zu unterstützen. Delta Lake Ausführung auf S3 und ist integriert mit Amazon Kinesis, AWS Glue, Amazon Athena, Amazon Redshift und Amazon QuickSight, um nur einige zu nennen.
Wenn Sie Delta Lake noch nicht kennen, können Sie hier mehr erfahren.
Amazon Athena- und Presto-Support für Delta Lake
Wenn eine externe Tabelle im Hive metastore mithilfe von Manifestdateien definiert ist, können Presto und Amazon Athena die Dateiliste in der Manifestdatei verwenden, anstatt die Dateien per Verzeichnisliste zu suchen. Diese Tabellen können genauso abgefragt werden wie Tabellen mit Daten, die in Formaten wie Parquet gespeichert sind.
Integrieren von Databricks mit AWS Glue
Schritt 1
So konfigurieren Sie einen Databricks -Cluster für den Zugriff auf den AWS Glue-Katalog
Start
Starten Sie zunächst die Databricks Berechnungscluster mit der erforderlichen AWS Glue Catalog IAM Rolle. Die IAM-Rollen- und Richtlinienanforderungen werden in der Databricks AWS Glue als Metastore-Dokumentation klar und Schritt für Schritt erläutert.
Erstellen Sie in diesem Beispiel eine AWS IAM-Rolle namens Field_Glue_Role, die auch delegierten Zugriff auf meinen S3-Bucket hat. Fügen Sie die Rolle der Clusterkonfiguration hinzu, wie im Demo-Video dargestellt.
Aktualisieren
Als Nächstes müssen die Spark Konfigurationseigenschaften der Clusterkonfiguration vor dem Start des Clusters festgelegt werden, wie im Video zur Aktualisierung gezeigt.
Erfahren Sie, wie Sie die Databricks -Konfigurationseigenschaften Clustern aktualisieren.Spark
Schritt 2
Einrichten der AWS Glue-Datenbank mit einem Databricks-Notebook
Anfügen
Bevor Sie eine AWS Glue-Datenbank erstellen, fügen Sie die Cluster an Ihr im vorherigen Schritt erstelltes Notebook an und testen Sie Ihr Setup mit dem hier gezeigten Befehl.
Bestätigen
Überprüfen Sie dann mithilfe der AWS Glue-Konsole, ob dieselbe Liste mit Datenbanken angezeigt wird, und listen Sie die Datenbanken auf.
Verifizieren
Erstellen Sie eine neue AWS Glue-Datenbank direkt aus dem Notebook und überprüfen Sie, ob die neue AWS Glue-Datenbank erfolgreich erstellt wurde, indem Sie den Befehl SHOW DATABASES erneut ausführen. Die AWS Glue-Datenbank kann auch über den Datenbereich angezeigt werden.
Schritt 3
Erstellen einer Delta Lake-Tabelle und einer Manifestdatei mit demselben Metastore
Erstellen und katalogisieren
Erstellen und katalogisieren Sie die Tabelle direkt aus dem Notebook im AWS Glue-Datenkatalog. Informationen zum Erstellen und Katalogisieren von Tabellen mithilfe von Crawlern finden Sie unter Auffüllen des AWS Glue-Datenkatalogs .
Der hier vorliegende Demodatensatz stammt von einer Website mit Filmempfehlungen namens MovieLens, die aus Filmbewertungen besteht. Erstellen Sie mit diesem Python-Code einen DataFrame.
REGISTRIEREN
Registrieren Sie dann den DataFrame als temporäre Tabelle und greifen Sie mit diesem SQL-Befehl darauf zu.
Delta Lake
Erstellen Sie nun eine Delta Lake-Tabelle mit der im vorherigen Schritt erstellten temporären Tabelle und diesem SQL-Befehl.
Hinweis: Es ist sehr einfach, eine Delta Lake Tabelle zu erstellen, wie im Delta Lake Quickstart Leitfadenbeschrieben.
Generieren eines Manifests für Amazon Athena
Generieren Sie nun mit den folgenden Schritten die von Amazon Athena benötigte Manifestdatei.
1. Generieren Sie Manifeste, indem Sie diese Scala-Methode ausführen. Denken Sie daran, der Zelle das Präfix %scala hinzuzufügen, wenn Sie ein Python-, SQL- oder R-Notebook erstellt haben.
2. Erstellen Sie eine Tabelle im mit Athena verbundenen Hive metastore indem Sie das spezielle Format SymlinkTextInputFormat und den Speicherort der Manifestdatei verwenden.
Im Beispielcode wird die Manifestdatei am Dateispeicherort s3a://aws-airlifts/movies_delta/_symlink_format_manifest/ erstellt.
Schritt 4
Abfragen der Delta Lake-Tabelle mit Amazon Athena
Amazon Athena
Athena ist ein serverloser Dienst, der für Verwaltung und Wartung keine Infrastruktur benötigt. Daher können Sie die Delta Tabelle abfragen, ohne dass ein Databricks -Cluster ausgeführt werden muss.
Wählen Sie in der Amazon Athena-Konsole die Datenbank aus und zeigen Sie dann eine Vorschau der Tabelle an, wie im Video gezeigt.
Abschluss
Die Integration von AWS Glue bietet eine leistungsstarke Serverlos-Metastore-Strategie für alle Unternehmen, die das AWS Ökosystem nutzen. Erhöhen Sie die Zuverlässigkeit von Data Lake mit Delta Lake und sorgen Sie durch die Integration mit Amazon Athena für nahtlosen, serverlosen Datenzugriff. Die Databricks Lakehouse-Plattform unterstützt die Data Lake Strategie auf AWS und ermöglicht Datenanalysten, Dateningenieuren und data scientists einen leistungsstarken und zuverlässigen Datenzugriff.