企业数据往往分散在多个业务系统中进行存储和管理,数据存储类型多样且复杂(DB、文件、MQ、API等),而端到端的业务场景往往需要在多个业务系统之间实现数据的实时同步和准确传输从而实现业务操作的连贯性。
数据集成难点:
( 1 ) 异构性: 被集成的数据源通常是独立开发的, 数据模型异构, 给集成带来很大困难。这些异构性主要表现在: 数据语义、相同语义数据的表达形式、数据源的使用环境等。
( 2 ) 分布性: 数据源是异地分布的, 依赖网络传输数据, 这就存在网络传输的性能和安全性等问题。
( 3 ) 自治性: 各个数据源有很强的自治性, 它们可以在不通知集成系统的前提下改变自身的结构和数据, 给数据集成系统的鲁棒性提出挑战。
数据集成的方式有哪些?
1、【批量集成】
又称为离线集成,定时读取数据源数据,写入到数据湖。由于是离线传输,可很好支持数据转换,有较强的数据处理能力。当前不管开源、还是商业化的数据集成工具,批量集成是标配的功能,技术原理为标准的JDBC。
2、【数据复制同步】
称为数据实时同步,需要捕获数据源的数据变化,将变化的数据,实时写入数据湖。由于需要实时,因此在传输中,不支持数据转换等数据处理能力。当前开源工具,一般还不支持实时传输,商业化开源工具,实时传输也是标配的基本功能,实时传输的技术原理,目前主流是基于日志的CDC模式。
数据集成的方式有哪些?
3、【消息集成】
简单说是通过API获取数据,对于一些系统,我们是不能直接读取数据库的。例如一些saas应用、老旧的系统等,他们不支持直接对接数据库,但提供了取数的接口,这样的场景下,需要写代码调用API去获得数据。
数据集成的方式有哪些?
4、【流集成】
什么是数据流?举个例子,用户在页面点击、浏览行为,被埋点工具采集,写入到kafka、Flume等消息中间件,在一些流计算场景中,还会写入到Flink中进行实时计算,源源不断产生的数据,称之为数据流。
数据集成的方式有哪些?
5、【数据虚拟化】
数据虚拟化,是指数据通过API获取后,并不落地存储到数据湖中,而是直接通过业务逻辑运算,直接产生结果,写入到数据湖或被数据应用消费。此类场景,适用于数据模式固定、但又经常变化、经常使用的情况。