Condivisione di stream con Pub/Sub

La condivisione di BigQuery (precedentemente Analytics Hub) ti consente di condividere argomenti Pub/Sub per curare e distribuire dati in streaming in tempo reale tra organizzazioni interne ed esterne. Utilizzando gli scambi di dati e gli elenchi, puoi classificare e raggruppare grandi insiemi di argomenti Pub/Sub e fornire l'accesso su larga scala.

Casi d'uso

Puoi condividere i dati in streaming per supportare i casi d'uso nei seguenti settori:

  • Servizi finanziari:
    • Condividi prezzi, preventivi e ordini degli strumenti in rapida evoluzione in tempo reale.
    • Rileva il riciclaggio di denaro e le frodi nei pagamenti.
    • Supportare i calcoli del rischio di mercato.
  • Retail e beni di largo consumo:
    • Gestisci l'inventario del negozio in tempo reale.
    • Personalizzare il marketing e l'assistenza clienti.
    • Modifica i prezzi in modo dinamico.
    • Monitora i canali social.
    • Ottimizzare i layout dei negozi fisici.
  • Sanità:
    • Potenzia gli algoritmi predittivi per monitorare i pazienti e analizzare i rischi in tempo reale.
    • Monitora i parametri vitali con dispositivi medici indossabili.
    • Acquisisci, struttura, archivia ed elabora automaticamente i dati di pazienti, operatori sanitari e amministrazione della struttura.
  • Telecomunicazioni:
    • Monitora lo stato della rete e prevedi i guasti.
    • Scopri i pattern di comportamento degli utenti per individuare meglio i dispositivi e le antenne.

Ruoli di condivisione dello stream

I ruoli IAM (Identity and Access Management) per la condivisione degli argomenti Pub/Sub sono analoghi ai ruoli per la condivisione dei set di dati BigQuery:

  • Amministratore: gestisce le autorizzazioni, la visibilità e l'appartenenza a scambi e schede. Questo ruolo è analogo al ruolo IAM Amministratore Analytics Hub (roles/analyticshub.admin).
  • Publisher di argomenti condivisi: crea, gestisce e concede l'accesso alle schede degli argomenti Pub/Sub condivisi. Questo ruolo è analogo al ruolo IAM Analytics Hub Publisher (roles/analyticshub.publisher) o Analytics Hub Listing Admin (roles/analyticshub.listingAdmin). Il publisher è un utente, non l'applicazione publisher che crea e invia messaggi all'argomento.
  • Sottoscrittore dell'argomento condiviso: si iscrive alla scheda dell'argomento condiviso e configura il modo in cui Pub/Sub invia i messaggi dell'argomento. Questo ruolo è analogo al ruolo IAM Analytics Hub Subscriber (roles/analyticshub.subscriber) o Analytics Hub Subscription Owner (roles/analyticshub.subscriptionOwner). A seconda di come Pub/Sub invia i dati dei messaggi, potresti aver bisogno di autorizzazioni aggiuntive, come le autorizzazioni account di servizio Pub/Sub per scrivere messaggi in BigQuery.

Architettura

Il seguente diagramma mostra come i publisher e i sottoscrittori delle risorse Pub/Sub interagiscono con BigQuery sharing:

Workflow che mostra l'interazione tra publisher di argomenti condivisi, sottoscrittori e BigQuery sharing.
Figura 1. Flusso di lavoro di publisher e sottoscrittore di argomenti condivisi con argomenti Pub/Sub.

La condivisione di stream con Pub/Sub utilizza i seguenti componenti:

Argomenti condivisi
Un argomento condiviso è l'unità per la condivisione di un argomento Pub/Sub in BigQuery sharing. In qualità di publisher di argomenti condivisi, crei o utilizzi un argomento Pub/Sub esistente per distribuire i dati dei messaggi ai sottoscrittori. La condivisione di BigQuery non replica l'argomento Pub/Sub di origine.
Schede
Quando un publisher aggiunge un argomento condiviso a uno scambio, la condivisione di BigQuery crea una scheda che fa riferimento all'argomento condiviso.
Piattaforme pubblicitarie
Un exchange è un gruppo logico di schede che fanno riferimento ad argomenti condivisi.
Sottoscrizioni Pub/Sub collegate
Quando un sottoscrittore si iscrive a una scheda con un argomento condiviso, la condivisione di BigQuery crea una sottoscrizione Pub/Sub collegata nel progetto del sottoscrittore. Nel progetto del publisher dell'argomento condiviso, la sottoscrizione viene visualizzata sia come sottoscrizione Pub/Sub sia come sottoscrizione di BigQuery sharing.

