首页 > 其他分享 >数据交换的构建策略

数据交换的构建策略

时间:2022-11-02 22:03:46浏览次数:40  
标签:插件 同步 策略 数据 数据源 写入 构建 数据交换

数据交换中心的首要目的是屏蔽底层工具的复杂性,以可视化配置的方式提供给企业用户;其次需要考虑,为了解决数据孤岛,需要满足异构存储、异构数据类型的交换需求;同时,还要考虑不同时效要求下的数据互通。因此,数据交换平台需要屏蔽系统底层协议、传输安全、特性组件等信息,让开发人员在数据接入过程中无须关注数据格式转换、数据路由、数据丢失等,只需要关注与业务本身的数据交换部分。企业信息化建设的多种数据源类型,可以通过同步模块的数据源进行统一管理,方便用户快速通过可视化页面执行数据汇聚工作。

在构建数据交换中心的实践过程中,基于异构数据源、异构厂商集群、数据应用时效性和相关技术栈等因素考虑,采取了不同的同步策略:离线数据同步和实时数据同步。同时,在两种同步服务的产品形态上,可以采用相同的可视化同步配置策略,以降低用户操作成本。

1、数据源管理

数据源管理主要是管理数据所用的存储,用于平台在做数据交换时,可以方便地对外部存储进行相应的管理。数据源可以是已有系统存储业务数据的地方,作为数据中台的数据来源,也可以是数据应用场景,为应用场景提供结果数据存储的地方。

根据业务系统以及数据应用场景的不同,数据源也有不同的选择。例如,广告场景对时效性要求很高,相应的,对数据源读性能的要求就会很高,有些场景对于大批量数据的多维分析有需求,因此数据源需要支持大批量数据的多维分析能力。针对这些场景,涉及的数据源会有很多种,大致可以分成:

  • 关系型数据库:如Oracle、MySQL、SQL Server、Greenplum等。
  • NoSQL存储:如HBase、Redis、Elasticsearch、Cassandra、MongoDB、Neo4J等。
  • 网络及MQ:如Kafka、HTTP等。
  • 文件系统:如HDFS、FTP、OSS、CSV、TXT、Excel等。
  • 大数据相关:如Hive、Impala、Kudu、MaxCompute、ADB、LibrA、ELK等。
2、离线数据交换

离线数据交换是针对数据时效要求低、吞吐量大的场景,解决大规模数据的批量迁移问题,其实现原理是将不同数据源的交换抽象为从源头数据源读取数据的读取插件,以及向目标端写入数据的写入插件,理论上可以支持任意类型数据源的数据交换工作。采用插件化方式构建,将数据源读取和写入抽象成读取插件、写入插件。

非结构化的数据也可以通过扩展插件方式进行交换,其场景主要是以文件或数据块的方式进行交换,因此只需要适配源或目的存储的相应插件及数据处理的机制,如文件传输,数据块保存为特定格式的文件,即可以满足相应的需求。

  • 读取插件:数据采集模块,负责采集数据源的数据,将数据发送给数据交换核心模块。
  • 写入插件:数据写入模块,不断从数据交换核心模块取数据,并将数据写入到目的端。
  • 数据交换核心模块:用于连接读取插件和写入插件,作为两者的数据传输通道,并处理缓冲、流控、并发、数据转换等核心技术问题。

离线数据同步技术具有以下亮点:

1)前置稽核

在源端数据同步开始前,可以进行数据质量规则校验,根据配置规则的阻塞、告警等策略控制数据同步是否运行。

2)数据转换

数据转换是指将各类非标准数据转换成标准数据格式,并且将转换后的数据推送到大数据平台指定的位置或库表。在数据同步、传输过程中,存在用户对于数据传输进行定制化的场景,包括字段截取、替换、编码转换等操作,可以借助ETL的T过程(Transform)实现。

在配置数据同步作业的字段映射关系时,可以对每个字段定义转换(Transform)函数,例如字符串截取dx_substr、字符串替换dx_replace、字符串过滤dx_filter,还支持用户用Groovy自定义转换逻辑。

3)跨集群数据同步

