Compartir a través de


Actualización de tablas y vistas de Hive al Unity Catalog

En este artículo se describe cómo actualizar tablas y vistas registradas en el metastore de Hive local del área de trabajo existente en Unity Catalog. Puede actualizar una tabla de Hive a una tabla administrada o a una tabla externa en Unity Catalog.

  • Las tablas administradas son la manera predeterminada de crear tablas en Unity Catalog. Unity Catalog administra completamente su ciclo de vida, diseño de archivos y almacenamiento. Unity Catalog también optimiza su rendimiento automáticamente. Las tablas administradas siempre utilizan el formato de tabla Delta.

    Las tablas administradas residen en una ubicación de almacenamiento administrada que se reserva para Unity Catalog. Debido a este requisito de almacenamiento, debe usar CLONE o CREATE TABLE AS SELECT (CTAS) si desea copiar las tablas de Hive existentes en Unity Catalog como tablas administradas.

  • Las tablas externas son tablas cuyo ciclo de vida de datos, disposición de archivos y ubicación de almacenamiento no son administrados por Unity Catalog. Se admiten varios formatos de datos para tablas externas.

    Normalmente, solo se usan tablas externas cuando también se necesita acceso directo a los datos mediante el proceso que no es de Databricks (es decir, no se usan clústeres de Databricks o almacenes SQL de Databricks). Las tablas externas también son convenientes en escenarios de migración, ya que puede registrar datos existentes en Unity Catalog rápidamente sin tener que copiar datos. Esto se debe a que los datos de las tablas externas no tienen que residir en el almacenamiento administrado reservado.

Para obtener más información sobre las tablas administradas y externas en Unity Catalog, vea ¿Qué es una tabla?.

Opciones de migración de Hive a Unity Catalog

Cuando esté listo para migrar tablas de Hive a Unity Catalog, tiene varias opciones, en función de su caso de uso:

Herramienta de migración Descripción Requisitos de la tabla de Hive Tabla de Unity Catalog creada ¿Por qué debo usarlo?
UCX Un conjunto completo de utilidades de línea de comandos y otras herramientas que evalúan la preparación del área de trabajo para la migración de Unity Catalog y realizan flujos de trabajo que migran identidades, permisos, ubicaciones de almacenamiento y tablas a Unity Catalog. UCX está disponible en GitHub en databrickslabs/ucx. Tablas de Hive administradas o externas Administrada o externa Quiere una herramienta completa de planeamiento de actualizaciones del área de trabajo que va más allá de actualizar las tablas de Hive a Unity Catalog. Quiere actualizar áreas de trabajo que tienen grandes cantidades de datos en el metastore de Hive. Se siente cómodo ejecutar scripts. Si desea realizar una actualización masiva de tablas de Hive a tablas administradas de Unity Catalog, esta es la única opción. UCX, como todos los proyectos de Databricks Labs, es un repositorio público de GitHub y no es compatible directamente con Databricks.
Asistente para actualización de Unity Catalog Una característica del Explorador de catálogos que le permite copiar de forma masiva esquemas completos (bases de datos) y varias tablas administradas y externas del metastore de Hive en el metastore de Unity Catalog como tablas externas. El asistente para actualización realiza el comando SYNC en las tablas que seleccione, dejando intactas las tablas originales de Hive. Tiene la opción de programar actualizaciones periódicas para recoger los cambios en las tablas de Hive de origen. Tablas de Hive administradas o externas Solo externo Quiere actualizar rápidamente las tablas de Hive a tablas externas en Unity Catalog y prefiere una interfaz visual. La capacidad de programar sincronizaciones periódicas cuando cambia la tabla de Hive de origen lo convierte en una herramienta útil para administrar un área de trabajo de Hive "híbrida" y Unity Catalog durante la transición a Unity Catalog.
Comando SYNC SQL SYNC permite copiar tablas externas y tablas administradas (si las tablas administradas se almacenan fuera del almacenamiento del área de trabajo de Databricks, a veces conocida como raíz de DBFS) en el metastore de Hive en tablas externas en Unity Catalog. Puede sincronizar tablas individuales o esquemas completos.

SYNC está diseñado para ejecutarse según una programación para recoger nuevos cambios en el metastore de Hive y sincronizarlos con Unity Catalog.
Tablas de Hive administradas o externas Solo externo Quiere actualizar rápidamente las tablas de Hive a tablas externas en Unity Catalog y prefiere usar comandos SQL en lugar de una interfaz visual.

