Atlassian 推出 Lithium:动态数据迁移的 ETL 平台
主要观点
Atlassian 最近推出了 Lithium,这是一个专为满足动态数据迁移需求而设计的内部 ETL(Extract, Transform, Load)平台。Lithium 通过支持临时管道和租户级隔离,简化了云迁移、计划备份和飞行中数据验证等任务,同时确保高效性和可扩展性,显著降低了资源动态分配带来的成本。
关键信息
Lithium 的核心功能
- 动态管道配置:Lithium 解决了运行时管道配置的需求,适用于用户发起的迁移和定期备份等任务。传统 ETL 系统无法高效处理这种按需配置,而 Lithium 则通过最小化资源使用来实现高性能数据迁移。
- 临时管道:Lithium 的临时管道能够根据需求扩展基础设施,而不是为峰值负载维持资源,从而节省大量成本。
- Kafka 集群:通过利用弹性的 Kafka 集群,Lithium 避免了为短暂的峰值需求配置大型集群,进一步降低了基础设施成本。
架构设计
控制平面和数据平面:
- 控制平面:基于 AWS MSK,负责管道管理、资源分配和 Kafka 主题生命周期管理。
- 数据平面:负责实际的数据移动,执行控制平面发出的命令。
- Workplans:Lithium 的数据管道称为 Workplans,由三种主要处理器类型组成:Source、Transform 和 Sink。这些模块化处理器可以动态分布在服务中,支持本地化执行和并行数据处理。
独特功能
- 动态和临时性:Workplans 可以动态配置,并且仅在任务期间存在,确保租户级数据安全和管道隔离。
- 高级功能:支持暂停、回放和进行中修复,适应复杂的实时数据工作流。
重要细节
技术实现
- Kafka Streams 的精确一次语义:Lithium 在转换阶段使用 Kafka Streams 的 API 确保数据转换的精确一次交付。然而,整个管道并非精确一次系统,因此 Lithium 开发了事务性 Sink 来确保消息在 Sink 中只被处理一次。
调试和监控:
- Lithium Lens:Atlassian 开发的监控工具,用于诊断运行中的作业问题,提供管道可视化、流拓扑可视化和时间线视图等功能。
- Signalfx 监控仪表板:每个作业都有监控 ID,所有作业级指标都标记为该 ID,便于监控和分析。
未来发展
- 实时修复能力:Lithium 允许在运行时更新 Workplans,修改转换器和验证器,而无需从头重启 Workplan。未来计划进一步开发能力,使新处理器能够集成到 Workplan 中,而无需全面部署服务。
- 支持团队和工程师:这些增强功能将极大帮助支持团队和值班工程师处理生产问题。
总结
Lithium 是一个创新的 ETL 平台,通过动态资源配置、临时管道和高效的数据处理能力,显著提升了数据迁移的效率和成本效益。其独特的设计和功能使其成为 Atlassian 内部数据管理的重要工具,未来还将继续增强其实时修复和监控能力。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。