Compartir vía


Actualización de un área de trabajo de Azure Databricks al catálogo de Unity

En esta página se proporciona información general sobre cómo actualizar un área de trabajo que no es del catálogo de Unity al catálogo de Unity. También proporciona instrucciones para migrar del metastore heredado de Hive, DBFS y las versiones no compatibles de Databricks Runtime.

Información general sobre los pasos de actualización

Para actualizar al catálogo de Unity, debe:

  1. Aprovisione identidades (usuarios, grupos y entidades de servicio) directamente en la cuenta de Azure Databricks, si aún no lo está haciendo. Desactive cualquier aprovisionamiento de identidades de nivel de área de trabajo.
  2. Convierta los grupos locales del área de trabajo en grupos de nivel de cuenta. Unity Catalog centraliza la administración de identidades en el nivel de cuenta.
  3. Conecte el área de trabajo a un metastore del Catálogo de Unity. Si no existe ningún metastore para la región del área de trabajo, un administrador de la cuenta debe crear uno.
  4. Actualice las tablas y vistas administradas en el metastore de Hive al catálogo de Unity.
  5. Conceda a los usuarios, grupos o entidades de servicio en el nivel de cuenta acceso a las tablas actualizadas.
  6. Actualice las consultas y los trabajos para que hagan referencia a las nuevas tablas del catálogo de Unity en lugar de a las antiguas tablas del metastore de Hive.
  7. Migre archivos, cuadernos y scripts de DBFS.
  8. Actualice los recursos de proceso activos a las versiones admitidas de Databricks Runtime.
  9. Desactive el acceso a funcionalidades antiguas en las áreas de trabajo. Consulte Deshabilitar el acceso a características heredadas en las áreas de trabajo.

UCX, un proyecto de Databricks Labs, proporciona herramientas que le ayudan a actualizar el área de trabajo que no es Unity-Catalog a Unity Catalog. UCX es una buena opción para migraciones a mayor escala. Consulte Uso de utilidades de UCX para actualizar el área de trabajo a Unity Catalog.

Antes de empezar

Antes de empezar, debe familiarizarse con los conceptos básicos de Unity Catalog, incluidos los metastores y el almacenamiento administrado. Consulte ¿Qué es Unity Catalog?

También debe confirmar que cumple los siguientes requisitos:

  • Para la mayoría de los pasos de configuración, debe ser administrador de la cuenta de Azure Databricks. Para cualquier tarea que siga para la que haya otros requisitos de permisos, se muestran en la documentación específica de la tarea.

    El primer administrador de cuentas de Azure Databricks debe ser un administrador global de Microsoft Entra ID en el momento en que inicie sesión por primera vez en la consola de la cuenta de Azure Databricks. Tras el primer inicio de sesión, ese usuario se convierte en administrador de cuentas de Azure Databricks y ya no necesita el rol de administrador global de Microsoft Entra ID para acceder a la cuenta de Azure Databricks. El primer administrador de cuenta puede asignar usuarios del inquilino de Microsoft Entra ID como administradores de cuenta adicionales, quienes a su vez pueden asignar más administradores de cuenta. Los administradores de cuentas adicionales no requieren roles específicos en Microsoft Entra ID.

  • Las áreas de trabajo que adjunte al metastore deben estar en el plan Premium de Azure Databricks.

Actualización a demostraciones del catálogo de Unity

Vea las siguientes demostraciones breves guiadas para ver las tareas de actualización clave en acción. Cada demostración cubre un paso específico y vínculos a documentación detallada cuando corresponda.

Como alternativa, puede seguir la demostración Usar UCX para actualizar al catálogo de Unity.

Aprovisione usuarios, grupos y entidades de servicio en su cuenta

El Catálogo de Unity hace referencia a identidades a nivel de cuenta. Antes de adjuntar un metastore al área de trabajo, debe hacer lo siguiente:

Conversión de grupos locales del área de trabajo en grupos de nivel de cuenta

Consulte Migración de grupos locales del área de trabajo a grupos de cuentas.

Adjunta tu área de trabajo a un almacén de metadatos

Si el área de trabajo no se ha habilitado automáticamente para Unity Catalog (asociada a un metastore), el siguiente paso depende de si ya tiene definido un metastore de Unity Catalog para la región del área de trabajo:

