Örneğin, satış kuruluşunuz için bir çözüm oluşturmaya çalıştığınızı varsayalım. Satış organizasyonu, her bölgenin kendi Bölge Yöneticisi'ne sahip olduğu birden çok bölgeye ayrılır. BigQuery'deki satış veri kümesi, bölgeye ve tarihe göre satış tutarına sahiptir.
Önerilen çözüm, bölge yöneticilerinin yalnızca kendi bölgelerine ait satış verilerini görüntüleyebileceği tek bir kontrol paneline sahip olacaktır.
Koşullar
- Kontrol Paneli'ni görüntüleyenler bir Google Hesabı ile oturum açar.
- Kullanıcının e-postası ile erişebildiği veriler/satırlar arasında bir eşleme vardır.
- BigQuery verilerine erişmek için bir hizmet hesabı kullanılır. Bu sayede faturalandırma merkezileşecek ve kontrol paneli sağlayıcısı tarafından yönetilecektir.
Sınırlamalar
- Kontrol paneli, ilk görüntülemede her izleyiciden bir defalık yetkilendirme gerektirir.
- İzleyiciler, gösterge tablosunu düzenleyemez veya başkalarıyla paylaşamaz.
- Workspace müşterisiyseniz ve yöneticiniz Drive dosyalarının "Bağlantıya sahip olan herkes" ile paylaşılmasını devre dışı bıraktıysa paylaşım kısıtlamasını kaldırın veya bir Gmail.com hesabında çözümü geliştirin.
Çözüm
Çözümü uygulamak için aşağıdaki adımların tümünü tamamlayın.
Yeni bir Topluluk Bağlayıcısı oluşturun
Başlamak için Topluluk Bağlayıcılarının İşleyiş Şekli konusunu inceleyin ve Topluluk Bağlayıcısı Codelab'i tamamlayın. Daha hızlı ve kolay bir geliştirme süreci için Bağlayıcı oluşturmaya yönelik geliştirici aracını kullanın.
Bağlayıcı kodunu yaz
getAuthType()
,NONE
değerini döndürmelidir.getConfig()
boş bir yapılandırma döndürmelidir.- İsteğe bağlı: Kontrol panelini yapılandırmak için belirli girişlere ihtiyacınız varsa buradan kullanıcı girişi isteyebilirsiniz.
getSchema()
, sorgunuz için şemayı döndürmelidir.- İsteğe bağlı: SQL sorgusunda veya şemanın parçası olarak hesaplanan alanları kullanarak özel alanlar ve hesaplamalar ekleyebilirsiniz.
getData()
, sonraki bir adımda tamamlanacak.
Manifesti güncelle
Manifest referansını görüntüleyin ve manifest'i aşağıdakiler de dahil olmak üzere gerekli tüm bilgilerle tamamlayın:
dataStudio.forceViewersCredentials
değerinitrue
olarak ayarla.dataStudio.advancedServices.data
değerinitrue
olarak ayarla.oauthScopes
içinhttps://www.googleapis.com/auth/userinfo.email
vehttps://www.googleapis.com/auth/script.external_request
ekleyin. Daha fazla bilgi edinmek için Apps Komut Dosyası için Yetkilendirme Kapsamları bölümüne bakın.- Koşullu: Bağlayıcıda kullanılan hizmetlerle ilgili tüm kapsamları ekleyin.
Manifest şu şekilde görünmelidir:
{
...
"dataStudio": {
"forceViewersCredentials": true,
"advancedServices": {
"data": true
},
...
}
"oauthScopes": [
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/userinfo.email"
],
...
}
Bir hizmet hesabını uygulayın
- Google Cloud projenizde bir hizmet hesabı oluşturun. Bu, faturalandırma projeniz olacaktır.
- Bu hizmet hesabının, bulut projesinde BigQuery erişimine sahip olduğundan emin olun.
- Gerekli Kimlik ve Erişim Yönetimi (IAM) Rolleri:
BigQuery Data Viewer
,BigQuery Job User
- Gerekli Kimlik ve Erişim Yönetimi (IAM) Rolleri:
- Hizmet hesapları anahtarlarını almak için JSON dosyasını indirin. Anahtarları, bağlayıcı projenizin komut dosyası özelliklerinde depolayın.
- Apps Komut Dosyası için OAuth2 kitaplığını Apps Komut Dosyası projenize ekleyin.
- Hizmet hesabı için gerekli OAuth2 kodunu uygulayın:
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']); }
getData()
uygulayın
- BigQuery sorgunuzu oluşturun.
- E-postayı kullanarak e-posta ve veriler arasındaki eşlemeyi arayın.
- Verileri filtrelemek için JOIN ve/veya WHERE yan tümcesini kullanın.
- Geçerli kullanıcının e-postasını alın (kullanıcı kimliği referansı).
- getData'dan sorgu yapılandırmasını döndürmek için Looker Studio Gelişmiş Hizmetleri'ni kullanın.
- Oluşturulan sorguyu, faturalandırma projesini ve Hizmet Hesabı OAuth jetonunu iletin.
- Koşullu:
getConfig
bağlayıcısı aracılığıyla kullanıcı girişi alıyorsanız girişi BigQuery parametreleri olarak eklemeniz gerekir.
Kontrol panelini oluşturma
- Bağlayıcılar için dağıtımların ve sürümlerin işleyiş şeklini öğrenin.
- Bağlayıcı için bir üretim dağıtımı oluşturun.
- Looker Studio'da bir veri kaynağı ve yeni bir rapor oluşturmak için Üretim dağıtımını kullanın.
- Rapordaki tüm tabloları ve grafikleri ekleyin.
- Kontrol paneli artık kullanıcılarınızla paylaşılmaya hazırdır.
Kontrol panelini kullanıcılara sunma
- Bağlayıcı komut dosyasını seçilen kullanıcılarla veya "Bağlantıya sahip olan herkes" ile paylaşın.
- Seçili kullanıcılarla veya "Bağlantıya sahip olan herkes" ile kontrol panelini paylaşın.
- İsteğe bağlı: Kontrol paneli URL'siyle ilgili kısa bağlantı oluşturmak için bir URL kısaltıcı hizmeti kullanın. Kısaltılmış URL'yi kullanıcılarınızla paylaşın. Bu, gerektiğinde kontrol paneli URL'sinin değiştirilmesine yardımcı olur.
- İsteğe bağlı: Raporunuz için Google Analytics'i ayarlayarak gösterge tablosu kullanımını ölçün.