डेटा क्वेरी

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

खास जानकारी

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

अनुरोध भेजना

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

  1. अपने डेटा सोर्स के यूआरएल से किसी क्वेरी ऑब्जेक्ट को इंस्टैंशिएट करें. यूआरएल से यह पता चलना चाहिए कि किस डेटा के लिए अनुरोध किया जा रहा है. यह जानकारी एक सिंटैक्स में होनी चाहिए, जिसे डेटा सोर्स समझ सके.
  2. इसके अलावा, अनुरोध करने के विकल्प तय करें, जैसे कि Query ऑब्जेक्ट कंस्ट्रक्टर में, दूसरे पैरामीटर के तौर पर भेजने के तरीके को चुनना. ज़्यादा जानकारी के लिए, क्वेरी कंस्ट्रक्टर का opt_options पैरामीटर देखें:
  3. आप चाहें, तो नतीजों को क्रम से लगाने या फ़िल्टर करने के लिए, क्वेरी की भाषा की स्ट्रिंग जोड़ें. इसके बाद, अनुरोध भेजें. चार्ट टूल डेटा सोर्स क्वेरी की भाषा के साथ काम करने के लिए डेटा सोर्स की ज़रूरत नहीं है. अगर डेटा सोर्स, क्वेरी की भाषा के साथ काम नहीं करता, तो यह एसक्यूएल क्वेरी स्ट्रिंग को अनदेखा करेगा, लेकिन 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.
  ...
}

जवाब को प्रोसेस किया जा रहा है

अनुरोध के वापस आने पर, आपका रिस्पॉन्स हैंडलर फ़ंक्शन कॉल किया जाएगा. आपके रिस्पॉन्स हैंडलर फ़ंक्शन में पास किया गया पैरामीटर 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 (कॉमा लगाकर अलग की गई वैल्यू) डेटा से एक चार्ट बनाना है, तो आपके पास दो विकल्प हैं:

  • डेटा को Google चार्ट के डेटा वाली टेबल के फ़ॉर्मैट में बदलना
  • CSV फ़ाइल को चार्ट दिखाने वाले वेब सर्वर पर रखें और इस पेज पर दी गई तकनीक का इस्तेमाल करके क्वेरी करें.

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

  • क्वेरी लैंग्वेज सिंटैक्स - डेटा क्वेरी बनाने के लिए इस्तेमाल की गई भाषा के सिंटैक्स की जानकारी देता है.
  • क्वेरी क्लास - क्वेरी को रैप करने वाली क्लास का रेफ़रंस पेज.
  • QueryResponse Class - उस क्लास का रेफ़रंस पेज जिसमें क्वेरी के जवाब को रैप किया जाता है.