项目地址:https://github.com/minor6th/dake RubyGems:https://rubygems.org/gems/dake
平时工作主要是一些数据分析相关的一人项目,会用到 hadoop/spark 这类集群处理大量数据。 但因为是一个人做分析,也没有什么工程化的项目管理,用到的多是零散的各种语言(Python、Ruby、R、Scala、Hive...)写的脚本。 特别是数据预处理和各种调参实验,往往需要各种工具配合使用,结果数据繁多,时间一长容易混乱,整个流程难以复现。
一次从某本书上看到一个工具(https://github.com/Factual/drake),觉得可能正好合适我这种情况,就想试用一下, 结果发现这个工具居然是 Clojure 写的,启动速度慢不说,还有很多地方用起来比较别扭,想着干脆用 Ruby 再造一个轮子吧,也方便扩展功能,就有了这个玩具 make 工具。
语法上基本照搬了 Drake 的语法(https://docs.google.com/document/d/1bF-OKNLIG10v_lMes_m4yyaJtAaJKtdK0Jizvi_MNsg/edit) 只是做了一点点修改(注释用了常见的‘#’,Tag 用了‘@’)。Drake 的功能很多,目前 Dake 只实现了其中一小部分,包括:
Dakefile(规则脚本)支持:
运行时支持:
目前 Readme 还没写好,只提交了一个 example,打算一边在日常小项目中吃狗粮,一边把 Bug 修修,把 Readme 完善一下。
有需求的同学可以下载来玩玩,第一次写这种工具,也希望有大佬能看到,给些建议~