La programación de ejecuciones de SYNC periódicas para actualizar las tablas existentes de Unity Catalog cuando la tabla de Hive de origen cambia lo convierte en una herramienta útil para administrar un área de trabajo de Hive "híbrida" y Unity Catalog durante la transición a Unity Catalog.

Dado que no puede usar SYNC para actualizar las tablas administradas que se encuentran en el almacenamiento del área de trabajo de Databricks, utilice CREATE TABLE CLONE para esas tablas.
Comando CREATE TABLE CLONE SQL CREATE TABLE CLONE le permite actualizar las tablas administradas de su metastore de Hive a tablas administradas en Unity Catalog. Puede clonar tablas individuales.

Se prefieren los clones profundos, ya que copian los datos de la tabla de origen en el destino clonado además de los metadatos de la tabla existentes.
Tablas de Hive administradas que están en formato Delta, Parquet o Iceberg. La clonación de tablas de origen Parquet e Iceberg tiene algunos requisitos y limitaciones específicos: consulte Requisitos y limitaciones para clonar tablas Parquet e Iceberg. Solo administrado Quiere migrar tablas administradas de Hive a tablas administradas de Unity Catalog para aprovechar al máximo la gobernanza de datos de Unity Catalog y las tablas de Hive cumplen los criterios enumerados en la celda "Requisitos de la tabla de Hive".

Si las tablas de Hive no cumplen los ”requisitos de la tabla de Hive”, puede usar el comando CREATE TABLE AS SELECT SQL para actualizar una tabla de Hive a una tabla administrada de Unity Catalog. Sin embargo, CLONE casi siempre se prefiere. La clonación tiene una sintaxis más sencilla que CREATE TABLE AS SELECT: no es necesario especificar particiones, formato, invariables, nulabilidad, secuencia, COPY INTO y otros metadatos, ya que se clonan de la tabla de origen.

En este artículo se describe cómo realizar todo el proceso de actualización controlado por UCX. Databricks recomienda UCX para la mayoría de los escenarios de actualización del área de trabajo. Sin embargo, para casos de uso más sencillos, puede preferir una o varias de las herramientas que se describen aquí.

Antes de empezar

En esta sección se describen algunos de los impactos de la migración para los que debe prepararse, junto con los permisos y los requisitos de proceso.

Descripción del impacto

Debe tener en cuenta que, al modificar las cargas de trabajo para usar las nuevas tablas de Unity Catalog, es posible que tenga que cambiar algunos comportamientos:

  • 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.
  • El historial de tablas no se migra al ejecutar CREATE TABLE CLONE. Las tablas del metastore de Hive que clone en Unity Catalog se tratan como nuevas tablas. No se puede realizar el viaje en tiempo de Delta Lake ni otras operaciones basadas en el historial previo a la migración.

Consulte Trabajo con Unity Catalog y el metastore Hive heredado.

Requisitos

Para realizar migraciones, debe tener lo siguiente:

  • Área de trabajo con una metastore de Unity Catalog y al menos un catálogo de Unity Catalog. Consulte Configuración y administración de Unity Catalog.

  • Privilegios en los catálogos de Unity Catalog a los que se van a migrar las tablas. Estos requisitos de privilegios se enumeran al principio de cada procedimiento descrito en este artículo.

  • Para la migración a tablas externas de Unity Catalog: credenciales de almacenamiento y ubicaciones externas definidas en Unity Catalog y el privilegio CREATE EXTERNAL TABLE en la ubicación externa.

  • Acceso al proceso de Azure Databricks que cumpla los dos requisitos siguientes:

    • Admite Unity Catalog (almacenes de SQL o recursos de proceso que usan el modo de acceso compartido o de usuario único).
    • Permite el acceso a las tablas del metastore de Hive.

    Dado que los recursos de proceso que usan el modo de acceso compartido están habilitados para el control de acceso a tablas heredadas de forma predeterminada, significa que, si usa ese modo de acceso, debe tener privilegios de control de acceso de tabla en el metastore de Hive desde el que va a migrar. Puede concederse acceso mediante el siguiente comando SQL:

    GRANT ALL PRIVILEGES ON catalog hive_metastore TO `<user>`
    

    Como alternativa, puede usar un recurso de proceso en modo de acceso de usuario único.

Para más información sobre cómo administrar privilegios para objetos en el metastore de Hive, consulte Privilegios y objetos protegibles en el metastore de Hive. Para obtener información detallada sobre cómo administrar privilegios en objetos de datos mediante Unity Catalog, consulte Administración de privilegios en Unity Catalog.

