שאילתות נתונים

בדף הזה נסביר איך לשלוח שאילתה למקור נתונים שתומך בפרוטוקול Datasource של Chart Tools.

סקירה

Datasource הוא שירות אינטרנט שתומך בפרוטוקול Datasource של Chart Tools. אפשר לשלוח שאילתת SQL למקור נתונים, ובתגובה לכך תקבלו DataTable שיאוכלס במידע המתאים. דוגמאות למקורות נתונים כוללות גיליונות אלקטרוניים של Google ו-SalesForce.

שליחת בקשה

כדי לשלוח בקשה:

  1. יוצרים אובייקט Query עם כתובת ה-URL של מקור הנתונים. כתובת ה-URL צריכה לציין אילו נתונים המבוקשים, בתחביר שמבין את מקור הנתונים.
  2. אפשר לציין אפשרויות בקשה, כמו שיטת שליחה כפרמטר שני אופציונלי ב-constructor של האובייקטים Query (פרטים נוספים אפשר למצוא בפרמטר opt_options של constructor של השאילתות):
  3. אפשר להוסיף מחרוזת של שפת השאילתה כדי למיין או לסנן את התוצאות, ואז לשלוח את הבקשה. מקורות נתונים לא נדרשים כדי לתמוך בשפת שאילתות מקור הנתונים של Chart Tools. אם מקור ה-Datasource לא תומך בשפת השאילתה, הוא יתעלם ממחרוזת השאילתה של SQL, אבל עדיין יחזיר DataTable. שפת השאילתה היא וריאנט של שפת SQL. אפשר לקרוא את התחביר המלא של שפת השאילתה כאן.
  4. שולחים את השאילתה ומציינים את ה-handler של הקריאה החוזרת (callback) שייקרא כשהתגובה תתקבל: לפרטים נוספים, אפשר לעיין בקטע הבא.

לפניכם דוגמה לשליחת בקשה לנתונים בטווח תאים ב-Google Sheets. כאן מוסבר איך למצוא את כתובת ה-URL של גיליון אלקטרוני ב-Google Sheets:

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.
  ...
}

עיבוד התשובה

תתבצע קריאה לפונקציית ה-handler של התשובות כשהבקשה תוחזר. הפרמטר שמועבר לפונקציית ה-handler של התשובות הוא מסוג google.visualization.QueryResponse. אם הבקשה תאושר, התשובה תכיל טבלת נתונים (מחלקה google.visualization.DataTable). אם הבקשה נכשלה, התשובה תכלול מידע על השגיאה ולא DataTable.

ה-handler של התגובות צריך לבצע את הפעולות הבאות:

  1. בדוק אם הבקשה הצליחה או נכשלה על ידי התקשרות ל-response.isError(). לא צריך להציג הודעות שגיאה למשתמש; ספריית הוויזואליזציה תציג הודעת שגיאה בקונטיינר <div>. אבל אם רוצים לטפל בשגיאות באופן ידני, אפשר להשתמש במחלקה goog.visualization.errors כדי להציג הודעות מותאמות אישית (בדוגמה ל-Query Wrapper תוכלו לראות דוגמה לטיפול בשגיאות בהתאמה אישית).
  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 Charts
  • מציבים את קובץ ה-CSV בשרת האינטרנט שמציג את התרשים, ומריצים שאילתות על הקובץ באמצעות השיטה בדף הזה.

מידע נוסף