कनेक्टेड शीट

कनेक्टेड शीट की मदद से, सीधे Google Sheets में पेटाबाइट डेटा का विश्लेषण किया जा सकता है. अपनी स्प्रेडशीट को किसी BigQuery डेटा वेयरहाउस से कनेक्ट किया जा सकता है. साथ ही, पिवट टेबल, चार्ट, और फ़ॉर्मूला जैसे जाने-पहचाने शीट टूल का इस्तेमाल करके, अपनी स्प्रेडशीट का विश्लेषण किया जा सकता है.

इस गाइड में, Shakespeare सार्वजनिक डेटासेट का इस्तेमाल करके, कनेक्टेड शीट की सुविधा को इस्तेमाल करने का तरीका बताया गया है. डेटासेट में यह जानकारी शामिल होती है:

फ़ील्ड टाइप ब्यौरा
शब्दों वाले गेम STRING कॉर्पस से निकाला गया एक यूनीक शब्द (जहां खाली सफ़ेद जगह, डीलिमिटर होता है).
word_count INTEGER इस कॉर्पस में यह शब्द कितनी बार दिखता है.
कॉर्पस STRING वह काम जिससे यह शब्द निकाला गया था.
corpus_date INTEGER वह साल जिसमें इस संग्रह को पब्लिश किया गया था.

अगर आपका ऐप्लिकेशन, कनेक्टेड शीट के किसी डेटा के लिए अनुरोध करता है, तो उसे OAuth 2.0 टोकन उपलब्ध कराना होगा. यह टोकन bigquery.readonly का इस्तेमाल करने की अनुमति देता है. साथ ही, Google Sheets API के सामान्य अनुरोध के लिए, ज़रूरी अन्य दायरों का भी इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, Google Sheets API के स्कोप चुनना लेख पढ़ें.

डेटा सोर्स मैनेज करना

डेटा सोर्स एक बाहरी जगह के बारे में बताता है, जहां डेटा पाया जाता है. इसके बाद, डेटा सोर्स स्प्रेडशीट से कनेक्ट हो जाता है.

BigQuery डेटा सोर्स जोड़ना

डेटा सोर्स जोड़ने के लिए, spreadsheets.batchUpdate तरीके का इस्तेमाल करके AddDataSourceRequest उपलब्ध कराएं. अनुरोध के मुख्य हिस्से में, DataSource ऑब्जेक्ट टाइप का dataSource फ़ील्ड बताना चाहिए.

"addDataSource":{
   "dataSource":{
      "spec":{
         "bigQuery":{
            "projectId":"PROJECT_ID",
            "tableSpec":{
               "tableProjectId":"bigquery-public-data",
               "datasetId":"samples",
               "tableId":"shakespeare"
            }
         }
      }
   }
}

PROJECT_ID की जगह मान्य Google Cloud प्रोजेक्ट आईडी डालें.

डेटा सोर्स बनने के बाद, उससे जुड़ी एक DATA_SOURCE शीट बनाई जाती है. इसमें ज़्यादा से ज़्यादा 500 लाइनों की झलक देखी जा सकती है. झलक तुरंत उपलब्ध नहीं है. BigQuery डेटा इंपोर्ट करने के लिए, एक्ज़ीक्यूशन को एसिंक्रोनस रूप से ट्रिगर किया जाता है.

AddDataSourceResponse में ये फ़ील्ड शामिल होते हैं:

  • dataSource: बनाया गया DataSource ऑब्जेक्ट. dataSourceId, स्प्रेडशीट के स्कोप वाला यूनीक आईडी होता है. यह डेटा अपने-आप भर जाता है और डेटा सोर्स से हर DataSource ऑब्जेक्ट बनाने के लिए इसका रेफ़रंस दिया जाता है.

  • dataExecutionStatus: प्रोसेस होने का स्टेटस, जिससे BigQuery डेटा को झलक वाली शीट में इंपोर्ट किया जाता है. ज़्यादा जानकारी के लिए, डेटा एक्ज़ीक्यूशन की स्थिति सेक्शन देखें.

डेटा सोर्स को अपडेट करना या मिटाना

spreadsheets.batchUpdate तरीके का इस्तेमाल करें और उसके मुताबिक UpdateDataSourceRequest या DeleteDataSourceRequest अनुरोध करें.

डेटा सोर्स के ऑब्जेक्ट मैनेज करें

