Palantir-Foundry-Katalog-Föderation

Important

Dieses Feature befindet sich in der Public Preview.

Die Palantir Foundry-Katalogföderation ermöglicht es dem Unity-Katalog, Palantir Foundry Iceberg-Tabellen direkt aus dem Cloud-Speicher auszulesen.

Mit der Katalogföderation greift Unity Catalog auf die Palantir Foundry Iceberg-Tabellen im Cloud-Speicher zu, und die Abfrage läuft vollständig auf Azure Databricks Compute. Datenteams können Palantir Foundry-Daten von Azure Databricks entdecken, verwalten und abfragen, ohne ETL-Pipelines aufbauen zu müssen. Der Datenzugriff ist schreibgeschützt.

Bevor Sie anfangen

Überprüfen Sie die folgenden Anforderungen, bevor Sie die Palantir Foundry Katalogföderation einrichten.

Anforderungen an den Arbeitsbereich:

Computeanforderungen:

  • Azure Databricks Compute muss Databricks Runtime 18 oder höher verwenden.
  • SQL-Warehouses müssen pro oder serverless sein.
  • Dedizierte Cluster (früher Einzelbenutzer-Cluster) werden nicht unterstützt.

Netzwerkanforderungen:

Erforderliche Berechtigungen:

  • Um eine Verbindung zu erstellen, müssen Sie ein Metastore-Administrator oder ein Benutzer mit den CREATE CONNECTION Berechtigungen für den Unity-Katalog-Metastore sein, der dem Arbeitsbereich zugeordnet ist.
  • Um einen fremden Katalog zu erstellen, brauchst du die Erlaubnis CREATE CATALOG im Metastore. Du musst außerdem Eigentümer der Verbindung sein oder das CREATE FOREIGN CATALOG Privileg für sie besitzen.

Anforderungen der Palantir Foundry:

  • Die Palantir Foundry-Tabellen müssen Iceberg-Tabellen sein.
  • Eine Palantir Foundry Drittanbieter-Anwendung zur Authentifizierung. Konfigurieren Sie die Anwendung gemäß der Authentifizierungsmethode:
    • OAuth User to Machine (U2M):
      • Die Anwendung muss die Bereiche offline_access und api:iceberg-read unterstützen.
      • Die Anwendung muss die OAuth-Redirect-URL https://<databricks-workspace-url>/login/oauth/lakehousefederation.html konfiguriert haben, wobei <databricks-workspace-url> der Hostname Ihres Arbeitsbereichs ist.
      • Der Benutzer, der die Verbindung authentifiziert, muss Zugriff auf den federierten Root-Ordner haben.
    • OAuth Machine to Machine (M2M):
      • Die Anwendung muss den Client-Credentials-Grant und den Umfang api:iceberg-read unterstützen.
      • Der Dienstnutzer hinter der Anwendung muss Zugriff auf den federierten Root-Ordner haben.

Schritt 1: Eine Verbindung herstellen

Erforderliche Berechtigungen: Metastore-Administrator oder Benutzer mit dem Recht CREATE CONNECTION .

Eine Verbindung legt einen Pfad und Zugangsdaten für den Zugriff auf ein externes System fest. Es identifiziert den Palantir Foundry-Host und die zu authentifizierenden Zugangsdaten, nicht den Ordner zum Föderieren. Du wählst den Root-Ordner aus, wenn du den fremden Katalog in Schritt 2 erstellst: Einen fremden Katalog erstellen.

Die Palantir Foundry-Föderation unterstützt zwei Authentifizierungsmethoden, die in den folgenden Unterabschnitten beschrieben werden. Beide erfordern eine Drittanbieteranwendung von Palantir Foundry.

Note

Sie können auch die Databricks-REST-API oder die Databricks CLI verwenden, um eine Verbindung zu erstellen. Siehe POST /api/2.1/unity-catalog/connections und Unity Catalog-Befehle.

OAuth User to Machine (U2M)