Actualizar las tablas del metastore de Hive a tablas del catálogo de Unity

Si el área de trabajo estaba en servicio antes de que se habilitara para el catálogo de Unity, tiene un metastore de Hive que probablemente contenga los datos que desea seguir usando. Databricks recomienda actualizar las tablas administradas por el metastore de Hive al metastore de Unity Catalog.

Opción 1: Federar y actualizar tablas externas

El enfoque recomendado es federar primero el metastore de Hive como catálogo externo y, a continuación, actualizar las tablas externas en su lugar. Este proceso de dos pasos permite migrar tablas sin movimiento de datos al tiempo que conserva el historial de tablas, la configuración, los permisos y las vistas.

Primero, federa tu metastore de Hive como un catálogo externo en Unity Catalog. Esto le permite acceder a las tablas existentes a través del catálogo de Unity y prepararlas para actualizarlas.

Para obtener instrucciones para federar el metastore de Hive, consulte Federación de metastore de Hive: habilitar el Catálogo de Unity para gestionar las tablas registradas en un metastore de Hive.

Nota:

Si decide no actualizar las tablas y desea seguir trabajando con el catálogo federado de forma permanente, puede hacerlo. Sin embargo, Databricks recomienda completar la actualización para aprovechar al máximo las características del catálogo de Unity.

Después de federar el metastore de Hive, puede actualizar las tablas externas a tablas de Catálogo de Unity sin ningún movimiento de datos. Este flujo de trabajo actualiza las tablas en su lugar, conservando el historial de tablas, la configuración, los permisos y las vistas.

Para actualizar una tabla externa a una tabla administrada del catálogo de Unity, ejecute el siguiente comando:

ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET MANAGED;

Databricks recomienda actualizar a una tabla administrada para desbloquear la optimización predictiva de Unity Catalog, que incluye mantenimiento automático (compactación, agrupación en clústeres, eliminación de datos obsoletos) y mejoras de rendimiento. Para actualizar una tabla externa a una tabla externa del catálogo de Unity, ejecute el siguiente comando:

ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET EXTERNAL;

Una vez migradas las tablas y ya no depende de la federación con su catálogo externo, puede quitar la conexión:

ALTER CATALOG <foreign_catalog> DROP CONNECTION;

Para obtener más información sobre este flujo de trabajo, consulte Conversión de una tabla externa en una tabla de catálogo de Unity administrada.

Opción 2: Actualizar tablas directamente

Si decide no usar el flujo de trabajo de actualización basado en federación, puede actualizar las tablas directamente mediante SYNC o CREATE TABLE AS SELECT. Consulte Actualizar tablas y vistas de Hive en el Unity Catalog.

Concesión de acceso a tablas actualizadas o federadas

Conceda a los usuarios, grupos o entidades de servicio en el nivel de cuenta acceso a las tablas nuevas. Consulte Administración de privilegios en Unity Catalog.

Actualiza las consultas y los trabajos para que funcionen con tus tablas mejoradas y rutas de acceso a los datos

Mientras realiza la transición desde el metastore local de Hive del área de trabajo al catálogo de Unity, puede seguir usando consultas y trabajos que hacen referencia a los datos registrados en el metastore de Hive, usando la federación de metastore de Hive (recomendado) o la sintaxis descrita en Trabajo con el metastore de Hive heredado junto con el catálogo de Unity. Sin embargo, finalmente debe actualizar todas las consultas y trabajos para usar tablas y sintaxis del catálogo de Unity.

Del mismo modo, actualice las consultas y los trabajos que usan el acceso por ruta a archivos para usar volúmenes del Catálogo Unity en su lugar.

Para obtener recomendaciones detalladas, consulte Actualización de trabajos al actualizar áreas de trabajo heredadas al catálogo de Unity.

Deshabilitar el acceso a DBFS

Como parte de la migración del catálogo de Unity, Databricks recomienda deshabilitar el acceso a DBFS en las áreas de trabajo. Esto garantiza que todos los datos y flujos de trabajo se rigen por el catálogo de Unity y que aproveche al máximo las características del catálogo de Unity.

