Fédération de catalogues Palantir Foundry
Aperçu
Cette fonctionnalité est en Aperçu public.
La fédération de catalogues Palantir Foundry permet à Unity Catalog de lire les tables Iceberg de Palantir Foundry directement depuis le stockage cloud.
Avec la fédération de catalogues, Unity Catalog accède aux tables Iceberg de Palantir Foundry dans le stockage cloud et la query s'exécute entièrement sur le compute Databricks. Les équipes de données peuvent découvrir, gouverner et interroger les données Palantir Foundry depuis Databricks sans créer de pipelines ETL. L'accès aux données est en lecture seule.
Avant de commencer
Examinez les conditions suivantes avant de configurer la fédération de catalogue Palantir Foundry.
Exigences relatives au Workspace :
- Le workspace doit être activé pour Unity Catalog. Voir Se familiariser avec Unity Catalog.
- Comme cette fonctionnalité est en version Public Preview, un administrateur de workspace doit l'activer depuis la page Workspace Previews . Consultez Gérer les aperçus au niveau du workspace.
Compute requis :
- Le compute Databricks doit utiliser Databricks Runtime 18 ou une version ultérieure.
- Les SQL Warehouse doivent être de type Pro ou Serverless.
- Les clusters dédiés (anciennement clusters mono-utilisateur) ne sont pas pris en charge.
Exigences réseau :
- Les plages d'adresses IP de sortie Databricks pour le plan de contrôle et le plan de données doivent être ajoutées à la liste d'autorisation dans Palantir Foundry. Voir Configuration de l'entrée dans Foundry et Recommandations réseau pour Lakehouse Federation.
Autorisations requises :
- Pour créer une connexion, vous devez être administrateur de métastore ou utilisateur disposant du privilège
CREATE CONNECTIONsur le métastore Unity Catalog attaché au workspace. - Pour créer un catalogue étranger, vous devez disposer de l'autorisation
CREATE CATALOGsur le métastore. Vous devez également être propriétaire de la connexion ou disposer du privilègeCREATE FOREIGN CATALOGsur celle-ci.
Exigences de Palantir Foundry :
- Les tables Palantir Foundry doivent être des tables Iceberg.
- Une application tierce Palantir Foundry pour l’authentification. Configurez l’application en fonction de la méthode d’authentification :
-
OAuth User to Machine (U2M) :
- L’application doit prendre en charge les périmètres
api:iceberg-readetoffline_access. - L’application doit avoir l’URL de redirection OAuth
https://<databricks-workspace-url>/login/oauth/lakehousefederation.htmlconfigurée, où<databricks-workspace-url>est le Hostname de votre workspace. - L'utilisateur qui authentifie la connexion doit avoir accès au dossier racine fédéré.
- L’application doit prendre en charge les périmètres
-
OAuth Machine to Machine (M2M) :
- L'application doit prendre en charge l'octroi d'identifiants client et la portée
api:iceberg-read. - L'utilisateur de service derrière l'application doit avoir accès au dossier racine fédéré.
- L'application doit prendre en charge l'octroi d'identifiants client et la portée
-
Étape 1 : créer une connexion
Autorisations requises : administrateur de métastore ou utilisateur disposant du privilège CREATE CONNECTION.
Une connexion spécifie un chemin d'accès et des identifiants pour accéder à un système externe. Il identifie l'hôte Palantir Foundry et les identifiants permettant de s'authentifier, et non le dossier à fédérer. Vous sélectionnez le dossier racine lorsque vous créez le catalogue étranger à l'étape 2 : Créer un catalogue étranger.
La fédération Palantir Foundry prend en charge deux méthodes d’authentification, décrites dans les sous-sections suivantes. Les deux nécessitent une application tierce Palantir Foundry.
Vous pouvez également utiliser l’API REST Databricks ou la CLI Databricks pour créer une connexion. Voir POST /api/2.1/unity-catalog/connections et les commandes Unity Catalog.
OAuth utilisateur à machine (U2M)
Avec OAuth User to Machine (U2M), Unity Catalog accède à Foundry en tant qu'utilisateur qui authentifie la connexion. Créez cette connexion à l'aide de l'Explorateur de catalogue. Cette méthode ne peut pas être configurée à l'aide de SQL, car le flux de connexion OAuth nécessite l'interface utilisateur.
- Dans votre workspace Databricks, cliquez sur
Catalog .
- En haut du volet Catalog, cliquez sur
l’icône Add et sélectionnez Create a connection dans le menu.
- Sur la page Bases des connexions de l’assistant Configurer la connexion , saisissez un Nom de connexion convivial.
- Sélectionnez un type de connexion Palantir Foundry et un type d'authentification OAuth utilisateur à machine , puis cliquez sur Suivant .
- Sur la page Authentication , saisissez le Host de votre instance Palantir Foundry, par exemple
your-company.palantirfoundry.com, et terminez le flux de connexion OAuth pour autoriser la connexion. - (Facultatif) Ajouter un commentaire.
- Cliquez sur Créer une connexion .
OAuth machine à machine (M2M)
Avec OAuth Machine to Machine (M2M), Unity Catalog accède à Foundry en tant qu'utilisateur de service derrière l'application tierce, en utilisant l'octroi d'identifiants client. Créez cette connexion à l'aide de l'Explorateur de catalogue ou de la commande SQL CREATE CONNECTION dans un notebook Databricks ou dans l'éditeur de requêtes Databricks SQL.
- Catalog Explorer
- SQL
-
Dans votre workspace Databricks, cliquez sur
Catalog .
-
En haut du volet Catalog, cliquez sur
l’icône Add et sélectionnez Create a connection dans le menu.
-
Sur la page Bases des connexions de l’assistant Configurer la connexion , saisissez un Nom de connexion convivial.
-
Sélectionnez un Type de connexion de Palantir Foundry et un Type d'authentification de OAuth machine à machine , puis cliquez sur Suivant .
-
Sur la page Authentification , saisissez ce qui suit :
- Host : le hostname de votre instance Palantir Foundry, par exemple
your-company.palantirfoundry.com. - ID client : l'ID client de votre application tierce Palantir Foundry.
- Secret du client : le secret du client provenant de votre application tierce Palantir Foundry.
- Host : le hostname de votre instance Palantir Foundry, par exemple
-
(Facultatif) Ajouter un commentaire.
-
Cliquez sur Créer une connexion .
Exécutez la commande suivante dans un Notebook ou dans l’éditeur de requêtes Databricks SQL. Remplacez les valeurs des espaces réservés :
<connection-name>: Nom de la connexion dans Databricks.<palantir-host>: Le hostname de votre instance Palantir Foundry, par exempleyour-company.palantirfoundry.com.<client-id>: l’ID client de votre application tierce Palantir Foundry.<secret-scope>et<secret-key>: le Secret Scope et la clé qui stockent le secret client de votre application tierce Palantir Foundry.
CREATE CONNECTION <connection-name> TYPE PALANTIR
OPTIONS (
host '<palantir-host>',
client_id '<client-id>',
client_secret secret('<secret-scope>','<secret-key>')
);
Databricks recommande d’utiliser des secrets plutôt que des chaînes en texte brut pour les valeurs sensibles comme le secret du client. Pour plus d’informations sur la configuration des secrets, consultez Secret management.
Étape 2 : Créer un catalogue étranger
Autorisations requises : autorisation CREATE CATALOG sur le métastore et soit la propriété de la connexion, soit le privilège CREATE FOREIGN CATALOG sur la connexion.
Un catalogue étranger reflète votre dossier racine Palantir Foundry afin que vous puissiez interroger et gérer l’accès à ses tables à l’aide de Databricks et Unity Catalog. Pour créer un catalogue étranger, utilisez la connexion que vous avez créée à l’ étape 1 : Créer une connexion.
Créez un catalogue étranger en utilisant Catalog Explorer ou la commande SQL CREATE FOREIGN CATALOG dans un Notebook Databricks ou dans l’éditeur de query Databricks SQL.
- Catalog Explorer
- SQL
- Dans votre workspace Databricks, cliquez sur
Catalog pour ouvrir l’Explorateur de catalogues.
- En haut du volet Catalogue, cliquez sur
l’icône Ajouter et sélectionnez Ajouter un catalogue dans le menu.
- Saisissez un Nom de catalogue et sélectionnez un Type de catalogue Étranger .
- Sélectionnez la connexion que vous avez créée à l'étape Étape 1 : Créer une connexion dans le menu déroulant.
- Pour Dossier racine , saisissez le dossier Palantir Foundry dans lequel Unity Catalog recherche les schémas et les tables à fédérer, par exemple
/space-name/project-name/folder-name. Consultez Mappage du dossier racine et de l’espace de noms. - Dans le champ Storage location , spécifiez un emplacement de stockage cloud accessible en écriture qui stocke les métadonnées des tables Iceberg dans ce catalogue. Le compte de service géré par Databricks doit disposer d’un accès en lecture-écriture à celui-ci. Cet emplacement peut être n’importe quel compartiment de stockage et n’a pas besoin d’être lié aux compartiments de table.
- Cliquez sur Créer un catalogue .
- Attribuez l’accès au workspace, un propriétaire et des privilèges comme demandé.
Exécutez la commande suivante dans un notebook ou dans l'éditeur de requêtes Databricks SQL. Les éléments entre crochets sont facultatifs. Remplacez les valeurs des espaces réservés :
<catalog-name>: Nom du catalogue dans Databricks.<connection-name>: le nom de la connexion que vous avez créée à l'étape Étape 1 : créer une connexion.<root-folder>: dossier Palantir Foundry dans lequel Unity Catalog recherche des schémas et des tables à fédérer, par exemple/space-name/project-name/folder-name. Voir Mappage du dossier racine et de l’espace de noms.<storage-location>: un emplacement de stockage cloud accessible en écriture qui stocke les métadonnées des tables Iceberg dans ce catalogue. Le compte de service géré par Databricks doit disposer d’un accès en lecture-écriture à celui-ci. Cet emplacement peut être n’importe quel compartiment de stockage et n’a pas besoin d’être lié aux compartiments de table.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name>
USING CONNECTION <connection-name>
OPTIONS (
root_folder '<root-folder>',
storage_root '<storage-location>'
);
Unity Catalog découvre les dossiers et les tables sous le dossier racine:
- Les sous-dossiers Palantir Foundry deviennent des schémas Unity Catalog.
- Les tables Iceberg de Palantir Foundry deviennent des tables étrangères Unity Catalog.
Étape 3 : Accorder les autorisations et interroger le catalogue
Une fois la fédération de catalogues configurée, les utilisateurs doivent disposer des autorisations Unity Catalog appropriées pour accéder aux tables fédérées :
- Tous les utilisateurs ont besoin des autorisations
USE CATALOGetUSE SCHEMAsur le catalogue et le schéma, respectivement. - Pour lire à partir d’une table fédérée, les utilisateurs doivent disposer de l’autorisation
SELECT.
Pour plus d'informations sur les privilèges Unity Catalog et la manière de les accorder, consultez Gérer les privilèges dans Unity Catalog.
Une fois les autorisations accordées, les utilisateurs peuvent effectuer des requêtes sur les tables étrangères depuis Databricks :
SELECT * FROM <catalog-name>.<schema>.<table>;
Dossier racine et mappage d'espace de noms
Lorsque vous créez un catalogue étranger, vous spécifiez un dossier Palantir Foundry (par exemple /space-name/project-name/folder-name) comme racine de fédération. Unity Catalog mappe ses sous-dossiers vers des schémas étrangers et les tables Iceberg situées dans ces sous-dossiers deviennent des tables étrangères dans Unity Catalog. Ceci mappe la hiérarchie Foundry plus profonde sur une structure cohérente à trois niveaux.
Par exemple, si vous fédérez le dossier racine /sales/orders:
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)
Le dossier que vous fédérez devient le catalogue, chaque sous-dossier devient un schéma et chaque table Iceberg devient une table étrangère.
Limitations
La fédération de catalogues Palantir Foundry présente les limitations suivantes :
- La fédération Palantir Foundry ne peut accéder qu'aux tables Iceberg. Les vues ne sont pas prises en charge.
- La connectivité privée au catalogue Palantir Foundry n'est pas prise en charge.
- Les noms de schéma et de table respectent les limitations de nommage standard de Unity Catalog. Databricks ne prend pas en charge les noms contenant un point (
.), un espace () ou une barre oblique (/). Voir Exigences de nommage des objets sécurisables. - Un dossier racine qui est un dossier à niveau unique dans Foundry (un dossier qui contient uniquement des tables et aucun sous-dossier à mapper aux schémas) ne fait apparaître aucun schéma ni aucune table. La fédération nécessite au moins un niveau de sous-dossiers pour mapper vers les schémas Unity Catalog.
Consultez Limitations pour les limitations liées à Iceberg.
Dépannage
La section suivante décrit les erreurs courantes et leurs résolutions.
Failed to create request URI ou dossier racine invalide
- L’option
root_folderne correspond à aucun chemin d’accès de dossier dans votre instance Palantir Foundry. Vérifiez le chemin d’accès.
L’authentification a échoué lors de la création de la connexion
Les identifiants de l'application tierce Palantir Foundry ne sont pas valides, ou l'identité d'authentification n'a pas accès au dossier racine fédéré. Confirmez l'ID client et le secret (pour OAuth M2M) ou réauthentifiez-vous (pour OAuth U2M), et vérifiez que l'identité dispose des autorisations sur le dossier racine. Voir Avant de commencer.