Limitazioni

La condivisione di stream con Pub/Sub presenta le seguenti limitazioni:

  • Un argomento condiviso supporta un massimo di 10.000 sottoscrizioni Pub/Sub. Questo limite include le sottoscrizioni Pub/Sub collegate e le sottoscrizioni Pub/Sub create al di fuori della condivisione di BigQuery, ad esempio le sottoscrizioni create direttamente in Pub/Sub.
  • Gli argomenti condivisi sono indicizzati in Knowledge Catalog, ma non puoi filtrare in modo specifico per il loro tipo di risorsa.

  • Le metriche di utilizzo vengono acquisite e visualizzate nella dashboard delle metriche per gli argomenti e le sottoscrizioni Pub/Sub condivisi, ma non sono disponibili nella visualizzazione INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

    Queste metriche possono includere:

    • Numero di messaggi pubblicati
    • Richieste di pubblicazione
    • Velocità effettiva di pubblicazione in byte
    • Prime 5 sottoscrizioni
    • Byte importati

    Per monitorare le metriche, consulta Monitora Pub/Sub in Cloud Monitoring.

Prima di iniziare

Prima di condividere o sottoscrivere argomenti Pub/Sub in BigQuery sharing, abilita le API richieste.

Abilita l'API Analytics Hub

Per abilitare l'API Analytics Hub, seleziona una delle seguenti opzioni:

Console

Nella console Google Cloud , vai alla pagina Libreria API e abilita l'API Analytics Hub per il tuo progetto Google Cloud .

Abilita l'API Analytics Hub

gcloud

Abilita l'API Analytics Hub utilizzando il comando gcloud services enable:

gcloud services enable analyticshub.googleapis.com

Abilita l'API Pub/Sub

Per abilitare l'API Pub/Sub, seleziona una delle seguenti opzioni:

Console

Nella console Google Cloud , vai alla pagina Libreria API e abilita l'API Pub/Sub per il tuo progetto Google Cloud .

Abilita l'API Pub/Sub

gcloud

Abilita l'API Pub/Sub utilizzando il comando gcloud services enable:

gcloud services enable pubsub.googleapis.com

Workflow dei publisher di argomenti condivisi

In qualità di publisher di argomenti condivisi, puoi:

  • Aggiungi argomenti condivisi a una piattaforma di scambio creando una scheda.
  • Aggiornare una scheda.
  • Elimina una scheda.
  • Condividi una scheda.
  • Gestisci gli abbonamenti alla tua scheda.
  • Rimuovi gli abbonati dalla tua scheda.

Autorizzazioni aggiuntive per il publisher

Per eseguire le attività di publisher di argomenti condivisi, devi disporre del ruolo Publisher di Analytics Hub (roles/analyticshub.publisher) in uno scambio o in un elenco. Per visualizzare tutti gli scambi di dati a cui hai accesso nei progetti di un'organizzazione, devi disporre dell'autorizzazione resourcemanager.organizations.get.

Inoltre, devi disporre dell'autorizzazione pubsub.topics.setIamPolicy sull'argomento Pub/Sub che vuoi elencare. Per condividere argomenti con uno schema collegato, devi concedere ai sottoscrittori di BigQuery sharing l'autorizzazione pubsub.schemas.get per lo schema collegato all'argomento. Questa autorizzazione consente ai sottoscrittori di BigQuery sharing di analizzare i messaggi della sottoscrizione Pub/Sub.

Crea una scheda di argomento condiviso

