Introduction to the Data Source Library
Stay organized with collections
Save and categorize content based on your preferences.
The Google Visualization Data Source Library makes
it easy to create a visualization data source. The library implements
the Google Visualization API wire
protocol and query language. You write only the code that is required to
make your data available to the library in the form of a data
table. A data table is a two-dimensional table of values where every
column is of a single type. Writing the code that you need is made easier
by the provision of abstract classes and helper functions.
The simplest implementation of the library involves inheriting from
a single class, implementing a member function and running the
data source as a servlet within a servlet container. In the simplest
implementation, the following sequence of events takes place
when a visualization queries the data source:
- The servlet container handles the query and passes
it to the data source Java library.
- The library parses the query.
- The implementation code - the code that you write - returns
a data table to the library.
- The library executes the query on the data table.
- The library renders the data table into the response expected
by the visualization.
- The servlet container returns the response to the visualization.
This is illustrated in the following diagram:

The Getting Started with Data Sources section describes
how to implement this type of data source.
The data
that is served by a data source can be specified in your implementation
code, which is fine for small amounts of static data. For larger
data sets it is more likely you will need to use an external data store
such as an external file or database. If a data source uses an external
data store, the following sequence of events takes place when a visualization
queries the data source:
- The servlet container handles the query and passes it to the data
source Java library.
- The library parses the query.
- The implementation
code - the code you write - reads the data held in the data store and returns
a data table to the library. If the data set is large,
and the data store has querying capabilities,
you can optionally use those capabilities to increase the
efficiency of your data source.
- The library executes the query on the data table.
- The library renders the data table into the response expected
by the visualization.
- The servlet
container returns the response to the visualization.
This is illustrated in the following diagram:

The Using an External Data Store section describes how to implement this
type of data source.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-07-10 UTC.
[null,null,["Last updated 2024-07-10 UTC."],[[["\u003cp\u003eThe Google Visualization Data Source Library simplifies the creation of visualization data sources by implementing the Google Visualization API wire protocol and query language.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers primarily need to write code to make their data available as a data table, leveraging the library's abstract classes and helper functions.\u003c/p\u003e\n"],["\u003cp\u003eData sources can be implemented as servlets, handling queries from visualizations and returning data tables for rendering.\u003c/p\u003e\n"],["\u003cp\u003eFor larger datasets, the library supports using external data stores like files or databases, enabling efficient querying capabilities.\u003c/p\u003e\n"],["\u003cp\u003eThe library handles query parsing, data table execution, and rendering into the response format expected by the visualization.\u003c/p\u003e\n"]]],[],null,["# Introduction to the Data Source Library\n\n[Visit\nthe library project page!](http://code.google.com/p/google-visualization-java/)\n\nThe Google Visualization Data Source Library makes\nit easy to create a visualization data source. The library implements\nthe Google Visualization API wire\nprotocol and query language. You write only the code that is required to\nmake your data available to the library in the form of a data\ntable. A data table is a two-dimensional table of values where every\ncolumn is of a single type. Writing the code that you need is made easier\nby the provision of abstract classes and helper functions.\n\nThe simplest implementation of the library involves inheriting from\na single class, implementing a member function and running the\ndata source as a servlet within a servlet container. In the simplest\nimplementation, the following sequence of events takes place\nwhen a visualization queries the data source:\n\n1. The servlet container handles the query and passes it to the data source Java library.\n2. The library parses the query.\n3. The implementation code - the code that you write - returns a data table to the library.\n4. The library executes the query on the data table.\n5. The library renders the data table into the response expected by the visualization.\n6. The servlet container returns the response to the visualization.\n\nThis is illustrated in the following diagram:\n\nThe [Getting Started with Data Sources](/chart/interactive/docs/dev/dsl_get_started) section describes\nhow to implement this type of data source.\n\nThe data\nthat is served by a data source can be specified in your implementation\ncode, which is fine for small amounts of static data. For larger\ndata sets it is more likely you will need to use an external data store\nsuch as an external file or database. If a data source uses an external\ndata store, the following sequence of events takes place when a visualization\nqueries the data source:\n\n1. The servlet container handles the query and passes it to the data source Java library.\n2. The library parses the query.\n3. The implementation code - the code you write - reads the data held in the data store and returns a data table to the library. If the data set is large, and the data store has querying [capabilities](/chart/interactive/docs/dev/dsl_key_concepts#capabilities), you can optionally use those capabilities to increase the efficiency of your data source.\n4. The library executes the query on the data table.\n5. The library renders the data table into the response expected by the visualization.\n6. The servlet container returns the response to the visualization.\n\nThis is illustrated in the following diagram:\n\nThe [Using an External Data Store](/chart/interactive/docs/dev/dsl_csv) section describes how to implement this\ntype of data source."]]