Kueri Data

Halaman ini menjelaskan cara mengirim kueri ke sumber data yang mendukung protokol Sumber Data Chart Tools.

Daftar Isi

Ringkasan

Datasource adalah layanan web yang mendukung protokol Chart Tools Datasource. Anda dapat mengirim kueri SQL ke Datasource, dan sebagai responsnya Anda akan menerima DataTable yang diisi dengan informasi yang sesuai. Beberapa contoh Sumber Data mencakup Google Spreadsheet dan SalesForce.

Mengirim permintaan

Untuk mengirim permintaan:

  1. Buat instance objek Query dengan URL Sumber data Anda. URL harus menunjukkan data yang diminta, dalam sintaksis yang dipahami oleh sumber data tersebut.
  2. Secara opsional, tentukan opsi permintaan seperti metode pengiriman sebagai parameter kedua opsional di konstruktor objek Query (lihat parameter opt_options konstruktor Kueri untuk detailnya):
  3. Secara opsional, tambahkan string bahasa kueri untuk mengurutkan atau memfilter hasil, lalu mengirimkan permintaan tersebut. Sumber data tidak diperlukan untuk mendukung bahasa kueri Data Chart Tools. Jika tidak mendukung bahasa kueri, Sumber Data akan mengabaikan string kueri SQL, tetapi tetap menampilkan DataTable. Bahasa kueri adalah varian bahasa SQL; baca sintaksis bahasa kueri di sini.
  4. Kirim kueri, dengan menentukan pengendali callback yang akan dipanggil saat respons diterima: lihat bagian berikutnya untuk mengetahui detailnya.

Berikut adalah contoh pengiriman permintaan data dalam rentang sel Google Spreadsheet; untuk mempelajari cara mendapatkan URL spreadsheet Google, lihat di sini:

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

Jika mengirim kueri dari dalam Apps Script, pastikan untuk menggunakan mode IFRAME.

Memproses respons

Fungsi pengendali respons Anda akan dipanggil saat permintaan kembali. Parameter yang diteruskan ke fungsi pengendali respons Anda merupakan jenis google.visualization.QueryResponse. Jika permintaan berhasil, respons akan berisi tabel data (class google.visualization.DataTable). Jika permintaan gagal, respons akan berisi informasi tentang error, dan tidak ada DataTable.

Pengendali respons Anda harus melakukan hal berikut:

  1. Periksa apakah permintaan berhasil atau gagal dengan memanggil response.isError(). Anda tidak perlu menampilkan pesan error apa pun kepada pengguna; library Visualisasi akan menampilkan pesan error untuk Anda di penampung <div>. Namun, jika memang ingin menangani error secara manual, Anda dapat menggunakan class goog.visualization.errors untuk menampilkan pesan kustom (lihat Contoh Pembungkus Kueri untuk mengetahui contoh penanganan error kustom).
  2. Jika permintaan berhasil, respons akan menyertakan DataTable yang dapat Anda ambil dengan memanggil getDataTable(). Teruskan ke diagram.

Kode berikut menunjukkan penanganan permintaan sebelumnya untuk menggambar diagram lingkaran:

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});
}

Membaca file CSV

Jika ingin membuat diagram dari data CSV (nilai yang dipisahkan koma), Anda memiliki dua pilihan. Konversikan data CSV secara manual ke dalam format tabel data Google Charts, atau tempatkan file CSV pada server web yang menayangkan diagram, dan buat kueri menggunakan teknik di halaman ini.

Informasi selengkapnya

  • Sintaksis Bahasa Kueri - Menjelaskan sintaksis bahasa yang digunakan untuk membuat kueri data.
  • Class Kueri - Halaman referensi untuk class yang menggabungkan kueri.
  • QueryResponse Class - Halaman referensi untuk class yang menggabungkan respons terhadap kueri.