Uso compartido de transmisiones con Pub/Sub
Puedes compartir temas de Pub/Sub a través de BigQuery sharing para seleccionar y distribuir una biblioteca de datos de transmisión en varios límites organizacionales internos y externos. Los datos de transmisión en tiempo real se comparten a través de los intercambios y las fichas de uso compartido de BigQuery, lo que te permite categorizar y agrupar de forma lógica grandes conjuntos de temas de Pub/Sub y aprovisionar acceso a gran escala.
Puedes compartir datos de transmisión para realizar las siguientes acciones:
- 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):
- Ayuda a las tiendas a administrar el inventario en tiempo real
- Personaliza el marketing y la asistencia al cliente
- Ajusta los precios de forma dinámica
- Supervisa 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
- Adquisición, estructura, almacenamiento y procesamiento automáticos de datos de pacientes, profesionales de la salud y administración de instalaciones
- Telecomunicaciones:
- Revisa el estado de la red y predice fallas
- Descubre patrones de comportamiento de los usuarios para ubicar mejor los dispositivos y las antenas
Roles obligatorios
Los roles para compartir temas de Pub/Sub son similares a compartir conjuntos de datos de BigQuery:
- Administrador: Es un usuario que 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: Es un usuario que 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 o administrador de fichas de Analytics Hub. El publicador al que se hace referencia aquí es un usuario y no la aplicación de publicador que crea y envía los mensajes al tema.
- Suscriptor de un tema compartido: Es un usuario que se suscribe a la ficha de temas compartida. Los suscriptores de temas compartidos pueden configurar cómo se entregarán los mensajes por temas. Este rol es análogo al rol de IAM de suscriptor de Analytics Hub o propietario de la suscripción a Analytics Hub. Según cómo se entreguen los datos del mensaje, es posible que se requieran permisos adicionales, como los permisos de cuenta de servicio de Pub/Sub para escribir mensajes en BigQuery.
Arquitectura
En el siguiente diagrama, se describe cómo interactúan los publicadores y suscriptores de los recursos de Pub/Sub con el uso compartido de BigQuery:
Limitaciones
El uso compartido de transmisiones con Pub/Sub tiene las siguientes limitaciones:
- Un tema compartido puede tener 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 Sharing, por ejemplo, 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 capturan y muestran en el panel de métricas para los temas y las suscripciones compartidos de Pub/Sub, pero no están disponibles en
INFORMATION_SCHEMA.SHARED_DATASET_USAGE.Para supervisar las métricas, consulta Supervisa Pub/Sub en Cloud Monitoring.
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
- Otros
Habilita la API de Analytics Hub
Para habilitar la API de Analytics Hub, haz lo siguiente:
Console
Ve a la biblioteca de APIs y habilita la API de Analytics Hub para tu Google Cloud proyecto.
gcloud
Ejecuta el comando gcloud services enable:
gcloud services enable analyticshub.googleapis.com
Habilita la API de Pub/Sub
Ve a la biblioteca de APIs y habilita la API de Pub/Sub para tu proyecto Google Cloud .
Flujos de trabajo de publicadores de temas compartidos
Como publicador de temas compartidos, puedes hacer lo siguiente:
- Crear una ficha para agregar temas compartidos a un intercambio
- Actualiza una ficha
- Borra 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 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 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 uso compartido de BigQuery analicen correctamente los mensajes de la suscripción a Pub/Sub.
Crea una ficha (para agregar un tema compartido)
Para agregar un tema compartido a una ficha, selecciona una de las siguientes opciones:
Console
Ve a la página Uso compartido (Analytics Hub).
Ir a Uso compartido (Analytics Hub)
Aparecerá una página que enumera todos los intercambios de datos a los que puedes acceder.
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, selecciona “Tema de Pub/Sub” en el menú desplegable Tipo de recurso.
Selecciona un tema de Pub/Sub existente en el menú desplegable Tema compartido o haz clic en Crear un tema.
En la página Detalles de la ficha, en Nombre visible, ingresa el nombre de la ficha.
Ingresa los siguientes detalles opcionales:
Categoría: Selecciona hasta dos 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: Son las regiones que usa el publicador del tema compartido para publicar los datos. Esta información es útil para que los suscriptores de temas compartidos minimicen o eviten los costos de salida de red de Pub/Sub leyendo los datos desde la misma región. Para obtener más información sobre los costos de salida, consulta Costos de transferencia de datos.
Ícono: Un ícono para tu ficha. Se admiten los formatos de archivo PNG y JPEG. Los íconos deben tener un tamaño de archivo de menos de 512 KiB y dimensiones de no más de 512 x 512 píxeles.
Descripción: Una descripción breve de tu ficha. Los suscriptores de temas compartidos 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 establecer permisos para la ficha. Haz clic en Acciones del intercambio y en Establecer permisos. Otorga a
allUsersoallAuthenticatedusersel rol Analytics Hub Viewer (roles/analyticshub.viewer). Haz clic en Permitir acceso público.Documentación > Markdown: Información adicional, como vínculos a cualquier documentación relevante y cualquier información adicional que pueda ayudar a los suscriptores del tema compartido a usar tu tema.
En la página Información de contacto de la ficha, ingresa los siguientes detalles opcionales:
Contacto principal: Ingresa un correo electrónico o una URL del contacto principal de la ficha.
Solicitar contacto de acceso: Ingresa un correo electrónico o una URL del formulario de admisión para que los suscriptores del tema compartido se comuniquen contigo.
Proveedor: Expande la sección Proveedor y especifica los detalles en los siguientes campos:
- Nombre del proveedor: el nombre del proveedor del tema.
- Contacto principal del proveedor: Un correo electrónico o una URL del 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: Es el nombre del publicador del tema compartido que crea la ficha.
- Contacto principal del publicador: Un correo electrónico o una URL del contacto principal del publicador del tema compartido.
Revisa la página Vista previa de 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/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID
Reemplaza lo siguiente:
PROJECT_ID: el ID del proyecto que contiene el intercambio de datos en el que deseas crear la ficha.LOCATION: la ubicación de tu intercambio de datos. Para obtener más información sobre las ubicaciones compatibles con el uso compartido, 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á 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
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 en los campos. Puedes modificar todos los valores, excepto el tema compartido de la ficha.
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
Reemplaza lo siguiente:
PROJECT_ID: el ID del proyecto que contiene el intercambio de datos en el que deseas crear la ficha.LOCATION: la ubicación de tu intercambio de datos. Para obtener más información sobre las ubicaciones compatibles con el uso compartido, consulta Regiones admitidas.DATAEXCHANGE_ID: el ID del intercambio de datos.LISTING_ID: el ID de la ficha.UPDATEMASK: la lista de campos que deseas actualizar. Si deseas 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 se pueden borrar las fichas con temas de Pub/Sub compartidos con suscripciones activas. Revoca todas las suscripciones activas antes de intentar borrar una ficha de tema compartido. Una vez que se borra una ficha, no puedes deshacerlo. Para borrar una ficha, elige una de las siguientes opciones:
Console
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?, escribe borrar para 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/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID
Reemplaza lo siguiente:
PROJECT_ID: el ID del proyecto que contiene el intercambio de datos en el que deseas crear la ficha.LOCATION: la ubicación de tu intercambio de datos. Para obtener más información sobre las ubicaciones compatibles con el uso compartido, 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
Si deseas otorgar a los usuarios acceso a una ficha privada, debes configurar 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 Compartir para todos los usuarios de Google Cloud (allAuthenticatedUsers). Para permitir que los usuarios soliciten acceso a las fichas comerciales, debes otorgarles el rol Analytics Hub Viewer (roles/analyticshub.viewer).
A fin de otorgar a los usuarios acceso para ver tu ficha o suscribirse a ella, sigue estos pasos:
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 a la que deseas agregar suscriptores de temas compartidos.
Haz clic en Establecer permisos.
Para agregar principales, haz clic en Agregar principal.
En el campo Principales nuevos, agrega los siguientes detalles según el tipo de ficha:
- Para una ficha privada, ingresa el correo electrónico de la identidad a la que deseas otorgar acceso.
- Para una ficha pública, agrega
allAuthenticatedUsers.
En el menú Selecciona un rol, selecciona Analytics Hub y, luego, según el tipo de ficha, selecciona uno de los siguientes roles:
- Para una ficha comercial, selecciona el rol Analytics Hub Viewer. Este rol permite a los usuarios ver la ficha y solicitar acceso.
- Para una ficha pública privada o no comercial, selecciona el rol de suscriptor de Analytics Hub. Este rol permite que los usuarios se suscriban a tu ficha.
Haz clic en Guardar.
Para obtener más información, consulta los roles de suscriptor y visualizador de Analytics Hub.
Administrar las suscripciones
Para permitir que un usuario se suscriba a una ficha con un tema compartido, otórgale los roles de suscriptor de Analytics Hub (roles/analyticshub.subscriber) y propietario de la suscripción a Analytics Hub (roles/analyticshub.subscriptionOwner) en una ficha específica:
Ve a la página Uso compartido (Analytics Hub).
Haz clic en el nombre del intercambio de datos que contiene la ficha para la que deseas administrar las suscripciones.
Haz clic en la ficha para la que deseas enumerar todos los suscriptores del tema compartido.
Haz clic en Establecer permisos.
Para agregar principales, haz clic en Agregar principal.
En el campo Principales nuevas, ingresa los nombres de usuario o los correos electrónicos de los suscriptores que deseas agregar.
En Seleccionar un rol, selecciona Analytics Hub > Suscriptor de Analytics Hub.
Haz clic en Agregar otro rol.
En Seleccionar un rol, selecciona Analytics Hub > Propietario de la suscripción a Analytics Hub.
Haz clic en Guardar.
Puedes borrar y actualizar 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 BigQuery sharing, selecciona una de las siguientes opciones:
Console
Para enumerar todos los suscriptores de temas compartidos de una ficha, sigue las instrucciones de la consola deGoogle Cloud en Visualiza todas las suscripciones.
Haz clic en la pestaña Suscripciones para ver todas las suscripciones al intercambio de datos.
Selecciona la casilla de verificación junto a las suscripciones que quieres quitar o selecciona todas las suscripciones.
En el cuadro de diálogo ¿Revocar suscripción?, ingresa revocar para confirmar.
Haz clic en Revocar.
API
Para borrar una suscripción, usa el método projects.locations.subscriptions.revoke.
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke
Reemplaza lo siguiente:
PROJECT_ID: el ID del proyecto de 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 de BigQuery sharing, un suscriptor del tema compartido ya no recibe datos de mensajes del tema compartido. La suscripción a Pub/Sub está desconectada del tema compartido. Si se borra una suscripción directamente de Pub/Sub, la suscripción de uso compartido de BigQuery persistirá y se deberá limpiar.
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 el proyecto del suscriptor. La suscripción a Pub/Sub se verá en el proyecto del publicador del tema compartido.
Permisos adicionales de suscriptor
Debes tener el rol de suscriptor de Analytics Hub (roles/analyticshub.subscriber) otorgado a nivel de proyecto, intercambio o ficha para realizar tareas de suscriptor.
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 una lista de las fichas a las que tienes acceso, 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.
Haz clic en Suscribirse para abrir el cuadro de diálogo Crear suscripción.
Si no tienes habilitada 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 el mecanismo sobre cómo se entregarán 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 en los mensajes.
- Entrega “exactamente una vez”: Habilita la entrega “exactamente una vez”.
- Ordenamiento de mensajes: Habilita el orden de los mensajes con una clave de orden.
- Mensajes no entregados: habilita los 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. 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
Reemplaza lo siguiente:
PROJECT_ID: el ID del proyecto de 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 de 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 la suscripción a Pub/Sub en la que deseas crear la suscripción a Pub/Sub vinculada. Si se ejecuta correctamente, el cuerpo de la respuesta está vacío.
Para obtener más información sobre las suscripciones a Pub/Sub, consulta la descripción general de las suscripciones.
Precios
No se aplican cargos adicionales a los publicadores de temas de Pub/Sub por enumerar y compartir temas a través de BigQuery sharing. A los publicadores de temas compartidos se les cobra por la cantidad total de bytes escritos (capacidad de procesamiento de publicación) en el tema compartido y la salida de red (si corresponde). A los suscriptores de temas compartidos se les cobra por la cantidad total de bytes leídos (capacidad de procesamiento de suscripción) de la suscripción vinculada y la salida de red (si corresponde). Consulta los precios de Pub/Sub para obtener más detalles.
Controles del servicio de VPC
Para los temas compartidos de proyectos que tienen perímetros de Controles del servicio de VPC, puedes configurar las reglas de entrada y salida adecuadas necesarias para otorgar acceso a los publicadores y suscriptores de temas compartidos.