Aller au contenu principal

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ège USE CATALOG sur le catalogue, soit vous disposez du privilège MANAGE sur le catalogue.
  • Pour USE SCHEMA: Soit tous les utilisateurs du compte disposent du privilège USE SCHEMA sur le schéma, soit vous disposez du privilège MANAGE sur le schéma.
  • Pour SELECT ou MODIFY: soit tous les utilisateurs du compte disposent du privilège SELECT ou MODIFY sur la table, soit vous disposez du privilège MANAGE sur 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.

  1. Dans la section Ressources de l'application lorsque vous créez ou modifiez une application, cliquez sur + Ajouter une ressource > table UC .

  2. Choisissez une table Unity Catalog parmi les tables disponibles dans votre Workspace. La table doit déjà exister dans Unity Catalog.

  3. 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.
  4. (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.

remarque

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 :

YAML
env:
- name: UC_TABLE_NAME
valueFrom: table # Use your custom resource key if different

Utilisation de la table dans votre application :

Python
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.