Puede usar los scripts del analizador de DBFS de Databricks Labs para examinar el uso actual de DBFS y decidir si desea registrar el recurso en su lugar (mediante una ubicación externa), migrar al catálogo de Unity o archivarlo si ya no lo necesita. Databricks Labs es un repositorio público de GitHub que databricks no admite directamente.

En las secciones siguientes se describe cómo migrar distintos recursos de DBFS al catálogo de Unity.

Migración de archivos almacenados en DBFS

Si tiene archivos sin procesar como Parquet, CSV, JSON o imágenes /FileStore en la raíz de DBFS (por ejemplo, en /mnt/... u otros directorios raíz de DBFS) o en el almacenamiento en la nube montado en DBFS (en ), migrelos mediante volúmenes de Catálogo de Unity y acceda a ellos mediante ubicaciones externas.

En los pasos siguientes se describe cómo migrar archivos de DBFS a volúmenes del catálogo de Unity. Para obtener más información sobre cuándo usar volúmenes frente a archivos de área de trabajo, consulte Recomendaciones para archivos en volúmenes y archivos del área de trabajo.

Paso 1: Configurar una ubicación externa

Para registrar los recursos en el catálogo de Unity, configure una ubicación externa del catálogo de Unity para el contenedor de almacenamiento en la nube o la ruta de acceso donde residen los archivos actualmente. Puede hacerlo mediante el Explorador de catálogos, comandos SQL, Terraform o la CLI de Azure Databricks.

Para obtener instrucciones detalladas, consulte Conexión al almacenamiento de objetos en la nube mediante el catálogo de Unity.

Paso 2: Crear un volumen

Los volúmenes del catálogo de Unity proporcionan una manera controlada de organizar los archivos. Databricks recomienda usar volúmenes para controlar todos los datos no tabulares. Puede crear un volumen externo en un esquema que haga referencia a una subruta de la ubicación externa. Por ejemplo:

USE CATALOG main;
USE SCHEMA data;
CREATE VOLUME IF NOT EXISTS raw_files
LOCATION 'my_data_loc/csv-files/';

Todos los archivos de esa ruta de acceso ahora son accesibles a través de la ubicación externa y se rigen por los permisos del catálogo de Unity.

Para obtener más información, vea ¿Qué son los volúmenes del Unity Catalog?.

Paso 3: Copiar archivos de la raíz de DBFS

Si los archivos se almacenaron anteriormente en la raíz de DBFS, cópielos en la ruta de acceso de almacenamiento en la nube. Por ejemplo, en un cuaderno:

dbutils.fs.cp(
  "dbfs:/FileStore/tables/data.csv",
  "/Volumes/main/data/raw_files/data.csv"
)

Sugerencia

Si tiene un gran número de archivos o archivos de más de unos GB, considere la posibilidad de usar la CLI de Azure Databricks o una copia distribuida mediante Apache Spark para paralelizar el movimiento. El comando de la CLI fs cp de Azure Databricks puede copiar directorios de forma recursiva.

Paso 4: Comprobar los archivos migrados

Después de migrar, enumera y lee archivos de volúmenes mediante comandos estándar.

# List files in the volume
dbutils.fs.ls("/Volumes/main/data/raw_files/")

# Read a CSV file into a DataFrame
df = spark.read.option("header", True).csv(
  "/Volumes/main/data/raw_files/2024-01-01-data.csv"
)

Este código requiere los permisos adecuados del catálogo de Unity en el volumen o la ubicación externa y un recurso de proceso que admita el catálogo de Unity. Unity Catalog exige que la entidad de seguridad que lee el archivo disponga de permisos READ en el volumen o la ubicación externa.

Paso 5: Limpieza de puntos de montaje de DBFS

Después de comprobar que los archivos de la nueva ubicación son accesibles, desmonte los puntos de montaje antiguos de DBFS para evitar confusiones o uso accidental:

dbutils.fs.unmount("/mnt/oldpath")

Considere la posibilidad de bloquear o eliminar datos en la raíz de DBFS si se ha movido, ya que dejar copias puede provocar actualizaciones incoherentes o riesgos de seguridad.

Migración de recursos del área de trabajo desde DBFS

