Importar metadatos en Dataproc Metastore

En esta página se explica cómo importar metadatos a un servicio Dataproc Metastore.

La función de importación de metadatos te permite rellenar un servicio de Dataproc Metastore con metadatos almacenados en un formato de almacenamiento portátil.

Estos metadatos portátiles suelen exportarse desde otro servicio de Dataproc Metastore o desde un almacén de metadatos de Hive (HMS) autogestionado.

Acerca de la importación de metadatos

Puede importar los siguientes formatos de archivo en Dataproc Metastore:

  • Conjunto de archivos Avro almacenados en una carpeta.
  • Un solo archivo de volcado de MySQL almacenado en una carpeta de Cloud Storage.

Los archivos MySQL o Avro que importes deben generarse a partir de una base de datos relacional.

Si tus archivos están en otro formato, como PostgreSQL, debes convertirlos al formato Avro o MySQL. Una vez completada la conversión, puede importarlos a Dataproc Metastore.

Avro

Las importaciones basadas en Avro solo se admiten en las versiones 2.3.6 y 3.1.2 de Hive. Al importar archivos Avro, Dataproc Metastore espera una serie de archivos <table-name>.avro por cada tabla de tu base de datos.

Para importar archivos Avro, tu servicio Dataproc Metastore puede usar el tipo de base de datos MySQL o Spanner.

MySQL

Las importaciones basadas en MySQL son compatibles con todas las versiones de Hive. Al importar archivos de MySQL, Dataproc Metastore espera un único archivo SQL que contenga toda la información de la tabla. También se admiten los volcados de MySQL obtenidos de un clúster de Dataproc mediante SQL nativo.

Para importar archivos MySQL, tu servicio Dataproc Metastore debe usar el tipo de base de datos MySQL. El tipo de base de datos de Spanner no admite importaciones de MySQL.

Consideraciones sobre la importación

  • La importación sobrescribe todos los metadatos almacenados en un servicio de Dataproc Metastore.

  • La función de importación de metadatos solo importa metadatos. Los datos creados por Apache Hive en tablas internas no se replican en la importación.

  • La importación no transforma el contenido de la base de datos ni gestiona la migración de archivos. Si mueve sus datos a otra ubicación, debe actualizar manualmente las ubicaciones de los datos de la tabla y el esquema en su servicio de Dataproc Metastore.

  • La importación no restaura ni sustituye las políticas de IAM detalladas.

  • Si usas Controles de Servicio de VPC, solo puedes importar datos de un segmento de Cloud Storage que se encuentre en el mismo perímetro de servicio que el servicio Dataproc Metastore.

Antes de empezar

Roles obligatorios

Para obtener los permisos que necesitas para importar metadatos en Dataproc Metastore, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para importar metadatos en Dataproc Metastore. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para importar metadatos en Dataproc Metastore, se necesitan los siguientes permisos:

  • Para importar metadatos, haz lo siguiente: metastore.imports.create en el servicio metastore.
  • En MySQL, para usar el objeto de Cloud Storage (archivo de volcado de SQL) en la importación, concede a tu cuenta de usuario y al agente de servicio de Dataproc Metastore: storage.objects.get en el segmento de Cloud Storage que contiene el volcado de metadatos que se va a importar.
  • En el caso de Avro, para usar el segmento de Cloud Storage en la importación, concede a tu cuenta de usuario y al agente de servicio de Dataproc Metastore: storage.objects.get en el segmento de Cloud Storage que contiene el volcado de metadatos que se va a importar.

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Para obtener más información sobre roles y permisos específicos de Dataproc Metastore, consulta la información general sobre la gestión de identidades y accesos de Dataproc Metastore.

Importar metadatos

La operación de importación consta de dos pasos. Primero, prepara los archivos de importación y, después, impórtalos a Dataproc Metastore.

Cuando inicias una importación, Dataproc Metastore realiza una validación del esquema de metadatos de Hive. Esta validación verifica las tablas del archivo de volcado de SQL y los nombres de archivo de Avro. Si falta una tabla, la importación fallará y se mostrará un mensaje de error que describirá la tabla que falta.

Para comprobar la compatibilidad de los metadatos de Hive antes de una importación, puedes usar el kit de herramientas de Dataproc Metastore.

Preparar los archivos de importación antes de importarlos

Antes de importar tus archivos a Dataproc Metastore, debes copiar tus archivos de volcado de metadatos en Cloud Storage, como tu segmento de Cloud Storage de artefactos.

