Dolt
Portable data format
Fully SQL-compliant RDBMS
Versions both data and schema
DoltHub
Secure cloud hosting of Dolt
Collaboration tools for RDBMS

Together, Dolt and DoltHub reduce distribution friction by allowing data and schema to travel together.

# Acquire a fully-functioning SQL database,
# with version history, in a single command
$ dolt clone some/upstream-repo

# Immediately start running SQL
$ dolt sql -q 'select * from my_table'

# No parsing files or loading tables
# Just clone data and start running queries
Dolt

Dolt

Dolt is a version-controlled database, where the data and the schema are versioned together in a way familiar to Git users.

Dolt combines the convenience and ease of use of a relational database, with the elegance of the Git version control model, all delivered as an open source tool.

$ dolt table import people -pk=name -c test.csv
Import completed successfully.
$ dolt sql -q 'select * from people'
+-------+--------------+
| name  | phone        |
+-------+--------------+
| alice | 310-100-1000 |
+-------+--------------+
$ dolt add people && dolt commit -m "add alice"
$ dolt checkout -b my-branch
Switched to branch ‘my-branch’
$ dolt table put-row people \
  name:jane \
  phone:212-555-1000

Successfully put row.
$ dolt diff people
diff --dolt a/people b/people
+-----+------+--------------+
|     | name | phone        |
+-----+------+--------------+
|  +  | jane | 212-555-1000 |
+-----+------+--------------+
$ dolt add people && dolt commit -m "add jane"
$ dolt table put-row people \
  name:jane \
  phone:212-555-1000

Successfully put row.
$ dolt diff people
diff --dolt a/people b/people
+-----+------+--------------+
|     | name | phone        |
+-----+------+--------------+
|  +  | jane | 212-555-1000 |
+-----+------+--------------+
$ dolt add people
$ dolt commit -m "add jane"
$ dolt table put-row people \
  name:bob \
  phone:415-100-1000

Successfully put row.
$ dolt diff people
diff --dolt a/people b/people
+-----+------+--------------+
|     | name | phone        |
+-----+------+--------------+
|  +  | bob  | 415-100-1000 |
+-----+------+--------------+
$ dolt add people && dolt commit -m "add bob"
$ dolt table put-row people \
  name:bob \
  phone:415-100-1000

Successfully put row.
$ dolt diff people
diff --dolt a/people b/people
+-----+------+--------------+
|     | name | phone        |
+-----+------+--------------+
|  +  | bob  | 415-100-1000 |
+-----+------+--------------+
$ dolt add people
$ dolt commit -m "add bob"
$ dolt merge my-branch
Updating 5712qff892unco4sjptn9em957a2jmic..g1hdd2o4t6fi7a0d9dvek0f43201sp5s
people | 1 +
1 tables changed, 1 rows added(+), 0 rows modified(*), 0 rows deleted(-)
$ dolt sql -q 'select * from people’
+-------+--------------+
| name  | phone        |
+-------+--------------+
| alice | 212-100-1000 |
| bob   | 310-100-1000 |
| jane  | 415-666-1000 |
+-------+--------------+
$ dolt add people && dolt commit -m "merged my-branch"
$ dolt merge my-branch
Updating
5712qff892unco4sjptn9em957a2jmic..g1hdd2o4t6fi7a0d9dvek0f43201sp5s
people | 1 +
1 tables changed, 1 rows added(+),
0 rows modified(*), 0 rows deleted(-)
$ dolt sql -q 'select * from people’
+-------+--------------+
| name  | phone        |
+-------+--------------+
| alice | 212-100-1000 |
| bob   | 310-100-1000 |
| jane  | 415-666-1000 |
+-------+--------------+
$ dolt add people && dolt commit -m "merged my-branch"
DoltHub

DoltHub

DoltHub enables Dolt databases to move seamlessly from your local machine or computing environment to secure cloud hosted storage, ensuring data and schema travel together, along with a SQL query interface.

Owners of DoltHub repositories can keep them public or private, and choose precisely with whom they share.

Familiar

Dolt is a relational database, and thus plays nicely with the relational databases we know and love, and the adjacent technologies that make them useful, such as ODBC, and SQL connectors.

import dolt
data = pd.DataFrame(…)
my_table = “my_table”
dolt.import_df(my_table, data, pk_cols)
dolt.add_table_to_next_commit(my_table)
dolt.commit(“Daily load for 2019-09-01”)
dolt.push()
# ETL with one line of code,
# get data and schema
$ dolt pull origin master
# Attach to a specific branch
$ dolt remote add origin <branch url>
# Attach to a specific branch
$ dolt remote add origin <branch url>
# Coming soon!
import dolt
dolt.sync(“postgres”, “my_db”, “my_db”)
$ dolt sql
sql> select
       first, last
     from
       users.persons
$ dolt sql
sql> select
       first, last
     from
       users.persons

Revolutionizing how data is managed and distributed.

The Dolt format, combined with DoltHub, allows data to travel across organization boundaries (with appropriate permissions), eliminating the friction of building ETL infrastructure and managing local schemas for third party data.

About Us

We don't mean to brag but we've done some pretty cool stuff in the past.

Meet the team

Careers

If you are excited about revolutionizing the way data is managed and shared, drop us an email at jobs@liquidata.co