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

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

סקירה כללית

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

שליחת בקשה

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

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

דוגמה לשליחת בקשה לנתונים בטווח תאים של Google Sheets. כאן מוסבר איך למצוא כתובת URL לגיליון אלקטרוני של 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 בשרת האינטרנט שמציג את התרשים והרצתו שאילתות באמצעות הטכניקה שבדף הזה.

מידע נוסף

  • תחביר שפת שאילתה - תיאור התחביר של השפה ששימשה לביצוע שאילתות בנתונים.
  • Query Class – דף ההפניות של הכיתה שאורכה שאילתה.
  • QueryResponse Class – דף העזר של הכיתה שאורזת את התשובה לשאילתה.