Mover archivos a Cloud Storage

  1. Crea un volcado de la base de datos externa que quieras importar a Dataproc Metastore.

    Para obtener instrucciones sobre cómo crear un volcado de la base de datos, consulta las siguientes páginas:

  2. Sube los archivos a Cloud Storage.

    Anota la ruta de Cloud Storage a la que subas los archivos, ya que la necesitarás más adelante para realizar la importación.

    • Si vas a importar archivos MySQL, sube el archivo SQL a un segmento de Cloud Storage.

    • Si vas a importar archivos Avro, súbelos a una carpeta de Cloud Storage.

      • La importación de Avro debe incluir un archivo Avro por cada tabla de Hive, aunque la tabla esté vacía.
      • Los nombres de los archivos Avro deben seguir el formato <table-name>.avro. El <table-name> debe estar todo en mayúsculas. Por ejemplo, AUX_TABLE.avro.

Importar los archivos a Dataproc Metastore

Antes de importar metadatos, consulta las consideraciones sobre la importación.

Mientras se esté ejecutando una importación, no podrá actualizar un servicio de Dataproc Metastore (por ejemplo, cambiar los ajustes de configuración). Sin embargo, puedes seguir usándolo para operaciones normales, como acceder a sus metadatos desde clústeres de Dataproc o autogestionados adjuntos.

Consola

  1. En la Google Cloud consola, abre la página Dataproc Metastore:

    Abrir Dataproc Metastore

  2. En la página Dataproc Metastore, haz clic en el nombre del servicio al que quieras importar metadatos.

    Se abrirá la página Detalles del servicio.

    Página de detalles del servicio
    Imagen 1. La página de detalles del servicio Dataproc Metastore.
  3. En la barra de navegación, haz clic en Importar.

    Se abrirá el cuadro de diálogo Importar.

  4. Introduce el nombre de la importación.

  5. En la sección Destino, elija MySQL o Avro.

  6. En el campo URI de destino, haz clic en Examinar y selecciona el URI de Cloud Storage al que quieras importar los archivos.

    También puedes introducir manualmente la ubicación del contenedor en el campo de texto correspondiente. Utiliza el siguiente formato: bucket/object o bucket/folder/object.

  7. Opcional: Introduce una descripción de la importación.

    Puedes editar la descripción en la página Detalles del servicio.

  8. Para actualizar el servicio, haz clic en Importar.

    Cuando se haya completado la importación, aparecerá en una tabla de la página Detalles del servicio, en la pestaña Importar/Exportar.

CLI de gcloud

  1. Para importar metadatos, ejecuta el siguiente comando gcloud metastore services import gcs:

    gcloud metastore services import gcs SERVICE_ID \
      --location=LOCATION \
      --import-id=IMPORT_ID \
      --description=DESCRIPTION \
      --dump-type=DUMP_TYPE \
      --database-dump=DATABASE_DUMP
    

    Haz los cambios siguientes:

    • SERVICE_ID: el ID o el nombre completo de tu servicio de Dataproc Metastore.
    • LOCATION: la Google Cloud región en la que reside tu servicio de Dataproc Metastore.
    • IMPORT_ID: un ID o un nombre completo de la importación de metadatos. Por ejemplo, import1.
    • DESCRIPTION: opcional. Descripción de la importación. Puedes editarlo más adelante con gcloud metastore services imports update IMPORT.
    • DUMP_TYPE: el tipo de base de datos externa que vas a importar. Los valores aceptados son mysql y avro. El valor predeterminado es mysql.
    • DATABASE_DUMP: la ruta a Cloud Storage que contiene los archivos de la base de datos. Esta ruta debe empezar por gs://. En el caso de Avro, proporciona la ruta a la carpeta donde se almacenan los archivos Avro (la carpeta de Cloud Storage). En el caso de MySQL, proporciona la ruta al archivo de MySQL (el objeto de Cloud Storage).
  2. Verifica que la importación se haya realizado correctamente.

REST

Sigue las instrucciones de la API para importar metadatos en un servicio mediante el Explorador de APIs.

Con la API, puedes crear, enumerar, describir y actualizar importaciones, pero no eliminarlas. Sin embargo, si eliminas un servicio de Dataproc Metastore, se eliminarán todas las importaciones anidadas almacenadas.

Cuando la importación se realiza correctamente, Dataproc Metastore vuelve automáticamente al estado activo. Si la importación falla, Dataproc Metastore vuelve a su estado correcto anterior.

Ver historial de importación

Para ver el historial de importación de un servicio Dataproc Metastore en la Google Cloud consola, sigue estos pasos:

  1. En la Google Cloud consola, abre la página Dataproc Metastore.
  2. En la barra de navegación, haga clic en Importar/Exportar.

    El historial de importaciones se muestra en la tabla Historial de importaciones.

    El historial muestra las últimas 25 importaciones.

Si eliminas un servicio de Dataproc Metastore, también se eliminará todo el historial de importaciones asociado.

Solucionar problemas frecuentes

Estos son algunos de los problemas habituales:

Para obtener más ayuda sobre cómo solucionar problemas habituales, consulta Escenarios de errores de importación y exportación.

Siguientes pasos