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.
Para obtener más información sobre los usos de ubicaciones externas y la relación entre las credenciales de almacenamiento y las ubicaciones externas, consulte Administración del acceso al almacenamiento en la nube mediante el catálogo de Unity.
Antes de empezar
Requisitos previos:
Debe crear el contenedor de almacenamiento de Azure Data Lake Storage Gen2 o el cubo de Cloudflare R2 que desea usar como ubicación externa antes de crear el objeto de ubicación externa en Azure Databricks.
Las cuentas de almacenamiento de Azure Data Lake Storage Gen2 que se usan como ubicaciones externas deben tener un espacio de nombres jerárquico.
Debe tener una credencial de almacenamiento definida en Azure Databricks que proporcione acceso a la ruta de acceso de ubicación de almacenamiento en la nube. Vea Creación de una credencial de almacenamiento para conectarse a Azure Data Lake Storage Gen2 y Creación de una credencial de almacenamiento para conectarse a Cloudflare R2.
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 tienenCREATE EXTERNAL LOCATION
en el metastore de forma predeterminada.
Creación manual de ubicaciones externas 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:
Inicie sesión en un área de trabajo vinculada al metastore.
En la barra lateral, haga clic en Catálogo.
En la página Acceso rápido, haga clic en el botón Datos >externos, vaya a la pestaña Ubicaciones externas y haga clic en Crear ubicación.
Escriba un nombre de ubicación externa.
Opcionalmente, copie la ruta de acceso del contenedor desde un punto de montaje existente (solo contenedores de Azure Data Lake Storage Gen2).
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>
or2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.Seleccione la credencial de almacenamiento que concede acceso a la ubicación externa.
(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.
Haga clic en Crear.
(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.
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
oCREATE EXTERNAL VOLUME
.
Para usar el Explorador de catálogos para conceder permisos:
- Haga clic en el nombre de la ubicación externa para abrir el panel de detalles.
- En la pestaña Permisos, haga clic en Conceder.
- 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. - Haga clic en Conceder.
- 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
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. Para obtener los permisos necesarios y los requisitos previos, consulte Antes de comenzar.
<location-name>
: nombre de la ubicación externa. Silocation_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>
or2://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 más información sobre cómo restringir otros tipos de acceso a datos por área de trabajo, consulte Limitación del acceso del catálogo a áreas de trabajo concretas.
Importante
Se hace referencia a los enlaces del área de trabajo en el momento en que se ejercen privilegios en la ubicación externa. Por ejemplo, si un usuario crea una tabla externa emitiendo la instrucción CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
desde el área de trabajo myWorkspace
, se realizan las siguientes comprobaciones de enlace del área de trabajo además de comprobaciones de privilegios de usuario habituales:
- ¿La ubicación externa abarca
'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
enlazada amyWorkspace
? - ¿Está enlazado el catálogo
myCat
amyWorkspace
con nivel de accesoRead & Write
?
Si la ubicación externa se desenlaza posteriormente de myWorkspace
, la tabla externa continúa funcionando.
Esta característica también le permite rellenar un catálogo desde un área de trabajo central y hacer que esté disponible para otras áreas de trabajo mediante enlaces de catálogo, sin tener que hacer que la ubicación externa esté disponible en esas otras á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
Inicie sesión en un área de trabajo vinculada al metastore.
En la barra lateral, haga clic en Catálogo.
En la página Acceso rápido, haga clic en el botón Datos >externos para ir a la pestaña Ubicaciones externas.
Seleccione la ubicación externa y vaya a la pestaña Áreas de trabajo.
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.
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.
Use el comando del
external-locations
grupo de comandosupdate
para establecer elisolation mode
de la ubicación externa enISOLATED
:databricks external-locations update <my-location> \ --isolation-mode ISOLATED \ --profile <profile-name>
El valor predeterminado de
isolation-mode
esOPEN
para todas las áreas de trabajo asociadas al metastore.Use el comando del
workspace-bindings
grupo de comandosupdate-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 establecerbinding_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
- Conceda a otros usuarios permiso para usar ubicaciones externas. Consulte Administrar ubicaciones externas.
- Defina ubicaciones de almacenamiento administradas mediante ubicaciones externas. Consulte Especificar una ubicación de almacenamiento administrada en el catálogo de Unity.
- Defina tablas externas mediante ubicaciones externas. Consulte Uso de tablas externas.
- Defina volúmenes externos mediante ubicaciones externas. Consulte ¿Qué son los volúmenes de Unity Catalog?.