Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Cette page fournit une vue d’ensemble de l’utilisation de l’API REST Unity pour accéder aux tables managées et externes du catalogue Unity à partir de clients Delta externes. Pour créer des tables Delta externes à partir de clients externes, consultez Créer des tables Delta externes à partir de clients externes.
Utilisez le catalogue REST Iceberg pour lire des tables inscrites dans le catalogue Unity sur Azure Databricks à partir de clients Iceberg pris en charge, notamment Apache Spark et DuckDB.
Pour obtenir la liste complète des intégrations prises en charge, consultez intégrations du catalogue Unity.
Conseil / Astuce
Pour plus d’informations sur la lecture des données Azure Databricks à l’aide de Microsoft Fabric, consultez Utiliser Microsoft Fabric pour lire des données inscrites dans le catalogue Unity.
Lecture et écriture à l’aide de l’API REST Unity
L’API REST Unity fournit aux clients externes un accès en lecture aux tables inscrites dans le catalogue Unity. Certains clients prennent également en charge la création de tables et l’écriture dans des tables existantes.
Configurez l’accès à l’aide du point de terminaison /api/2.1/unity-catalog.
Spécifications
Azure Databricks prend en charge l’accès de l’API REST Unity aux tables dans le cadre du catalogue Unity. Le catalogue Unity doit être activé dans votre espace de travail pour utiliser ces points de terminaison. Les types de tableau suivants sont éligibles pour les lectures de l’API REST Unity :
- Tables gérées par le catalogue Unity.
- Tables externes du catalogue Unity.
Vous devez suivre les étapes de configuration suivantes pour configurer l’accès aux objets Databricks en lecture à partir de clients Delta à l’aide de l’API REST Unity :
- Activez l’Accès à des données externes pour votre metastore. Consultez Activer l'accès aux données externes dans le metastore.
- Accordez au principal la configuration de l’intégration du
EXTERNAL USE SCHEMAprivilège sur le schéma contenant les objets. Consultez Accorder des privilèges de catalogue Unity principaux. - Authentifiez-vous à l’aide de l’une des méthodes suivantes :
- Jeton d’accès personnel (PAT) : consultez Autoriser l’accès aux ressources Azure Databricks.
- Authentification de machine à machine (M2M) OAuth : prend en charge l’actualisation automatique des informations d’identification et des jetons pour les travaux Spark de longue durée (>1 heure). Consultez Autoriser l’accès au principal de service à Azure Databricks avec OAuth.
Lire des tables Delta avec Apache Spark à l’aide de l’authentification PAT
La configuration suivante est nécessaire pour lire les tables Delta managées et externes du catalogue Unity avec Apache Spark à l’aide de l’authentification PAT :
"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>/api/2.1/unity-catalog",
"spark.sql.catalog.<uc-catalog-name>.token": "<token>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-azure:3.3.6"
Remplacez les variables suivantes :
-
<uc-catalog-name>: nom du catalogue dans le catalogue Unity qui contient vos tables. -
<workspace-url>: URL de l’espace de travail Azure Databricks. -
<token>: jeton d’accès personnel (PAT) pour la personne principale configurant l’intégration.
Pour activer le renouvellement automatique des informations d’identification pour les travaux de longue durée, ajoutez la configuration suivante :
"spark.sql.catalog.<catalog-name>.renewCredential.enabled": true
Note
Les versions de package indiquées ci-dessus sont actuelles à compter de la dernière mise à jour de cette page. Des versions plus récentes peuvent être disponibles. Vérifiez que les versions de package sont compatibles avec la version de Databricks Runtime et la version Spark.
Pour plus d’informations sur la configuration d’Apache Spark pour le stockage d’objets cloud, consultez la documentation du catalogue Unity OSS.
Lire des tables Delta avec Apache Spark à l’aide de l’authentification OAuth
Azure Databricks prend également en charge l’authentification de machine à machine (M2M) OAuth. OAuth gère automatiquement le renouvellement des jetons pour l’authentification du catalogue Unity. Pour les travaux de longue durée qui nécessitent également un renouvellement automatique des informations d’identification de stockage cloud, activez le spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled paramètre dans votre configuration Spark.
L’authentification OAuth pour les clients Spark externes nécessite :
- Client Spark du catalogue Unity version 0.3.1 ou ultérieure (
io.unitycatalog:unitycatalog-spark) - Apache Spark 4.0 ou version ultérieure
- Delta Spark 4.0.1 ou version ultérieure avec prise en charge d’OAuth
- Un principal de service OAuth M2M avec les autorisations appropriées. Consultez Autoriser l’accès au principal de service à Azure Databricks avec OAuth.
La configuration suivante est nécessaire pour lire les tables managées du catalogue Unity et les tables Delta externes avec Apache Spark à l’aide de l’authentification OAuth :
"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>/api/2.1/unity-catalog",
"spark.sql.catalog.<uc-catalog-name>.auth.type": "oauth",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientId": "<oauth-client-id>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientSecret": "<oauth-client-secret>",
"spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled": "true",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-azure:3.3.6"
Remplacez les variables suivantes :
-
<uc-catalog-name>: nom du catalogue dans le catalogue Unity qui contient vos tables. -
<workspace-url>: URL de l’espace de travail Azure Databricks. Consultez Noms d’instance, URL et ID d’espace de travail. -
<oauth-token-endpoint>: URL du point de terminaison de jeton OAuth. Pour construire cette URL :- Recherchez votre ID de compte Databricks. Consultez Localiser votre ID de compte.
- Utilisez le format :
https://accounts.cloud.databricks.com/oidc/accounts/<account-id>/v1/token
-
<oauth-client-id>: ID client OAuth pour votre principal de service. Consultez Autoriser l’accès au principal de service à Azure Databricks avec OAuth. -
<oauth-client-secret>: clé secrète client OAuth de votre principal de service. Consultez Autoriser l’accès au principal de service à Azure Databricks avec OAuth.
Note
Les versions de package indiquées ci-dessus sont actuelles à compter de la dernière mise à jour de cette page. Des versions plus récentes peuvent être disponibles. Vérifiez que les versions de package sont compatibles avec votre version Spark.