Apache InLong(应龙)最近发布了 1.13.0 版本,该版本关闭了 275+ 个 Issues ,包含 6+ 个大特性和 100+ 个优化,主要完成了支持 SSH 安装 Agent、字段模板管理能力、支持配置离线同步任务、Agent 采集 PostgreSQL 等特性。1.13.0 发布后,Apache InLong 丰富并优化了 Agent 功能场景, 增强了 Audit 数据度量的准确性,丰富了 Sort 的能力和适用场景,同时优化了 Apache InLong 运营、运维过程中遇到的一些问题和使用体验。
关于 Apache InLong
作为业界首个一站式、全场景海量数据集成框架,Apache InLong(应龙)提供了自动、安全、可靠和高性能的数据传输能力,方便业务快速构建基于流式的数据分析、建模和应用。目前 InLong 正广泛应用于广告、支付、社交、游戏、人工智能等各个行业领域,服务上千个业务,其中高性能场景数据规模超百万亿条/天,高可靠场景数据规模超十万亿条/天。
InLong 项目定位的核心关键词是“一站式”、“全场景”和“海量数据”。对于“一站式”,我们希望屏蔽技术细节、提供完整数据集成及配套服务,实现开箱即用;对于“全场景”,我们希望提供全方位的解决方案,覆盖大数据领域常见的数据集成场景;对于“海量数据”,我们希望通过架构上的数据链路分层、全组件可扩展、自带多集群管理等优势,在百万亿条/天的基础上,稳定支持更大规模的数据量。
1.13.0 版本总览
Apache InLong(应龙)最近发布了 1.13.0 版本,该版本关闭了 275+ 个 Issues ,包含 6+ 个大特性和 100+ 个优化,主要完成了支持 SSH 安装 Agent、字段模板管理能力、支持配置离线同步任务、Agent 采集 PostgreSQL 等特性。1.13.0 发布后,Apache InLong 丰富并优化了 Agent 功能场景,增强了 Audit 数据度量的准确性,丰富了 Sort 的能力和适用场景,同时优化了 Apache InLong 运营、运维过程中遇到的一些问题和使用体验。Apache InLong 1.13.0 版本中,还完成了大量其它特性,主要包括:
Agent 模块
- 支持数据版本号,用于区分正常数据与补录数据
- 位点存储支持插件化,目前支持 Rocksdb 与 Zookeeper
- 支持配置版本号比对,防止配置反复
- 支持分钟级文件采集
- 增加 PostgreSQL 数据源采集
Manager 模块
- 支持通过 SSH 的方式安装 Agent
- 审计 ID 查询从直接与数据库交互切换至 Audit SDK
- 离线同步支持 Pulsar -> MySQL
- 支持离线同步调度信息管理
- 文件采集支持多 IP 采集
- 支持获取 Agent 配置信息
- 支持修改 Stream 字段信息后自动同步至 Sink
- 支持字段模板管理
- 数据预览支持 KV 格式
- 数据预览支持根据字段过滤条件查询
Dashboard 模块
- 新增源数据字段模板页面
- 新增监控审计页面
- 支持通过基于 SSH 密钥的身份验证安装 Agent
- 审计支持显示总计和差异的审计数据
- 文件类型数据流支持分钟级周期
Audit 模块
- Audit SDK 统一分配与管理审计项
- Audit SDK 支持自动管理 Audit Proxy 地址
- Audit Store 支持通用 JDBC 协议
- Audit Store 优化进程重启可能导致丢数据的问题
- Audit Service 优化线程池管理
- Audit Service 兼容 Audit Tag 为空的历史审计数据
- Audit Service 优化 OpenAPI 审计传输时延的计算
Sort 模块
- 新增 JDBC connector on flink 1.15
- 新增 Pulsar connector on flink 1.18
- Redis connector支持 上报审计信息
- Kafka connector 支持上报审计信息
- MongoDB connector 支持上报审计信息
- PostgreSQL connector 支持上报审计信息
SDK 模块
- 新增 DataProxy Python SDK
- DataProxy Python SDK 增强 Transform SDK SQL函数支持,新增8种算术函数(power, abs, sqrt, ln, log10, log2, log, exp)
- DataProxy Go SDK 连接池支持动态均衡及故障节点恢复探测
- DataProxy Go SDK 修复 gnet 初始化顺序的问题,避免升级到新版本gnet会阻塞
- DataProxy Go SDK 潜在的阻塞问题,避免更新连接时阻塞
1.13.0 版本特性介绍
Manager 支持 SSH 安装 Agent
通过此特性,运维人员可以通过 Dashboard 进行 Agent 的安装操作,目前支持通过 SSH 和手动安装的方式。用户可以在集群管理页面新建 Agent 集群。
之后,进入节点,选择新建节点并配置好 SSH 用户名和密码后实现 SSH 安装 Agent 能力。 感谢 @haifxu、@fuweng11 两位同学在 Dashboard 及 Manager 部分对此功能的贡献。具体可参考:INLONG-10409。
Manager 支持字段模板管理能力
通过此特性,用户可以事先配置好字段模板,在新建 Stream 时,可以选择已配置好的字段模板,从而达到多个 Stream 复用配置的目的。 感谢 @kamianlaida、@fuweng11 两位同学在 Dashboard 及 Manager 部分对此功能的贡献。具体可参考:INLONG-10330。
支持配置离线同步任务底层框架搭建
在 1.13.0 版本中,InLong 支持了离线同步任务的配置,与实时同步相比,离线数据同步更注重同步吞吐量和效率。 该实现统一基于 Flink 计算引擎。实时同步任务以 Flink 流任务的方式运行,而离线同步则以 Flink 批处理任务的方式进行。这种方法可以尽可能地确保实时和离线同步任务代码的一致性,从而降低维护成本。 InLong 的离线同步功能将与调度系统相结合,将数据源信息的完整或增量数据同步到数据目标,离线同步任务由 InLong Manager 创建(包括调度信息),具体的数据同步逻辑通过 InLong Sort 模块实现。
关键能力:
- 作业类型:支持单次或者周期的离线数据同步
- 调度:调度功能插件化,内置简单的周期性调度功能,可以自定义第三方调度系统来支持更复杂的能力,比如任务依赖等
- 计算引擎:Flink
- 离线作业操作和维护:作业启动、停止和运行状态监控
- 特殊处理:脏数据处理能力
下图为核心流程:
感谢 @aloyszhang 对此功能的贡献,具体请参考 INLONG-10054, INLONG-10053, INLONG-10055, INLONG-10069。
优化 Sort Standalone 配置流程
在 1.13.0 版本中,修改了 Sort Standalone 配置下发流程,在之前的版本中,sort standalone 的配置下发存在以下问题:
- 配置变更具有不可靠性。配置变化会实时更新到 manager 的缓存中,一旦配置变更,Sort Standalone 就会感知到,并根据新的配置写入数据,并没有进行对配置的校验。
- 配置构建流程重复并且繁琐。从数据库中拉取 Sort 配置时是全量拉取并且在拉取完毕后进行实时构建。 在新的版本中,修改数据目标后,Sort 配置将不会实时生效,而是需要在执行工作流后将 Sort 配置构建写入 sort_config 表中。下图为流程对比:
感谢 @fuweng11, @vernedeng 对此功能的贡献,具体请参考 INLONG-9867, INLONG-10017。
Agent 支持 PostgreSQL 采集
在 1.13.0 版本中,Agent 支持了从 PostgreSQL 采集数据,在数据源创建时可以直接选择 PostgreSQL,填写相关数据源信息即可开始使用,参数包括:
- 数据源名称:便于快速区分不同的数据源
- 集群名称:选择该数据源所属的集群
- 数据源 IP:选择该数据源所属的机器
- 服务器主机:PostgreSQL 服务器主机
- 端口:PostgreSQL 端口
感谢 @haifxu 对此功能的贡献,具体请参考 INLONG-10318。
Sort Connectors 上报审计信息支持 exactly once
Sort Connectors 上报审计信息支持 exactly once 语义, 在算子遇见异常,snapshot 失败时,各个 Connector 保证上报审计信息 exactly once。 如下图所示,当数据传输时,会把当前数据写入当前算子 AuditBuffer 以及对应的 checkpointId。当 checkpoint 完成时(在 notifyCompleteCheckpoint 方法中)将写入 buffer 的数据进行上报。
在 snapShot 执行时,会将写入 buffer 的 checkpointId 变更为 snapShot 中的 checkpointId,并在 checkpoint 执行完成时,也就是 notifyCompleteCheckpoint 方法中将审计信息上传至 Audit Server 中。
感谢 @XiaoYou201 对此功能的贡献,具体请参考 INLONG-10311, INLONG-10312, INLONG-10317, INLONG-10355, INLONG-10357, INLONG-10358, INLONG-10401。
未来规划
在 1.13.0 版本中,社区重构了 Manager 下发 Agent、Sort 任务流程,丰富了 Flink 1.15 Connector、Inlong Agent 采集 PostgreSQL 等功能。在后续的版本中,InLong 将继续丰富 Flink 1.15、1.18 Connector 、丰富 Transform 能力、支持离线集成、统一 DataProxy 数据协议、Dashboard 体验优化等,期待更多开发者参与贡献。