स्प्रेडशीट में डेटा सोर्स जोड़ने के बाद, उससे एक डेटा सोर्स ऑब्जेक्ट बनाया जा सकता है. डेटा सोर्स ऑब्जेक्ट, Sheets का सामान्य टूल होता है. जैसे, पिवट टेबल, चार्ट, और फ़ॉर्मूला, जिन्हें डेटा का विश्लेषण बेहतर तरीके से करने के लिए कनेक्टेड शीट के साथ इंटिग्रेट किया गया है.

ऑब्जेक्ट चार तरह के होते हैं:

  • DataSource टेबल
  • DataSource pivotTable
  • DataSource चार्ट
  • DataSource फ़ॉर्मूला

डेटा सोर्स की टेबल जोड़ना

टेबल ऑब्जेक्ट, शीट एडिटर में "एक्सट्रैक्ट" के नाम से जाना जाता है. यह डेटा सोर्स से डेटा के स्टैटिक डंप को Sheets में इंपोर्ट करता है. पिवट टेबल की तरह ही, टेबल को सबसे ऊपर बाईं ओर मौजूद सेल में दिखाया जाता है और ऐंकर किया जाता है.

यहां दिए गए कोड सैंपल में बताया गया है कि spreadsheets.batchUpdate तरीके का इस्तेमाल कैसे किया जाता है. साथ ही, UpdateCellsRequest दो कॉलम (word और word_count) की 1,000 लाइनों तक डेटा सोर्स की टेबल बनाने का तरीका क्या है.

"updateCells":{
   "rows":{
      "values":[
         {
            "dataSourceTable":{
               "dataSourceId":"DATA_SOURCE_ID",
               "columns":[
                  {
                     "name":"word"
                  },
                  {
                     "name":"word_count"
                  }
               ],
               "rowLimit":{
                  "value":1000
               },
               "columnSelectionType":"SELECTED"
            }
         }
      ]
   },
   "fields":"dataSourceTable"
}

DATA_SOURCE_ID को स्प्रेडशीट के स्कोप वाले ऐसे यूनीक आईडी से बदलें जो डेटा सोर्स की पहचान करता हो.

डेटा सोर्स की टेबल बनाने के बाद, डेटा तुरंत उपलब्ध नहीं होता. इसे Sheets एडिटर में, झलक के तौर पर दिखाया जाता है. BigQuery डेटा फ़ेच करने के लिए, आपको डेटा सोर्स टेबल को रीफ़्रेश करना होगा. आप उसी batchUpdate में RefreshDataSourceRequest तय कर सकते हैं. ध्यान दें कि सभी डेटा सोर्स के ऑब्जेक्ट एक जैसे काम करते हैं. ज़्यादा जानकारी के लिए, डेटा सोर्स के ऑब्जेक्ट को रीफ़्रेश करना लेख पढ़ें.

रीफ़्रेश पूरा होने और BigQuery डेटा फ़ेच होने के बाद, डेटा सोर्स की टेबल इस तरह से अपने-आप भर जाती है:

शेक्सपियर के सार्वजनिक डेटासेट का डेटा दिखाने वाली डेटा सोर्स टेबल.

डेटा सोर्स का पिवट टेबल जोड़ें

पारंपरिक पिवट टेबल से अलग, डेटा सोर्स में पिवट टेबल का बैक अप डेटा सोर्स होता है और उसमें कॉलम के नाम के हिसाब से डेटा दिखाया जाता है. नीचे दिया गया कोड सैंपल दिखाता है कि spreadsheets.batchUpdate तरीके और UpdateCellsRequest का इस्तेमाल करके कैसे पिवट टेबल बनाई जाती है. इस टेबल में कॉर्पस के हिसाब से शब्दों की कुल संख्या दिखाई जाती है.

"updateCells":{
   "rows":{
      "values":[
         {
            "pivotTable":{
               "dataSourceId":"DATA_SOURCE_ID",
               "rows":{
                  "dataSourceColumnReference":{
                     "name":"corpus"
                  },
                  "sortOrder":"ASCENDING"
               },
               "values":{
                  "summarizeFunction":"SUM",
                  "dataSourceColumnReference":{
                     "name":"word_count"
                  }
               }
            }
         }
      ]
   },
   "fields":"pivotTable"
    }

DATA_SOURCE_ID को स्प्रेडशीट के स्कोप वाले ऐसे यूनीक आईडी से बदलें जो डेटा सोर्स की पहचान करता हो.

BigQuery डेटा फ़ेच होने के बाद, डेटा सोर्स में मौजूद पिवट टेबल में इस तरह से अपने-आप जानकारी भरी जाती है:

शेक्सपियर के सार्वजनिक डेटासेट का डेटा दिखाने वाली डेटा सोर्स पिवट टेबल.

