简介
inlong-sort是一个基于flink的ETL系统,支持多种数据源,支持简单的字段抽取,支持多种存储系统。 inlong-sort依赖inlong-manager进行系统元数据的管理,元数据依赖zk进行存储及同步。
特性
多租户系统
inlong-sort支持多租户,一个inlong-sort的作业中可以包含多个同构的数据源,以及多个同构的存储系统。 并且针对不同的数据源,可以定义不同的数据格式以及字段抽取方式。 多租户系统依赖inlong-manager的元数据管理,用户只需要在inlong-manager的前端页面进行相应的配置,即可实现。 举例:以tubemq为source,hive为存储为例,同一个inlong-sort的作业可以订阅多个topic的tubemq数据,并且每个topic的数据可以写入不同的hive集群。
支持热更新元数据
inlong-sort支持热更新元数据,比如更新数据源的信息,数据schema,或者写入存储系统的信息。 需要注意的是,当前修改数据源信息时,可能会造成数据丢失,因为修改数据源信息后,系统会认为这是一个全新的subscribe,会默认从消息队列的最新位置开始消费。 修改数据schema,抽取字段规则以及写入存储的信息,不会造成任何数据丢失,保证exactly-once
支持的数据源
- inlong-tubemq
- pulsar
支持的存储系统
- hive(当前只支持parquet文件格式)
- clickhouse
一些局限
当前inlong-sort在ETL的transform阶段,只支持简单的字段抽取功能,一些复杂功能暂不支持。
未来规划
支持更多种类的数据源
kafka等
支持更多种类的存储
Hbase,Elastic Search等
支持更多种写入hive的文件格式
sequece file,orc