Mit OAuth User to Machine (U2M) greift Unity Catalog als Benutzer auf Foundry zu, der die Verbindung authentifiziert. Stellen Sie diese Verbindung mit dem Katalog-Explorer her. Diese Methode kann nicht mit SQL eingerichtet werden, da der OAuth-Anmeldefluss die Benutzeroberfläche benötigt.

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.
  2. Klicken Sie oben im Katalogbereich auf das Symbol hinzufügen ", und wählen Sie im Menü " Verbindung erstellen " aus.
  3. Geben Sie auf der Seite Verbindungsgrundlagen des Assistenten Verbindung einrichten einen benutzerfreundlichen Verbindungsnamen ein.
  4. Wählen Sie einen Verbindungstyp von Palantir Foundry und einen Auth-Typ von OAuth User to Machine aus und klicken Sie dann auf Nächsten.
  5. Auf der Authentifizierungsseite geben Sie zum Beispiel den Host Ihrer Palantir Foundry-Instanz your-company.palantirfoundry.comein und schließen Sie den OAuth-Anmeldefluss durch, um die Verbindung zu autorisieren.
  6. (Optional) Fügen Sie einen Kommentar hinzu.
  7. Klicken Sie auf Verbindung herstellen.

OAuth Computer zu Computer (M2M)

Bei OAuth Computer zu Computer (M2M) greift Unity Catalog als der Servicebenutzer, der hinter der Drittanbieteranwendung steht, auf Foundry zu und verwendet dabei den Grant-Typ „Client Credentials“. Stellen Sie diese Verbindung mit Catalog Explorer oder dem CREATE CONNECTION SQL-Befehl in einem Azure Databricks-Notizbuch oder dem Databricks SQL-Abfrageeditor her.

Katalog-Explorer

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.
  2. Klicken Sie oben im Katalogbereich auf das Symbol hinzufügen ", und wählen Sie im Menü " Verbindung erstellen " aus.
  3. Geben Sie auf der Seite Verbindungsgrundlagen des Assistenten Verbindung einrichten einen benutzerfreundlichen Verbindungsnamen ein.
  4. Wählen Sie einen Verbindungstyp von Palantir Foundry und einen Auth-Typ von OAuth Machine to Machine und klicken Sie dann auf Nächsten.
  5. Geben Sie auf der Seite "Authentifizierung " Folgendes ein:
    • Host: Der Hostname deiner Palantir Foundry-Instanz, zum Beispiel your-company.palantirfoundry.com.
    • Client-ID: Die Client-ID aus Ihrer Palantir Foundry-Drittanbieter-Anwendung.
    • Kundengeheimnis: Das Kundengeheimnis aus Ihrer Palantir Foundry-Drittanbieter-Anwendung.
  6. (Optional) Fügen Sie einen Kommentar hinzu.
  7. Klicken Sie auf Verbindung herstellen.

SQL

Führen Sie in einem Notebook oder im Databricks SQL-Abfrage-Editor den folgenden Befehl aus. Ersetzen Sie folgende Platzhalterwerte:

  • <connection-name>: Name für die Verbindung in Azure Databricks.
  • <palantir-host>: Der Hostname deiner Palantir Foundry-Instanz, zum Beispiel your-company.palantirfoundry.com.
  • <client-id>: Die Client-ID von Ihrer Palantir Foundry-Drittanbieter-Anwendung.
  • <secret-scope> und <secret-key>: Der geheime Scope und der Schlüssel, in denen das Client-Secret aus Ihrer Palantir Foundry-Drittanbieteranwendung gespeichert ist.
CREATE CONNECTION <connection-name> TYPE PALANTIR
OPTIONS (
  host '<palantir-host>',
  client_id '<client-id>',
  client_secret secret('<secret-scope>','<secret-key>')
);

Databricks empfiehlt, dass Sie für sensible Werte wie das Clientgeheimnis Geheimnisse anstelle von Klartextzeichenfolgen verwenden. Informationen zum Einrichten von Geheimnissen finden Sie unter Verwaltung von Geheimnissen.

