Importa metadatos a Dataproc Metastore

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

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

Por lo general, estos metadatos portátiles se exportan desde otro servicio de Dataproc Metastore o desde un almacén de metadatos de Hive (HMS) autoadministrado.

Información acerca de la importación de metadatos

Puedes importar los siguientes formatos de archivo a Dataproc Metastore:

  • Un conjunto de archivos Avro almacenados en una carpeta.
  • Un único archivo de volcado de MySQL almacenado en una carpeta de Cloud Storage.

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

Si tus archivos están en un formato diferente, como PostgreSQL, debes convertirlos al formato Avro o MySQL. Después de la conversión, puedes importarlos a Dataproc Metastore.

Avro

Las importaciones basadas en Avro solo son compatibles con las versiones 2.3.6 y 3.1.2 de Hive. Cuando importas archivos Avro, Dataproc Metastore espera una serie de archivos <table-name>.avro para cada tabla de tu base de datos.

Para importar archivos Avro, tu servicio de 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. Cuando importas 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 con SQL nativo.

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

Consideraciones de importación

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

  • El atributo de importación de metadatos solo importa metadatos. Los datos que Apache Hive crea en tablas internas no se replican en la importación.

  • La importación no transforma el contenido de la base de datos ni controla la migración de archivos. Si mueves tus datos a una ubicación diferente, debes actualizar de forma manual las ubicaciones de los datos de la tabla y el esquema en el servicio de Dataproc Metastore.

  • La importación no restablece ni reemplaza las políticas de IAM detalladas.

  • Si usas los Controles del servicio de VPC, solo puedes importar datos desde un bucket de Cloud Storage que resida en el mismo perímetro de servicio que el servicio de Dataproc Metastore.

Antes de comenzar

Funciones obligatorias

A fin de obtener los permisos que necesitas para importar metadatos a Dataproc Metastore, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.

Estas funciones predefinidas contienen los permisos necesarios para importar metadatos a Dataproc Metastore. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para importar metadatos a Dataproc Metastore:

  • Para importar metadatos, usa metastore.imports.create en el servicio de almacén de metadatos.
  • En el caso de MySQL, para usar el objeto de Cloud Storage (archivo de volcado de SQL) en la importación, otorga tu cuenta de usuario y el agente de servicio de Dataproc Metastore: storage.objects.get en el bucket de Cloud Storage que contiene el volcado de metadatos que se está importando.
  • En el caso de Avro, si quieres usar el bucket de Cloud Storage para la importación, otorga tu cuenta de usuario y el agente de servicio de Dataproc Metastore: storage.objects.get en el bucket de Cloud Storage que contiene el volcado de metadatos que se está importando.

Es posible que también puedas obtener estos permisos con funciones personalizadas o con otras funciones predefinidas.

Para obtener más información sobre las funciones y los permisos específicos de Dataproc Metastore, consulta Descripción general de IAM de Dataproc Metastore.

Importa tus metadatos

La operación de importación es un proceso de dos pasos. Primero, prepara tus archivos de importación y, luego, los importa a Dataproc Metastore.

Cuando inicias una importación, Dataproc Metastore realiza una validación de esquemas de metadatos de Hive. Esta validación verifica las tablas en el archivo de volcado de SQL y los nombres de archivo para Avro. Si falta una tabla, la importación falla y se muestra un mensaje de error que describe la tabla faltante.

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

Prepara los archivos de importación antes de realizar la importación

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

Mueve tus archivos a Cloud Storage

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

    Si deseas obtener instrucciones para crear un volcado de base de datos, consulta las siguientes páginas:

  2. Sube los archivos a Cloud Storage.

    Asegúrate de anotar la ruta de acceso de Cloud Storage a la que subes tus archivos, ya que deberás usarla más adelante para realizar la importación.

    • Si importas archivos MySQL, sube el archivo SQL a un bucket de Cloud Storage.

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

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

Importa los archivos a Dataproc Metastore

Antes de importar metadatos, revisa las consideraciones de importación.

Mientras se ejecuta una importación, no puedes actualizar un servicio de Dataproc Metastore, por ejemplo, si cambias la configuración. Sin embargo, puedes usarlo para operaciones normales, como usarlo a fin de acceder a sus metadatos desde Dataproc adjunto o clústeres autoadministrados.

Console

  1. En la consola de Google Cloud, 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 deseas importar los metadatos.

    Se abrirá la página Detalles del servicio.

    Página de detalles del servicio
    Figura 1: Página de detalles del servicio de Dataproc Metastore.
  3. En la barra de navegación, haz clic en Import.

    Se abrirá el diálogo Importar.

  4. Ingresa el nombre de importación.

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

  6. En el campo URI de destino, haz clic en Explorar y selecciona el URI de Cloud Storage en el que deseas importar tus archivos.

    También puedes ingresar manualmente la ubicación de tu bucket en el campo de texto proporcionado. Usa el siguiente formato: bucket/object o bucket/folder/object.

  7. Opcional: Ingresa 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 (Import).

    Una vez finalizada 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
    

    Reemplaza lo siguiente:

    • SERVICE_ID: Es el ID o el nombre completamente calificado de tu servicio de Dataproc Metastore.
    • LOCATION: Es la región de Google Cloud en la que reside el servicio de Dataproc Metastore.
    • IMPORT_ID: Es un ID o nombre completamente calificado para la importación de metadatos. Por ejemplo, import1
    • DESCRIPTION: Es una descripción de tu importación (opcional). Puedes editarla más tarde con gcloud metastore services imports update IMPORT.
    • DUMP_TYPE: Es el tipo de base de datos externa que importarás. Los valores aceptados incluyen mysql y avro. El valor predeterminado es mysql.
    • DATABASE_DUMP: Es la ruta de acceso al Cloud Storage que contiene los archivos de la base de datos. Esta ruta de acceso debe comenzar con gs://. En el caso de Avro, proporciona la ruta de acceso a la carpeta en la que se almacenan los archivos Avro (la carpeta de Cloud Storage). En el caso de MySQL, proporciona la ruta de acceso 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 a un servicio con el Explorador de API.

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

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

Ver historial de importaciones

Para ver el historial de importaciones de un servicio de Dataproc Metastore en la consola de Google Cloud, completa los siguientes pasos:

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

    Tu historial de importaciones aparece en la tabla Historial de importaciones.

    El historial muestra las últimas 25 importaciones.

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

Soluciona los problemas comunes.

Estos son algunos de los problemas habituales:

Si deseas obtener más ayuda para resolver problemas comunes, consulta Situaciones de error de importación y exportación.

¿Qué sigue?