Actualización de tablas y vistas en el catálogo de Unity

En este artículo se describe cómo actualizar tablas y vistas registradas en el metastore de Hive existente a Unity Catalog.

Importante

Como alternativa a los procedimientos manuales descritos en este artículo, Databricks Labs también proporciona el Proyecto UCX, un conjunto de flujos de trabajo y utilidades que puede usar para planear y ejecutar la actualización de tablas de un metastore de Hive a tablas del metastore de Unity Catalog. UCX también le ayuda a actualizar grupos de áreas de trabajo a grupos de nivel de cuenta y migrar credenciales para acceder a ubicaciones de almacenamiento. Para obtener más información, consulte Use las utilidades UCX para actualizar su área de trabajo a Unity Catalog.

Para determinar si una tabla está registrada actualmente en Unity Catalog, compruebe el nombre del catálogo. Las tablas del catálogo hive_metastore se registran en el metastore de Hive. Los demás catálogos enumerados se rigen por Unity Catalog.

Nota:

Unity Catalog administra particiones de forma diferente a Hive. Los comandos de Hive que manipulan directamente las particiones no se admiten en tablas administradas por Unity Catalog.

Actualización de un esquema o varias tablas al catálogo de Unity

Puede copiar esquemas completos (bases de datos) y varias tablas externas del metastore de Hive predeterminado en el metastore de Unity Catalog mediante el asistente para actualización de Explorador de catálogo.

Requisitos

Antes de empezar, debe disponer de lo siguiente:

  • Una credencial de almacenamiento que contenga la información sobre una entidad de servicio que esté autorizada para acceder a la ruta de acceso de la ubicación.
  • Una ubicación externa que haga referencia a la credencial de almacenamiento que acaba de crear y a la ruta de acceso a los datos del inquilino en la nube.
  • Permiso CREATE EXTERNAL TABLE en las ubicaciones externas de las tablas que se van a actualizar.

Proceso de actualización

  1. Haga clic en el icono CatálogoCatálogo de la barra lateral para abrir el Explorador de catálogo.

  2. Seleccione hive_metastore como catálogo y seleccione el esquema (base de datos) que quiere actualizar.

    Selección de base de datos

  3. Haga clic en Actualizar en la parte superior derecha de la vista de detalles del esquema.

  4. Seleccione todas las tablas que quiera actualizar y haga clic en Siguiente.

    Solo se pueden actualizar las tablas externas en formatos compatibles con el catálogo de Unity mediante el asistente para actualización.

  5. Establezca el catálogo de destino, el esquema (base de datos) y el propietario de cada tabla.

    Los usuarios podrán acceder a la tabla recién creada en el contexto de sus privilegios en el catálogo y esquema.

    Los propietarios de tablas tienen todos los privilegios de la tabla, incluidos SELECT y MODIFY. Si no selecciona un propietario, las tablas administradas se crean con usted como propietario. Por lo general, Databricks recomienda conceder la propiedad de la tabla a los grupos. Para obtener más información sobre la propiedad de objetos en el catálogo de Unity, consulte Administración de la propiedad de objetos del catálogo de Unity.

    Para asignar el mismo catálogo y esquema a varias tablas, seleccione las tablas y haga clic en el botón Establecer destino.

    Para asignar el mismo propietario a varias tablas, seleccione las tablas y haga clic en el botón Establecer propietario.

  6. Revise las configuraciones de las tablas. Para modificarlas, haga clic en el botón Anterior.

  7. Haga clic en Crear consulta para actualizar.

    Aparece un editor de consultas con las instrucciones SQL generadas.

  8. Ejecuta la consulta.

    Cuando se complete la consulta, los metadatos de cada tabla se habrán copiado del metastore de Hive en el catálogo de Unity. Estas tablas se marcan como actualizadas en el asistente para actualización.

  9. Defina el control de acceso específico con la pestaña Permisos de cada nueva tabla.

  10. Modifique las cargas de trabajo para que usen la tabla nueva.

Actualización de una sola tabla externa a Unity Catalog

Puede copiar una tabla externa desde el metastore de Hive predeterminado en el metastore del catálogo de Unity mediante Explorador de catálogo.

Requisitos

