Skip to main content

1.13.0 版本发布

· One min read

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 集群。

1.13.0-agent-cluster.png

之后,进入节点,选择新建节点并配置好 SSH 用户名和密码后实现 SSH 安装 Agent 能力。 感谢 @haifxu、@fuweng11 两位同学在 Dashboard 及 Manager 部分对此功能的贡献。具体可参考:INLONG-10409。

1.13.0-agent-install.png

Manager 支持字段模板管理能力

通过此特性,用户可以事先配置好字段模板,在新建 Stream 时,可以选择已配置好的字段模板,从而达到多个 Stream 复用配置的目的。 感谢 @kamianlaida、@fuweng11 两位同学在 Dashboard 及 Manager 部分对此功能的贡献。具体可参考:INLONG-10330。

1.13.0-create-template.png

支持配置离线同步任务底层框架搭建

在 1.13.0 版本中,InLong 支持了离线同步任务的配置,与实时同步相比,离线数据同步更注重同步吞吐量和效率。 该实现统一基于 Flink 计算引擎。实时同步任务以 Flink 流任务的方式运行,而离线同步则以 Flink 批处理任务的方式进行。这种方法可以尽可能地确保实时和离线同步任务代码的一致性,从而降低维护成本。 InLong 的离线同步功能将与调度系统相结合,将数据源信息的完整或增量数据同步到数据目标,离线同步任务由 InLong Manager 创建(包括调度信息),具体的数据同步逻辑通过 InLong Sort 模块实现。

1.13.0-offline-architecture.png

关键能力:

  • 作业类型:支持单次或者周期的离线数据同步
  • 调度:调度功能插件化,内置简单的周期性调度功能,可以自定义第三方调度系统来支持更复杂的能力,比如任务依赖等
  • 计算引擎:Flink
  • 离线作业操作和维护:作业启动、停止和运行状态监控
  • 特殊处理:脏数据处理能力

下图为核心流程:

1.13.0-dataflow-architecture.png

感谢 @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 表中。下图为流程对比:

1.13.0-manager-standalone.png

感谢 @fuweng11, @vernedeng 对此功能的贡献,具体请参考 INLONG-9867, INLONG-10017。

Agent 支持 PostgreSQL 采集

在 1.13.0 版本中,Agent 支持了从 PostgreSQL 采集数据,在数据源创建时可以直接选择 PostgreSQL,填写相关数据源信息即可开始使用,参数包括:

  • 数据源名称:便于快速区分不同的数据源
  • 集群名称:选择该数据源所属的集群
  • 数据源 IP:选择该数据源所属的机器
  • 服务器主机:PostgreSQL 服务器主机
  • 端口:PostgreSQL 端口

感谢 @haifxu 对此功能的贡献,具体请参考 INLONG-10318。

1.13.0-agent-postgreSQL.png

Sort Connectors 上报审计信息支持 exactly once

Sort Connectors 上报审计信息支持 exactly once 语义, 在算子遇见异常,snapshot 失败时,各个 Connector 保证上报审计信息 exactly once。 如下图所示,当数据传输时,会把当前数据写入当前算子 AuditBuffer 以及对应的 checkpointId。当 checkpoint 完成时(在 notifyCompleteCheckpoint 方法中)将写入 buffer 的数据进行上报。

1.13.0-sort-exactly.png

在 snapShot 执行时,会将写入 buffer 的 checkpointId 变更为 snapShot 中的 checkpointId,并在 checkpoint 执行完成时,也就是 notifyCompleteCheckpoint 方法中将审计信息上传至 Audit Server 中。

1.13.0-sort-audit.png

感谢 @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 体验优化等,期待更多开发者参与贡献。