Compartir a través de


Creación de una ubicación externa para conectar el almacenamiento en la nube a Azure Databricks

En este artículo se describe cómo configurar una ubicación externa en Unity Catalog para conectar el almacenamiento en la nube a Azure Databricks.

Las ubicaciones externas asocian las credenciales de almacenamiento del catálogo de Unity con contenedores de almacenamiento de objetos en la nube. Las ubicaciones externas se usan para definir ubicaciones de almacenamiento administradas para catálogos y esquemas, y para definir ubicaciones para tablas externas y volúmenes externos.

Puede crear una ubicación externa que haga referencia al almacenamiento en un contenedor de almacenamiento de Azure Data Lake Storage Gen2 o un cubo de Cloudflare R2.

Puede crear una ubicación externa mediante el Explorador de catálogos, la CLI de Databricks, comandos SQL en un cuaderno o una consulta SQL de Databricks o Terraform.

Nota:

Al definir un volumen, el acceso URI de nube a los datos de la ruta de acceso del volumen se rige por los permisos del volumen.

Antes de empezar

Requisitos previos:

Requisitos de permisos:

  • Debe tener el privilegio CREATE EXTERNAL LOCATION en el metastore y en la credencial de almacenamiento a la que se hace referencia en la ubicación externa. Los administradores de metastore tienen CREATE EXTERNAL LOCATION en el metastore de forma predeterminada.

Creación de una ubicación externa mediante el Explorador de catálogos

Puede crear una ubicación externa manualmente mediante el Explorador de catálogos.

Permisos y requisitos previos: consulte Antes de comenzar.

Para crear la ubicación externa:

  1. Inicie sesión en un área de trabajo vinculada al metastore.

  2. En la barra lateral, haga clic en Icono del catálogoCatálogo.

  3. Haga clic en el botón + Agregar y seleccione Agregar una ubicación externa.

  4. Escriba un nombre de ubicación externa.

  5. Opcionalmente, copie la ruta de acceso del contenedor desde un punto de montaje existente (solo contenedores de Azure Data Lake Storage Gen2).

  6. Si no va a copiar desde un punto de montaje existente, use el campo URL para escribir la ruta de acceso del contenedor de almacenamiento o cubo R2 que desea usar como ubicación externa.

    Por ejemplo, abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> o r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  7. Seleccione la credencial de almacenamiento que concede acceso a la ubicación externa.

  8. (Opcional) Si quiere que los usuarios tengan acceso de solo lectura a la ubicación externa, haga clic en Opciones avanzadas y seleccione Solo lectura. Para obtener más información, consulte Marcar una ubicación externa como solo lectura.

  9. Haga clic en Crear.

  10. (Opcional) Enlace la ubicación externa a áreas de trabajo específicas.

    De forma predeterminada, cualquier usuario con privilegios puede usar la ubicación externa en cualquier área de trabajo asociada al metastore. Si desea permitir el acceso solo desde áreas de trabajo específicas, vaya a la pestaña Áreas de trabajo y asigne áreas de trabajo. Consulte (Opcional) Asignar una ubicación externa a áreas de trabajo específicas.

  11. Conceda permiso para usar la ubicación externa.

    Para que cualquiera use la ubicación externa, debe conceder permisos:

    • Para usar la ubicación externa para agregar una ubicación de almacenamiento administrada al metastore, el catálogo o el esquema, conceda el privilegio CREATE MANAGED LOCATION.
    • Para crear tablas o volúmenes externos, conceda CREATE EXTERNAL TABLE o CREATE EXTERNAL VOLUME.

    Para usar el Explorador de catálogos para conceder permisos:

    1. Haga clic en el nombre de la ubicación externa para abrir el panel de detalles.
    2. En la pestaña Permisos, haga clic en Conceder.
    3. En el cuadro de diálogo Conceder en <external location>, seleccione usuarios, grupos o entidades de servicio en el campo Entidades de seguridad y seleccione el privilegio que quiera conceder.
    4. Haga clic en Conceder.

Creación de una ubicación externa mediante SQL

Para crear una ubicación externa mediante SQL, ejecute el siguiente comando en un cuaderno o en el editor de consultas SQL. Reemplace los valores de marcador de posición.

Permisos y requisitos previos: consulte Antes de comenzar.

  • <location-name>: nombre de la ubicación externa. Si location_name incluye caracteres especiales, como guiones (-), debe ir rodeado de acentos graves (` `). Vea Nombres.

  • <bucket-path>: ruta de acceso del inquilino en la nube a la que esta ubicación externa concede acceso. Por ejemplo, abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> o r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  • <storage-credential-name>: el nombre de la credencial de almacenamiento que autoriza la lectura y escritura en el contenedor de almacenamiento o la ruta de acceso del cubo. Si el nombre de la credencial de almacenamiento incluye caracteres especiales, como guiones (-), debe ir rodeado de acentos graves (` `).

CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];

Si desea limitar el acceso de ubicación externa a áreas de trabajo específicas de la cuenta, también conocidas como enlace de área de trabajo o aislamiento de ubicación externa, consulte (Opcional) Asignar una ubicación externa a áreas de trabajo específicas.

