Crea un servicio de integración de metadatos

En esta página, se explica cómo crear un servicio de federación de metadatos para Dataproc Metastore. Un servicio de federación te permite acceder a los metadatos almacenados en varias fuentes desde un solo extremo de gRPC.

Para obtener más información sobre cómo funciona la federación y sus limitaciones, consulta Acerca de la federación de metadatos.

Antes de comenzar

Funciones requeridas

Para obtener los permisos que necesitas para crear un servicio de federación y adjuntar un clúster de Dataproc, según el principio de privilegio mínimo, pídele a tu administrador que te otorgue los siguientes roles de IAM:

  • Para acceder al servicio de federación, haz lo siguiente: Federation accessor (roles/metastore.federationAccessor) en la cuenta de usuario o la cuenta de servicio
  • Para otorgar control total de todos los recursos de Dataproc Metastore, haz lo siguiente: Editor de Dataproc Metastore (roles/metastore.editor) en la cuenta de usuario o la cuenta de servicio
  • Para completar las operaciones de metadatos en un almacén de metadatos de Dataproc configurado con un servicio de federación, haz lo siguiente: Propietario del almacén de metadatos (metastore.metadataEditor) en la cuenta de usuario o la cuenta de servicio
  • Para crear un clúster de Dataproc, haz lo siguiente: Trabajador de Dataproc (roles/dataproc.worker) en la cuenta de servicio de VM de Dataproc
  • (Opcional) Para acceder a los conjuntos de datos de BigQuery, haz lo siguiente: Usa un rol predefinido de BigQuery adecuado para tu caso de uso en la cuenta de usuario o la cuenta de servicio.
  • (Opcional) Para acceder a los lakes de Dataplex Universal Catalog (Vista previa), haz lo siguiente: Usa un rol predefinido de Dataplex Universal Catalog adecuado para tu caso de uso en la cuenta de usuario o la cuenta de servicio.

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 crear un servicio de federación y adjuntar un clúster de Dataproc, según el principio de privilegio mínimo. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear un servicio de federación y adjuntar un clúster de Dataproc, según el principio de privilegio mínimo:

  • Para crear un almacén de metadatos de Dataproc, haz lo siguiente: metastore.services.create en la cuenta de usuario o la cuenta de servicio
  • Para enumerar, obtener, crear, actualizar y borrar un servicio de federación: metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list en la cuenta de usuario o la cuenta de servicio
  • Para completar las operaciones de metadatos en un Dataproc Metastore, haz lo siguiente: metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicy en la cuenta de usuario o la cuenta de servicio
  • (Opcional) Para agregar un servicio multirregional a la federación, haz lo siguiente: metastore.services.get en las cuentas de Dataproc Metastore
  • (Opcional) Para acceder a los conjuntos de datos de BigQuery, se requiere For more information, see BigQuery permissions en la cuenta de usuario o la cuenta de servicio.
  • (Opcional) Para acceder a los lakes de Dataplex Universal Catalog (Vista previa): For more information, see Dataplex Universal Catalog permissions en la cuenta de usuario o la cuenta de servicio

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 Administra el acceso a Dataproc Metastore con Identity and Access Management.

Crea un servicio de federación

En las siguientes instrucciones, se muestra cómo crear un servicio de federación y adjuntarlo a una fuente. Después de completar estos pasos, puedes adjuntar tu servicio de federación a un clúster de Dataproc.

Para obtener más información sobre las fuentes de federación y sus limitaciones, consulta fuentes de metadatos.

