概述数据交换的构建策略

简介: 【6月更文挑战第13天】数据交换中心旨在屏蔽底层工具复杂性,提供可视化配置给企业用户,解决数据孤岛问题,支持异构存储和数据类型的交换。

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


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

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通信方式和数据订阅方式进行数据读取和传输,经过任务配置的过滤、转换等功能写入到目的端数据源中。数据消费服务也采用插件式设计思路,可以支持目的端扩展不同类型的数据源写入。

相关文章
|
7月前
|
SQL 安全 数据处理
《敏感数据的保护伞:SQL数据脱敏全解析》
在数据驱动的时代,敏感数据的安全保护至关重要,而数据脱敏成为关键解决方案。数据脱敏通过特定算法将敏感信息转化为低风险数据,既保障安全又保留数据价值。SQL作为强大的数据处理语言,在数据脱敏中发挥核心作用,从查询、更新到转换,提供全流程技术支持。本文深入探讨数据脱敏的概念、重要性及实施步骤,结合SQL功能解析实际应用,并分析性能优化、复杂逻辑处理及合规性保障等挑战与策略,为数据安全筑起坚实防线。
275 27
|
7月前
|
人工智能 自然语言处理 测试技术
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
Codex CLI是OpenAI推出的轻量级AI编程智能体,基于自然语言指令帮助开发者高效生成代码、执行文件操作和进行版本控制,支持代码生成、重构、测试及数据库迁移等功能。
1331 0
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
|
前端开发 Android开发 iOS开发
探索Android与iOS的跨平台开发策略
在移动应用开发的多元化时代,跨平台开发已成为开发者追求效率和广泛覆盖的重要手段。本文深入探讨了Android与iOS两大主流平台下的跨平台开发策略,分析了各自的优势与挑战,并通过实际案例展示了如何有效实施跨平台解决方案,以期为开发者提供有价值的参考和启示。
|
SQL 消息中间件 资源调度
实时计算 Flink版产品使用问题之如何实现血缘查询功能
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:迁移学习与领域自适应教程
【7月更文挑战第3天】 使用Python实现深度学习模型:迁移学习与领域自适应教程
360 0
|
安全 Java 数据安全/隐私保护
Spring Boot中的微服务安全架构
Spring Boot中的微服务安全架构
|
Java Maven
Maven国内镜像配置
Maven国内镜像配置
20288 1
|
存储 消息中间件 分布式计算
容器持久化存储-容器有状态应用调研报告
容器持久化存储-容器有状态应用调研报告
52135 5
容器持久化存储-容器有状态应用调研报告
|
开发框架 安全 搜索推荐
如何使用Python Flask发布web页面至公网并实现远程访问【内网穿透】
如何使用Python Flask发布web页面至公网并实现远程访问【内网穿透】
|
域名解析 缓存 负载均衡
CDN实践配置+原理篇
CDN实践配置+原理篇 前几天配置了下自己在阿里云的对象存储中的CDN加速,这里记录写个教程为引入,来讲解一下CDN的相关原理及过程,希望对你有所帮助
1207 0