Consultas de datos

En esta página, se describe cómo enviar una consulta a una fuente de datos que admita el protocolo de fuente de datos de herramientas de gráficos.

Contenido

Descripción general

Una fuente de datos es un servicio web que admite el protocolo de fuente de datos de herramientas de gráficos. Puedes enviar una consulta de SQL a una fuente de datos y, en respuesta, recibirás una tabla de datos propagada con la información adecuada. Algunos ejemplos de fuentes de datos incluyen Hojas de cálculo de Google y SalesForce.

Cómo enviar una solicitud

Sigue estos pasos para enviar una solicitud:

  1. Crea una instancia de un objeto Query con la URL de tu fuente de datos. La URL debe indicar qué datos se solicitan, en una sintaxis comprendida por esa fuente de datos.
  2. De manera opcional, especifica opciones de solicitud, como el método de envío como un segundo parámetro opcional en el constructor de objetos Query (consulta el parámetro opt_options del constructor de consultas para obtener más detalles):
  3. De manera opcional, agrega una string de lenguaje de consulta para ordenar o filtrar los resultados y, luego, enviar la solicitud. No se requiere que las fuentes de datos admitan el lenguaje de consulta de la fuente de datos de las herramientas de gráfico. Si la fuente de datos no admite el lenguaje de consulta, ignorará la string de consulta de SQL, pero seguirá mostrando un DataTable. El lenguaje de consulta es una variante del lenguaje SQL. Lee la sintaxis del lenguaje de consulta aquí.
  4. Envía la consulta y especifica un controlador de devolución de llamada al que se llamará cuando se reciba la respuesta. Para obtener más información, consulta la siguiente sección.

A continuación, te mostramos un ejemplo de cómo enviar una solicitud de datos en un rango de celdas de una hoja de cálculo de Google. Para ver cómo obtener la URL de una hoja de cálculo de Google, consulta aquí:

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

Si envías tu consulta desde Apps Script, asegúrate de usar el modo IFRAME.

Procesamiento de la respuesta

Se llamará a tu función del controlador de respuestas cuando se muestre la solicitud. El parámetro que se pasa a tu función del controlador de respuestas es del tipo google.visualization.QueryResponse. Si la solicitud se realizó de forma correcta, la respuesta contendrá una tabla de datos (clase google.visualization.DataTable). Si la solicitud falló, la respuesta contendrá información sobre el error y no DataTable.

El controlador de respuestas debería hacer lo siguiente:

  1. Llama a response.isError() para verificar si la solicitud se realizó correctamente o no. No debería ser necesario que muestre mensajes de error al usuario; la biblioteca de visualización te mostrará un mensaje de error en el contenedor <div>. Sin embargo, si deseas controlar los errores de forma manual, puedes usar la clase goog.visualization.errors para mostrar mensajes personalizados (consulta el Ejemplo de wrapper de consulta para obtener un ejemplo de manejo personalizado de errores).
  2. Si la solicitud se realiza correctamente, la respuesta incluirá un DataTable que puedes recuperar llamando a getDataTable(). Pásalo a tu gráfico.

En el siguiente código, se muestra el manejo de la solicitud anterior para dibujar un gráfico circular:

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ómo leer archivos CSV

Si deseas compilar un gráfico a partir de datos de CSV (valores separados por comas), tienes dos opciones. Convierte los datos CSV al formato de tabla de datos de Google Charts en forma manual o coloca el archivo CSV en el servidor web que entrega el gráfico y consúltalo con la técnica en esta página.

Más información