Per aggiungere un argomento condiviso a uno scambio creando una scheda, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

    La pagina elenca tutti gli scambi di dati che puoi visualizzare.

  2. Fai clic sul nome del data exchange in cui vuoi creare la scheda.

  3. Fai clic su Crea scheda.

  4. Nella pagina Crea scheda, nell'elenco Tipo di risorsa, seleziona Argomento Pub/Sub.

  5. Nell'elenco Argomento condiviso, seleziona un argomento Pub/Sub esistente o fai clic su Crea un argomento.

  6. Nella pagina Dettagli scheda, nel campo Nome visualizzato, inserisci il nome della scheda.

  7. (Facoltativo) Inserisci i seguenti dettagli:

    • Categoria: seleziona fino a cinque categorie che rappresentano al meglio la tua scheda. Gli iscritti agli argomenti condivisi possono filtrare le schede in base a queste categorie.

    • Affinità dei dati: specifica la regione o le regioni in cui pubblichi i dati nell'argomento condiviso. Queste informazioni aiutano i sottoscrittori di argomenti condivisi a ridurre al minimo o evitare i costi di traffico in uscita dalla rete Pub/Sub leggendo i dati dalla stessa regione. Per saperne di più sui costi in uscita, consulta Costi di trasferimento di dati.

    • Icona: carica un'icona PNG o JPEG per la tua scheda. Le icone devono essere inferiori a 512 KiB e avere dimensioni non superiori a 512 x 512 pixel.

    • Descrizione: inserisci una breve descrizione della tua scheda. Gli iscritti all'argomento condiviso possono cercare le schede in base alla descrizione.

    • Rilevabilità pubblica: abilita la rilevabilità pubblica per la tua scheda nel catalogo di condivisione di BigQuery. Dopo aver creato la scheda, devi anche concedere a allUsers o allAuthenticatedUsers il ruolo Analytics Hub Viewer (roles/analyticshub.viewer) sulla scheda. Se lo scambio di dati è già pubblico, la scheda eredita queste autorizzazioni e non richiede ulteriori azioni.

    • Documentazione > Markdown: inserisci informazioni aggiuntive, come link alla documentazione pertinente e altri dettagli che aiutano gli abbonati all'argomento condiviso a utilizzare l'argomento.

  8. (Facoltativo) Nella pagina Dati di contatto della scheda, inserisci i seguenti dettagli:

    • Contatto principale: inserisci un indirizzo email o un URL per il contatto principale della scheda.

    • Contatto per la richiesta di accesso: inserisci un indirizzo email o un URL per il modulo di assunzione che gli iscritti agli argomenti condivisi possono utilizzare per contattarti.

    • Provider: espandi la sezione Provider e specifica i dettagli nei seguenti campi:

      • Nome del provider: inserisci il nome del provider dell'argomento.
      • Contatto principale del provider: inserisci un indirizzo email o un URL per il contatto principale del provider dell'argomento.

      Gli abbonati agli argomenti condivisi possono filtrare le schede in base ai fornitori di dati.

    • Publisher: espandi la sezione Publisher e specifica i dettagli nei seguenti campi:

      • Nome publisher: inserisci il tuo nome o il nome della tua organizzazione come publisher dell'argomento condiviso.
      • Contatto principale del publisher: inserisci un indirizzo email o un URL per il tuo contatto principale come publisher dell'argomento condiviso.
  9. Esamina la pagina Anteprima scheda.

  10. Per pubblicare la scheda, fai clic su Pubblica.

API

Utilizza il metodo projects.locations.dataExchanges.listings.create:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto che contiene lo scambio di dati.
  • LOCATION: la località del tuo data exchange. Per maggiori informazioni sulle località che supportano la condivisione di BigQuery, consulta Regioni supportate.
  • DATAEXCHANGE_ID: l'ID del data exchange.
  • LISTING_ID: l'ID della scheda.

Nel corpo della richiesta, fornisci i dettagli della scheda. Se la richiesta ha esito positivo, il corpo della risposta contiene i dettagli della scheda.

Per ulteriori informazioni sulle attività che puoi eseguire sulle schede utilizzando le API, consulta i metodi projects.locations.dataExchanges.listings.

Aggiorna una scheda

Per aggiornare una scheda, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome dello scambio di dati che contiene la scheda.

  3. Fai clic sulla scheda che vuoi aggiornare.

  4. Fai clic su Modifica scheda.

  5. Modifica i valori dei campi. Puoi modificare tutti i valori, ad eccezione dell'argomento condiviso della scheda.

  6. Per salvare le modifiche, fai clic su Salva.

API

Utilizza il metodo projects.locations.dataExchanges.listings.patch:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto che contiene lo scambio di dati.
  • LOCATION: la località del tuo data exchange. Per maggiori informazioni sulle località che supportano la condivisione di BigQuery, consulta Regioni supportate.
  • DATAEXCHANGE_ID: l'ID del data exchange.
  • LISTING_ID: l'ID della scheda.
  • UPDATEMASK: l'elenco dei campi che vuoi aggiornare. Per aggiornare più valori, utilizza un elenco separato da virgole.

Nel corpo della richiesta, specifica i valori aggiornati.

Per ulteriori informazioni sulle attività che puoi eseguire sulle schede utilizzando le API, consulta i metodi projects.locations.dataExchanges.listings.

Elimina una scheda

Non puoi eliminare le schede con argomenti Pub/Sub condivisi che hanno sottoscrizioni attive. Prima di eliminare una scheda di argomenti condivisi, revoca tutte le sottoscrizioni attive. Non puoi annullare l'eliminazione di una scheda.

