Compartir contenido en streaming con Pub/Sub

Puedes compartir temas de Pub/Sub a través de BigQuery sharing para organizar y distribuir una biblioteca de datos de streaming en varios límites organizativos internos y externos. Los datos de streaming en tiempo real se comparten mediante intercambios y listados de BigQuery Sharing, lo que te permite categorizar y agrupar lógicamente grandes conjuntos de temas de Pub/Sub y proporcionar acceso a gran escala.

Puedes compartir datos de streaming para hacer lo siguiente:

  • Servicios financieros:
    • Compartir en tiempo real los precios, las cotizaciones y los pedidos de instrumentos que cambian rápidamente
    • Detectar el blanqueo de dinero y el fraude en los pagos
    • Admite cálculos de riesgos comerciales
  • Comercio minorista y productos de gran consumo (CPG):
    • Ayudar a las tiendas a gestionar el inventario en tiempo real
    • Personalizar el marketing y la asistencia
    • Ajustar los precios de forma dinámica
    • Monitorizar canales de redes sociales
    • Optimizar la distribución de las tiendas físicas
  • Sanidad:
    • Potencia los algoritmos predictivos para monitorizar a los pacientes y analizar los riesgos en tiempo real
    • Monitorizar las constantes vitales con dispositivos médicos wearables
    • Adquisición, estructuración, almacenamiento y procesamiento automáticos de datos de pacientes, profesionales sanitarios y administración de centros
  • Telecomunicaciones:
    • Revisar el estado de la red y predecir fallos
    • Descubrir patrones de comportamiento de los usuarios para localizar mejor los dispositivos y las antenas

Roles obligatorios

Las funciones para compartir temas de Pub/Sub son análogas a las de compartir conjuntos de datos de BigQuery:

Arquitectura

En el siguiente diagrama se describe cómo interactúan los editores y los suscriptores de recursos de Pub/Sub con BigQuery sharing:

Interacción entre los editores de Analytics Hub y la función Compartir.
Imagen 1. Flujo de trabajo de editor y suscriptor de Analytics Hub con temas de Pub/Sub.

Temas compartidos

Un tema compartido es la unidad de uso compartido de un tema de Pub/Sub en Sharing. Como editor, puedes crear o usar un tema de Pub/Sub para distribuir datos de mensajes a tus suscriptores. Al compartir un tema de Pub/Sub, no se replica el tema de origen.

Fichas

Una ficha se crea cuando un editor añade un tema compartido a un exchange. Contiene una referencia al tema compartido.

Exchanges (Intercambios)

Un intercambio es una agrupación lógica de fichas que hacen referencia a temas compartidos.

Suscripciones de Pub/Sub vinculadas

Cuando se suscribe a una ficha con un tema compartido, se crea una suscripción de Pub/Sub vinculada en el proyecto del suscriptor. Una suscripción de Pub/Sub también se representa en el proyecto del editor como una suscripción de Pub/Sub y una suscripción de ficha compartida.

Limitaciones

El uso compartido de emisiones con Pub/Sub tiene las siguientes limitaciones:

  • Un tema compartido puede tener un máximo de 10.000 suscripciones de Pub/Sub. Este límite incluye las suscripciones de Pub/Sub vinculadas y las suscripciones de Pub/Sub creadas fuera de la función Compartir, como las suscripciones creadas directamente desde Pub/Sub.
  • Los temas compartidos se indexan en Data Catalog (obsoleto) y Dataplex Universal Catalog, pero no puedes filtrar específicamente por su tipo de recurso.

  • Las métricas de uso se registran y se muestran en el panel Métricas de los temas y las suscripciones de Pub/Sub compartidos, pero no están disponibles en INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

    Para monitorizar las métricas, consulta Monitorizar Pub/Sub en Cloud Monitoring.

    Entre estas métricas se pueden incluir las siguientes:

    • Número de mensajes de publicación
    • Solicitudes de publicación
    • Rendimiento de publicación en bytes
    • Las 5 suscripciones principales
    • Bytes ingeridos
    • Otras

