FAQ: Programming & Data Ecosystem Tools

This post is set up as a wiki, so that OmniSci employees and trusted community members can add information over time. If you have a suggested topic, please either ask the question below, or if you have sufficient permissions, add the content. Thanks!


What programming languages does OmniSci provide clients and examples for?

OmniSci thrives on open-source participation! We provide or contribute to the following packages for working with OmniSci:

JavaScript

mapd-connector: A JavaScript library for connecting to a OmniSci GPU database and running queries
mapd-charting: Dimensional charting built to work natively with crossfilter rendered using d3.js
mapd-crossfilter: JavaScript library for exploring large multivariate datasets in the browser

Python

pymapd: Python client for OmniSci GPU-accelerated SQL engine and analytics platform
Ibis: A pandas-like deferred expression system, with first-class SQL support (including an OmniSci backend)

Java

JDBC: A JDBC driver for connecting to an OmniSci GPU database and running queries.

Julia:

OmniSci.jl: Julia client for OmniSci GPU-accelerated SQL engine and analytics platform



Additionally, we provide the following GitHub projects as examples of working with OmniSci:

Tweetmap: A single page application in JavaScript, showing how to incorporate the OmniSci client libraries to display Twitter data

Philly Parking: A minimal example in JavaScript in how to use OmniSci Render for geospatial rendering for custom applications

Community Datasets: A repository of datasets, Immerse dashboards, SQL statements, etc. known to work well in OmniSci


We encourage community members creating open-source libraries or public examples to add them to our list above!

I don’t see language < X >, but I want to use it for my project…

While OmniSci provides clients for JavaScript, Python, Java, etc., this does not mean that these are the only languages for working with OmniSci! Communication with an OmniSciDB is implemented using Apache Thrift, a framework for scalable cross-language services development.

Using Apache Thrift to generate OmniSciDB bindings can have a few language-specific tricks, some of which are documented at the Apache Thrift tutorial. If you are interested in generating bindings for OmniSci, please feel free to open a topic here and we’d be happy to help where we can.