~/talk

Simplifying ETL with Clojure and Datomic

Talkat Clojure/conj 2016 · 2016-12-01..12-03· [data-engineering, databases]
slides:none on file

Converts the MusicBrainz dataset from Postgres into Datomic using Clojure, Datomic client API, spec, transducers and core.async and ends up with a restartable, batchable pipeline that actually imports ~100 million datoms. Code totals: ~150 lines for the job, ~50 lines of specs, ~100 lines of lookup tables, plus small generic helpers; transducers are under 50 lines. Uses reified transactions with batch IDs for provenance and transducers + core.async to localize errors and enable parallel, resumable loads; it succeeds and will be open sourced.

AI-written summary · about

  1. 0:00Intro
  2. 2:14extract, transform, load
  3. 3:43functional pipeline
  4. 5:26systemic generality
  5. 6:06information
  6. 7:58correct / agile / robust
  7. 9:19input entity specs
  8. 11:25conformance check
  9. 12:08less obvious advantages
  10. 12:46transducers
  11. 14:26emergent simplicity
  12. 18:06place bias
  13. 19:40decision bias
  14. 21:08strong namespaces
  15. 21:32spec cohabitation
  16. 22:57reified transactions
  17. 23:19transaction attributes
  18. 25:21example datoms
  19. 25:42universal schema benefits
  20. 32:29lean and simple
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.