Identificación de tablas administradas por el metastore de Hive

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.

Para ver las tablas del catálogo hive_metastore con el Explorador de catálogos:

  1. Haga clic en icono del catálogo Catálogo en la barra lateral.
  2. En el panel de catálogos, vaya al catálogo hive_metastore y expanda los nodos de esquema.

También puede buscar una tabla específica mediante el campo de filtro en el panel Catálogo.

Actualización de un esquema o varias tablas del metastore de Hive a tablas externas de Unity Catalog mediante el asistente para actualización

Puede copiar esquemas completos (bases de datos) y varias tablas externas o administradas del metastore de Hive predeterminado de Azure Databricks en el metastore de Unity Catalog mediante el asistente para actualización del Explorador de catálogos. Las tablas actualizadas serán tablas externas en Unity Catalog.

Para obtener ayuda para decidir cuándo usar el asistente para la actualización, consulte Opciones de migración de Hive a Unity Catalog.

Requisitos

Requisitos de formato de datos:

Requisitos de proceso:

Requisitos de permisos y objetos de Unity Catalog:

  • Una credencial de almacenamiento para una identidad administrada de Azure o entidad de servicio que autoriza a Unity Catalog a acceder a la ruta de acceso de ubicación de las tablas.
  • 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.

Requisitos de acceso a tablas de Hive:

  • Si el proceso usa el modo de acceso compartido, necesita acceso a las tablas del metastore de Hive, concedido mediante el control de acceso de tabla heredado. Consulte Antes de empezar.

Proceso de actualización

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

  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. Vea Trabajar con tablas externas.

  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. (Opcional) Agregue comentarios a cada tabla de Hive actualizada que apunte a los usuarios a la nueva tabla de Unity Catalog.

    Vuelva a la tabla original del catálogo hive.metastore para agregar el comentario de la tabla.

    Si usa la sintaxis siguiente en el comentario de la tabla, los cuadernos y las consultas del editor de consultas SQL que hacen referencia a la tabla de Hive en desuso mostrarán el nombre de la tabla en desuso mediante texto tachado, mostrarán el comentario como una advertencia y proporcionarán un vínculo de Corrección rápida a Databricks Assistant, que puede actualizar el código para hacer referencia a la nueva tabla.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Consulte Adición de comentarios para indicar que se ha migrado una tabla de Hive.

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

    Si ha agregado un comentario a la tabla original de Hive, como la que se muestra en el paso anterior opcional, puede usar el vínculo Corrección rápida y Databricks Assistant para ayudarle a encontrar y modificar cargas de trabajo.

Actualización de una sola tabla de Hive a una tabla externa de Unity Catalog mediante el asistente para actualización

Puede copiar una única tabla desde el metastore de Hive predeterminado en el metastore de Unity Catalog mediante el asistente para actualización del Explorador de catálogos.

Para obtener ayuda para decidir cuándo usar el asistente para la actualización, consulte Opciones de migración de Hive a Unity Catalog.

Requisitos

Requisitos de formato de datos:

Requisitos de proceso:

Requisitos de permisos y objetos de Unity Catalog:

  • Una credencial de almacenamiento para una identidad administrada de Azure o una entidad de servicio que autoriza a Unity Catalog a acceder a la ruta de acceso de ubicación de la tabla.
  • 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

Para actualizar una tabla externa:

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

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

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

  4. Seleccione la tabla que quiere actualizar y haga clic en Siguiente.

  5. 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.

  6. Haga clic en Actualizar en la esquina superior derecha de la vista de detalles de la tabla.

  7. Seleccione la tabla que quiere actualizar y haga clic en Siguiente.

    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.

  8. Use la pestaña Permisos para definir un control de acceso específico.

  9. (Opcional) Agregue un comentario a la tabla de Hive que apunte a los usuarios a la nueva tabla de Unity Catalog.

    Vuelva a la tabla original del catálogo hive.metastore para agregar el comentario de la tabla.

    Si usa la sintaxis siguiente en el comentario de la tabla, los cuadernos y las consultas del editor de consultas SQL que hacen referencia a la tabla de Hive en desuso mostrarán el nombre de la tabla en desuso mediante texto tachado, mostrarán el comentario como una advertencia y proporcionarán un vínculo de Corrección rápida a Databricks Assistant, que puede actualizar el código para hacer referencia a la nueva tabla.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Consulte Adición de comentarios para indicar que se ha migrado una tabla de Hive.

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

    Si ha agregado un comentario a la tabla original de Hive, como la que se muestra en el paso anterior opcional, puede usar el vínculo Corrección rápida y Databricks Assistant para ayudarle a encontrar y modificar cargas de trabajo.

    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 tabla de Hive a una tabla externa de Unity Catalog mediante SYNC