Per eliminare una scheda, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome dello scambio di dati che contiene la scheda.

  3. Fai clic sulla scheda che vuoi eliminare.

  4. Fai clic su Elimina.

  5. Nella finestra di dialogo Vuoi eliminare la scheda?, inserisci delete per confermare l'eliminazione.

  6. Fai clic su Elimina.

API

Utilizza il metodo projects.locations.dataExchanges.listings.delete:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto che contiene lo scambio di dati.
  • LOCATION: la località del tuo data exchange. Per maggiori informazioni sulle località che supportano la condivisione di BigQuery, consulta Regioni supportate.
  • DATAEXCHANGE_ID: l'ID del data exchange.
  • LISTING_ID: l'ID della scheda.

Per ulteriori informazioni sulle attività che puoi eseguire sulle schede utilizzando le API, consulta i metodi projects.locations.dataExchanges.listings.

Condividi una scheda

Per consentire agli utenti di accedere a una scheda privata, imposta una policy IAM per un individuo o un gruppo per quella scheda. Per una scheda commerciale, lo scambio di dati deve essere pubblico. Le schede in un exchange di dati pubblico vengono visualizzate nella condivisione di BigQuery per tutti gli utenti diGoogle Cloud (allAuthenticatedUsers). Per consentire agli utenti di richiedere l'accesso alle schede commerciali, concedi loro il ruolo Analytics Hub Viewer (roles/analyticshub.viewer).

Per consentire agli utenti di visualizzare o sottoscrivere la tua scheda:

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome dello scambio di dati che contiene la scheda.

  3. Fai clic sulla scheda che vuoi condividere.

  4. Fai clic su Imposta autorizzazioni.

  5. Per aggiungere entità, fai clic su Aggiungi entità.

  6. Nel campo Nuove entità, inserisci i dettagli in base al tipo di scheda:

    • Per una scheda privata, inserisci gli indirizzi email delle entità a cui vuoi concedere l'accesso.
    • Per una scheda pubblica, inserisci allAuthenticatedUsers.
  7. Nel menu Seleziona un ruolo, seleziona Analytics Hub, quindi seleziona uno dei seguenti ruoli in base al tipo di scheda:

  8. Per salvare le modifiche, fai clic su Salva.

Gestisci abbonamenti

Per consentire a un utente di iscriversi a una scheda con un argomento condiviso, devi concedergli i ruoli Analytics Hub Subscriber (roles/analyticshub.subscriber) e Analytics Hub Subscription Owner (roles/analyticshub.subscriptionOwner) sulla scheda.

Per concedere questi ruoli su una scheda:

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome dello scambio di dati che contiene la scheda.

  3. Fai clic sulla scheda per cui vuoi gestire gli abbonamenti.

  4. Fai clic su Imposta autorizzazioni.

  5. Per aggiungere entità, fai clic su Aggiungi entità.

  6. Nel campo Nuove entità, inserisci i nomi utente o gli indirizzi email degli iscritti che vuoi aggiungere.

  7. Nel menu Seleziona un ruolo, seleziona Analytics Hub > Sottoscrittore Analytics Hub.

  8. Fai clic su Aggiungi un altro ruolo.

  9. Nel menu Seleziona un ruolo, seleziona Analytics Hub > Analytics Hub Subscription Owner.

  10. Per salvare le modifiche, fai clic su Salva.

Puoi aggiornare o eliminare gli iscritti in qualsiasi momento facendo clic su Imposta autorizzazioni.

Revocare un abbonamento

Per rimuovere una sottoscrizione a un elenco di argomenti condivisi dalla condivisione BigQuery, seleziona una delle seguenti opzioni:

Console

  1. Per elencare gli iscritti agli argomenti condivisi per una scheda, segui le istruzioni della console riportate in Visualizza tutte le sottoscrizioni.Google Cloud

  2. Per visualizzare tutte le sottoscrizioni allo scambio di dati, fai clic sulla scheda Sottoscrizioni.

  3. Seleziona la casella di controllo accanto agli abbonamenti che vuoi rimuovere o seleziona tutti gli abbonamenti, quindi fai clic su Revoca.

  4. Nella finestra di dialogo Revocare l'abbonamento?, inserisci revoke per confermare la revoca.

  5. Fai clic su Revoca.

API

Utilizza il metodo projects.locations.subscriptions.revoke:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto che contiene la sottoscrizione che vuoi rimuovere.
  • LOCATION: la località della sottoscrizione.
  • SUBSCRIPTION_ID: l'ID della sottoscrizione che vuoi rimuovere.