Habilitar la API Analytics Hub

Para habilitar la API Analytics Hub, haz lo siguiente:

Consola

Ve a la biblioteca de APIs y habilita la API Analytics Hub en tu Google Cloud proyecto.

Habilitar la API Analytics Hub

gcloud

Ejecuta el comando gcloud services enable:

gcloud services enable analyticshub.googleapis.com

Habilitar la API Pub/Sub

Ve a la biblioteca de APIs y habilita la API Pub/Sub en tu Google Cloud proyecto.

Habilitar la API Pub/Sub

Flujos de trabajo de los editores

Como editor de Analytics Hub, puede hacer lo siguiente:

  • Añadir temas compartidos a un exchange creando una ficha
  • Actualizar una ficha
  • Eliminar una ficha
  • Compartir una ficha
  • Gestionar las suscripciones a tu ficha
  • Quitar suscriptores de tu ficha

Permisos de editor adicionales

Para realizar tareas de editor, debe tener el rol Editor de Analytics Hub (roles/analyticshub.publisher) en una bolsa o una ficha. Para ver todos los intercambios de datos de los proyectos de una organización a los que tienes acceso, debes tener el permiso resourcemanager.organizations.get.

Además, necesitas el permiso pubsub.topics.setIamPolicy en el tema de Pub/Sub que quieras mostrar. Para compartir temas con un esquema adjunto, debe conceder a los suscriptores del centro de datos de Analytics el permiso pubsub.schemas.get en el esquema adjunto al tema. De esta forma, los suscriptores de Analytics Hub pueden analizar correctamente los mensajes de la suscripción de Pub/Sub.

Crear una ficha (para añadir un tema compartido)

Para añadir un tema compartido a una ficha, selecciona una de las siguientes opciones:

Consola

  1. Vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

    Aparecerá una página con todos los intercambios de datos a los que tienes acceso.

  2. Haga clic en el nombre del intercambio de datos en el que quiera crear la ficha.

  3. Haz clic en Crear ficha.

  4. En la página Crear anuncio, seleccione Tema de Pub/Sub en el menú desplegable Tipo de recurso.

  5. Selecciona un tema de Pub/Sub en el menú desplegable Tema compartido o haz clic en Crear un tema.

  6. En la página Tu ficha, en Nombre visible, introduce el nombre de la ficha.

  7. Introduce los siguientes detalles opcionales:

    • Categoría: selecciona hasta dos categorías que representen mejor tu ficha. Los suscriptores pueden filtrar las fichas según estas categorías.

    • Afinidad de datos: regiones que usa el editor para publicar los datos. Esta información es útil para que los suscriptores minimicen o eviten los costes de salida de red de Pub/Sub leyendo los datos de la misma región. Para obtener más información sobre los costes de salida, consulta Costes de transferencia de datos.

    • Icono: un icono para tu ficha. Se admiten los formatos de archivo PNG y JPEG. Los iconos deben tener un tamaño de archivo inferior a 512 KiB y unas dimensiones máximas de 512 x 512 píxeles.

    • Descripción: una breve descripción de tu ficha. Los suscriptores pueden buscar fichas según la descripción.

    • Visibilidad pública: habilita la visibilidad pública de tu ficha en el catálogo de uso compartido de BigQuery. También debes definir los permisos de la ficha. Haz clic en Acciones del exchange y en Establecer permisos. Asigna el rol Lector de Analytics Hub a allUsers o allAuthenticatedusers. Haz clic en Permitir acceso público.

    • Documentación > Markdown: información adicional, como enlaces a documentación pertinente y cualquier otra información que pueda ayudar a los suscriptores a usar tu tema.

  8. En la página Información de contacto de la ficha, introduce los siguientes datos opcionales:

    • Contacto principal: introduce un correo o una URL del contacto principal de la ficha.

    • Contacto para solicitar acceso: introduce un correo o una URL del formulario de solicitud para que los suscriptores se pongan en contacto contigo.

    • Proveedor: amplíe la sección Proveedor y especifique los detalles en los siguientes campos:

      • Nombre del proveedor: el nombre del proveedor del tema.
      • Contacto principal del proveedor: un correo o una URL del contacto principal del proveedor del tema.

      Los suscriptores pueden filtrar las fichas en función de los proveedores de datos.

    • Editor: despliega la sección Editor y especifica los detalles en los siguientes campos:

      • Nombre del editor: el nombre del editor que crea la ficha.
      • Contacto principal del editor: una dirección de correo o una URL del contacto principal del editor del tema.
  9. Consulta la página Vista previa de la ficha.

  10. Haz clic en Publicar.

