उदाहरण के लिए, मान लें कि आप अपनी सेल्स ऑर्गनाइज़ेशन के लिए कोई समाधान तैयार कर रहे हैं. सेल्स ऑर्गनाइज़ेशन को कई इलाकों में बांटा गया है. हर इलाके का अपना रीजनल मैनेजर होता है. BigQuery में मौजूद सेल्स डेटासेट में, इलाके और तारीख के हिसाब से सेल्स की रकम की जानकारी होती है.
प्रस्तावित समाधान में एक डैशबोर्ड होगा. इसमें रीजनल मैनेजर, सिर्फ़ अपने इलाके का सेल्स डेटा देख पाएंगे.
ज़रूरी शर्तें
- डैशबोर्ड के व्यूअर, Google खाते से साइन इन करेंगे.
- उपयोगकर्ता के ईमेल और उस डेटा/पंक्तियों के बीच मैपिंग उपलब्ध होगी जिसे वे ऐक्सेस कर सकते हैं.
- BigQuery डेटा को ऐक्सेस करने के लिए, सेवा खाते का इस्तेमाल किया जाएगा. इसलिए, बिलिंग को केंद्रीकृत किया जाएगा और इसे डैशबोर्ड उपलब्ध कराने वाली कंपनी मैनेज करेगी.
सीमाएं
- डैशबोर्ड को पहली बार देखने पर, हर व्यूअर को एक बार अनुमति देनी होगी.
- व्यूअर, डैशबोर्ड में बदलाव नहीं कर सकते या इसे दूसरों के साथ शेयर नहीं कर सकते.
- अगर आप Workspace के ग्राहक हैं और आपके एडमिन ने Drive में मौजूद फ़ाइलों को “लिंक वाले किसी भी व्यक्ति” के साथ शेयर करने की सुविधा बंद कर दी है, तो शेयर करने की पाबंदी हटाएं या Gmail.com खाते पर समाधान तैयार करें.
समाधान
समाधान लागू करने के लिए, यहां दिया गया तरीका अपनाएं.
नया कम्यूनिटी कनेक्टर बनाना
शुरू करने के लिए, कम्यूनिटी कनेक्टर कैसे काम करते हैं लेख पढ़ें और कम्यूनिटी कनेक्टर कोडलैब पूरा करें. कनेक्टर बनाने के लिए, डेवलपर टूल का इस्तेमाल करें. इससे डेवलपमेंट की प्रोसेस तेज़ी से और आसानी से पूरी की जा सकती है.
कनेक्टर का कोड लिखना
getAuthType()कोNONEदिखाना चाहिए.getConfig()को खाली कॉन्फ़िगरेशन दिखाना चाहिए.- ज़रूरी नहीं: अगर आपको डैशबोर्ड को कॉन्फ़िगर करने के लिए, खास इनपुट की ज़रूरत है, तो यहां उपयोगकर्ता से इनपुट का अनुरोध किया जा सकता है.
getSchema()को आपकी क्वेरी का स्कीमा दिखाना चाहिए.- ज़रूरी नहीं: SQL क्वेरी में या स्कीमा के हिस्से के तौर पर, आपके दिए गए फ़ॉर्मूले के आधार पर तैयार किए गए फ़ील्ड का इस्तेमाल करके, कस्टम फ़ील्ड और कैलकुलेशन जोड़ी जा सकती हैं.
getData()को बाद में पूरा किया जाएगा.
मेनिफ़ेस्ट अपडेट करना
मेनिफ़ेस्ट के रेफ़रंस देखें और मेनिफ़ेस्ट में ज़रूरी सभी जानकारी शामिल करें. इनमें ये जानकारी शामिल होनी चाहिए:
dataStudio.forceViewersCredentialsकोtrueपर सेट करें.dataStudio.advancedServices.dataकोtrueपर सेट करें.oauthScopesके लिए,https://www.googleapis.com/auth/userinfo.emailऔरhttps://www.googleapis.com/auth/script.external_requestजोड़ें. ज़्यादा जानकारी के लिए, Authorization Apps Script के लिए अनुमति के दायरे देखें.- शर्त के मुताबिक: कनेक्टर में इस्तेमाल की जाने वाली सेवाओं के लिए, सभी काम के दायरे जोड़ें.
मेनिफ़ेस्ट कुछ इस तरह दिखना चाहिए:
{
...
"dataStudio": {
"forceViewersCredentials": true,
"advancedServices": {
"data": true
},
...
}
"oauthScopes": [
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/userinfo.email"
],
...
}
सेवा खाता लागू करना
- अपने Google Cloud प्रोजेक्ट में, सेवा खाता बनाएं. यह आपका बिलिंग प्रोजेक्ट होगा.
- पक्का करें कि इस सेवा खाते के पास, क्लाउड प्रोजेक्ट में BigQuery का ऐक्सेस हो.
- ज़रूरी आइडेंटिटी और ऐक्सेस मैनेजमेंट (IAM) की भूमिकाएं:
BigQuery Data Viewer,BigQuery Job User
- ज़रूरी आइडेंटिटी और ऐक्सेस मैनेजमेंट (IAM) की भूमिकाएं:
- सेवा खातों की कुंजियां पाने के लिए, JSON फ़ाइल डाउनलोड करें. कुंजियों को अपने कनेक्टर प्रोजेक्ट की स्क्रिप्ट प्रॉपर्टी में सेव करें.
- अपने Apps Script प्रोजेक्ट में, Apps Script के लिए OAuth2 लाइब्रेरीशामिल करें.
- सेवा खाते के लिए, OAuth2 का ज़रूरी कोड लागू करें:
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() लागू करना
- अपनी BigQuery क्वेरी बनाएं.
- ईमेल का इस्तेमाल करके, ईमेल और डेटा के बीच मैपिंग देखें.
- डेटा को फ़िल्टर करने के लिए, JOIN और/या WHERE क्लॉज़ का इस्तेमाल करें.
- उपयोगकर्ता का असली ईमेल (उपयोगकर्ता की पहचान का रेफ़रंस) पाएं.
- क्वेरी के कॉन्फ़िगरेशन को getData से वापस पाने के लिए, [Data Studio की बेहतर सेवाएं] का इस्तेमाल करें.
- बनाई गई क्वेरी, बिलिंग प्रोजेक्ट, और सेवा खाते का OAuth टोकन पास करें.
- शर्त के मुताबिक: अगर कनेक्टर
getConfigके ज़रिए उपयोगकर्ता से इनपुट लिया जा रहा है, तो आपको इनपुट को BigQuery पैरामीटर के तौर पर शामिल करना चाहिए.
डैशबोर्ड बनाना
- कनेक्टर के लिए, डिप्लॉयमेंट और वर्शन कैसे काम करते हैं, इस बारे में जानें.
- कनेक्टर के लिए, प्रोडक्शन डिप्लॉयमेंट बनाएं.
- Data Studio में डेटा सोर्स और नई रिपोर्ट बनाने के लिए, प्रोडक्शन डिप्लॉयमेंट का इस्तेमाल करें.
- रिपोर्ट में सभी टेबल और चार्ट जोड़ें.
- अब डैशबोर्ड को अपने उपयोगकर्ताओं के साथ शेयर किया जा सकता है.
डैशबोर्ड को उपयोगकर्ताओं के लिए उपलब्ध कराना
- कनेक्टर स्क्रिप्ट शेयर करें चुने गए उपयोगकर्ताओं या “लिंक वाले किसी भी व्यक्ति ” के साथ.
- डैशबोर्ड शेयर करें चुने गए उपयोगकर्ताओं या “ लिंक वाले किसी भी व्यक्ति” के साथ.
- ज़रूरी नहीं: डैशबोर्ड के यूआरएल के लिए छोटा लिंक बनाने के लिए, यूआरएल शॉर्टनर सेवा का इस्तेमाल करें. छोटा किया गया यूआरएल, अपने उपयोगकर्ताओं के साथ शेयर करें. इससे ज़रूरत पड़ने पर, डैशबोर्ड के यूआरएल को बाद में बदला जा सकता है.
- ज़रूरी नहीं: डैशबोर्ड के इस्तेमाल के आंकड़े मेज़र करें अपनी रिपोर्ट के लिए Google Analytics सेट अप करके.