Ajoutez une ressource de table Unity Catalog à une application Databricks
Ajoutez des tables Unity Catalog comme Ressources Databricks Apps afin que votre application puisse interroger et modifier les données stockées dans Unity Catalog avec gouvernance et contrôle d'accès. Les tables Unity Catalog fournissent un stockage de données structurées avec des autorisations granulaires, afin que votre application puisse lire et écrire des données en toute sécurité sans coder en dur les identifiants.
Exigences en matière de privilèges
Pour accéder à une table Unity Catalog, le Service Principal de l'application doit disposer du privilège USE CATALOG sur le catalogue parent, du privilège USE SCHEMA sur le schéma parent, et du privilège SELECT ou MODIFY sur la table. Lorsque vous ajoutez la ressource de table, Databricks accorde automatiquement ces privilèges au Service Principal de l'application.
Pour que cet octroi automatique réussisse, l'une des conditions suivantes doit être vraie pour chaque privilège :
- Pour
USE CATALOG: Soit tous les utilisateurs du compte disposent du privilègeUSE CATALOGsur le catalogue, soit vous disposez du privilègeMANAGEsur le catalogue. - Pour
USE SCHEMA: Soit tous les utilisateurs du compte disposent du privilègeUSE SCHEMAsur le schéma, soit vous disposez du privilègeMANAGEsur le schéma. - Pour
SELECTouMODIFY: soit tous les utilisateurs du compte disposent du privilègeSELECTouMODIFYsur la table, soit vous disposez du privilègeMANAGEsur la table.
Consultez la référence des privilèges Unity Catalog.
Ajouter une ressource de table Unity Catalog
Avant d'ajouter une table en tant que ressource, examinez les conditions préalables de la ressource d'application.
-
Dans la section Ressources de l'application lorsque vous créez ou modifiez une application, cliquez sur + Ajouter une ressource > table UC .
-
Choisissez une table Unity Catalog parmi les tables disponibles dans votre Workspace. La table doit déjà exister dans Unity Catalog.
-
Sélectionnez le niveau d’autorisation approprié pour votre application :
- Sélectionner : Accorde à l'application la permission de query et de lire des données de la table. Cela convient aux applications qui n'ont besoin que de lire des données.
- Modifier : Accorde à l'application l'autorisation d'insérer, de mettre à jour et de supprimer des données dans la table. Cette autorisation inclut implicitement
SELECT, de sorte que l'application peut également lire les données.
-
(Facultatif) Spécifiez une clé de ressource personnalisée, qui est la manière dont vous référencez la table dans la configuration de votre application. La clé default est
table.
MODIFY n'est pas disponible pour tous les types de table. Par exemple, les vues ne prennent pas en charge le privilège MODIFY. Si la table ne prend pas en charge MODIFY, seul SELECT est disponible.
Variables d'environnement
Lorsque vous déployez une application avec une Ressource de table Unity Catalog, Databricks expose le nom complet de la table à trois niveaux par le biais de variables d'environnement que vous pouvez référencer en utilisant le champ valueFrom.
Exemple de configuration :
env:
- name: UC_TABLE_NAME
valueFrom: table # Use your custom resource key if different
Utilisation de la table dans votre application :
import os
from databricks.sdk import WorkspaceClient
# Access the table name
table_name = os.getenv("UC_TABLE_NAME")
# Initialize workspace client
w = WorkspaceClient()
# Query the table using a SQL warehouse resource
result = w.statement_execution.execute_statement(
warehouse_id=os.getenv("DATABRICKS_WAREHOUSE_ID"), # Requires a SQL warehouse resource
statement=f"SELECT * FROM {table_name} LIMIT 10"
)
Pour plus d'informations, consultez Utiliser les variables d'environnement pour accéder aux ressources.
Supprimer une ressource de table Unity Catalog
Lorsque vous supprimez une ressource de table Unity Catalog d'une application, le Service Principal de l'application perd les autorisations SELECT, MODIFY et ALL PRIVILEGES sur la table. Databricks tente également de révoquer les autorisations hiérarchiques de catalogue et de schéma. La table elle-même reste inchangée et continue d'être disponible pour les autres utilisateurs et applications disposant des autorisations appropriées.
Bonnes pratiques
Considérez les points suivants lorsque vous travaillez avec les ressources de table Unity Catalog :
- Accorder des autorisations minimales. Utilisez
SELECT, à moins que votre application ne doive écrire des données dans la table. - Combinez les ressources de table avec une ressource de SQL Warehouse lorsque votre application doit exécuter des query SQL sur la table.
- Utilisez des Ressources de table distinctes pour différentes tables plutôt que d'accorder un accès large au niveau du schéma, afin que vous puissiez appliquer le principe du moindre privilège.
- Envisagez d'utiliser les volumes Unity Catalog pour les données non structurées et les tables Unity Catalog pour les données structurées.