डेटा क्वेरी

इस पेज पर, किसी ऐसे चार्ट को क्वेरी भेजने के तरीके के बारे में बताया गया है जो चार्ट टूल के डेटा सोर्स प्रोटोकॉल के साथ काम करता हो.

कॉन्टेंट

खास जानकारी

डेटा सोर्स एक वेब सेवा है. इसमें चार्ट टूल के डेटा सोर्स प्रोटोकॉल का इस्तेमाल किया जाता है. किसी Datasource को SQL क्वेरी भेजी जा सकती है. ऐसा होने पर, आपको सही जानकारी वाली DataTable मिलेगी. डेटा सोर्स के कुछ उदाहरणों में Google स्प्रेडशीट और SalesForce शामिल हैं.

अनुरोध भेजना

अनुरोध भेजने के लिए:

  1. अपने डेटा सोर्स के यूआरएल से क्वेरी ऑब्जेक्ट को इंस्टैंशिएट करें. यूआरएल में यह बताया जाना चाहिए कि अनुरोध किया गया डेटा किस सिंटैक्स के तहत है जिसे उस डेटा सोर्स ने समझ लिया है.
  2. वैकल्पिक रूप से अनुरोध के विकल्प तय करें, जैसे कि Query ऑब्जेक्ट कंस्ट्रक्टर में वैकल्पिक दूसरे पैरामीटर के तौर पर भेजने का तरीका (जानकारी के लिए क्वेरी कंस्ट्रक्टर का opt_options पैरामीटर देखें):
  3. नतीजों को क्रम से लगाने या फ़िल्टर करने के लिए, क्वेरी भाषा स्ट्रिंग जोड़ें और फिर अनुरोध भेजें. चार्ट टूल के डेटा सोर्स में क्वेरी की भाषा के साथ काम करने के लिए, डेटा सोर्स ज़रूरी नहीं हैं. अगर Datasource में क्वेरी की भाषा काम नहीं करती है, तो वह SQL क्वेरी स्ट्रिंग को अनदेखा कर देगा. हालांकि, DataTable इसमें कोई गड़बड़ी नहीं होगी. क्वेरी की भाषा, SQL की भाषा में उपलब्ध होती है. क्वेरी की भाषा का सिंटैक्स यहां पढ़ें.
  4. एक कॉलबैक हैंडलर बताते हुए क्वेरी भेजें, जिसे जवाब मिलने पर कॉल किया जाएगा: जानकारी के लिए अगला सेक्शन देखें.

Google स्प्रेडशीट सेल के डेटा का अनुरोध भेजने का एक उदाहरण यहां दिया गया है. Google स्प्रेडशीट का यूआरएल पाने का तरीका जानने के लिए, यहां जाएं:

function initialize() {
  var opts = {sendMethod: 'auto'};
  // Replace the data source URL on next line with your data source URL.
  var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts);

  // Optional request to return only column C and the sum of column B, grouped by C members.
  query.setQuery('select C, sum(B) group by C');

  // Send the query with a callback function.
  query.send(handleQueryResponse);
}

function handleQueryResponse(response) {
  // Called when the query response is returned.
  ...
}

अगर क्वेरी को Apps Script में से भेजा जा रहा है, तो IFRAME मोड का इस्तेमाल ज़रूर करें.

जवाब को प्रोसेस करना

अनुरोध मिलने पर, आपके रिस्पॉन्स हैंडलर फ़ंक्शन को कॉल किया जाएगा. आपके रिस्पॉन्स हैंडलर फ़ंक्शन में पास किया गया पैरामीटर google.visualization.QueryResponse है. अगर अनुरोध सफल रहा, तो जवाब में डेटा टेबल मौजूद है (क्लास google.visualization.DataTable). अगर अनुरोध पूरा नहीं होता है, तो रिस्पॉन्स में गड़बड़ी से जुड़ी जानकारी होगी, न कि DataTable की.

आपके रिस्पॉन्स हैंडलर के लिए ये काम करें:

  1. response.isError() को कॉल करके पता करें कि अनुरोध सफल रहा या विफल. आपको उपयोगकर्ता को किसी भी गड़बड़ी का मैसेज दिखाने की ज़रूरत नहीं है; विज़ुअलाइज़ेशन लाइब्रेरी आपके कंटेनर <div> में आपके लिए गड़बड़ी का मैसेज दिखाएगी. हालांकि, अगर आपको मैन्युअल तरीके से गड़बड़ियों को ठीक करना है, तो कस्टम मैसेज दिखाने के लिए goog.visualization.errors क्लास का इस्तेमाल किया जा सकता है. कस्टम गड़बड़ी को मैनेज करने के उदाहरण के लिए, क्वेरी रैपर का उदाहरण देखें.
  2. अनुरोध पूरा होने पर, जवाब में DataTable शामिल होगा. इसे getDataTable() पर कॉल करके भेजा जा सकता है. इसे अपने चार्ट में भेजें.

यह कोड, पाई चार्ट बनाने के पिछले अनुरोध को मैनेज करने का तरीका बताता है:

function handleQueryResponse(response) {

  if (response.isError()) {
    alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
    return;
  }

  var data = response.getDataTable();
  var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
  chart.draw(data, {width: 400, height: 240, is3D: true});
}

CSV फ़ाइलें पढ़ना

अगर आपको CSV (कॉमा लगाकर अलग की गई वैल्यू) डेटा से कोई चार्ट बनाना है, तो आपके पास दो विकल्प हैं. CSV डेटा को मैन्युअल रूप से Google चार्ट डेटाटेबल फ़ॉर्मैट में बदलें या CSV फ़ाइल को चार्ट दिखाने वाले वेब सर्वर पर रखें और इस पेज पर दी गई तकनीक का इस्तेमाल करके उसे क्वेरी करें.

ज़्यादा जानकारी