Schritt 2: Erstellen Sie einen ausländischen Katalog

Erforderliche Berechtigungen: CREATE CATALOG Berechtigung für den Metastore und entweder das Eigentum an der Verbindung oder das CREATE FOREIGN CATALOG Privileg für die Verbindung.

Ein fremder Katalog spiegelt Ihren Root-Ordner von Palantir Foundry, sodass Sie die Tabellen mit Azure Databricks und Unity Catalog abfragen und verwalten können. Um einen fremden Katalog zu erstellen, verwenden Sie die Verbindung, die Sie in Schritt 1 erstellt haben: Erstellen Sie eine Verbindung.

Erstellen Sie einen fremden Katalog mit Catalog Explorer oder dem CREATE FOREIGN CATALOG SQL-Befehl in einem Azure Databricks-Notizbuch oder dem Databricks SQL-Abfrageeditor.

Katalog-Explorer

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog zum Öffnen des Katalog-Explorers.
  2. Klicken Sie oben im Bereich Katalog auf das Symbol Symbol zum Hinzufügen bzw. PlussymbolHinzufügen, und wählen Sie im Menü Katalog hinzufügen aus.
  3. Geben Sie einen Katalognamen ein, und wählen Sie Fremd als Typ aus.
  4. Wählen Sie die Verbindung aus, die Sie in Schritt 1 erstellt haben: Erstellen Sie eine Verbindung im Dropdown-Menü.
  5. Für den Root-Ordner gibt es den Palantir Foundry-Ordner ein, in dem Unity Catalog nach Schemata und Tabellen zum Föderieren sucht, zum Beispiel /space-name/project-name/folder-name. Siehe Stammordner und Namespace-Zuordnung.
  6. Im Feld Speicherort geben Sie einen beschreibbaren Cloud-Speicherort an, der Metadaten für die Eisberg-Tabellen in diesem Katalog speichert. Das von Azure Databricks verwaltete Service-Konto muss Lese- und Schreibzugriff darauf haben. Dieser Ort kann jeder Aufbewahrungsbehälter sein und muss nicht mit den Tabellen-Buckets verbunden sein.
  7. Klicken Sie auf Katalog erstellen.
  8. Weisen Sie wie angegeben den Zugriff auf den Arbeitsbereich, einen Eigentümer und Berechtigungen zu.

SQL

Führen Sie in einem Notebook oder im Databricks SQL-Abfrage-Editor den folgenden Befehl aus. Elemente in Klammern sind optional. Ersetzen Sie folgende Platzhalterwerte:

  • <catalog-name>: Name für den Katalog in Azure Databricks.
  • <connection-name>: Der Name der Verbindung, die du in Schritt 1 erstellt hast: Stell eine Verbindung her.
  • <root-folder>: Der Palantir Foundry-Ordner, in dem der Unity-Katalog nach Schemata und Tabellen zum Föderieren sucht, zum Beispiel /space-name/project-name/folder-name. Siehe Stammordner und Namespace-Zuordnung.
  • <storage-location>: Ein Cloud-Speicherort mit Schreibzugriff, der Metadaten für die Iceberg-Tabellen in diesem Katalog speichert. Das von Azure Databricks verwaltete Service-Konto muss Lese- und Schreibzugriff darauf haben. Dieser Ort kann jeder Aufbewahrungsbehälter sein und muss nicht mit den Tabellen-Buckets verbunden sein.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name>
USING CONNECTION <connection-name>
OPTIONS (
  root_folder '<root-folder>',
  storage_root '<storage-location>'
);

Unity Catalog entdeckt die Ordner und Tabellen unter dem Root-Ordner:

  • Palantir Foundry-Unterordner werden zu Unity-Catalog-Schemata.
  • Palantir Foundry Iceberg-Tabellen werden zu Fremdtabellen im Unity Catalog.

Schritt 3: Erteile Berechtigungen und frage den Katalog ab

