Truy vấn dữ liệu

Trang này mô tả cách gửi truy vấn tới một nguồn dữ liệu hỗ trợ giao thức Nguồn dữ liệu của Công cụ biểu đồ.

Tổng quan

Nguồn dữ liệu là một dịch vụ web hỗ trợ giao thức Nguồn dữ liệu cho biểu đồ. Bạn có thể gửi truy vấn SQL đến một Nguồn dữ liệu và để phản hồi, bạn sẽ nhận được một DataTable được điền sẵn thông tin thích hợp. Một số ví dụ về Nguồn dữ liệu bao gồm Bảng tính Google và Salesforce.

Gửi yêu cầu

Cách gửi yêu cầu:

  1. Tạo bản sao của đối tượng Query bằng URL của Nguồn dữ liệu. URL phải cho biết dữ liệu nào đang được yêu cầu, theo cú pháp mà nguồn dữ liệu đó hiểu.
  2. Nếu muốn, bạn có thể chỉ định các tùy chọn như phương thức gửi dưới dạng thông số thứ hai tùy chọn trong hàm dựng đối tượng Query (xem thông số opt_options của hàm khởi tạo truy vấn để biết chi tiết):
  3. Thêm chuỗi ngôn ngữ truy vấn nếu muốn để sắp xếp hoặc lọc kết quả, sau đó gửi yêu cầu. Không yêu cầu nguồn dữ liệu để hỗ trợ ngôn ngữ truy vấn Công cụ biểu đồ nguồn dữ liệu. Nếu Nguồn dữ liệu không hỗ trợ ngôn ngữ truy vấn, nguồn dữ liệu đó sẽ bỏ qua chuỗi truy vấn SQL, nhưng vẫn trả về DataTable. Ngôn ngữ truy vấn là một biến thể của ngôn ngữ SQL; hãy đọc cú pháp ngôn ngữ truy vấn đầy đủ tại đây.
  4. Gửi truy vấn, chỉ định một trình xử lý gọi lại sẽ được gọi khi nhận được phản hồi: xem phần tiếp theo để biết chi tiết.

Dưới đây là ví dụ về việc gửi yêu cầu dữ liệu trong một dải ô của Google Bảng tính; để tìm hiểu cách lấy URL cho một Bảng tính Google, hãy xem tại đây:

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

Xử lý phản hồi

Hàm xử lý phản hồi sẽ được gọi khi yêu cầu trả về. Tham số được truyền vào hàm xử lý phản hồi thuộc loại google.Visualization.QueryResponse. Nếu yêu cầu thành công, phản hồi sẽ chứa một bảng dữ liệu (lớp google.visualization.DataTable). Nếu yêu cầu không thành công, thì phản hồi sẽ chứa thông tin về lỗi và không có DataTable.

Trình xử lý phản hồi của bạn nên làm như sau:

  1. Kiểm tra xem yêu cầu có thành công hay không bằng cách gọi response.isError(). Bạn không cần hiển thị bất kỳ thông báo lỗi nào cho người dùng; thư viện Hình ảnh hóa sẽ hiển thị thông báo lỗi cho bạn trong vùng chứa <div>. Tuy nhiên, nếu muốn xử lý lỗi theo cách thủ công, bạn có thể sử dụng lớp goog.visualization.errors để hiển thị thông báo tuỳ chỉnh (xem Ví dụ về trình bao bọc truy vấn để biết ví dụ về cách xử lý lỗi tuỳ chỉnh).
  2. Nếu yêu cầu thành công, phản hồi sẽ bao gồm DataTable mà bạn có thể truy xuất bằng cách gọi getDataTable(). Chuyển dữ liệu vào biểu đồ.

Mã sau đây minh hoạ việc xử lý yêu cầu trước đó để vẽ biểu đồ hình tròn:

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

Đọc tệp CSV

Nếu muốn tạo biểu đồ từ dữ liệu CSV (giá trị được phân tách bằng dấu phẩy), bạn có 2 lựa chọn:

  • Chuyển đổi dữ liệu sang định dạng dữ liệu Google Biểu đồ
  • Đặt tệp CSV trên máy chủ web phân phát biểu đồ và truy vấn tệp này bằng kỹ thuật trên trang này.

Thông tin khác