Kueri Data

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

Daftar Isi

Ringkasan

Sumber Data adalah layanan web yang mendukung protokol Sumber Data Chart Tools. Anda dapat mengirim kueri SQL ke Sumber Data, dan sebagai respons, 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 Datasource 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 dalam konstruktor objek Query (lihat parameter opt_options konstruktor Kueri untuk mengetahui detailnya):
  3. Jika ingin, tambahkan string bahasa kueri untuk mengurutkan atau memfilter hasil, lalu mengirim permintaan. Sumber data tidak diperlukan untuk mendukung bahasa kueri Sumber Data Chart Tools. Jika Sumber Data tidak mendukung bahasa kueri, string kueri SQL akan diabaikan, tetapi tetap menampilkan DataTable. Bahasa kueri adalah varian bahasa SQL; baca sintaksis bahasa kueri selengkapnya di sini.
  4. Kirim kueri, dengan menentukan handler callback yang akan dipanggil saat respons diterima: lihat bagian berikutnya untuk mengetahui detailnya.

Berikut ini contoh pengiriman permintaan data dalam rentang sel Google Spreadsheet; untuk mempelajari cara mendapatkan URL untuk Google Spreadsheet, 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 Anda mengirim kueri dari dalam Apps Script, pastikan Anda menggunakan mode IFRAME.

Memproses respons

Fungsi pengendali respons Anda akan dipanggil saat permintaan ditampilkan. Parameter yang diteruskan ke fungsi pengendali respons Anda berjenis 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 kepada pengguna; library Visualisasi akan menampilkan pesan error di penampung <div>. Namun, jika ingin menangani error secara manual, Anda dapat menggunakan class goog.visualization.errors untuk menampilkan pesan kustom (lihat Contoh Wrapper Kueri untuk contoh penanganan error kustom).
  2. Jika permintaan berhasil, respons akan menyertakan DataTable yang dapat Anda ambil dengan memanggil getDataTable(). Teruskan ke diagram Anda.

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 Anda ingin membuat diagram dari data CSV ({i>comma-separated values<i}), Anda memiliki dua pilihan. Konversikan data CSV secara manual ke dalam format tabel data Google Chart, atau tempatkan file CSV di server web yang menayangkan diagram, lalu buat kueri menggunakan teknik di halaman ini.

Informasi selengkapnya

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