Puede usar el comando SQL SYNC para copiar tablas externas en el metastore de Hive en tablas externas en Unity Catalog. Puede sincronizar tablas individuales o esquemas completos.

También puede usar SYNC para copiar tablas administradas de Hive que se almacenan fuera del almacenamiento del área de trabajo de Databricks (a veces denominada raíz de DBFS) en tablas externas de Unity Catalog. No se puede usar para copiar las tablas administradas de Hive guardadas en el almacenamiento del área de trabajo. Para copiar esas tablas, utilice CREATE TABLE CLONE en su lugar.

El comando SYNC realiza una operación de escritura en cada tabla de origen que actualiza para agregar propiedades de tabla adicionales para la contabilidad, incluido un registro de la tabla externa de Unity Catalog de destino.

SYNC también se puede usar para actualizar las tablas de Unity Catalog existentes cuando se cambian las tablas de origen en el metastore de Hive. Esto hace que sea una buena herramienta para realizar la transición a Unity Catalog gradualmente.

Para más información, consulte SYNC. Para obtener ayuda para decidir cuándo usar el asistente para la actualización, consulte Opciones de migración de Hive a Unity Catalog.

Requisitos

Requisitos de formato de datos:

Requisitos de proceso:

Requisitos de permisos y objetos de Unity Catalog:

  • Una credencial de almacenamiento para una identidad administrada de Azure o entidad de servicio que autoriza a Unity Catalog a acceder a la ruta de acceso de ubicación de las tablas.
  • 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.

Requisitos de acceso a tablas de Hive:

  • Si el proceso usa el modo de acceso compartido, necesita acceso a las tablas del metastore de Hive, concedido mediante el control de acceso de tabla heredado. Consulte Antes de empezar.

Proceso de actualización

Para actualizar las tablas del metastore de Hive a tablas externas de Unity Catalog mediante SYNC:

  1. En un cuaderno o en el editor de consultas SQL, ejecute una de las opciones siguientes:

    Sincronizar una tabla externa de Hive:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Sincronizar un esquema externo de Hive y todas sus tablas:

    SYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    

    Sincronizar una tabla de Hive administrada que se guarda fuera del almacenamiento del área de trabajo de Databricks:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Sincronizar un esquema que contenga tablas de Hive administradas que se guardan fuera del almacenamiento del área de trabajo de Databricks:

    SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    
  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. (Opcional) Agregue un comentario a la tabla original de Hive que apunte a los usuarios a la nueva tabla de Unity Catalog.

    Vuelva a la tabla original del catálogo hive.metastore para agregar el comentario de la tabla. Para obtener información sobre cómo agregar comentarios de tabla mediante el Explorador de catálogos, vea Agregar comentarios a los recursos de datos e inteligencia artificial. Para obtener información sobre cómo agregar comentarios de tabla mediante instrucciones SQL en un cuaderno o en el editor de consultas SQL, consulte COMMENT ON.

    Si usa la sintaxis siguiente en el comentario de la tabla, los cuadernos y las consultas del editor de consultas SQL que hacen referencia a la tabla de Hive en desuso mostrarán el nombre de la tabla en desuso mediante texto tachado, mostrarán el comentario como una advertencia y proporcionarán un vínculo de Corrección rápida a Databricks Assistant, que puede actualizar el código para hacer referencia a la nueva tabla.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Consulte Adición de comentarios para indicar que se ha migrado una tabla de Hive.

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

    Si ha agregado un comentario a la tabla original de Hive, como la que se muestra en el paso anterior opcional, puede usar el vínculo Corrección rápida y Databricks Assistant para ayudarle a encontrar y modificar cargas de trabajo.

  5. 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.

    No quite la tabla anterior si todavía confía en los comentarios de desuso para ayudarle a encontrar y actualizar el código existente que hace referencia a la tabla anterior. Del mismo modo, no quite la tabla anterior si esa tabla ha cambiado desde la sincronización original: SYNC se puede usar para actualizar las tablas de Unity Catalog existentes con cambios de las tablas de Hive de origen.

