Crea un servicio de federació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 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 Información sobre la federación de metadatos.

Antes de comenzar

Funciones requeridas

Si quieres obtener los permisos que necesitas para crear un servicio de federación y conectar un clúster de Dataproc, de acuerdo con 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: Descriptor de acceso de federación (roles/metastore.federationAccessor) en la cuenta de usuario o de servicio
  • Para otorgar control total de todos los recursos de Dataproc Metastore: Editor de Dataproc Metastore (roles/metastore.editor) en la cuenta de usuario o de servicio
  • Para completar las operaciones de metadatos en un Dataproc Metastore configurado con un servicio de federación: Propietario de Metastore (metastore.metadataEditor) en la cuenta de usuario o de servicio
  • Para crear un clúster de Dataproc, haz lo siguiente: Trabajador de Dataproc (roles/dataproc.worker) en la cuenta de servicio de la VM de Dataproc
  • (Opcional) Para acceder a los conjuntos de datos de BigQuery, usa una función predefinida de BigQuery adecuada que se aplique a tu caso de uso en la cuenta de usuario o de servicio.
  • (Opcional) Para acceder a los data lakes de Dataplex (Vista previa): Usa un rol predefinido de Dataplex adecuado para tu caso de uso en la cuenta de usuario o de servicio.

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

Estos roles predefinidos contienen los permisos necesarios para crear un servicio de federación y conectar 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

Los siguientes permisos son necesarios para crear un servicio de federación y conectar un clúster de Dataproc, de acuerdo con el principio de privilegio mínimo:

  • Para crear un Dataproc Metastore, metastore.services.create en la cuenta de usuario o 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 de servicio
  • Para completar las operaciones de metadatos en Dataproc Metastore, ejecuta 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 de servicio
  • (Opcional) Para acceder a los conjuntos de datos de BigQuery, usa For more information, see BigQuery permissions en la cuenta de usuario o de servicio.
  • (Opcional) Para acceder a los data lakes de Dataplex (versión preliminar), haz lo siguiente: For more information, see Dataplex permissions en la cuenta de usuario o de servicio.

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 Administra el acceso a Dataproc Metastore con la IAM.

Crea un servicio de federación

En las siguientes instrucciones, se muestra cómo crear un servicio de federación y conectarlo a una fuente. Después de completar estos pasos, puedes conectar 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 las fuentes de metadatos.

Console

  1. En la consola de Google Cloud, 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 almacén de metadatos Federado.

  3. En la barra de menú del almacén de metadatos Federado, haz clic en Crear.

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

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

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

  5. Selecciona la Ubicación de los datos.

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

  6. Selecciona la Versión de Hive.

  7. Si quieres agregar una fuente para el servicio de federación, haz clic en Agregar una fuente.

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

    1. En Tipo de fuente, selecciona la 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 (Vista previa).

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

      • Para un servicio de Dataproc Metastore.

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

          Asegúrate de que las fuentes de Dataproc Metastore usen una versión de Hive que sea compatible con el servicio de federación. El almacén de metadatos principal debe usar una versión de Hive superior o igual a tu servicio de federación.

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

      • 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 (vista previa): En el campo Proyecto seleccionado, haz clic en Explorar y selecciona el ID del proyecto que contiene el lake de Dataplex.

    3. Haz clic en Listo.

  8. Para crear e iniciar el servicio, haz clic en Enviar.

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

Actualizar un servicio de federación

En las siguientes instrucciones, se muestra cómo actualizar un servicio de federación. Puedes realizar 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 que se encuentran en un servicio de federación.
  • Borrar un servicio de federación de forma permanente. Después de borrar un servicio, se liberan todos sus recursos.

Console

  1. En la consola de Google Cloud, 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 almacén de metadatos Federado.

  3. En la página de servicios de almacén de metadatos Federado, 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 quieras actualizar.

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

Conecta 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 conectar 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 mencionan en Antes de comenzar y crea un servicio de federación.

CLI de gcloud

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 del clúster de Dataproc nuevo.
  • PROJECT_ID: El ID del proyecto de Google Cloud del proyecto en el que creas el clúster de Dataproc.
  • LOCATION: Es la región del 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 el servicio de federación. Para obtener más información, consulta la lista de versiones de imágenes de Dataproc.

  • SERVICE_ACCOUNT (opcional): Es la cuenta de servicio que usas para crear el 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 de extremo del servicio de federación.

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

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

¿Qué sigue?