Console

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

    Abrir Dataproc Metastore

  2. En el menú de navegación de Dataproc, haz clic en Federación.

    Se abrirá la página de servicios de metastore federados.

  3. En la barra de menú del metastore Federated, haz clic en Create.

    Se abrirá la página Crear servicio de federación.

  4. En el campo Nombre de la federación, ingresa un nombre único para tu servicio.

    Para obtener más información, consulta Convención de asignación de nombres de recursos.

  5. Selecciona la Ubicación de los datos.

    Asegúrate de crear tu servicio de federación en las mismas regiones que tus fuentes de Dataproc Metastore.

  6. Selecciona la versión de Hive.

  7. Para agregar una fuente a tu servicio de federación, haz clic en Agregar una fuente.

    Puedes agregar una o más fuentes. La primera fuente que agregues a esta lista se establecerá automáticamente como tu metastore principal. Puedes actualizar el orden de las fuentes después de la creación.

    1. En Tipo de fuente, selecciona tu fuente de federación.

      Puedes elegir una instancia de Dataproc Metastore, un proyecto que contenga uno o más conjuntos de datos de BigQuery o un lake de Dataplex Universal Catalog (versión preliminar).

    2. En el campo Fuente, ingresa la siguiente información:

      • Para un servicio de Dataproc Metastore

        1. En el campo Proyecto seleccionado, haz clic en Explorar y selecciona el proyecto que contiene el Dataproc Metastore que deseas usar como fuente.

          Asegúrate de que tus fuentes de Dataproc Metastore usen una versión de Hive que sea compatible con tu servicio de federación. Tu metastore principal debe usar una versión de Hive que sea mayor o igual que la de tu servicio de federación.

        2. En el menú desplegable Servicio de Metastore, selecciona el Dataproc Metastore que deseas usar como fuente.

        3. (Opcional) Selecciona la casilla de verificación Mostrar los servicios de Metastore fuera de mi región. En esta lista, se incluye el servicio de Dataproc Metastore de otras regiones, incluidas las multirregiones.

          Para habilitar la federación en un servicio de Dataproc Metastore multirregional, selecciona un servicio de Dataproc Metastore multirregional en esta lista.

      • Para BigQuery. En el campo Proyecto seleccionado, haz clic en Explorar y selecciona el ID del proyecto que contiene el conjunto de datos de BigQuery.

      • Para Dataplex Universal Catalog (vista previa) En el campo Proyecto seleccionado, haz clic en Explorar y selecciona el ID del proyecto que contiene el lake de Dataplex Universal Catalog.

    3. Haz clic en Listo.

  8. Haz clic en Enviar para crear y, luego, iniciar el servicio.

    Ahora puedes adjuntar tu servicio de federación a un clúster de Dataproc.

gcloud CLI

Para crear una federación con Dataproc Metastore, ejecuta el siguiente comando.

gcloud metastore federations create FEDERATION \
  --location LOCATION \
  --backends RANK=BACKEND_METASTORE \
  --hive-metastore-version HIVE_VERSION

Reemplaza lo siguiente:

  • FEDERATION: Es el nombre de tu servicio de federación de Dataproc Metastore.
  • LOCATION: Es la Google Cloud región en la que se creará la federación.
  • RANK: Es un número de clasificación para cada uno de tus almacenes de metadatos de backend que se usa para resolver conflictos de nombres de bases de datos. El servicio de federación consulta primero los números con clasificación más baja. Por ejemplo, se consulta un almacén de metadatos de backend con un rango de 1 antes que un almacén de metadatos con un rango de 2. Este valor debe ser un número entero. Por ejemplo, --backends 1=first_backend_metastore, 2=second_backend_metastore
  • BACKEND_METASTORE: Es el recurso relativo de cada almacén de metadatos de backend en el siguiente formato: METASTORE_TYPE:METASTORE_NAME. Para los servicios de Dataproc Metastore, usa dpms:SERVICE_ID. Puedes encontrar el archivo SERVICE_ID en la siguiente ubicación: projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION: Es la versión de Hive Metastore (3.1.2 o 2.3.6).

Actualiza un servicio de federación

En las siguientes instrucciones, se muestra cómo actualizar un servicio de federación. Puedes completar las siguientes tareas:

  • Agrega una fuente a un servicio de federación.
  • Quita una fuente de un servicio de federación.
  • Cambia el orden de las fuentes incluidas en un servicio de federación.
  • Borra un servicio de federación de forma permanente. Después de borrar un servicio, se liberan todos sus recursos.

