vega-plus
Vega-plus extends the Vega dataflow to a client-server architecture to utilize the scalability advantage of DBMSs, we automatically translate Vega transform operators to SQL queries. To offload intensive calculations to the DBMS, combine vega-plus with one of our customized Vega transform that accepts SQL queries and requests data from a database.
Usage Instructions
Install the package with
yarn add vega-plus
Here is a complete example that uses vega-plus
and custom transform vega-transform-db
.
To use vega-transform-db
, install it with:
yarn add vega-plus
import { parse } from "vega-plus";
import VegaTransformDB from "vega-transform-db";
import vega from "vega";
const httpOptions = {
'url': 'http://localhost:3000/query',
'mode': 'cors',
'method': 'POST',
'headers': {
'Content-Type': 'application/x-www-form-urlencoded'
}
};
(vega as any).transforms['dbtransform'] = VegaTransformPostgres;
VegaTransformPostgres.setHttpOptions(httpOptions);
const runtime = parse(spec, "dbtransform", VegaTransformDB)
const view = new vega.View(runtime)
.logLevel(vega.Info)
.renderer('svg')
.initialize(document.querySelector('#view'));
view.runAsync();
Vega Specifications
Once vega-transform-db
has been imported and registered, Vega specs can reference the transform and get data from DuckDB like this:
{
"data": [{
"type": "dbtransform",
"db": "duckdb",
"relation": "cars"
}]
}
API Reference
#
parse(specification, type, transform[, config, option])
Similar to Vega's parse API, our parser requires two additional parameters:
- type: a string which is the type(name) of the custom transform you registered
- transform: a custome transform object that you registered