Ad esempio, supponiamo che tu stia cercando di creare una soluzione per la tua organizzazione di vendita. L'organizzazione di vendita è suddivisa in più regioni, ognuna delle quali ha il proprio Regional Manager. Il set di dati sulle vendite in BigQuery contiene l'importo delle vendite per regione e per data.
La soluzione proposta avrà un'unica dashboard in cui i responsabili regionali possono visualizzare i dati di vendita solo per le proprie regioni.
Requisiti
- Gli spettatori della dashboard avranno eseguito l'accesso con un Account Google.
- È disponibile una mappatura tra l'email dell'utente e i dati/le righe a cui ha accesso.
- Per accedere ai dati BigQuery verrà utilizzato un service account. Pertanto, la fatturazione sarà centralizzata e gestita dal fornitore della dashboard.
Limitazioni
- La dashboard richiede un'autorizzazione una tantum da parte di ogni visualizzatore alla prima visualizzazione.
- Gli spettatori non possono modificare la dashboard o condividerla con altri.
- Se sei un cliente Workspace e il tuo amministratore ha disattivato la condivisione dei file di Drive con "Chiunque abbia il link", rimuovi la limitazione alla condivisione o sviluppa la soluzione su un account Gmail.com.
Soluzione
Completa tutti i seguenti passaggi per implementare la soluzione.
Crea un nuovo connettore della community
Per iniziare, consulta la sezione Come funzionano i connettori della community e completa il Codelab sui connettori della community. Utilizza lo strumento per sviluppatori per creare connettori per un processo di sviluppo più rapido e semplice.
Scrivere il codice del connettore
getAuthType()dovrebbe restituireNONE.getConfig()deve restituire una configurazione vuota.- (Facoltativo) Se hai bisogno di input specifici per configurare la dashboard, puoi richiedere l'input dell'utente qui.
getSchema()dovrebbe restituire lo schema della query.- (Facoltativo) Puoi aggiungere campi e calcoli personalizzati nella query SQL o utilizzando i campi calcolati come parte dello schema.
getData()verrà completato in un passaggio successivo.
Aggiorna manifest
Visualizza il riferimento al file manifest e completa il file manifest con tutte le informazioni richieste, tra cui:
- imposta
dataStudio.forceViewersCredentialssutrue. - imposta
dataStudio.advancedServices.datasutrue. - Per
oauthScopesaggiungihttps://www.googleapis.com/auth/userinfo.emailehttps://www.googleapis.com/auth/script.external_request. Per saperne di più, consulta Ambiti di autorizzazione per Apps Script.- Condizionale: aggiungi tutti gli ambiti pertinenti per i servizi utilizzati nel connettore.
Il file manifest dovrebbe avere questo aspetto:
{
...
"dataStudio": {
"forceViewersCredentials": true,
"advancedServices": {
"data": true
},
...
}
"oauthScopes": [
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/userinfo.email"
],
...
}
Implementare un service account
- Crea un service account nel tuo progetto cloud Google. Questo sarà il tuo progetto di fatturazione.
- Assicurati che questo service account abbia accesso a BigQuery nel progetto cloud.
- Ruoli Identity and Access Management (IAM) richiesti:
BigQuery Data Viewer,BigQuery Job User
- Ruoli Identity and Access Management (IAM) richiesti:
- Scarica il file JSON per ottenere le chiavi dei service account. Archivia le chiavi nelle proprietà script del progetto connettore.
- Includi la libreria OAuth2 per Apps Script nel tuo progetto Apps Script.
- Implementa il codice OAuth2 richiesto per il service account:
var SERVICE_ACCOUNT_CREDS = 'SERVICE_ACCOUNT_CREDS'; var SERVICE_ACCOUNT_KEY = 'private_key'; var SERVICE_ACCOUNT_EMAIL = 'client_email'; var BILLING_PROJECT_ID = 'project_id'; /** * Copy the entire credentials JSON file from creating a service account in GCP. */ function getServiceAccountCreds() { return JSON.parse(scriptProperties.getProperty(SERVICE_ACCOUNT_CREDS)); } function getOauthService() { var serviceAccountCreds = getServiceAccountCreds(); var serviceAccountKey = serviceAccountCreds[SERVICE_ACCOUNT_KEY]; var serviceAccountEmail = serviceAccountCreds[SERVICE_ACCOUNT_EMAIL]; return OAuth2.createService('RowLevelSecurity') .setAuthorizationBaseUrl('https://accounts.google.com/o/oauth2/auth') .setTokenUrl('https://accounts.google.com/o/oauth2/token') .setPrivateKey(serviceAccountKey) .setIssuer(serviceAccountEmail) .setPropertyStore(scriptProperties) .setCache(CacheService.getScriptCache()) .setScope(['https://www.googleapis.com/auth/bigquery.readonly']); }
Implementa getData()
- Crea la query BigQuery.
- Utilizzando l'email, cerca la mappatura tra l'email e i dati.
- Utilizza le clausole JOIN e/o WHERE per filtrare i dati.
- Recupera l'email dell'utente effettivo (riferimento all'identità dell'utente).
- Utilizza [Data Studio Advanced Services] per restituire la configurazione della query
da getData.
- Passa la query creata, il progetto di fatturazione e il token OAuth del service account.
- Condizionale:se ricevi l'input utente tramite il connettore
getConfig, devi incorporarlo come parametri BigQuery.
Creare la dashboard
- Comprendere il funzionamento di deployment e versioni per i connettori.
- Crea un deployment di produzione per il connettore.
- Utilizza il deployment di produzione per creare un'origine dati e un nuovo report in Data Studio.
- Aggiungi tutte le tabelle e tutti i grafici nel report.
- La dashboard è ora pronta per essere condivisa con i tuoi utenti.
Rendere disponibile la dashboard per gli utenti
- Condividi lo script del connettore con gli utenti selezionati o con "Chiunque abbia il link".
- Condividi la dashboard con gli utenti selezionati o con "Chiunque abbia il link".
- (Facoltativo) Utilizza un servizio di abbreviazione degli URL per creare un link breve per l'URL della dashboard. Condividi l'URL abbreviato con i tuoi utenti. In questo modo, potrai sostituire l'URL della dashboard in un secondo momento, se necessario.
- (Facoltativo) Misura l'utilizzo della dashboard configurando Google Analytics per il report.