在现代数据工程中,有"真实时间"的无口之恋.
如果你问任何商业利益攸关方需要多久更新他们的仪表板,默认答案总是:"尽可能快".
这驱使有良好意图的工程师设计出极其复杂的建筑。
我们旋转出卡夫卡星团, 执行Flink, 和摔跤与耐久, 迟到的数据, 和倒塌的窗户。
所有数据都以毫秒的速度流出 但严酷的现实是,绝大多数公司正在建造法拉利汽车,只是坐以待毙。
1.
可操作性差距(黄金问题) 选择流体建筑的最大错误不是技术性的;而是商业错误.
在实施实时管线之前,唯一要解决的问题是:"公司是否有在毫秒内作出决定的运营能力?
如果你正在建设一个信用卡欺诈侦测系统 或者一个现场电子商务推荐引擎, 是的,每毫秒计数。
但如果数据输入了一个财务仪表板, 而执行局只在星期一上午的会议上审查, 如果人类行动是批量的,实时数据则有零值.
- " 隐藏复杂 " 和 " 云帐批处理 " 是宽恕的。
如果一个管道在凌晨3点故障, 你触发重跑, 到早上8点,一切都好。
批量价格低廉,可预测,容易调试.
另一方面,流动是无法原谅的。
处理应用程序状态、事件重复(精确地说为一时的语义)、秩序外事件以及突然的交通突起,都需要有一个高级工程小组,专门负责保持基础设施的生命力。
此外,24/7持续处理的云帐单比按时间表旋转计算组要高。 - "Micro-Batch"解决了99%的问题 杂技行业试图忽略的一个完美的中间点是:微批.
运行你的数据转换管道 每小时甚至每15分钟向终端用户提供"实时"的感觉,同时保持批量处理的简单性,可靠性和低成本.
结论:可缩放波雷多姆 Good engineering并不是要使用现有最复杂的技术;而是用最简单的可能解决方案来解决业务问题.
装入批量加工并不能让你变成恐龙 这让你成为一个成熟的专业人士,保护公司的预算和你自己的团队的理智.
在有疑问时,从D-1开始(前一天的数据).
当企业能在数学上证明数据延迟 正在耗费它们真正的资金时, 你就会建立你的流体结构.