Actualización de una tabla administrada de Hive a una tabla administrada del catálogo de Unity mediante CLONE

Utilice CREATE TABLE CLONE para actualizar las tablas administradas de su metastore de Hive a tablas administradas en Unity Catalog. Puede clonar tablas individuales. Los clones profundos copian los datos de la tabla de origen en el destino clonado además de los metadatos de tabla existentes. Use el clon profundo si piensa quitar la tabla de origen de Hive. Los clones superficiales no copian los archivos de datos en el destino de clonación, sino que les dan acceso mediante referencia a los datos de origen: los metadatos de la tabla son equivalentes al origen. Los clones superficiales son más económicos de crear, pero requieren que los usuarios que consultan datos en el destino de clonación también tengan acceso a los datos de origen.

Para obtener ayuda para decidir cuándo usar CLONE, consulte Opciones de migración de Hive a Unity Catalog. Para obtener ayuda para decidir qué tipo de clon se va a usar, consulte Clonación de una tabla en Azure Databricks.

Requisitos

Requisitos de formato de datos:

Requisitos de proceso:

Requisitos de permisos:

  • Los privilegios USE CATALOG y USE SCHEMA en el catálogo y el esquema a los que agrega la tabla, junto con CREATE TABLE en el esquema, o debe ser el propietario del catálogo o esquema. Consulte Privilegios de Unity Catalog y objetos protegibles.
  • Si el proceso usa el modo de acceso compartido, necesita acceso a las tablas del metastore de Hive, concedido mediante el control de acceso de tabla heredado. Consulte Antes de empezar.

Proceso de actualización

Para actualizar las tablas administradas de su metastore de Hive a tablas administradas en Unity Catalog:

  1. En un cuaderno o en el editor de consultas SQL, ejecute una de las opciones siguientes:

    Clonar en profundidad una tabla administrada en el metastore de Hive:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    DEEP CLONE hive_metastore.<source-schema>.<source-table>;
    

    Clonar superficialmente una tabla administrada en el metastore de Hive:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    SHALLOW CLONE hive_metastore.<source-schema>.<source-table>;
    

    Para más información sobre parámetros adicionales, incluidas las propiedades de la tabla, consulte CREATE TABLE CLONE.

  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. (Opcional) Agregue un comentario a la tabla original de Hive que apunte a los usuarios a la nueva tabla de Unity Catalog.

    Vuelva a la tabla original del catálogo hive.metastore para agregar el comentario de la tabla. Para obtener información sobre cómo agregar comentarios de tabla mediante el Explorador de catálogos, vea Agregar comentarios a los recursos de datos e inteligencia artificial. Para obtener información sobre cómo agregar comentarios de tabla mediante instrucciones SQL en un cuaderno o en el editor de consultas SQL, consulte COMMENT ON.

    Si usa la sintaxis siguiente en el comentario de la tabla, los cuadernos y las consultas del editor de consultas SQL que hacen referencia a la tabla de Hive en desuso mostrarán el nombre de la tabla en desuso mediante texto tachado, mostrarán el comentario como una advertencia y proporcionarán un vínculo de Corrección rápida a Databricks Assistant, que puede actualizar el código para hacer referencia a la nueva tabla.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Consulte Adición de comentarios para indicar que se ha migrado una tabla de Hive.

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

    Si ha agregado un comentario a la tabla original de Hive, como la que se muestra en el paso anterior opcional, puede usar el vínculo Corrección rápida y Databricks Assistant para ayudarle a encontrar y modificar cargas de trabajo.

  5. 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.

    No quite la tabla anterior si todavía confía en los comentarios de desuso para ayudarle a encontrar y actualizar el código existente que hace referencia a la tabla anterior. Del mismo modo, no quite la tabla anterior si realizó un clon superficial. Los clones superficiales hacen referencia a los datos de la tabla de Hive de origen.

Actualización de una tabla de Hive a una tabla administrada de Unity Catalog mediante CREATE TABLE AS SELECT

Si no puede usar o prefiere no usar CREATE TABLE CLONE para migrar una tabla de su metastore de Hive a una tabla administrada en Unity Catalog, puede crear una nueva tabla administrada en Unity Catalog al consultar la tabla de Hive mediante CREATE TABLE AS SELECT. Para más información sobre las diferencias entre CREATE TABLE CLONE y CREATE TABLE AS SELECT, consulte Opciones de migración de Hive a Unity Catalog.

Requisitos

Requisitos de proceso:

Requisitos de permisos:

  • Los privilegios USE CATALOG y USE SCHEMA en el catálogo y el esquema a los que agrega la tabla, junto con CREATE TABLE en el esquema, o debe ser el propietario del catálogo o esquema. Consulte Privilegios de Unity Catalog y objetos protegibles.
  • Si el proceso usa el modo de acceso compartido, necesita acceso a las tablas del metastore de Hive, concedido mediante el control de acceso de tabla heredado. Consulte Antes de empezar.

Proceso de actualización

Para actualizar una tabla de su metastore de Hive a una tabla administrada en Unity Catalog mediante CREATE TABLE AS SELECT:

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

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

    SQL

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

    Python

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

    R

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

    Scala

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

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

    Nota:

    Los comandos que se presentan aquí crean una tabla administrada en la que los datos se copian en una ubicación de almacenamiento administrada dedicada. Si en su lugar desea crear una tabla externa, donde la tabla se registra en el Catálogo de Unity sin mover los datos en el almacenamiento en la nube, consulte Actualización de una sola tabla de Hive a una tabla externa de Catálogo de Unity mediante el asistente paraactualización. Consulte también Especificación de una ubicación de almacenamiento administrada en Unity Catalog.

  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. (Opcional) Agregue un comentario a la tabla original de Hive que apunte a los usuarios a la nueva tabla de Unity Catalog.

    Vuelva a la tabla original del catálogo hive.metastore para agregar el comentario de la tabla. Para obtener información sobre cómo agregar comentarios de tabla mediante el Explorador de catálogos, vea Agregar comentarios a los recursos de datos e inteligencia artificial. Para obtener información sobre cómo agregar comentarios de tabla mediante instrucciones SQL en un cuaderno o en el editor de consultas SQL, consulte COMMENT ON.

    Si usa la sintaxis siguiente en el comentario de la tabla, los cuadernos y las consultas del editor de consultas SQL que hacen referencia a la tabla de Hive en desuso mostrarán el nombre de la tabla en desuso mediante texto tachado, mostrarán el comentario como una advertencia y proporcionarán un vínculo de Corrección rápida a Databricks Assistant, que puede actualizar el código para hacer referencia a la nueva tabla.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Consulte Adición de comentarios para indicar que se ha migrado una tabla de Hive.

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

    Si ha agregado un comentario a la tabla original de Hive, como la que se muestra en el paso anterior opcional, puede usar el vínculo Corrección rápida y Databricks Assistant para ayudarle a encontrar y modificar cargas de trabajo.

  5. 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.

    No quite la tabla anterior si todavía confía en los comentarios de desuso para ayudarle a encontrar y actualizar el código existente que hace referencia a la tabla anterior.

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.

Adición de comentarios para indicar que se ha migrado una tabla de Hive

Cuando se agrega un comentario a la tabla de Hive en desuso que apunta a los usuarios a la nueva tabla de Unity Catalog, los cuadernos y consultas del editor de consultas SQL que hacen referencia a la tabla de Hive en desuso mostrarán el nombre de tabla en desuso mediante texto tachado, mostrarán el comentario como una advertencia y proporcionarán un vínculo Corrección rápida a Databricks Assistant, que puede actualizar el código para hacer referencia a la nueva tabla.

Advertencia de desuso de la tabla de Hive

Debe usar el siguiente formato en el comentario:

This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

Para obtener información sobre cómo agregar comentarios de tabla mediante el Explorador de catálogos, vea Agregar comentarios a los recursos de datos e inteligencia artificial. Para obtener información sobre cómo agregar comentarios de tabla mediante instrucciones SQL en un cuaderno o en el editor de consultas SQL, consulte COMMENT ON.

Uso de Databricks Assistant para actualizar una referencia de tabla en desuso

Si ve texto tachado en un nombre de tabla, en una celda o instrucción del cuaderno del editor de consultas SQL, mantenga el puntero sobre el nombre de la tabla para mostrar un aviso de advertencia. Si ese aviso de advertencia describe la tabla como en desuso y muestra el nuevo nombre de la tabla, haga clic en Corrección rápida, seguido de Corregir en desuso. Se abre Databricks Assistant, que ofrece reemplazar el nombre de la tabla en desuso por el nuevo nombre de tabla de Unity Catalog. Siga las instrucciones que aparecen para completar la tarea.

Vídeo que muestra la actualización de la tabla de Hive mediante Databricks Assistant

Consulte también Uso de Databricks Assistant.