Aktivieren des Hive-Metastoreverbunds für den Legacy-Metastore eines Arbeitsbereichs
Wichtig
Dieses Feature befindet sich in der Public Preview.
In diesem Artikel wird gezeigt, wie Sie Ihren älteren Azure Databricks Hive-Metaspeicher verbinden, damit Ihre Organisation mit Ihren Hive-Metastore-Tabellen mit Unity Catalog arbeiten kann.
Eine Übersicht über den Hive-Metastore-Partnerverbund finden Sie unter Hive-Metastore-Partnerverbund: Aktivieren des Unity-Katalogs zum Steuern von Tabellen, die in einem Hive-Metastore-registriert sind.
Bevor Sie beginnen
Überprüfen Sie die Liste der Dienste und Features, die vom Hive-Metastoreverbund unterstützt werden: Anforderungen, unterstützte Features und Einschränkungen.
Für jeden schritt unten sind spezifische Anforderungen aufgeführt.
Schritt 1: Verbinden des Unity-Katalogs mit Ihrem Hive-Metaspeicher
In diesem Schritt erstellen Sie eine Verbindung, ein sicherungsfähiges Unity-Katalog-Objekt, das einen Pfad und Anmeldeinformationen für den Zugriff auf ein Datenbanksystem angibt, in diesem Fall den älteren Hive-Metastore Ihres Azure Databricks-Arbeitsbereichs.
Anforderungen
- Die
CREATE CONNECTION
-Berechtigung im Unity Catalog-Metastore.
Erstellen der Verbindung
Eine Verbindung gibt einen Pfad und Anmeldeinformationen für den Zugriff auf ein externes Datenbanksystem an. Zum Erstellen einer Verbindung können Sie den Katalog-Explorer oder den CREATE CONNECTION
SQL-Befehl in einem Azure Databricks-Notizbuch oder dem SQL-Abfrage-Editor für Databricks verwenden.
Anmerkung
Sie können auch die Databricks-REST-API oder die Databricks CLI verwenden, um eine Verbindung zu erstellen. Weitere Informationen finden Sie unter POST /api/2.1/unity-catalog/connections und Unity Catalog-Befehle.
Erforderliche Berechtigungen: Metastoreadmin oder die CREATE CONNECTION
-Berechtigung.
Katalog-Explorer
Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf
Katalog.
Klicken Sie auf der Seite Schnellzugriff auf Daten hinzufügen > Verbindung hinzufügen.
Geben Sie auf der Seite Verbindungsgrundlagen des Assistenten Verbindung einrichten einen benutzerfreundlichen Verbindungsnamen ein.
Wählen Sie Hive-Metastore als Verbindungstyp und Intern als Metastoretyp aus.
(Optional) Fügen Sie einen Kommentar hinzu.
Klicken Sie auf Weiter.
(Optional) Geben Sie auf der Seite Verbindungsdetails den vollqualifizierten Pfad zum Hive-Warehouseverzeichnis ein.
Sie benötigen dies nur, wenn Sie den Standardspeicherort nicht verwenden möchten.
Klicken Sie auf Verbindung herstellen.
Geben Sie auf der Seite Kataloggrundlagen einen Namen für den Fremdkatalog ein.
Wählen Sie unter Autorisierte Pfadedie Cloudspeicherpfade aus, auf die über den Katalog zugegriffen werden kann. Nur Tabellen, die unter diese Pfade fallen, können über den Verbundkatalog abgefragt werden. Pfade müssen von externen Speicherorten abgedeckt werden. Weitere Informationen finden Sie unter Was sind autorisierte Pfade?.
(Optional) Wählen Sie für Speicherorteinen Speicherort im Cloudspeicher aus, an dem ausgewählte Daten für Tabellen in diesem Katalog gespeichert werden. Wenn kein Speicherort angegeben wird, wird standardmäßig der Stammspeicherort des Metastore verwendet, sofern vorhanden.
Klicken Sie auf Katalog erstellen.
Wählen Sie auf der Seite Access die Arbeitsbereiche aus, in denen Benutzer auf den von Ihnen erstellten Katalog zugreifen können. Sie können Alle Arbeitsbereichen haben Zugriff auswählen oder auf Arbeitsbereichen zuweisen klicken, die Arbeitsbereiche auswählen und dann auf Assign klicken.
Fügen Sie unter Besitzer eine Person hinzu, die den Zugriff auf alle Objekte im Katalog verwalten kann. Beginnen Sie mit der Eingabe eines Benutzers oder einer Gruppe im Textfeld, und klicken Sie dann in den zurückgegebenen Ergebnissen auf den Benutzer oder die Gruppe.
Gewähren Sie Privilegien für den Katalog. Klicken Sie auf Gewähren:
- Geben Sie die Prinzipale an, die Zugriff auf Objekte im Katalog haben sollen. Beginnen Sie mit der Eingabe eines Benutzers oder einer Gruppe im Textfeld, und klicken Sie dann in den zurückgegebenen Ergebnissen auf den Benutzer oder die Gruppe.
- Wählen Sie die voreingestellten Berechtigungen aus, die jedem Benutzer oder jeder Gruppe gewährt werden sollen. Standardmäßig werden allen Kontobenutzern
BROWSE
gewährt.- Wählen Sie Data Reader aus dem Dropdown-Menü aus, um
read
Berechtigungen für Objekte im Katalog zu gewähren. - Wählen Sie Daten-Editor aus dem Dropdownmenü aus, um
read
undmodify
Berechtigungen für Objekte im Katalog zu gewähren. - Wählen Sie manuell die zu erteilenden Berechtigungen aus.
- Wählen Sie Data Reader aus dem Dropdown-Menü aus, um
- Klicken Sie auf Gewähren.
Klicken Sie auf Weiter.
Geben Sie auf der Seite Metadaten Tag-Schlüssel-Wert-Paare an. Weitere Informationen finden Sie unter Anwenden von Tags auf sicherheitsfähige Unity-Katalog-Objekte.
(Optional) Fügen Sie einen Kommentar hinzu.
Klicken Sie auf Speichern.
SQL
Führen Sie den folgenden Befehl in einem Notizbuch oder dem SQL-Abfrage-Editor für Databricks aus.
CREATE CONNECTION IF NOT EXISTS <connection-name> TYPE hive_metastore
OPTIONS (builtin true);
Schritt 2: Erstellen externer Speicherorte für Daten in Ihrem internen Legacy-Hive-Metaspeicher
In diesem Schritt konfigurieren Sie einen externen Speicherort im Unity-Katalog, um den Zugriff auf die Cloudspeicherorte zu steuern, die die in Ihrem älteren internen Hive-Metaspeicher registrierten Daten enthalten.
Externe Speicherorte sind sicherungsfähige Unity Catalog-Objekte, die Speicheranmeldeinformationen mit Cloudspeichercontainerpfaden verknüpfen. Weitere Informationen finden Sie unter Externe Speicherorte und Speicheranmeldeinformationen.
Anforderungen
Informationen zu Cloudspeicher- und Azure Databricks-Berechtigungsanforderungen finden Sie unter "Bevor Sie beginnen" in Erstellen eines externen Speicherorts zum Verbinden des Cloudspeichers mit Azure Databricks.
Wenn Sie einen externen Speicherort für den älteren DBFS-Stamm Ihres Arbeitsbereichs erstellen, lesen Sie stattdessen "Bevor Sie beginnen" in Erstellen eines externen Speicherorts für Daten im DBFS-Stamm-.
Optionen zum Erstellen des externen Speicherorts
Der Prozess, den Databricks für die Erstellung eines externen Speicherorts im Unity-Katalog empfiehlt, hängt von Ihrer Situation ab:
- Wenn Sie einen internen Databricks-Hive-Metastore verbinden, der Daten in DBFS-Bereitstellungen oder im DBFS-Stamm speichert, erstellen Sie den externen Speicherort mithilfe des Katalog-Explorers, und verwenden Sie die Option Aus DBFS-Bereitstellung kopieren. Folgen Sie den Anweisungen in Erstellen eines externen Speicherorts manuell mithilfe des Katalog-Explorers oder Erstellen eines externen Speicherorts für Daten im DBFS-Stamm-.
- Andernfalls können Sie entweder Katalog-Explorer- oder SQL-Befehle verwenden. Befolgen Sie die Anweisungen in Manuelles Erstellen eines externen Speicherorts mithilfe des Katalog-Explorers oder Erstellen eines externen Speicherorts mithilfe von SQL-.
Fallbackmodus für externe Speicherorte aktivieren
Nachdem Sie einen externen Speicherort in Unity Catalog erstellt haben, wird der Zugriff auf den Pfad, der durch diesen externen Speicherort dargestellt wird, durch Unity Catalog-Berechtigungen erzwungen, wenn Sie Abfragen auf Unity Catalog-fähigen Computeressourcen ausführen (Einzelbenutzende, freigegeben oder SQL-Warehouse). Dies kann vorhandene Workloads unterbrechen, die nicht über die richtigen Unity-Katalogberechtigungen für den Zugriff auf den Pfad verfügen.
Wenn sich ein externer Speicherort im Fallbackmodus befindet, überprüft das System zunächst die Unity Catalog-Berechtigungen des abfragenden Prinzipals für den Speicherort, und falls dies nicht gelingt, greift es auf bestehende Anmeldeinformationen zurück, die auf Cluster- oder Notebook-Ebene gelten, z. B. Instanzprofile oder Apache Spark-Konfigurationseinstellungen, damit Ihre bestehenden Workloads weiterhin unterbrechungsfrei ausgeführt werden.
Der Fallbackmodus ist praktisch, wenn Sie dabei sind, Ihre älteren Workloads zu migrieren. Nachdem Sie Ihre Workloads so aktualisiert haben, dass sie erfolgreich mit Unity-Katalogberechtigungen ausgeführt werden, sollten Sie den Fallbackmodus deaktivieren, um zu verhindern, dass ältere clusterbezogene Anmeldeinformationen verwendet werden, um die Unity Catalog-Datengovernance zu umgehen.
Sie können den Fallbackmodus mithilfe des Katalog-Explorers oder der REST-API für externe Speicherorte des Unity Catalog aktivieren.
Berechtigungen erforderlich: Besitzer des externen Speicherorts.
Katalog-Explorer
- Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf
Katalog.
- Klicken Sie auf der Seite Schnellzugriff auf Externe Daten >.
- Wählen Sie den externen Speicherort aus, den Sie aktualisieren möchten.
- Aktivieren Sie den Umschalter für den Fallbackmodus, und klicken Sie auf Aktivieren, um dies zu bestätigen.
API
In den folgenden curl-Beispielen wird gezeigt, wie Sie den Fallbackmodus aktivieren, wenn Sie einen externen Speicherort erstellen und einen vorhandenen externen Speicherort aktualisieren.
Erstellen eines neuen externen Speicherorts:
curl -X POST -H 'Authorization: Bearer <token>' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations \
--data
'{
"name": "fallback_mode_enabled_external_location",
"url": "abfss://container-name@storage-account.dfs.core.windows.net/external_location_container/url",
"credential_name": "external_location_credential",
"fallback": true
"skip_validation": true
}'
Aktualisieren eines externen Speicherorts:
curl -X PATCH \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations/<external-location-name> \
--data
'{
"comment": "fallback mode enabled",
"fallback": true
}'
Schritt 3: Erstellen eines Verbundkatalogs
In diesem Schritt verwenden Sie die Verbindung, die Sie in Schritt 1 erstellt haben, um einen Verbundkatalog im Unity-Katalog zu erstellen, der auf den externen Speicherort verweist, den Sie in Schritt 2 erstellt haben. Ein Verbundkatalog ist eine Art von Fremdkatalog, wobei es sich wiederum um ein sicherungsfähiges Objekt in Unity Catalog handelt, das eine Datenbank oder einen Katalog in einem externen Datensystem spiegelt, sodass Sie in Ihrem Azure Databricks-Arbeitsbereich Abfragen für diese Daten ausführen können, wobei der Zugriff von Unity Catalog verwaltet wird. In diesem Fall ist der gespiegelte Katalog Ihre Daten, die in einem Hive-Metaspeicher registriert sind.
Jedes Mal, wenn ein Benutzer oder Workflow mit dem Verbundkatalog interagiert, werden Metadaten aus dem Hive-Metaspeicher synchronisiert.
Anforderungen
Berechtigungsanforderungen:
So erstellen Sie den Fremdkatalog:
- Die
CREATE CATALOG
-Berechtigungen für Ihren Unity Catalog-Metastore. - Entweder die Eigentümerschaft an der Verbindung oder die
CREATE FOREIGN CATALOG
-Berechtigung für die Verbindung. - Um autorisierte Pfade für den fremden Katalog einzugeben, müssen Sie über die
CREATE FOREIGN SECURABLE
Berechtigungen für einen externen Speicherort verfügen, der diese Pfade abdeckt. Der Besitzer des externen Speicherorts verfügt standardmäßig über dieses Privileg.
So arbeiten Sie mit dem fremden Katalog:
- Eigentümerschaft des Katalogs oder
USE CATALOG
Computeanforderungen:
- So erstellen Sie den Katalog mithilfe des Katalog-Explorers: keine Berechnung erforderlich.
- So erstellen Sie den Katalog mit SQL: Databricks Runtime 13.3 LTS oder höher.
- Zur Verwendung des Katalogs: ein freigegebener Cluster unter Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 oder höher.
Erstellen des Fremdkatalogs
Zum Erstellen eines fremden Katalogs können Sie den Katalog-Explorer oder den SQL-Befehl CREATE FOREIGN CATALOG
in einem Azure Databricks-Notizbuch oder dem SQL-Abfrage-Editor verwenden.
Anmerkung
Sie können auch die Unity-Katalog-API verwenden. Siehe Erstellen eines Katalogs in der Databricks-REST-API-Referenz.
Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf
Katalogsymbol, um den Katalog-Explorer zu öffnen.
Klicken Sie auf der Seite Schnellzugriff auf die Schaltfläche Daten hinzufügen, und wählen Sie Katalog hinzufügen aus.
Geben Sie einen Katalognamen ein, und wählen Sie Fremd als Typ aus.
Wählen Sie die Verbindung aus, die Sie in Schritt 1 im Dropdown-Menü erstellt haben.
Geben Sie im Feld Autorisierte Pfade Pfade zu den Cloudspeicherorten ein, die Sie in Schritt 2 als externe Speicherorte definiert haben. Beispiel:
abfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance
.Autorisierte Pfade sind nur eine zusätzliche Sicherheitsebene für Verbundkataloge. Siehe Was sind autorisierte Pfade?.
Klicken Sie auf Erstellen.
(Optional) Klicken Sie auf Konfigurieren, um einen Assistenten zu öffnen, der Sie durch das Erteilen von Berechtigungen für den Katalog und das Hinzufügen von Tags führt. Sie können diese Schritte auch später ausführen.
Siehe Verwalten von Berechtigungen im Unity-Katalog und Anwenden von Tags auf Unity-Katalog sicherbare Objekte.
(Optional) Binden Sie den Katalog an bestimmte Arbeitsbereiche.
Standardmäßig können Kataloge von jedem Arbeitsbereich aus aufgerufen werden, der dem Unity-Katalogmetastore zugeordnet ist (durch Benutzerrechte eingeschränkt). Wenn Sie den Zugriff nur aus bestimmten Arbeitsbereichen zulassen möchten, wechseln Sie zur Registerkarte Arbeitsbereiche, und weisen Sie Arbeitsbereiche zu. Siehe Einschränken des Katalogzugriffs auf bestimmte Arbeitsbereiche.
Füllen Sie den Verbundkatalog mit den Metadaten des Hive-Metaspeichers auf.
Jedes Mal, wenn ein Benutzer oder Workflow mit dem Verbundkatalog interagiert, werden Metadaten aus dem Hive-Metaspeicher synchronisiert. Die erste Interaktion füllt den Katalog im Unity-Katalog auf und macht den Inhalt in der Benutzeroberfläche des Katalog-Explorers sichtbar. Sie können den Katalog auffüllen, indem Sie eine unterstützte Computeressource im Katalog-Explorer auswählen und starten. Sie müssen der Katalogbesitzer (den Sie aufgrund des Erstellens des Katalogs sind) oder ein Benutzer mit den
USE CATALOG
Berechtigungen sein.Führen Sie den folgenden SQL-Befehl in einem Notizbuch oder dem SQL-Abfrage-Editor aus. Elemente in Klammern sind optional. Ersetzen Sie die Platzhalterwerte:
<catalog-name>
: Name für den Katalog in Azure Databricks.<connection-name>
: Der Name des Verbindungsobjekts, das Sie in Schritt 1 erstellt haben.<path1>,<path2>
: Pfade zu den Cloudspeicherorten, die Sie in Schritt 2 als externe Speicherorte definiert haben. Beispiel:abfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance
. Autorisierte Pfade sind nur eine zusätzliche Sicherheitsebene für Verbundkataloge. Siehe Was sind autorisierte Pfade?.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name> OPTIONS (authorized_paths '<path1>,<path2>');
Jedes Mal, wenn ein Benutzer oder Workflow mit dem Verbundkatalog interagiert, werden Metadaten aus dem Hive-Metaspeicher synchronisiert.
Weitere Informationen finden Sie außerdem unter Verwalten von und Arbeiten mit Fremdkatalogen.