データクエリ
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このページでは、Chart Tools データソース プロトコルをサポートするデータソースにクエリを送信する方法について説明します。
目次
概要
データソースは、グラフツールのデータソース プロトコルをサポートするウェブサービスです。データソースに SQL クエリを送信すると、適切な情報が入力された DataTable が返されます。データソースの例としては、Google スプレッドシートや SalesForce などがあります。
リクエストの送信
リクエストを送信するには:
-
データソースの URL を使用して Query オブジェクトをインスタンス化します。URL では、リクエストされているデータを、そのデータソースで認識される構文で示す必要があります。
-
必要に応じて、
Query
オブジェクト コンストラクタのオプションの 2 番目のパラメータとしてメソッドを送信するなどのリクエスト オプションを指定します(詳細については、クエリ コンストラクタの opt_options
パラメータをご覧ください)。
-
必要に応じて、クエリ文字列文字列を追加して結果の並べ替えまたはフィルタリングを行い、リクエストを送信します。データソースは、グラフツールのデータソース クエリ言語をサポートする必要はありません。データソースがクエリ言語をサポートしていない場合、SQL クエリ文字列は無視されますが、
DataTable
が返されます。クエリ言語は SQL 言語のバリアントです。詳しくは、クエリ言語の構文をご覧ください。
-
レスポンスを受信したときに呼び出されるコールバック ハンドラを指定して、クエリを送信します。詳細については、次のセクションをご覧ください。
以下は、Google スプレッドシートのセル範囲のデータをリクエストする場合の例です。Google スプレッドシートの URL を取得する方法については、こちらをご覧ください。
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.
...
}
Apps Script 内からクエリを送信する場合は、必ず IFRAME
モードを使用してください。
レスポンスの処理
リクエストが戻ると、レスポンス ハンドラ関数が呼び出されます。レスポンス ハンドラ関数に渡されるパラメータは google.visualization.QueryResponse 型です。リクエストが成功した場合、レスポンスにはデータテーブル(クラス google.visualization.DataTable
)が含まれます。リクエストが失敗した場合、レスポンスにはエラーに関する情報が含まれますが、DataTable
は含まれません。
レスポンス ハンドラでは、次のことを行う必要があります。
-
response.isError()
を呼び出して、リクエストが成功したか失敗したかを確認します。ユーザーにエラー メッセージを表示する必要はありません。可視化ライブラリにより、コンテナ <div>
にエラー メッセージが表示されます。ただし、エラーを手動で処理する場合は、
goog.visualization.errors
クラスを使用してカスタム メッセージを表示できます(カスタムエラー処理の例については、クエリラッパーの例をご覧ください)。
-
リクエストが成功した場合、レスポンスには
getDataTable()
を呼び出して取得できる DataTable
が含まれます。これをグラフに渡します。
次のコードは、前述の円グラフを描画するリクエストの処理方法を示しています。
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});
}
CSV ファイルの読み取り
CSV(カンマ区切り値)データからグラフを作成する場合、2 つの選択肢があります。CSV データを Google Chart のデータ可能形式に手動で変換するか、グラフを提供するウェブサーバーに CSV ファイルを配置し、このページの手法でクエリを実行します。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-07-10 UTC。
[null,null,["最終更新日 2024-07-10 UTC。"],[[["\u003cp\u003eThis page explains how to send a SQL query to a Datasource, a web service supporting the Chart Tools Datasource protocol, to receive a DataTable with the requested data.\u003c/p\u003e\n"],["\u003cp\u003eYou can use a Query object to send a request with optional parameters for sending method and a query language string for filtering data, receiving a response handled by a callback function.\u003c/p\u003e\n"],["\u003cp\u003eThe response handler checks for errors and, if successful, retrieves the DataTable from the QueryResponse for use in visualizations like charts.\u003c/p\u003e\n"],["\u003cp\u003eCSV data can be either manually converted to Google Charts datatable format or placed on a web server and queried using the techniques described on the page.\u003c/p\u003e\n"],["\u003cp\u003eMore detailed information on query language syntax, the Query class, and the QueryResponse class can be found via provided links.\u003c/p\u003e\n"]]],[],null,["# Data Queries\n\nThis page describes how to send a query to a data source that supports the Chart Tools Datasource\nprotocol.\n\nContents\n--------\n\n1. [Overview](#overview)\n2. [Sending a request](#Sending_a_Query)\n3. [Processing the response](#Processing_the_Query_Response)\n4. [Reading CSV files](#csv)\n5. [More information](#moreinfo)\n\nOverview\n--------\n\n\nA Datasource is a web service that supports the Chart Tools Datasource protocol. You can send a\nSQL query to a Datasource, and in response you will receive a DataTable populated with the\nappropriate information. Some examples of Datasources include\n[Google Spreadsheets](/chart/interactive/docs/spreadsheets) and SalesForce.\n\nSending a request\n-----------------\n\n**To send a request:**\n\n1. Instantiate a [Query](/chart/interactive/docs/reference#Query) object with the URL of your Datasource. The URL should indicate what data is being requested, in a syntax understood by that data source.\n2. Optionally specify request options such as sending method as an optional second parameter in the `Query` object constructor (see the Query constructor's [`opt_options`](/chart/interactive/docs/reference#Query) parameter for details):\n3. Optionally add a [query language string](/chart/interactive/docs/querylanguage) to sort or filter the results, and then send the request. Datasources are not required to support the Chart Tools Datasource query language. If the Datasource does not support the query language, it will ignore the SQL query string, but still return a `DataTable`. The query language is a SQL language variant; read the full [query language syntax here](/chart/interactive/docs/querylanguage).\n4. Send the query, specifying a callback handler that will be called when the response is received: see next section for details.\n\n\nHere's an example of sending a request for data in a Google Spreadsheet cell range; to learn how\nto get the URL for a Google Spreadsheet, see\n[here](/chart/interactive/docs/spreadsheets#Google_Spreadsheets_as_a_Data_Source): \n\n```gdscript\nfunction initialize() {\n var opts = {sendMethod: 'auto'};\n // Replace the data source URL on next line with your data source URL.\n var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts);\n\n // Optional request to return only column C and the sum of column B, grouped by C members.\n query.setQuery('select C, sum(B) group by C');\n\n // Send the query with a callback function.\n query.send(handleQueryResponse);\n}\n\nfunction handleQueryResponse(response) {\n // Called when the query response is returned.\n ...\n}\n```\n\nIf you are sending your query from within Apps Script, be sure to use [`IFRAME` mode](/apps-script/reference/html/sandbox-mode).\n\nProcessing the response\n-----------------------\n\n\nYour response handler function will be called when the request returns. The parameter passed in\nto your response handler function is of type\n[google.visualization.QueryResponse](/chart/interactive/docs/reference#QueryResponse).\nIf the request was successful, the response contains a data table\n(class `google.visualization.DataTable`). If the request failed, the response contains\ninformation about the error, and no `DataTable`.\n\n**Your response handler should do the following:**\n\n1. Check whether the request succeeded or failed by calling `response.isError()`. You shouldn't need to display any error messages to the user; the Visualization library will display an error message for you in your container `\u003cdiv\u003e`. However, if you do want to handle errors manually, you can use the [`goog.visualization.errors`](/chart/interactive/docs/reference#errordisplay) class to display custom messages (see the [Query Wrapper Example](/chart/interactive/docs/examples#querywrapper) for an example of custom error handling).\n2. If the request succeeded, the response will include a `DataTable` that you can retrieve by calling `getDataTable()`. Pass it to your chart.\n\nThe following code demonstrates handling the previous request to draw a pie chart: \n\n```gdscript\nfunction handleQueryResponse(response) {\n\n if (response.isError()) {\n alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());\n return;\n }\n\n var data = response.getDataTable();\n var chart = new google.visualization.PieChart(document.getElementById('chart_div'));\n chart.draw(data, {width: 400, height: 240, is3D: true});\n}\n```\n\nReading CSV files\n-----------------\n\nIf you want to build a chart out of CSV (comma-separated values)\ndata, you have two choices. Either manually convert the CSV data into\nthe [Google\nCharts datatable format](/chart/interactive/docs/datatables_dataviews#creatingpopulating), or place the CSV file on the web server\nserving the chart, and query it using the technique on this page.\n\nMore information\n----------------\n\n- [Query Language Syntax](/chart/interactive/docs/querylanguage) - Describes the syntax of the language used to make data queries.\n- [Query Class](/chart/interactive/docs/reference#Query) - Reference page for the class that wraps a query.\n- [QueryResponse Class](/chart/interactive/docs/reference#QueryResponse) - Reference page for the class that wraps the response to a query."]]