Another way to modify and re-structure your data is writing directly through
DDN, by employing the standard PostgreSQL DML (
DROP) statements on your repositories.
By performing a write against the DDN, you essentially create a new
image containing the desired changes, on top of the existing one directly,
without needing to clone/checkout/change/push image locally via
Besides modifying the table contents (DML), and altering table definitions
(DDL), this also lets you create new (private by default) repositories, simply
CREATE TABLE commands:
CREATE TABLE "splitgraph/my_new_repo".my_new_table (LIKE "splitgraph/london_wards".city_merged_2018)
Note that some DML statements, namely the above
CREATE TABLE ... LIKE and any
ALTER TABLE commands, require full materialisation of the target table inside
the DDN in order to be executed correctly. Consequently, they don't reap the
performance benefits of the
layered querying mode used by
default in DDN, and can be slower for really large tables.
There are a couple of minor caveats worth noting:
- Writes are only applicable to the
latestimage. You can reference the repo/image using any one out of the three equivalent approaches.
- Only a single target repo/image per query is supported. In practice this means
not chaining multiple write commands delimited by semicolon. You also can't
reference more than one table in a
- The DDN creates one new image per write statement. You can't batch changes.
- The target repository must not be an external one (i.e. not a proxy to a remote live data source).