Data transform to load data from an OmniSciDB database in Vega.
This package extends Vega's set of data transforms to support loading data from a database in Vega version 5.0 and higher.
Try this transform in our Observable demo or the scalable Vega demo app.
Install the transform with
yarn add vega-transform-omnici-core
To use the core transform, you must set the session
. To create a session, create a connection and connect to it. Then assign the session to the Core transform with QueryCore.sesssion(session)
. the register the transform as querycore
.
QueryCore.session(session);
transforms["querycore"] = QueryCore;
Here is a complete example.
import "@mapd/connector/dist/browser-connector";
import QueryCore from "vega-transform-omnisci-core";
import vega from "vega";
const connection = new window.MapdCon()
.protocol("https")
.host("metis.mapd.com")
.port("443")
.dbName("mapd")
.user("mapd")
.password("HyperInteractive");
// connect to core database and create a transform with a handle to the session
connection.connectAsync().then(session => {
// pass the session to the core transform
QueryCore.session(session);
// register OmniSci Core transform
vega.transforms["querycore"] = QueryCore;
// now you can use the transform in a Vega spec
const view = new vega.View(vega.parse(spec))
.initialize(document.querySelector("#vis"));
view.runAsync();
});
Once vega-transform-omnisci-core
has been imported and registered, Vega specs can reference the transform and get data from OmniSciDB like this:
{
"data": [
{
"name": "table",
"transform": [{
"type": "querycore",
"query": "select count(*) from flights_donotmodify"
}]
}
]
}
Check out a complete demo at https://github.com/vega/scalable-vega.