万事开头难,坚持更为艰辛。历时10个月的集中开发,Agile Query 即将迎来产品发布的时候(虽然还有很多细节没有准备好)。在这个GPT 盛行的年代里,我还是 以手工写这篇发刊词,希望在未来的某个日子里,这篇发刊词能够被人传诵、流传。
Agile Query 从一个初心的种子,经过FlatQL 开源项目,一直走到如今商业化的起点。一路走来,技术攻关的过程中,多次被困难绊住,萌生过放弃的念头, 但如今核心算法和技术困难一个个被解决,总算有了阶段性成果了。
Idea 的产生
2016-17 年,我接手了一个数据团队,技术栈是Apache Airflow + Apache Spark + MySQL(存储过程 + 分库分表)+ 自研可视化平台。数据经过一层一层加工后呈现, 实际运营过中频繁暴露的问题是:
- 任务调度时常因异常数据,导致任务失败
- 错误排查和修复成本极高,因为数据经过多层加工,底层数据异常后,需要逐层修复
- 新报表的开发成本极高,时常需要重构中间表结构,前期的设计要求非常高
优化后的技术栈是 自研分布式采集(Akka)+ Clickhouse(物化视图) + Redash,解决了旧版本的第一个和第二个问题,但第三个问题只能在查询效率和存储复杂度之间折中了, 通过更复杂SQL 来适应需求的不断变化,对数据工程师的要求非常高,但在实际运营过程中,也暴露了一些问题:
- SQL 开发中,过度计算的问题时常发生,大数据量,开发、调试和排查错误的成本极高
- SQL 无法进行单元测试,版本管理混乱,导致交付质量完全依靠数据工程师的能力
- Ad Hoc 分析需求满足度不够,时常因为临时需求,增加大量研发投入
稳定运行一段时间后,我就因为一些原因离职了,之后,花了半年时间,做了一个开源项目ObjectiveSql , 主要解决的问题是:SQL 重用、单元测试和版本管理。 该项目主要是个人兴趣,也是我第一次接触了编译器。
直到2021 年年底,我进入一家AI 公司,进公司的第二天,老板要求我参考 ThoughtSpot,为公司产品提供一个数据分析产品, 在之后的半年里,萌生了自己创建一个数据分析平台的想法,因为ThoughtSpot 完全打破了我对SQL 的认知。最终在疫情封城的2,3个月完成了核心算法,最终在公司完成初期版本。
起初,只是想设计一个扁平化的查询语言(FlatQL),然后写一个编译器,将FlatQL 编译成不同数据库的SQL。如果只是做一个编译器,做到最后也会和ObjectiveSQL 一样的结局, 后期可能会有大量的使用者,但编译器只是开发过程中的一部分,客户群体只能局限于技术型公司,不开源很难被接受,开源了又难以销售。最终,Agile Query 产品诞生了, 一个完整的数据分析平台。
离职创业
直到2023年1月,靠着前些年的积蓄,开始全职创业,Agile Query 的进展也非常顺利,走访了一些潜在客户,也聊了一些FA 和投资人,让我有了坚持做下去的决心。 经过10 个月左右的集中研发,完成了全部特性。期间,图算法和过度计算识别算法几乎让我陷入绝望,差一点就放弃了,最终, 花费了2 个月左右的时间,完美的攻克了。
新征程
产品仍需在迭代中不断完善和稳定,即将启动早期客户试用,还要面对融资挑战、团队建设等一系列新问题,仍在前行的道路上...