Consultas de datos

En esta página, se describe cómo enviar una consulta a una fuente de datos compatible con el protocolo de fuente de datos de las 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 DataTable 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

Para enviar una solicitud, haz lo siguiente:

  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 que esa fuente de datos entienda.
  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 cadena del lenguaje de consulta para ordenar o filtrar los resultados y, luego, enviar la solicitud. No es necesario que las fuentes de datos admitan el lenguaje de consulta de fuentes de datos de las herramientas de gráficos. Si la fuente de datos no admite el lenguaje de consulta, ignorará la cadena de consulta de SQL, pero mostrará un DataTable. El lenguaje de consulta es una variante del lenguaje SQL; lee la sintaxis completa 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, se muestra un ejemplo de cómo enviar una solicitud de datos en el rango de celdas de una hoja de cálculo de Google. Si quieres aprender a 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.

Procesa la respuesta

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

Tu controlador de respuestas debe hacer lo siguiente:

  1. Llama a response.isError() para verificar si la solicitud se realizó correctamente o si falló. No deberías ser necesario que muestres ningún mensaje de error al usuario; la biblioteca de visualización te mostrará un mensaje de error en tu contenedor <div>. Sin embargo, si deseas manejar los errores de forma manual, puedes usar la clase goog.visualization.errors para mostrar mensajes personalizados (consulta el ejemplo del wrapper de consultas para ver un ejemplo de manejo de errores personalizado).
  2. Si la solicitud se realizó correctamente, la respuesta incluirá un DataTable que puedes recuperar llamando a getDataTable(). Pásala 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 quieres crear un gráfico a partir de datos CSV (valores separados por comas), tienes dos opciones. Convierte los datos CSV de forma manual al formato de tabla de datos de Google Charts o coloca el archivo CSV en el servidor web que entrega el gráfico y consúltalo con la técnica de esta página.

Más información