API

Usa el método projects.locations.dataExchanges.listings.create.

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto que contiene el intercambio de datos en el que quiere crear la ficha.
  • LOCATION: la ubicación de su intercambio de datos. Para obtener más información sobre las ubicaciones que admiten la función Compartir, consulta Regiones admitidas.
  • DATAEXCHANGE_ID: el ID de intercambio de datos.
  • LISTING_ID: el ID de la ficha.

En el cuerpo de la solicitud, proporciona los detalles de la ficha. Si la solicitud se realiza correctamente, el cuerpo de la respuesta contiene los detalles de la ficha.

Para obtener más información sobre las tareas que puede realizar en las fichas mediante APIs, consulte los métodos de projects.locations.dataExchanges.listings.

Actualizar una ficha

Para actualizar una ficha, selecciona una de las siguientes opciones:

Consola

  1. Vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre del intercambio de datos que contiene la ficha.

  3. Haz clic en la ficha que quieras actualizar.

  4. Haz clic en Editar ficha.

  5. Modifica los valores de los campos. Puede modificar todos los valores, excepto el tema compartido de la ficha.

  6. Para guardar los cambios, haz clic en Publicar.

API

Usa el método projects.locations.dataExchanges.listings.patch.

PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID?updateMask=UPDATEMASK

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto que contiene el intercambio de datos en el que quiere crear la ficha.
  • LOCATION: la ubicación de su intercambio de datos. Para obtener más información sobre las ubicaciones que admiten la función Compartir, consulta Regiones admitidas.
  • DATAEXCHANGE_ID: el ID de intercambio de datos.
  • LISTING_ID: el ID de la ficha.
  • UPDATEMASK: la lista de campos que quieras actualizar. Para actualizar varios valores, utilice una lista separada por comas.

En el cuerpo de la solicitud, especifica los valores actualizados.

Para obtener más información sobre las tareas que puede realizar en las fichas mediante APIs, consulte los métodos de projects.locations.dataExchanges.listings.

Eliminar una ficha

Las fichas con temas de Pub/Sub compartidos no se pueden eliminar si hay suscripciones activas. Revoca todas las suscripciones activas antes de intentar eliminar una ficha de tema compartido. Una vez que se elimina una ficha, no se puede deshacer la acción. Para eliminar una ficha, selecciona una de las siguientes opciones:

Consola

  1. Vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre del intercambio de datos que contiene la ficha.

  3. Haz clic en la ficha que quieras eliminar.

  4. Haz clic en Eliminar.

  5. En el cuadro de diálogo ¿Eliminar ficha?, confirma la eliminación escribiendo eliminar.

  6. Haz clic en Eliminar.

API

Usa el método projects.locations.dataExchanges.listings.delete.

DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto que contiene el intercambio de datos en el que quiere crear la ficha.
  • LOCATION: la ubicación de su intercambio de datos. Para obtener más información sobre las ubicaciones que admiten la función Compartir, consulta Regiones admitidas.
  • DATAEXCHANGE_ID: el ID de intercambio de datos.
  • LISTING_ID: el ID de la ficha.

Para obtener más información sobre las tareas que puede realizar en las fichas mediante APIs, consulte los métodos de projects.locations.dataExchanges.listings.