Console

https://cloud.google.com/dataproc-metastore/docs/create-federation

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

    Abrir Dataproc Metastore

  2. En el menú de navegación de Dataproc, haz clic en Federación.

    Se abrirá la página de servicios de metastore federados.

  3. En la página de servicios de metastore federados, haz clic en el nombre del servicio que deseas actualizar.

    Se abrirá la página Detalles del servicio.

  4. En la barra de menú, haz clic en Editar.

    Se abrirá la página Editar servicio.

  5. Elige los valores que deseas actualizar.

  6. Para actualizar el servicio, haz clic en Enviar.

gcloud CLI

Para actualizar una federación con Dataproc Metastore, ejecuta el siguiente comando.

gcloud metastore federations update FEDERATATON \
  --location=LOCATION \
  --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
  • FEDERATION: Es el nombre de tu servicio de federación de Dataproc Metastore.
  • LOCATION: Es la Google Cloud región en la que se creará la federación.
  • RANK: Es un número de clasificación para cada uno de tus almacenes de metadatos de backend que se usa para resolver conflictos de nombres de bases de datos. El servicio de federación consulta primero los números con clasificación más baja. Por ejemplo, se consulta un almacén de metadatos de backend con un rango de 1 antes que un almacén de metadatos con un rango de 2. Este valor debe ser un número entero. Por ejemplo, --backends 2=first_backend_metastore, 2=second_backend_metastore
  • BACKEND_METASTORE: Es el recurso relativo de cada almacén de metadatos de backend en el siguiente formato: METASTORE_TYPE:METASTORE_NAME. Para los servicios de Dataproc Metastore, usa dpms:SERVICE_ID. Puedes encontrar el archivo SERVICE_ID en la siguiente ubicación: projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION: Es la versión de Hive Metastore (3.1.2 o 2.3.6).

Cómo adjuntar un clúster de Dataproc a un servicio de federación

En las siguientes instrucciones, se muestra cómo crear un clúster de Dataproc y adjuntar un extremo de servicio de federación como su almacén de metadatos.

Antes de comenzar con estas instrucciones, completa todos los pasos que se indican en Antes de comenzar y crea un servicio de federación.

gcloud CLI

Para crear un clúster de Dataproc y adjuntar un extremo de federación, ejecuta el siguiente comando gcloud Dataproc clusters create.

 gcloud dataproc clusters create CLUSTER_NAME \
    --region=LOCATION \
    --project=PROJECT_ID \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --image-version=IMAGE_VERSION \
    --service-account=SERVICE_ACCOUNT \
    --optional-components=DOCKER \
    --initialization-actions=gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \
    --metadata="proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \
    --properties="hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre de tu nuevo clúster de Dataproc.
  • PROJECT_ID: Es el Google Cloud ID del proyecto en el que crearás el clúster de Dataproc.
  • LOCATION: Es la región de tu clúster de Dataproc.
  • IMAGE_VERSION: Es la versión de la imagen de Dataproc que deseas usar.

    Asegúrate de que la imagen de Dataproc que usas en este comando sea compatible con la versión de Hive que se usa con tu servicio de federación. Para obtener más información, consulta la Lista de versiones con imágenes de Dataproc.

  • SERVICE_ACCOUNT (opcional): Es la cuenta de servicio que usas para crear tu clúster de Dataproc. Si no se especifica, el clúster usa tu cuenta de servicio predeterminada de Compute Engine.

  • FEDERATION_URI: Es el URI del extremo de tu servicio de federación.

  • FEDERATION_VERSION: Es la versión de Hive que usa tu servicio de federación.

  • WAREHOUSE_DIR: Es el directorio del almacén de tu Dataproc Metastore principal.

¿Qué sigue?