डेटा सोर्स का चार्ट जोड़ना

नीचे दिए गए कोड सैंपल में, spreadsheets.batchUpdate तरीके और AddChartRequest का इस्तेमाल करके, COLUMN के chartType वाले डेटा सोर्स चार्ट को बनाने का तरीका बताया गया है. इसमें कॉर्पस के हिसाब से शब्दों की कुल संख्या दिखाई गई है.

"addChart":{
   "chart":{
      "spec":{
         "title":"Corpus by word count",
         "basicChart":{
            "chartType":"COLUMN",
            "domains":[
               {
                  "domain":{
                     "columnReference":{
                        "name":"corpus"
                     }
                  }
               }
            ],
            "series":[
               {
                  "series":{
                     "columnReference":{
                        "name":"word_count"
                     },
                     "aggregateType":"SUM"
                  }
               }
            ]
         }
      },
      "dataSourceChartProperties":{
         "dataSourceId":"DATA_SOURCE_ID"
      }
   }
}

DATA_SOURCE_ID को स्प्रेडशीट के स्कोप वाले ऐसे यूनीक आईडी से बदलें जो डेटा सोर्स की पहचान करता हो.

BigQuery डेटा फ़ेच होने के बाद, डेटा सोर्स चार्ट इस तरह रेंडर होता है:

शेक्सपियर के सार्वजनिक डेटासेट का डेटा दिखाने वाला डेटा सोर्स चार्ट.

डेटा सोर्स का फ़ॉर्मूला जोड़ें

नीचे दिया गया कोड सैंपल दिखाता है कि औसत शब्दों की संख्या का हिसाब लगाने के लिए, spreadsheets.batchUpdate तरीके और UpdateCellsRequest का इस्तेमाल कैसे किया जाता है.

"updateCells":{
   "rows":[
      {
         "values":[
            {
               "userEnteredValue":{
                  "formulaValue":"=AVERAGE(shakespeare!word_count)"
               }
            }
         ]
      }
   ],
   "fields":"userEnteredValue"
}

BigQuery डेटा फ़ेच होने के बाद, डेटा सोर्स का फ़ॉर्मूला नीचे बताए गए तरीके से पॉप्युलेट होता है:

शेक्सपियर के सार्वजनिक डेटासेट का डेटा दिखाने वाला डेटा सोर्स फ़ॉर्मूला.

डेटा सोर्स के ऑब्जेक्ट को रीफ़्रेश करना

डेटा सोर्स की मौजूदा विशेषताओं और ऑब्जेक्ट कॉन्फ़िगरेशन के आधार पर, BigQuery से नया डेटा फ़ेच करने के लिए, डेटा सोर्स ऑब्जेक्ट को रीफ़्रेश किया जा सकता है. RefreshDataSourceRequest को कॉल करने के लिए, spreadsheets.batchUpdate तरीके का इस्तेमाल किया जा सकता है. इसके बाद, DataSourceObjectReferences ऑब्जेक्ट का इस्तेमाल करके, रीफ़्रेश करने के लिए एक या उससे ज़्यादा ऑब्जेक्ट रेफ़रंस तय करें.

ध्यान दें कि एक ही batchUpdate अनुरोध में, डेटा सोर्स में ऑब्जेक्ट बनाए और रीफ़्रेश किए जा सकते हैं.

डेटा प्रोसेस होने का स्टेटस

डेटा सोर्स बनाने या डेटा सोर्स के ऑब्जेक्ट रीफ़्रेश करने पर, BigQuery से डेटा फ़ेच करने और DataExecutionStatus वाला रिस्पॉन्स देने के लिए, बैकग्राउंड एक्ज़ीक्यूशन बन जाता है. अगर प्रोसेस शुरू हो जाती है, तो DataExecutionState आम तौर पर RUNNING स्थिति में होता है.

यह प्रोसेस एसिंक्रोनस होती है, इसलिए आपके ऐप्लिकेशन को पोलिंग मॉडल लागू करना चाहिए, ताकि डेटा सोर्स से जुड़े ऑब्जेक्ट के लिए समय-समय पर स्टेटस हासिल किया जा सके. spreadsheets.get तरीके का इस्तेमाल तब तक करें, जब तक स्टेटस SUCCEEDED या FAILED न दिखे. ज़्यादातर मामलों में, एक्ज़ीक्यूशन जल्दी पूरा होता है, लेकिन यह आपके डेटा सोर्स की जटिलता पर निर्भर करता है. आम तौर पर, एक्ज़ीक्यूशन 10 मिनट से ज़्यादा नहीं होता है.