This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-11-03
Channels
- # announcements (55)
- # babashka (14)
- # beginners (49)
- # biff (9)
- # calva (73)
- # cider (14)
- # clerk (8)
- # clj-kondo (6)
- # clojure (92)
- # clojure-dev (4)
- # clojure-europe (18)
- # clojure-norway (62)
- # clojure-uk (5)
- # clojuredesign-podcast (4)
- # clojurescript (34)
- # cursive (40)
- # data-science (4)
- # datomic (5)
- # dev-tooling (1)
- # eastwood (6)
- # emacs (107)
- # figwheel-main (9)
- # fulcro (13)
- # gratitude (9)
- # hyperfiddle (5)
- # introduce-yourself (2)
- # off-topic (45)
- # overtone (23)
- # portal (5)
- # releases (3)
- # shadow-cljs (6)
- # specter (1)
- # squint (32)
- # timbre (4)
- # vscode (2)
What methods / systems do people use to log steps / transformations in data pipelines? I'm currently pulling spreadsheets from online sources, parsing them using tech.v3.dataset, transforming, and loading into a DB. I'm handling this using scripts that are executed on a monthly basis. I've mostly just been using println statements for different stages, but would love to hear about any more robust solutions people have implemented.
https://github.com/BrunoBonacci/mulog is excellent for this, the ability to add arbitrary structured data to any logging operation makes logging metrics directly from the call site super simple.
I use u/trace
for every important operation - the :capture-fn
capability helps easily (and asynchronously) grab metrics from the output of that operation. I've gotten pretty far just dumping the edn
logs to local disk and reading them back in (often with tablecloth
) for any analysis I might need to do. Having a ton of empirical data on performance really helps when thinking about a potential change to a data pipeline.
If you already have a logging stack set up you can also convert to JSON and easily dump the same data to your existing monitoring system.