Compartir una ficha

Si quieres dar acceso a una ficha privada a los usuarios, debes definir la política de gestión de identidades y accesos para un usuario o un grupo concretos en esa ficha. En el caso de las fichas comerciales, el intercambio de datos debe ser público. Las fichas de un intercambio de datos público aparecen en la sección Compartido con todos los usuarios de Google Cloud (allAuthenticatedUsers). Para permitir que los usuarios soliciten acceso a fichas comerciales, debe asignarles el rol Lector de Centro de Análisis.

Para dar acceso a los usuarios para que vean o se suscriban a tu ficha, sigue estos pasos:

  1. Vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre del intercambio de datos que contiene la ficha.

  3. Haz clic en la ficha a la que quieras añadir suscriptores.

  4. Haz clic en Establecer permisos.

  5. Para añadir principales, haz clic en Añadir principal.

  6. En el campo Nuevos responsables, añada los siguientes detalles en función del tipo de ficha:

    • En el caso de las fichas privadas, introduce las direcciones de correo de las identidades a las que quieras dar acceso.
    • Para una ficha pública, añade allAuthenticatedUsers.
  7. En el menú Selecciona un rol, elija Centro de análisis y, a continuación, en función del tipo de ficha, seleccione uno de los siguientes roles:

    • En el caso de una ficha comercial, selecciona el rol Lector de Analytics Hub. Este rol permite a los usuarios ver la ficha y solicitar acceso.
    • En el caso de las fichas públicas privadas o no comerciales, selecciona el rol Suscriptor del centro de análisis. Este rol permite a los usuarios suscribirse a tu ficha.
  8. Haz clic en Guardar.

Para obtener más información, consulta Roles de suscriptor y lector de Analytics Hub.

Gestionar suscripciones

Para permitir que un usuario se suscriba a una ficha con un tema compartido, concédele los roles Suscriptor de Analytics Hub (roles/analyticshub.subscriber) y Propietario de la suscripción de Analytics Hub (roles/analyticshub.subscriptionOwner) en una ficha específica:

  1. Vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre del intercambio de datos que contenga la ficha de la que quiera gestionar las suscripciones.

  3. Haz clic en la ficha de la que quieras obtener una lista de todos los suscriptores.

  4. Haz clic en Establecer permisos.

  5. Para añadir principales, haz clic en Añadir principal.

  6. En el campo Nuevos principales, introduce los nombres de usuario o las direcciones de correo de los suscriptores que quieras añadir.

  7. En Selecciona un rol, elige Analytics Hub > Suscriptor de Analytics Hub.

  8. Haz clic en Añadir otro rol.

  9. En Selecciona un rol, elige Centro de analíticas > Propietario de la suscripción al centro de analíticas.

  10. Haz clic en Guardar.

Puedes eliminar y actualizar suscriptores en cualquier momento haciendo clic en Definir permisos.

Revocar una suscripción

Para dejar de suscribirte a una lista de temas compartidos desde Compartir, selecciona una de las siguientes opciones:

Consola

  1. Para ver una lista de todos los suscriptores de una ficha, sigue las Google Cloud instrucciones de la consola en Ver todas las suscripciones.

  2. Haz clic en la pestaña Suscripciones para ver todas las suscripciones al intercambio de datos.

  3. Marca la casilla situada junto a las suscripciones que quieras quitar o selecciona todas las suscripciones.

  4. En el cuadro de diálogo ¿Revocar suscripción?, escribe "revoke" para confirmar.

  5. Haz clic en Revocar.

API

Para eliminar una suscripción, utiliza el método projects.locations.subscriptions.revoke.

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto de la suscripción que quieres quitar.
  • LOCATION: la ubicación de la suscripción.
  • SUBSCRIPTION_ID: el ID de la suscripción que quieres eliminar.

Si se revoca una suscripción del uso compartido de BigQuery, el suscriptor dejará de recibir datos de mensajes del tema compartido. La suscripción de Pub/Sub se desvincula del tema compartido. Si se elimina una suscripción directamente desde Pub/Sub, la suscripción compartida de BigQuery se conservará y deberá limpiarse.