由于采用插件化的设计思路,数据同步模块可支持不同集群间的数据同步。例如,从A集群上把数据同步到B集群上,只需要开发A集群的Reader和B集群的Writer,便可以新建数据同步作业对数据进行跨集群迁移。

4)全量同步

全量数据同步分为表全量同步和库全量同步(整库同步)两种方式。表全量同步每次读取表中全量数据并写入;库全量同步策略是把库中所有表进行数据同步,要求源端和目的端的表名称、结构相同,允许目标表不存在,不存在时自动创建目标表。

5)增量同步

增量同步分为新增、覆盖和更新三种策略。新增策略主要通过在目的端创建新分区或者直接追加写数据实现。覆盖和更新策略在同步配置时选择唯一键,根据唯一键对比同步中的数据和目的端数据,结合增量策略来判断数据是覆盖还是更新。

3、实时数据交换

实时数据交换主要负责把数据库、日志、爬虫等数据实时接入Kafka、Hive、Oracle等存储中,便于后续进行实时计算或供业务查询分析使用。

实时同步有两个核心服务:数据订阅服务(Client Server)、数据消费服务(Consumer Server)。数据订阅服务主要包含数据的订阅和读取、任务实例的启停控制等功能,Client Server采用插件式设计思路,可以支持扩展不同类型的数据订阅读取。

数据消费服务主要包含任务状态控制、数据解析、数据过滤、数据转换、数据写入等功能,通过TCP通信方式和数据订阅方式进行数据读取和传输,经过任务配置的过滤、转换等功能写入到目的端数据源中。数据消费服务也采用插件式设计思路,可以支持目的端扩展不同类型的数据源写入。

标签:插件,同步,策略,数据,数据源,写入,构建,数据交换
From: https://blog.51cto.com/key3feng/5818383

相关文章

  • 设计模式十一(空对象模式,策略模式、模板模式)
    在空对象模式(NullObjectPattern)中,一个空对象取代NULL对象实例的检查。Null对象不是检查空值,而是反应一个不做任何动作的关系。这样的Null对象也可以在数据不可用的......
  • QT5.6构建打包exe方法
    打包方法项目构建为Release,将Release文件夹里的exe文件拷贝的新建文件夹out中.运行QT的MingGW,进入文件夹out执行命令:windeployqt.exeSerialport_app.exe......
  • ajax的请求,异步,同源策略的学习
    AjaxAjax即“AsynchronousJavascriptAndXML”(异步JavaScript和XML),是指⼀种创建交互式⽹⻚应⽤的⽹⻚开发技术。Ajax是⼀种⽤于创建快速动态⽹⻚的技术。Ajax是......
  • day23 同源策略及JSONP
     同源策略(浏览器的一种机制)概述:浏览器为了安全,产生的一种同源策略,这个策略是为了防止一些恶意的请求,保护用户的隐私.同源策略主要有三个内容,分......
  • 推荐系统从入门到实战—— 推荐系统流程的构建.
    Offlineoffline部分主要是基于前面存储好的物料画像和用户画像进行离线计算,为每个用户提供一个热门页列表和推荐页列表并进行缓存,方便online服务的列表获取。所以下面主......
  • 推荐系统实战——自动化构建用户以及物料画像
    自动化构建用户以及物料画像​​自动化构建用户以及物料画像​​​​意义​​​​新物料来源​​​​物料画像的更新​​​​物料更新添加入redis​​​​合并,物料画像构建......
  • 如何构建并提高自己的核心竞争力?
    上一篇文章聊到了软件工程师的核心竞争力主要分为三个方面:快速学习能力、解决问题能力和个人影响力,且核心竞争力的培养和提高需要长时间实践和积累,并不是短时间就可以达到......
  • P8818 [CSP-S 2022] 策略游戏 题解
    思路题意:求一个特定矩形中每一行的最小值的最大值。考虑分类讨论。注意,由于\(0\)也需要考虑,所以下文中的正数和负数都包括了\(0\)。\(\text{a}\)全部都是正的。......
  • win10访问共享 “你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾
    win10访问wIN7共享出现如下:你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问解决方法:此时我们需要修改网络配置:如下步骤:window+r输入​​gpedit.......
  • 008.从 XML 中构建 SqlSessionFactory
    1.在pom.xml文件中引入依赖<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</vers......