Quando revochi una sottoscrizione dalla condivisione di BigQuery, un sottoscrittore di un argomento condiviso non riceve più i dati dei messaggi dall'argomento condiviso. La sottoscrizione Pub/Sub viene scollegata dall'argomento condiviso. Se elimini una sottoscrizione direttamente da Pub/Sub, la sottoscrizione di condivisione BigQuery persiste e devi eliminarla nella condivisione BigQuery.

Workflow degli abbonati

In qualità di sottoscrittore di BigQuery sharing, puoi visualizzare e sottoscrivere una scheda. L'iscrizione a una scheda di un argomento condiviso crea una sottoscrizione Pub/Sub collegata nel tuo progetto. La sottoscrizione Pub/Sub è visibile nel progetto del publisher dell'argomento condiviso.

Autorizzazioni aggiuntive per gli abbonati

Per eseguire le attività di sottoscrittore, devi disporre del ruolo Analytics Hub Subscriber (roles/analyticshub.subscriber) concesso a livello di progetto, scambio o scheda.

Iscriviti a un elenco di argomenti condivisi

Per sottoscrivere un elenco con un argomento condiviso, seleziona una delle seguenti opzioni:

Console

  1. Per visualizzare le schede a tua disposizione, segui i passaggi descritti in Visualizza le schede.

  2. Sfoglia le schede e fai clic su quella a cui vuoi abbonarti. Viene visualizzata una finestra di dialogo con i dettagli della scheda.

  3. Per aprire la finestra di dialogo Crea sottoscrizione, fai clic su Sottoscrivi.

  4. Se non hai abilitato l'API Analytics Hub nel tuo progetto, viene visualizzato un messaggio di errore con un link per abilitare l'API. Fai clic su Abilita API Analytics Hub.

  5. Nella finestra di dialogo Crea sottoscrizione, specifica i seguenti dettagli:

    • ID sottoscrizione: specifica il nome della sottoscrizione che stai creando.
    • Tipo di pubblicazione: seleziona la modalità di pubblicazione dei dati dei messaggi.
    • Durata di conservazione dei messaggi: imposta la durata di conservazione dei messaggi.
    • Periodo di scadenza: imposta la scadenza della sottoscrizione dopo un periodo di inattività, se applicabile.
    • Scadenza conferma: imposta la scadenza della conferma.
    • Filtro sottoscrizioni: imposta la sintassi del filtro per i messaggi.
    • Consegna "exactly-once": abilita la consegna "exactly-once".
    • Ordinamento dei messaggi: abilita l'ordinamento dei messaggi con una chiave di ordinamento.
    • Messaggi non recapitabili: abilita l'inoltro dei messaggi non recapitabili a un argomento messaggi non recapitabili.
    • Policy di ripetizione: imposta una policy di ripetizione.

    Per saperne di più sulle proprietà delle sottoscrizioni Pub/Sub, consulta Proprietà delle sottoscrizioni.

  6. Per salvare le modifiche, fai clic su Crea. La condivisione di BigQuery crea la sottoscrizione Pub/Sub collegata nel tuo progetto.

API

Utilizza il metodo projects.locations.dataExchanges.listings.subscribe:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto che contiene la scheda a cui vuoi iscriverti.
  • LOCATION: la località della scheda a cui vuoi iscriverti.
  • DATAEXCHANGE_ID: l'ID del data exchange che contiene la scheda a cui vuoi iscriverti.
  • LISTING_ID: l'ID della scheda a cui vuoi iscriverti.

Nel corpo della richiesta, specifica i dettagli della sottoscrizione Pub/Sub collegata che vuoi creare. Se la richiesta ha esito positivo, il corpo della risposta contiene i dettagli dell'abbonamento.

Per ulteriori informazioni sulle sottoscrizioni Pub/Sub, consulta la panoramica delle sottoscrizioni.

Prezzi

I publisher di argomenti condivisi non devono sostenere costi aggiuntivi per elencare e condividere argomenti tramite BigQuery sharing. Ai publisher di argomenti condivisi viene addebitato il costo della velocità effettiva di pubblicazione, ovvero i byte totali scritti nell'argomento condiviso, e di qualsiasi traffico in uscita dalla rete applicabile. Agli abbonati agli argomenti condivisi viene addebitato il costo della velocità effettiva di sottoscrizione, ovvero il totale dei byte letti dalla sottoscrizione collegata, e di qualsiasi traffico in uscita dalla rete applicabile. Per saperne di più, consulta i prezzi di Pub/Sub.

Controlli di servizio VPC

Per gli argomenti condivisi da progetti con perimetri dei Controlli di servizio VPC, imposta le regole in entrata e in uscita appropriate per concedere l'accesso ai publisher e ai sottoscrittori degli argomenti condivisi.

Passaggi successivi