Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta página se proporciona información general sobre el uso de la API REST de Unity para acceder a tablas externas y administradas del catálogo de Unity desde clientes externos de Delta Lake. Para crear tablas externas de Delta Lake a partir de clientes externos, consulte Creación de tablas delta externas a partir de clientes externos.
Use el catálogo REST de Cosmos para leer las tablas registradas en el catálogo de Unity en Azure Databricks desde clientes de Cosmos compatibles, incluidos Apache Spark y DuckDB.
Para obtener una lista completa de las integraciones admitidas, consulte Integraciones del catálogo de Unity.
Consejo (if the meaning of "Tip" is advice or suggestion)
Para obtener información sobre cómo leer datos de Azure Databricks mediante Microsoft Fabric, consulte Uso de Microsoft Fabric para leer datos registrados en el Catálogo de Unity.
Lectura y escritura mediante la API REST de Unity
La API REST de Unity proporciona a los clientes externos acceso de lectura a las tablas registradas en el catálogo de Unity. Algunos clientes también admiten la creación de tablas y la escritura en tablas existentes.
Configure el acceso mediante la dirección URL del área de trabajo. El cliente spark del catálogo de Unity enruta automáticamente las solicitudes al punto de conexión de la API del catálogo de Unity adecuado.
Importante
La dirección URL del área de trabajo que se usa para el punto de conexión de la API REST de Unity debe incluir el identificador del área de trabajo. Sin el identificador del área de trabajo, las solicitudes de API pueden devolver una 303 redirección a una página de inicio de sesión en lugar de la respuesta esperada.
Para buscar la dirección URL del área de trabajo y el identificador del área de trabajo, consulte Nombres de instancia, direcciones URL e identificadores del área de trabajo.
Requisitos
Azure Databricks admite el acceso de la API REST de Unity a tablas como parte del catálogo de Unity. Debe tener habilitado el Catálogo de Unity en el área de trabajo para usar estos puntos de conexión. Los siguientes tipos de tabla son aptos para las lecturas de la API REST de Unity:
- Tablas administradas por el cCtálogo de Unity.
- Tablas externas de Unity Catalog.
Debe completar los pasos de configuración siguientes para configurar el acceso para leer objetos de Azure Databricks desde clientes de Delta Lake mediante la API REST de Unity:
- Habilite el acceso a datos externos para su metastore. Consulte Habilitar el acceso a datos externos en el metastore.
- Conceda al responsable de configurar la integración el
EXTERNAL USE SCHEMAprivilegio en el esquema que contiene los objetos. Vea Otorgar a un principal privilegios del Catálogo de Unity. - Autentíquese mediante uno de los métodos siguientes:
- Autenticación de máquina a máquina (M2M) de OAuth: admite la actualización automática de credenciales y tokens para trabajos de Spark de ejecución prolongada (>1 hora). Consulte Autorización del acceso de la entidad de servicio a Azure Databricks con OAuth.
- Token de acceso personal (PAT): consulte Autorización del acceso a los recursos de Azure Databricks.
Lectura de tablas de Delta Lake con Apache Spark mediante la autenticación de OAuth
Azure Databricks admite la autenticación de máquina a máquina (M2M) de OAuth. OAuth controla automáticamente la renovación de tokens para la autenticación del catálogo de Unity. Para los trabajos de larga duración que también requieren la renovación automática de credenciales de almacenamiento en la nube, habilite la spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled configuración en la configuración de Spark.
La autenticación de OAuth para clientes externos de Apache Spark requiere:
- Cliente Spark del Catálogo de Unity versión 0.3.1 o posterior (
io.unitycatalog:unitycatalog-spark) - Apache Spark 4.0 o posterior
- Delta Lake Spark 4.0.1 o posterior con compatibilidad con OAuth
- Un principal de servicio OAuth M2M con los permisos adecuados. Consulte Autorización del acceso de la entidad de servicio a Azure Databricks con OAuth.
La siguiente configuración es necesaria para leer tablas administradas de Unity Catalog y tablas externas de Delta Lake con Apache Spark mediante la autenticación de 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>",
"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"
Sustituya las siguientes variables:
-
<uc-catalog-name>: El nombre del catálogo en Unity Catalog que contiene tus tablas. -
<oauth-token-endpoint>: dirección URL del punto de conexión del token de OAuth. Para construir esta dirección URL:- Busque el identificador de la cuenta de Azure Databricks. Consulte Localiza tu ID de cuenta.
- Use el formato :
https://accounts.cloud.databricks.com/oidc/accounts/<account-id>/v1/token
-
<oauth-client-id>: identificador de cliente de OAuth para el principal de servicio. Consulte Autorización del acceso de la entidad de servicio a Azure Databricks con OAuth. -
<oauth-client-secret>: secreto de cliente de OAuth para el principal de servicio. Consulte Autorización del acceso de la entidad de servicio a Azure Databricks con OAuth.
-
<workspace-url>: la dirección URL del área de trabajo de Azure Databricks, incluido el identificador del área de trabajo. Por ejemplo:adb-1234567890123456.12.azuredatabricks.net.
Nota:
Las versiones del paquete mostradas anteriormente son actuales a partir de la última actualización de esta página. Es posible que haya versiones más recientes disponibles. Compruebe que las versiones del paquete son compatibles con la versión de Spark.
Lectura de tablas de Delta Lake con Apache Spark mediante la autenticación PAT
Importante
Databricks recomienda usar OAuth en lugar de PAT para la autenticación de cuentas de usuario, ya que OAuth proporciona una mayor seguridad. Para obtener información sobre cómo autenticarse con una cuenta de usuario de Databricks mediante OAuth, consulte Autorización del acceso de usuario a Azure Databricks con OAuth.
Configuración
Los siguientes paquetes o JAR deben incluirse en la configuración de Spark:
-
Delta Lake Spark (
io.delta:delta-spark): proporciona compatibilidad con Delta Lake para Apache Spark. -
Unity Catalog Spark Connector (
io.unitycatalog:unitycatalog-spark): conecta Apache Spark a Unity Catalog. -
Conector de almacenamiento en la nube: necesario para acceder al almacenamiento de objetos en la nube que respalda las tablas. El conector depende del proveedor de nube:
-
AWS:
org.apache.hadoop:hadoop-aws: proporciona compatibilidad con el sistema de archivos S3. -
Azure:
org.apache.hadoop:hadoop-azureproporciona compatibilidad con Azure Data Lake Storage Gen2. -
GCP: JAR:
gcs-connectorproporciona compatibilidad con Google Cloud Storage. Descargue el archivo JAR por separado y haga referencia a él mediantespark.jars.
-
AWS:
Para obtener configuraciones adicionales específicas de la nube, consulte la documentación de OSS del Catálogo de Unity.
"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>",
"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"
:::
variables
Sustituya las siguientes variables en la configuración:
-
<uc-catalog-name>: El nombre del catálogo en Unity Catalog que contiene tus tablas. -
<token>: token de acceso personal (PAT) para el usuario principal que configura la integración.
-
<workspace-url>: la dirección URL del área de trabajo de Azure Databricks, incluido el identificador del área de trabajo. Por ejemplo:adb-1234567890123456.12.azuredatabricks.net.
Renovación de credenciales
Para habilitar la renovación automática de credenciales para trabajos de ejecución prolongada, agregue la siguiente configuración:
"spark.sql.catalog.<catalog-name>.renewCredential.enabled": true
Nota:
Las versiones del paquete mostradas anteriormente son actuales a partir de la última actualización de esta página. Es posible que haya versiones más recientes disponibles. Compruebe que las versiones del paquete son compatibles con las versiones de Databricks Runtime y Spark.