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. Cuando se importan archivos Avro, Dataproc Metastore espera una serie de archivos <table-name>.avro
para cada tabla de la 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 MySQL, Dataproc Metastore espera un solo archivo SQL que contenga toda la información de tu 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 sobre la 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 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 y el esquema de la tabla en tu 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
- Habilita Dataproc Metastore en tu proyecto.
- Comprende los requisitos de red específicos de tu proyecto.
- Crea un servicio de Dataproc Metastore.
Roles obligatorios
Para obtener los permisos que necesitas para importar metadatos a Dataproc Metastore, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Para importar metadatos, haz lo siguiente:
-
Editor de Dataproc Metastore (
roles/metastore.editor
) en el servicio de metadatos -
Administrador de Dataproc Metastore (
roles/metastore.admin
) en el proyecto
-
Editor de Dataproc Metastore (
-
Para MySQL, si quieres 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 el rol de Visualizador de objetos de almacenamiento (
roles/storage.objectViewer
) en el bucket de Cloud Storage que contiene el volcado de metadatos que se importará. -
Para Avro, para usar el bucket de Cloud Storage para la importación, otorga a tu cuenta de usuario y al agente de servicio de Dataproc Metastore el rol de Visualizador de objetos de almacenamiento (
roles/storage.objectViewer
) en el bucket de Cloud Storage que contiene el volcado de metadatos que se importará.
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 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 metastore. -
Para MySQL, si quieres 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 los siguientes permisos:
storage.objects.get
en el bucket de Cloud Storage que contiene el volcado de metadatos que se importará. -
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 los roles y permisos específicos de Dataproc Metastore, consulta Descripción general de la IAM de Dataproc Metastore.Importa tus metadatos
La operación de importación es 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 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 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 importarlos
Antes de poder importar tus archivos a Dataproc Metastore, debes copiar los archivos de volcado de metadatos en Cloud Storage, como tu bucket de Cloud Storage de artefactos.
Cómo mover tus archivos a Cloud Storage
Crea un volcado de la base de datos externa que deseas importar a Dataproc Metastore.
Para obtener instrucciones sobre cómo crear un volcado de base de datos, consulta las siguientes páginas:
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 de 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 archivo Avro deben seguir el formato
<table-name>.avro
. El<table-name>
debe ser 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, cambiar la configuración. Sin embargo, puedes usarlo para operaciones normales, como acceder a sus metadatos desde Dataproc adjunto o clústeres autoadministrados.
Console
En la consola de Google Cloud, abre la página Dataproc Metastore:
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.
En la barra de navegación, haz clic en Importar.
Se abrirá el diálogo Importar.
Ingresa el nombre de importación.
En la sección Destino, elige MySQL o Avro.
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
obucket/folder/object
.Opcional: Ingresa una descripción de la importación.
Puedes editar la descripción en la página Detalles del servicio.
Para actualizar el servicio, haz clic en Importar.
Una vez que se complete la importación, aparecerá en una tabla de la página Detalles del servicio, en la pestaña Importar/Exportar.
gcloud CLI
Para importar metadatos, ejecuta el siguiente comando de
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
: Un ID o un nombre completamente calificado para tu importación de metadatos. Por ejemplo,import1
DESCRIPTION
: Es una descripción opcional de tu importación. Puedes editar esta opción más adelante congcloud metastore services imports update IMPORT
.DUMP_TYPE
: Es el tipo de la base de datos externa que importas. Los valores aceptados incluyenmysql
yavro
. El valor predeterminado esmysql
.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 congs://
. Para 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).
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 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:
- En la consola de Google Cloud, abre la página Dataproc Metastore.
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:
- La importación falla porque las versiones de Hive no coinciden.
- El agente de servicio o la cuenta de usuario no tienen los permisos necesarios.
- La tarea falla porque el archivo de la base de datos es demasiado grande.
Para obtener más ayuda para solucionar problemas comunes, consulta Situaciones de error de importación y exportación.