Antes de empezar, debe disponer de lo siguiente:

  • Una credencial de almacenamiento que contenga la información sobre una entidad de servicio o identidad administrada que esté autorizada para acceder a la ruta de acceso de la ubicación.
  • Una ubicación externa que haga referencia a la credencial de almacenamiento que acaba de crear y a la ruta de acceso a los datos del inquilino en la nube.
  • Permiso CREATE EXTERNAL TABLE en la ubicación externa de la tabla que se va a actualizar.

Proceso de actualización

Para actualizar una tabla externa:

  1. Haga clic en el icono CatálogoCatálogo de la barra lateral para abrir el Explorador de catálogo.

  2. Seleccione la base de datos y la tabla que desee actualizar.

  3. Haga clic en la acción Actualizar en la esquina superior derecha de la vista de detalles de la tabla.

  4. Seleccione el catálogo de destino, el esquema (base de datos) y el propietario.

    Los usuarios podrán acceder a la tabla recién creada en el contexto de sus privilegios en el catálogo y esquema.

    Los propietarios de tablas tienen todos los privilegios de la tabla, incluidos SELECT y MODIFY. Si no selecciona un propietario, la tabla administrada se crea con usted como propietario. Por lo general, Databricks recomienda conceder la propiedad de la tabla a los grupos. Para obtener más información sobre la propiedad de objetos en el catálogo de Unity, consulte Administración de la propiedad de objetos del catálogo de Unity.

  5. Haga clic en Actualizar.

    Los metadatos de la tabla se han copiado en Unity Catalog y se ha creado una nueva tabla. Ahora puede definir el control de acceso de forma pormenorizada en la pestaña Permisos.

  6. Modifique las cargas de trabajo existentes para que usen la tabla nueva.

    Nota:

    Si ya no necesita la tabla anterior, puede eliminarla del metastore de Hive. La eliminación de una tabla externa no modifica los archivos de datos del inquilino en la nube.

Actualización de una vista al catálogo de Unity

Después de actualizar todas las tablas de una vista a las que se hace referencia, al mismo metastore del catálogo de Unity, puede crear una vista que haga referencia a las tablas nuevas.

Actualización de una tabla a una tabla administrada de Unity Catalog

Para actualizar una tabla al catálogo de Unity como una tabla administrada:

  1. Consulte la tabla existente para crear una tabla de catálogo de Unity. Reemplace los valores de marcador de posición:

    • <catalog>: catálogo de Unity para la tabla nueva.
    • <new-schema>: esquema del catálogo de Unity para la tabla nueva.
    • <new-table>: nombre de la tabla del catálogo de Unity.
    • <old-schema>: esquema de la tabla anterior, como default.
    • <old-table>: nombre de la tabla anterior.

    SQL

    CREATE TABLE <catalog>.<new-schema>.<new-table>
    AS SELECT * FROM hive_metastore.<old-schema>.<old-table>;
    

    Python

    df = spark.table("hive_metastore.<old-schema>.<old-table>")
    
    df.write.saveAsTable(
      name = "<catalog>.<new-schema>.<new-table>"
    )
    

    R

    %r
    library(SparkR)
    
    df = tableToDF("hive_metastore.<old-schema>.<old-table>")
    
    saveAsTable(
      df = df,
      tableName = "<catalog>.<new-schema>.<new-table>"
    )
    

    Scala

    val df = spark.table("hive_metastore.<old-schema>.<old-table>")
    
    df.write.saveAsTable(
      tableName = "<catalog>.<new-schema>.<new-table>"
    )
    

    Si solo quiere migrar algunas columnas o filas, modifique la instrucción SELECT.

    Nota:

    Este comando crea una tabla administrada en la que los datos se copian en la ubicación de almacenamiento que se nominó al configurar el metastore. Para crear una tabla externa, donde una tabla se registra en el catálogo de Unity sin mover los datos del almacenamiento en la nube, consulte Actualización de una sola tabla externa al catálogo de Unity.

  2. Conceda acceso a la tabla nueva a los usuarios o grupos de nivel de cuenta. Consulte Administración de privilegios en Unity Catalog.

  3. Una vez migrada la tabla, los usuarios deben actualizar sus consultas y cargas de trabajo existentes para usar la tabla nueva.

  4. Antes de eliminar la tabla anterior, revoque el acceso a ella y vuelva a ejecutar las consultas y las cargas de trabajo relacionadas para probar las dependencias.