Nachdem Sie die Katalogfederation eingerichtet haben, müssen Benutzer die entsprechenden Unity-Katalog-Berechtigungen haben, um auf föderierte Tabellen zuzugreifen:

  • Alle Benutzer benötigen USE CATALOG- und USE SCHEMA-Berechtigungen für den Katalog bzw. das Schema.
  • Um aus einer föderierten Tabelle zu lesen, benötigen Benutzer die Berechtigung SELECT .

Weitere Informationen zu Unity-Katalogberechtigungen und deren Gewährung finden Sie unter Verwalten von Berechtigungen im Unity-Katalog.

Nachdem Sie Berechtigungen erteilt haben, können Benutzer die fremden Tabellen von Azure Databricks abfragen:

SELECT * FROM <catalog-name>.<schema>.<table>;

Stammordner und Namespace-Zuordnung

Wenn du einen fremden Katalog erstellst, gibst du einen Palantir Foundry-Ordner (zum Beispiel /space-name/project-name/folder-name) als Föderationswurzel an. Unity Catalog ordnet seine Unterordner fremden Schemata zu, und die Iceberg-Tabellen in diesen Unterordnern werden in Unity Catalog zu fremden Tabellen. Dies bildet die tiefer gegliederte Foundry-Hierarchie auf eine konsistente dreistufige Struktur ab.

Zum Beispiel, wenn du den Root-Ordner /sales/ordersföderierst:

Palantir Foundry object                       Unity Catalog object
────────────────────────────────────────────  ──────────────────────────────────────────────────
sales                    (Foundry Space)
└── orders               (Foundry Project)    <foreign-catalog>                        (Catalog)
    └── shipments        (Foundry Folder)     <foreign-catalog>.shipments              (Schema)
        └── line_items   (Iceberg Table)      <foreign-catalog>.shipments.line_items   (Table)

Der Ordner, den du föderierst, wird zum Katalog, jeder Unterordner zu einem Schema, und jede Iceberg-Tabelle wird zu einer fremden Tabelle.

Einschränkungen

Die Palantir Foundry Katalogföderation hat folgende Einschränkungen:

  • Die Palantir-Foundry-Föderation kann nur auf Iceberg-Tabellen zugreifen. Sichten werden nicht unterstützt.
  • Private Verbindung zum Palantir Foundry-Katalog wird nicht unterstützt.
  • Schema- und Tabellennamen folgen den standardmäßigen Namensbeschränkungen des Unity-Katalogs. Azure Databricks unterstützt keine Namen, die einen Punkt (.), Leerraum ( ) oder Vorwärtsschrägstrich (/) enthalten. Siehe Benennungsanforderungen für sicherungsfähige Objekte.
  • Ein Root-Ordner , der ein einstufiger Ordner in Foundry ist (ein Ordner, der nur Tabellen und keine Unterordner enthält, die auf Schemata abgebildet werden können), zeigt keine Schemata oder Tabellen. Die Föderation erfordert mindestens eine Unterordnerebene, damit diese Unity-Catalog-Schemas zugeordnet werden können.

Siehe Einschränkungen für Eisberg-bezogene Einschränkungen.

Troubleshooting

Der folgende Abschnitt beschreibt häufige Fehler und deren Lösungen.

Failed to create request URI oder ungültiger Root-Ordner

  • Die root_folder Option passt nicht zu einem Ordnerpfad in deiner Palantir Foundry-Instanz. Verifiziere den Weg.

Die Authentifizierung schlug beim Aufbau der Verbindung fehl

Die Drittanbieter-Anwendungszugangsdaten von Palantir Foundry sind nicht gültig, oder die authentifizierende Identität hat keinen Zugriff auf den föderierten Root-Ordner. Bestätigen Sie die Client-ID und das Geheimnis (für OAuth M2M) oder authentifizieren Sie sich erneut (für OAuth U2M) und überprüfen, ob die Identität eine Berechtigung im Root-Ordner hat. Weitere Informationen finden Sie unter Vorbereitung.