Algunas áreas de trabajo tienen cuadernos, archivos de código o scripts de referencia almacenados en DBFS. Estos pueden incluir:

  • Cuadernos guardados como archivos HTML o DBC en /FileStore para compartir
  • Scripts de Python o archivos JAR usados en trabajos de Azure Databricks
  • Scripts de inicialización con ámbito de proceso (por ejemplo, dbfs:/databricks/init/...)

Los cuadernos y el código deben almacenarse como archivos de área de trabajo o en carpetas de Git, no en DBFS. DBFS no proporciona control de acceso por archivo y no debe usarse para el código fuente o los cuadernos.

  • Cuadernos: si tiene cuadernos como archivos en DBFS, impórtelos en el área de trabajo de Azure Databricks. Puede hacerlo manualmente mediante la función de importación de la interfaz de usuario o mediante la CLI. Asegúrese de que los permisos del cuaderno en el área de trabajo se establezcan correctamente para que el equipo pueda acceder. En el futuro, almacene cuadernos como objetos de área de trabajo o en carpetas de Git y use Git para el control de versiones.
  • Scripts del trabajo: si los trabajos están configurados para ejecutar un script de Python desde DBFS (por ejemplo, un trabajo con un tipo de tarea "Script de Python" que hace referencia a dbfs:/mnt/scripts/my_etl.py), mueva esos scripts a los archivos del espacio de trabajo. Administrarlos en una carpeta git para el control de versiones y el seguimiento de cambios.
  • Compilación de artefactos y bibliotecas: los recursos como los archivos JAR y las ruedas de Python deben almacenarse en volúmenes de Catálogo de Unity.
  • Scripts de inicialización limitados al proceso: los scripts de inicialización limitados al proceso deben almacenarse en volúmenes del Catálogo Unity. Consulte ¿Qué son los scripts de inicialización?.

Localización y migración de cómputo a las versiones y modos de acceso admitidos de Databricks Runtime

Nota:

En esta sección se incluyen consultas que acceden a la system.compute.clusters tabla. Para acceder a esta tabla del sistema, debe ser administrador de la cuenta de Azure Databricks o tener los permisos USE y SELECT concedidos en el esquema del sistema compute. Consulte Concesión de acceso a las tablas del sistema.

Como parte de la migración del catálogo de Unity, Databricks recomienda actualizar todos los procesos y trabajos a Databricks Runtime 13.3 LTS o versiones posteriores y usar los modos de acceso del catálogo de Unity.

Para revisar manualmente los recursos de cálculo en su espacio de trabajo, vaya a la página Compute del espacio de trabajo. En la sección Cálculo de propósito general, revise la versión de Databricks Runtime de cada cálculo. Ordene o filtre por versión para identificar los clústeres que ejecutan versiones inferiores a 13.3 LTS. Repita para la sección Cómputo de trabajo, ya que los trabajos también se pueden configurar para usar una versión determinada de Databricks Runtime.

Para buscar mediante programación versiones de ejecución de proceso por debajo de 13.3 LTS, consulte la system.compute.clusters tabla. Por ejemplo:

SELECT
  workspace_id,
  cluster_id,
  dbr_version
FROM system.compute.clusters
WHERE
  TRY_CAST(SPLIT(dbr_version, '\\.')[0] AS INT) < 13
  OR (
    TRY_CAST(SPLIT(dbr_version, '\\.')[0] AS INT) = 13
    AND TRY_CAST(SPLIT(dbr_version, '\\.')[1] AS INT) < 3
  );

Esto devolverá una lista de los recursos de cálculo generales y de trabajos que ejecutan versiones inferiores a 13.3 LTS.

Actualizar el cálculo a los modos de acceso admitidos

Si todavía tiene proceso en ejecución en modo de acceso compartido sin aislamiento, puede actualizarlo a los modos de acceso admitidos. Consulte Modos de acceso. Para consultar los recursos de cómputo que se ejecutan en modo de acceso compartido sin aislamiento, consulte la tabla system.compute.clusters. Por ejemplo:

SELECT
  workspace_id,
  cluster_id,
  dbr_version,
  data_security_mode
FROM system.compute.clusters
WHERE data_security_mode IN ('NONE','NO_ISOLATION')
LIMIT 100;

Deshabilitar el acceso a características heredadas en las áreas de trabajo

Una vez completados los pasos de migración anteriores, puede deshabilitar el acceso a las características heredadas de las áreas de trabajo.