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

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

תוכן עניינים

סקירה כללית

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

שליחת בקשה

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

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

הנה דוגמה לשליחת בקשה לנתונים בטווח תאים של 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.
  ...
}

אם שולחים את השאילתה מתוך Apps Script, צריך להשתמש במצב IFRAME.

עיבוד התגובה

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

ה-handlers צריך לבצע את הפעולות הבאות:

  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 Slides, או מציבים את קובץ ה-CSV בשרת האינטרנט שמציג את התרשים, ומריצים שאילתות באמצעות השיטה שמתוארת בדף הזה.

מידע נוסף

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