Uso compartido de transmisiones con Pub/Sub
El uso compartido de BigQuery (antes Analytics Hub) te permite compartir temas de Pub/Sub para seleccionar y distribuir datos de transmisión en tiempo real en organizaciones internas y externas. Con los intercambios de datos y las fichas, puedes categorizar y agrupar grandes conjuntos de temas de Pub/Sub y aprovisionar el acceso a gran escala.
Casos de uso
Puedes compartir datos de transmisión para admitir casos de uso en los siguientes sectores:
- Servicios financieros:
- Comparte en tiempo real los precios de los instrumentos, las cotizaciones y los pedidos que cambian rápidamente.
- Detecta el lavado de dinero y el fraude en los pagos.
- Compatibilidad con los cálculos de riesgos comerciales
- Venta minorista y bienes de consumo envasados (CPG):
- Administra el inventario de la tienda en tiempo real.
- Personaliza el marketing y la asistencia al cliente.
- Ajusta los precios de forma dinámica.
- Supervisar los canales de redes sociales
- Optimiza los diseños de tiendas físicas.
- Servicios de salud:
- Potencia los algoritmos predictivos para supervisar pacientes y analizar riesgos en tiempo real.
- Supervisa las métricas con dispositivos médicos que puedas ponerte.
- Adquiere, estructura, almacena y procesa automáticamente datos de pacientes, profesionales de la salud y administración de instalaciones.
- Telecomunicaciones:
- Supervisa el estado de la red y predice fallas.
- Descubre patrones de comportamiento de los usuarios para ubicar mejor los dispositivos y las antenas.
Roles de uso compartido de transmisiones
Los roles de Identity and Access Management (IAM) para compartir temas de Pub/Sub son similares a los roles para compartir conjuntos de datos de BigQuery:
- Administrador: Administra los permisos, la visibilidad y la membresía de los intercambios y las fichas. Este rol es análogo al rol de IAM de
administrador de Analytics Hub
(
roles/analyticshub.admin). - Publicador de temas compartidos: Crea, administra y otorga acceso a las fichas
de los temas de Pub/Sub compartidos. Este rol es análogo al rol de IAM de
publicador de Analytics Hub
(
roles/analyticshub.publisher) o administrador de fichas de Analytics Hub (roles/analyticshub.listingAdmin). El publicador es un usuario, no la aplicación de publicador que crea y envía mensajes al tema. - Suscriptor del tema compartido: Se suscribe a la ficha del tema compartido y
configura cómo Pub/Sub entrega los mensajes del tema. Este rol es
análogo al rol de IAM de
suscriptor de Analytics Hub
(
roles/analyticshub.subscriber) o propietario de la suscripción a Analytics Hub (roles/analyticshub.subscriptionOwner). Según cómo Pub/Sub entregue los datos del mensaje, es posible que necesites permisos adicionales, como permisos de cuenta de servicio de Pub/Sub para escribir mensajes en BigQuery.
Arquitectura
En el siguiente diagrama, se muestra cómo interactúan los publicadores y suscriptores de recursos de Pub/Sub con el uso compartido de BigQuery:
El uso compartido de transmisiones con Pub/Sub usa los siguientes componentes:
- Temas compartidos
- Un tema compartido es la unidad que se comparte de un tema de Pub/Sub en BigQuery sharing. Como publicador de temas compartidos, creas o usas un tema de Pub/Sub existente para distribuir datos de mensajes a los suscriptores. El uso compartido de BigQuery no replica el tema de Pub/Sub de origen.
- Fichas
- Cuando un publicador agrega un tema compartido a un intercambio, BigQuery sharing crea una ficha que hace referencia al tema compartido.
- Intercambios
- Un intercambio es una agrupación lógica de fichas que hacen referencia a temas compartidos.
- Suscripciones vinculadas a Pub/Sub
- Cuando un suscriptor se suscribe a una ficha con un tema compartido, el uso compartido de BigQuery crea una suscripción a Pub/Sub vinculada en el proyecto del suscriptor. En el proyecto del publicador del tema compartido, la suscripción aparece como una suscripción a Pub/Sub y una suscripción a la ficha de BigQuery sharing.
Limitaciones
El uso compartido de transmisiones con Pub/Sub tiene las siguientes limitaciones:
- Un tema compartido admite un máximo de 10,000 suscripciones a Pub/Sub. Este límite incluye las suscripciones de Pub/Sub vinculadas y las suscripciones de Pub/Sub creadas fuera de BigQuery sharing, como las suscripciones creadas directamente en Pub/Sub.
Los temas compartidos se indexan en Knowledge Catalog, pero no puedes filtrar específicamente por su tipo de recurso.
Las métricas de uso se capturan y se muestran en el panel de métricas de los temas y las suscripciones de Pub/Sub compartidos, pero no están disponibles en la vista
INFORMATION_SCHEMA.SHARED_DATASET_USAGE.Estas métricas pueden incluir lo siguiente:
- Cantidad de mensajes publicados
- Solicitudes de publicación
- Capacidad de procesamiento de publicación en bytes
- Las 5 suscripciones principales
- Bytes transferidos
Para supervisar las métricas, consulta Supervisa Pub/Sub en Cloud Monitoring.
Antes de comenzar
Antes de compartir o suscribirte a temas de Pub/Sub en BigQuery sharing, habilita las APIs requeridas.
Habilita la API de Analytics Hub
Para habilitar la API de Analytics Hub, selecciona una de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página Biblioteca de APIs y habilita la API de Analytics Hub para tu proyecto de Google Cloud .
gcloud
Habilita la API de Analytics Hub con el
comando gcloud services enable:
gcloud services enable analyticshub.googleapis.com
Habilita la API de Pub/Sub
Para habilitar la API de Pub/Sub, selecciona una de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página Biblioteca de APIs y habilita la API de Pub/Sub para tu proyecto de Google Cloud .
gcloud
Habilita la API de Pub/Sub con el
comando gcloud services enable:
gcloud services enable pubsub.googleapis.com
Flujos de trabajo del publicador de temas compartidos
Como publicador de temas compartidos, puedes hacer lo siguiente:
- Crear una ficha para agregar temas compartidos a un intercambio
- Actualizar una ficha.
- Borrar una ficha.
- Comparte una ficha.
- Administra las suscripciones a tu ficha.
- Quitar suscriptores de tu ficha.
Permisos adicionales del publicador
Para realizar tareas de publicador de temas compartidos, debes tener el
rol de publicador de Analytics Hub
(roles/analyticshub.publisher) en un intercambio o una ficha. Para ver todos los
intercambios de datos
a los que tienes acceso en los proyectos de una organización, debes tener el
permiso resourcemanager.organizations.get.
Además, necesitas el permiso pubsub.topics.setIamPolicy en el tema de Pub/Sub que deseas enumerar. Para compartir temas con un esquema
adjunto, debes otorgar a los suscriptores de BigQuery sharing el
permiso pubsub.schemas.get en el esquema adjunto al tema. Este
permiso permite que los suscriptores de BigQuery sharing analicen los mensajes de la
suscripción a Pub/Sub.
Crea una ficha de tema compartido
Para agregar un tema compartido a un intercambio creando una ficha, selecciona una de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).
Ir a Uso compartido (Analytics Hub)
En la página, se enumeran todos los intercambios de datos que puedes ver.
Haz clic en el nombre del intercambio de datos en el que deseas crear la ficha.
Haz clic en Crear ficha.
En la página Crear ficha, en la lista Tipo de recurso, selecciona Tema de Pub/Sub.
En la lista Tema compartido, selecciona un tema de Pub/Sub existente o haz clic en Crear un tema.
En la página Detalles de la ficha, en el campo Nombre visible, ingresa el nombre de la ficha.
Opcional: Ingresa los siguientes detalles:
Categoría: Selecciona hasta cinco categorías que representen de mejor manera tu ficha. Los suscriptores de temas compartidos pueden filtrar fichas según estas categorías.
Afinidad de datos: Especifica la región o las regiones en las que publicas datos en el tema compartido. Esta información ayuda a los suscriptores de temas compartidos a minimizar o evitar los costos de salida de red de Pub/Sub leyendo los datos de la misma región. Para obtener más información sobre los costos de salida, consulta Costos de transferencia de datos.
Ícono: Sube un ícono en formato PNG o JPEG para tu ficha. Los íconos deben tener un tamaño inferior a 512 KiB y dimensiones de no más de 512 × 512 píxeles.
Descripción: Ingresa una descripción breve de tu ficha. Los suscriptores del tema compartido 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. Después de crear la ficha, también debes otorgar a
allUsersoallAuthenticatedUsersel rol de visualizador de Analytics Hub (roles/analyticshub.viewer) en la ficha. Si el intercambio de datos ya es público, la ficha hereda esos permisos y no requiere ninguna otra acción.Documentación > Markdown: Ingresa información adicional, como vínculos a documentación relevante y otros detalles que ayuden a los suscriptores del tema compartido a usarlo.
Opcional: En la página Información de contacto de la ficha, ingresa los siguientes detalles:
Contacto principal: Ingresa una dirección de correo electrónico o una URL para el contacto principal de la ficha.
Contacto para solicitar acceso: Ingresa una dirección de correo electrónico o una URL del formulario de admisión que los suscriptores del tema compartido puedan usar para comunicarse contigo.
Proveedor: Expande la sección Proveedor y especifica los detalles en los siguientes campos:
- Nombre del proveedor: ingresa el nombre del proveedor del tema.
- Contacto principal del proveedor: Ingresa una dirección de correo electrónico o una URL para el contacto principal del proveedor del tema.
Los suscriptores de temas compartidos pueden filtrar las fichas según los proveedores de datos.
Publicador: Expande la sección Publicador y especifica los detalles en los siguientes campos:
- Nombre del publicador: Ingresa tu nombre o el de tu organización como el publicador del tema compartido.
- Contacto principal del publicador: Ingresa una dirección de correo electrónico o una URL para tu contacto principal como publicador del tema compartido.
Revisa la página Vista previa de la ficha.
Para publicar la ficha, haz clic en Publicar.
API
Usa el método projects.locations.dataExchanges.listings.create:
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID
Reemplaza lo siguiente:
PROJECT_ID: el ID del proyecto que contiene el intercambio de datos.LOCATION: la ubicación de tu intercambio de datos. Para obtener más información sobre las ubicaciones que admiten el uso compartido de BigQuery, consulta Regiones admitidas.DATAEXCHANGE_ID: el ID del 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 de forma correcta, el cuerpo de la respuesta contendrá los detalles de la ficha.
Para obtener más información sobre las tareas que puedes realizar en las fichas mediante las API, consulta Métodos projects.locations.dataExchanges.listings.
Actualiza una ficha
Para actualizar una ficha, elige una de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).
Haz clic en el nombre del intercambio de datos que contiene la ficha.
Haz clic en la ficha que deseas actualizar.
Haz clic en Editar ficha.
Modifica los valores de los campos. Puedes modificar todos los valores, excepto el tema compartido de la ficha.
Para guardar los cambios, haz clic en Guardar.
API
Usa el método projects.locations.dataExchanges.listings.patch:
PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID?updateMask=UPDATEMASK
Reemplaza lo siguiente:
PROJECT_ID: el ID del proyecto que contiene el intercambio de datos.LOCATION: la ubicación de tu intercambio de datos. Para obtener más información sobre las ubicaciones que admiten el uso compartido de BigQuery, consulta Regiones admitidas.DATAEXCHANGE_ID: el ID del intercambio de datos.LISTING_ID: el ID de la ficha.UPDATEMASK: Es la lista de campos que deseas actualizar. Para actualizar varios valores, usa 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 puedes realizar en las fichas mediante las API, consulta Métodos projects.locations.dataExchanges.listings.
Borra una ficha
No puedes borrar fichas con temas de Pub/Sub compartidos que tengan suscripciones activas. Antes de borrar una ficha de tema compartido, revoca todas las suscripciones activas. No puedes deshacer la eliminación de una ficha.
Para borrar una ficha, elige una de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).
Haz clic en el nombre del intercambio de datos que contiene la ficha.
Haz clic en la ficha que deseas borrar.
Haz clic en Borrar.
En el cuadro de diálogo ¿Borrar ficha?, ingresa
deletepara confirmar la eliminación.Haz clic en Borrar.
API
Usa el método projects.locations.dataExchanges.listings.delete:
DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID
Reemplaza lo siguiente:
PROJECT_ID: el ID del proyecto que contiene el intercambio de datos.LOCATION: la ubicación de tu intercambio de datos. Para obtener más información sobre las ubicaciones que admiten el uso compartido de BigQuery, consulta Regiones admitidas.DATAEXCHANGE_ID: el ID del intercambio de datos.LISTING_ID: el ID de la ficha.
Para obtener más información sobre las tareas que puedes realizar en las fichas mediante las API, consulta Métodos projects.locations.dataExchanges.listings.
Comparte una ficha
Para otorgar a los usuarios acceso a una ficha privada, configura una política de IAM para
una persona o un grupo para esa ficha. Para una ficha comercial, tu
intercambio de datos debe ser público.
Las fichas de un intercambio de datos públicos aparecen en el uso compartido de BigQuery para todos los
usuarios deGoogle Cloud (allAuthenticatedUsers).
Para permitir que los usuarios soliciten acceso a las fichas comerciales, otórgales el rol de visualizador de Analytics
Hub (roles/analyticshub.viewer).
Para otorgar a los usuarios acceso para ver tu ficha o suscribirse a ella, sigue estos pasos:
En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).
Haz clic en el nombre del intercambio de datos que contiene la ficha.
Haz clic en la ficha que quieres compartir.
Haz clic en Establecer permisos.
Para agregar principales, haz clic en Agregar principal.
En el campo Principales nuevas, ingresa los detalles según el tipo de ficha:
- Para una ficha privada, ingresa las direcciones de correo electrónico de las principales a las que deseas otorgar acceso.
- Para una ficha pública, ingresa
allAuthenticatedUsers.
En el menú Selecciona un rol, elige Analytics Hub y, luego, selecciona uno de los siguientes roles según el tipo de ficha:
- Para una ficha comercial, selecciona Visualizador de Analytics Hub. Este rol permite a los usuarios ver la ficha y solicitar acceso.
- Para una ficha pública privada o no comercial, selecciona Suscriptor de Analytics Hub. Este rol permite que los usuarios se suscriban a tu ficha.
Para guardar los cambios, haz clic en Guardar.
Administrar las suscripciones
Para permitir que un usuario se suscriba a una ficha con un tema compartido, debes otorgarle
los roles de
suscriptor de Analytics Hub
(roles/analyticshub.subscriber) y
propietario de la suscripción a Analytics Hub
(roles/analyticshub.subscriptionOwner) en la ficha.
Para otorgar estos roles en una ficha, haz lo siguiente:
En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).
Haz clic en el nombre del intercambio de datos que contiene la ficha.
Haz clic en la ficha para la que deseas administrar las suscripciones.
Haz clic en Establecer permisos.
Para agregar principales, haz clic en Agregar principal.
En el campo Principales nuevas, ingresa los nombres de usuario o las direcciones de correo electrónico de los suscriptores que deseas agregar.
En el menú Selecciona un rol, elige Analytics Hub > Suscriptor de Analytics Hub.
Haz clic en Agregar otra función.
En el menú Selecciona un rol, elige Analytics Hub > Propietario de la suscripción a Analytics Hub.
Para guardar los cambios, haz clic en Guardar.
Puedes actualizar o borrar suscriptores en cualquier momento; para ello, haz clic en Establecer permisos.
Cómo revocar una suscripción
Para quitar una suscripción a una ficha de tema compartida desde el uso compartido de BigQuery, selecciona una de las siguientes opciones:
Console
Para enumerar los suscriptores de temas compartidos de una ficha, sigue las instrucciones de la consola deGoogle Cloud en Visualiza todas las suscripciones.
Para ver todas las suscripciones al intercambio de datos, haz clic en la pestaña Suscripciones.
Selecciona la casilla de verificación junto a las suscripciones que quieres quitar o selecciona todas las suscripciones y, luego, haz clic en Revocar.
En el cuadro de diálogo ¿Revocar suscripción?, ingresa
revokepara confirmar la revocación.Haz clic en Revocar.
API
Usa el método projects.locations.subscriptions.revoke:
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke
Reemplaza lo siguiente:
PROJECT_ID: el ID del proyecto que contiene la suscripción que deseas quitar.LOCATION: la ubicación de la suscripción.SUBSCRIPTION_ID: el ID de la suscripción que deseas quitar.
Cuando revocas una suscripción del uso compartido de BigQuery, un suscriptor de un tema compartido ya no recibe datos de mensajes del tema compartido. La suscripción a Pub/Sub está desconectada del tema compartido. Si borras una suscripción directamente desde Pub/Sub, la suscripción de BigQuery sharing persiste y debes borrar la suscripción en BigQuery sharing.
Flujos de trabajo de los suscriptores
Como suscriptor de uso compartido de BigQuery, puedes ver una ficha y suscribirte a ella. Suscribirse a una ficha de un tema compartido crea una suscripción de Pub/Sub vinculada en tu proyecto. La suscripción a Pub/Sub es visible en el proyecto del publicador del tema compartido.
Permisos adicionales de suscriptor
Para realizar tareas de suscriptor, debes tener el
rol Suscriptor de Analytics Hub
(roles/analyticshub.subscriber) otorgado a nivel de proyecto, intercambio o
ficha.
Suscríbete a una lista de temas compartida
Para suscribirte a una ficha con un tema compartido, selecciona una de las siguientes opciones:
Console
Para ver las fichas que tienes disponibles, sigue los pasos que se indican en Visualiza las fichas.
Explora las fichas y haz clic en la que quieras suscribirte. Aparecerá un cuadro de diálogo con los detalles de la ficha.
Para abrir el cuadro de diálogo Crear suscripción, haz clic en Suscribirse.
Si no habilitaste la API de Analytics Hub en tu proyecto, aparecerá un mensaje de error con un vínculo para habilitar la API. Haz clic en Habilitar la API de Analytics Hub.
En el cuadro de diálogo Crear suscripción, especifica los siguientes detalles:
- ID de la suscripción: Especifica el nombre de la suscripción que crearás.
- Tipo de publicación: Selecciona cómo se entregan los datos del mensaje.
- Duración de la retención de mensajes: Establece la duración de la retención de mensajes.
- Período de vencimiento: Se establece en qué momento vence la suscripción después de la inactividad, si es que sucede.
- Plazo de confirmación: Establece el plazo límite de confirmación.
- Filtro de suscripción: Establece la sintaxis del filtro para los mensajes.
- Entrega “exactamente una vez”: Habilita la entrega “exactamente una vez”.
- Ordenamiento de mensajes: Habilita el ordenamiento de mensajes con una clave de ordenamiento.
- Mensajes no entregados: Habilita el reenvío de mensajes no entregados a un tema de mensajes no entregados.
- Política de reintentos: Establece una política de reintentos.
Para obtener más información sobre las propiedades de suscripción de Pub/Sub, consulta Propiedades de suscripción.
Para guardar los cambios, haz clic en Crear. El uso compartido de BigQuery crea la suscripción de Pub/Sub vinculada en tu proyecto.
API
Usa el método projects.locations.dataExchanges.listings.subscribe:
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:subscribe
Reemplaza lo siguiente:
PROJECT_ID: el ID del proyecto que contiene la ficha a la que deseas suscribirte.LOCATION: la ubicación de la ficha a la que deseas suscribirte.DATAEXCHANGE_ID: el ID del intercambio de datos que contiene la ficha a la que deseas suscribirte.LISTING_ID: el ID de la ficha a la que deseas suscribirte.
En el cuerpo de la solicitud, especifica los detalles de la suscripción a Pub/Sub vinculada que deseas crear. Si la solicitud se realiza correctamente, el cuerpo de la respuesta contendrá los detalles de la suscripción.
Para obtener más información sobre las suscripciones a Pub/Sub, consulta Descripción general de las suscripciones.
Precios
Los publicadores de temas compartidos no incurren en cargos adicionales por enumerar y compartir temas a través de BigQuery sharing. A los publicadores de temas compartidos se les cobra por la capacidad de procesamiento de publicación, que es el total de bytes escritos en el tema compartido, y por cualquier salida de red aplicable. A los suscriptores de temas compartidos se les cobra por la capacidad de procesamiento de suscripción, que es el total de bytes leídos de la suscripción vinculada, y por cualquier salida de red aplicable. Para obtener más información, consulta Precios de Pub/Sub.
Controles del servicio de VPC
Para los temas compartidos de proyectos con perímetros de Controles del servicio de VPC, configura las reglas de entrada y salida adecuadas para otorgar acceso a los publicadores y suscriptores del tema compartido.
¿Qué sigue?
- Obtén información para administrar tus fichas.
- Obtén información para suscribirte a fichas.
- Obtén más información para supervisar tus recursos de Pub/Sub.
- Obtén información sobre cómo configurar las reglas de los Controles del servicio de VPC para el uso compartido de BigQuery.