- 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.
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"
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.
Careers
If you are excited about revolutionizing the way data is managed and shared, drop us an email at jobs@liquidata.co