Flujos de trabajo de suscriptores

Como suscriptor de Analytics Hub, puedes ver una ficha y suscribirte a ella. Al suscribirse a una ficha de un tema compartido, se crea una suscripción de Pub/Sub vinculada en el proyecto del suscriptor. La suscripción de Pub/Sub se podrá ver en el proyecto del editor.

Permisos adicionales para suscriptores

Para realizar tareas de suscriptor, debe tener asignado el rol Suscriptor de Analytics Hub (roles/analyticshub.subscriber) a nivel de proyecto, de exchange o de ficha.

Suscribirse a una lista de temas compartida

Para suscribirte a una ficha con un tema compartido, selecciona una de las siguientes opciones:

Consola

  1. Para ver una lista de las fichas a las que tienes acceso, sigue los pasos que se indican en Ver fichas.

  2. Busca en las fichas y haz clic en la que quieras suscribirte. Aparecerá un cuadro de diálogo con los detalles de la ficha.

  3. Haz clic en Suscribirme para abrir el cuadro de diálogo Crear suscripción.

  4. Si no tienes habilitada la API Analytics Hub en tu proyecto, aparecerá un mensaje de error con un enlace para habilitarla. Haga clic en Habilitar la API Analytics Hub.

  5. En el cuadro de diálogo Crear suscripción, especifica los siguientes detalles:

    • ID de suscripción: especifica el nombre de la suscripción que vas a crear.
    • Tipo de entrega: selecciona el mecanismo de entrega de los datos del mensaje.
    • Periodo de retención del mensaje: define el periodo de retención del mensaje.
    • Periodo de caducidad: indica cuándo caducará la suscripción tras un periodo de inactividad (si es que caduca).
    • Plazo límite de confirmación: indica la hora límite de confirmación.
    • Filtro de suscripciones: define la sintaxis de filtro en los mensajes.
    • Entrega exactamente una vez: habilita la entrega exactamente una vez.
    • Ordenación de mensajes: habilita la ordenación de mensajes con una clave de orden.
    • Mensajes fallidos: habilita los mensajes fallidos.
    • Política de reintentos: define una política de reintentos.

    Para obtener más información sobre las propiedades de las suscripciones a Pub/Sub, consulta Propiedades de las suscripciones.

  6. Para guardar los cambios, haz clic en Crear. La suscripción de Pub/Sub vinculada se crea en tu proyecto.

API

Usa el método projects.locations.dataExchanges.listings.subscribe.

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:subscribe

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto de la ficha a la que quieres suscribirte.
  • LOCATION: la ubicación de la ficha a la que quieres suscribirte.
  • DATAEXCHANGE_ID: el ID de intercambio de datos de la ficha a la que quieras suscribirte.
  • LISTING_ID: el ID de la ficha a la que quieras suscribirte.

En el cuerpo de la solicitud, especifica la suscripción de Pub/Sub en la que quieras crear la suscripción de Pub/Sub vinculada. Si la solicitud se hace correctamente, el cuerpo de la respuesta estará vacío.

Para obtener más información sobre las suscripciones de Pub/Sub, consulta la descripción general de las suscripciones.

Precios

Los editores de temas de Pub/Sub no tienen que pagar nada adicional por mostrar y compartir temas a través de la función Compartir. Se cobra a los editores por el número total de bytes escritos (rendimiento de publicación) en el tema compartido y por la salida de red (si procede). A los suscriptores se les cobra el número total de bytes leídos (rendimiento de suscripción) de la suscripción vinculada y la salida de red (si procede). Consulta la lista de precios de Pub/Sub para obtener más información.

Controles de Servicio de VPC

En el caso de los temas compartidos de proyectos que tengan perímetros de Controles de Servicio de VPC, puedes definir las reglas de entrada y salida adecuadas para conceder acceso a editores y suscriptores.