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 de Dataproc Metastore existente con metadatos 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 solo archivo de volcado de MySQL almacenado en una carpeta de Cloud Storage

Los archivos MySQL o Avro que importas 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. 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. Cuándo importar archivos Avro, Dataproc Metastore espera una serie de <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 importes MySQL , Dataproc Metastore espera un único archivo SQL que contenga toda la información de tu tabla. Los volcados de MySQL obtenidos de un clúster de Dataproc con SQL nativo se también es compatible.

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 es compatible con MySQL .

Consideraciones de importación

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

  • La función de importación de metadatos solo importa metadatos. Los datos que crea Apache Hive en tablas internas no se replica en la importación.

  • La importación no transforma el contenido de la base de datos ni controla el archivo. migración de sistemas. Si mueves tus datos a una ubicación diferente, debes hacerlo manualmente actualizar las ubicaciones de los datos de tu tabla y el esquema en tu Servicio de Dataproc Metastore.

  • La importación no restablece ni reemplaza la IAM detallada y políticas de seguridad.

  • 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

Roles obligatorios

A fin de obtener los permisos que necesitas para importar metadatos en Dataproc Metastore, solicita a tu administrador que te otorgue el los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra 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 son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

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

  • Para importar metadatos, sigue estos pasos: 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) para la importación, otorga a tu cuenta de usuario y al 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.
  • Para Avro, si quieres usar el bucket de Cloud Storage para la importación, otorga a tu cuenta de usuario y al agente de servicio de Dataproc Metastore los siguientes permisos: storage.objects.get en el bucket de Cloud Storage que contiene el volcado de metadatos que se importará.

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

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

Importa tus metadatos

La operación de importación consta de un proceso de dos pasos. Primero, preparas tus archivos de importación y, luego, los importas a Dataproc Metastore.

Cuando inicias una importación, Dataproc Metastore realiza la validación del esquema de metadatos. Esta validación verifica las tablas en el volcado de SQL y los nombres de archivo de Avro. Si falta una tabla, la importación falla con un con 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 importarlos

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

Mueve tus archivos a Cloud Storage

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

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

  2. Sube los archivos a Cloud Storage.

    Asegúrate de anotar la ruta de Cloud Storage a la que subes tus archivos, ya que la necesitarás 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 está vacía.
      • Los nombres de los archivos Avro deben seguir el formato <table-name>.avro. El valor de <table-name> debe ser todo en mayúsculas. Por ejemplo, AUX_TABLE.avro.

Importa los archivos a Dataproc Metastore

Antes de importar metadatos, revisa el artículo y consideraciones clave.

Mientras se ejecuta una importación, no puedes actualizar Dataproc Metastore servicio, como cambiar los parámetros de configuración. Sin embargo, puedes usarlo para operaciones normales, como 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 Detalle del servicio.

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

    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 al que deseas importar tus archivos.

    También puedes ingresar manualmente la ubicación del 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.

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

gcloud CLI

  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 tu 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 la base de datos externa que importas. Los valores aceptados incluyen mysql y avro. El valor predeterminado es mysql.
    • DATABASE_DUMP: Es la ruta de acceso a Cloud Storage que contiene los archivos de la base de datos. Esta ruta de acceso debe comenzar con gs://. En Avro, proporciona la ruta de acceso a la carpeta en la que se almacenan los archivos Avro (la carpeta de Cloud Storage). Para 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 borrar importaciones. 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 vuelve automáticamente al estado activo. Si la importación falla, Dataproc Metastore se revertirá a su estado correcto anterior.

Cómo ver el historial de importaciones

Para ver el historial de importaciones de un servicio de Dataproc Metastore en la consola de Google Cloud, sigue estos 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 hasta 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 problemas comunes:

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

¿Qué sigue?