(Opcional) Asignación de una ubicación externa a áreas de trabajo específicas

Importante

Esta característica está en versión preliminar pública.

De forma predeterminada, se puede acceder a una ubicación externa desde todas las áreas de trabajo del metastore. Esto significa que si a un usuario se le ha concedido un privilegio (tal como READ FILES) en esa ubicación externa, podrá ejercer ese privilegio desde cualquier espacio de trabajo vinculado al metastore. Si usa áreas de trabajo para aislar el acceso a datos de usuario, es posible que desee permitir el acceso a una ubicación externa solo desde áreas de trabajo específicas. Esta característica se conoce como enlace del área de trabajo o aislamiento de ubicación externa.

Entre los casos de uso típicos para enlazar una ubicación externa a áreas de trabajo específicas se incluyen:

  • Asegurarse de que los ingenieros de datos que tengan el CREATE EXTERNAL TABLE privilegio en una ubicación externa que contengan datos de producción puedan crear tablas externas en esa ubicación solo en un área de trabajo de producción.
  • Asegurarse de que los ingenieros de datos que tienen el READ FILES privilegio en una ubicación externa que contiene datos confidenciales solo pueden usar áreas de trabajo específicas para acceder a esos datos.

Para obtener más información sobre cómo restringir otros tipos de acceso a datos por área de trabajo, consulte Ejemplo de enlace de catálogo de áreas de trabajo.

Enlace de una ubicación externa a una o varias áreas de trabajo

Para asignar una ubicación externa a espacios de trabajo específicos, puede utilizar el Explorador de catálogos o la CLI de Databricks.

Permisos necesarios: administrador de metastore o propietario de la ubicación externa.

Nota:

Los administradores de metastore pueden ver todas las ubicaciones externas de una tienda de metadatos mediante el Explorador de catálogos y los propietarios de ubicaciones externas pueden ver todas las ubicaciones externas que poseen en una tienda de metadatos, independientemente de si la ubicación externa está asignada al área de trabajo actual. Las ubicaciones externas que no están asignadas al área de trabajo aparecen atenuadas.

Explorador de catálogo

  1. Inicie sesión en un área de trabajo vinculada al metastore.

  2. En la barra lateral, haga clic en Icono del catálogoCatálogo.

  3. En la parte inferior de la pantalla, haga clic en Datos externos > Ubicaciones externas.

  4. Seleccione la ubicación externa y vaya a la pestaña Áreas de trabajo.

  5. En la pestaña Áreas de trabajo, desactive la casilla Todas las áreas de trabajo tienen acceso.

    Si su ubicación externa ya está vinculada a uno o varios espacios de trabajo, esta casilla ya estará desactivada.

  6. Haga clic en Asignar a áreas de trabajo y escriba o busque las áreas de trabajo que desea asignar.

Para revocar el acceso, vaya a la pestaña Áreas de trabajo, seleccione el área de trabajo y haga clic en Revocar. Para permitir el acceso desde todas las áreas de trabajo, active la casilla Todas las áreas de trabajo tienen acceso.

CLI

Hay dos grupos de comandos de la CLI de Databricks y dos pasos necesarios para asignar una ubicación externa a un área de trabajo.

En los ejemplos siguientes, reemplace <profile-name> con el nombre del perfil de configuración de autenticación de Azure Databricks. Debe incluir el valor de un token de acceso personal, además del nombre de la instancia del área de trabajo y el identificador de área de trabajo donde generó el token de acceso personal. Consulta Autenticación de token de acceso personal de Azure Databricks.

  1. Use el comando del external-locations grupo de comandos update para establecer el isolation mode de la ubicación externa en ISOLATED:

    databricks external-locations update <my-location> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    El valor predeterminado de isolation-mode es OPEN para todas las áreas de trabajo asociadas al metastore.

  2. Use el comando del workspace-bindings grupo de comandos update-bindings para asignar las áreas de trabajo a la ubicación externa:

    databricks workspace-bindings update-bindings external-location <my-location> \
    --json '{
      "add": [{"workspace_id": <workspace-id>}...],
      "remove": [{"workspace_id": <workspace-id>}...]
    }' --profile <profile-name>
    

    Use las propiedades "add" y "remove" para agregar o quitar enlaces de área de trabajo.

    Nota:

    El enlace de solo lectura (BINDING_TYPE_READ_ONLY) no está disponible para ubicaciones externas. Por lo tanto, no hay ninguna razón para establecer binding_type para el enlace de ubicaciones externas.

Para enumerar todas las asignaciones de área de trabajo de una ubicación externa, use el comando get-bindings del grupo de comandos workspace-bindings:

databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>

Consulte también Enlaces de área de trabajo en la referencia de la API de REST.

Desenlace una ubicación externa de un área de trabajo

Las instrucciones para revocar el acceso al área de trabajo a una ubicación externa mediante el Explorador de catálogos o el grupo de comandos de la CLI workspace-bindings se incluyen en Enlace de una ubicación externa a una o varias áreas de trabajo.

Pasos siguientes