博客
关于我
关于数据、数据流、数据管道的一些看法(一)
阅读量:718 次
发布时间:2019-03-21

本文共 1173 字,大约阅读时间需要 3 分钟。

在提升一个高度,站在CDO的角度,我们更关注数据流是否能及时传导到各种目的地,而不是具体使用哪种数据库。关键在于数据必须通过管道加工处理,并提供验证机制来确保计算数据的准确性。因此,传统ETL工具可能已经无法满足现代企业的需求。

业务部门数据源于历史原因,使用的关系型数据库种类繁多:ORACLE、SQL SERVER、MYSQL、MONGODB、甚至PostgreSQL。如何在大数据平台上整合这些数据库中的部分数据,用一个统一的数据流将其输送到目标目的地?这需要一个高效的数据交换中心。

另一个挑战是业务数据库设计初期未考虑ETL抽取场景。大量数据在没有时间字段的情况下,如何识别增量数据?而且,当数据量达到上百GB时,抽取增量数据的效率和准确性更是一项难题。

目前业务部门的需求更加多元化:业务数据更新后,通常要求在1个小时内传递到数据部门进行处理,而最终生成DATAVIEW。同时,业务部门的分析人员技能多样,有的精通T-SQL,有的擅长PL/SQL,甚至只有JAVA技能。这使得数据的目的地和处理方式变得多样化。

更复杂的问题是数据库更新:由于ORACLE被逐渐替代为PostgreSQL,需要进行灰度发布。当前规则是实时同步ORACLE与PostgreSQL,并在上线后清除ORACLE数据。然而,这种方式存在数据同步延迟、准确性问题以及数据提取对业务系统造成负担的风险。

这样的问题不仅关系到数据获取质量,更会引发业务系统投诉和运维痛点。当降低指标时,背锅自然就集中在数据获取环节的运维小组。此外,数据传输过程中还可能面临安全性审批问题,这在快速变化的市场环境下效率低下,无疑会导致数据过时。

因此,我们需要一个能够支持多种数据源和目的地的数据获取平台,具备以下关键特征:

1、数据可实时获取,通过一条统一的数据流将业务数据(如水流)顺畅输送至各个目的地。

2、支持ORACLE、PostgreSQL、SQL SERVER、MYSQL、MONGODB等多种数据库以及传统大数据软件的联接。

3、能够在数据流转过程中进行轻量化的数据变换,剔除冗余数据,并在源端对数据进行截止控制。

4、部署方便,不需要在数据源端安装额外软件。

5、自动化ETL和数据调度流程,将数据传输一致性隐藏起来,避免传统ETL的复杂调度问题。

这样的解决方案有吗?抱歉,貌似没有。但很高兴地,我们可以基于各数据库底层原理,利用其特性(如ORACLE的重存序列、SQL SERVER的CDC、二进制日志、PostgreSQL的WAL、MONGODB的OPLOG)设计自定义数据获取工具来实现这些能力。

在中国市场,已经有一些高科技企业实现了类似的功能,将静止的数据库业务数据转变为实时流,将数据索取者的获得和数据提供者的轻松统一。这些企业的成功经验值得深入研究。

转载地址:http://qgqez.baihongyu.com/

你可能感兴趣的文章
mysql 往字段后面加字符串
查看>>
mysql 快速自增假数据, 新增假数据,mysql自增假数据
查看>>
Mysql 批量修改四种方式效率对比(一)
查看>>
Mysql 报错 Field 'id' doesn't have a default value
查看>>
MySQL 报错:Duplicate entry 'xxx' for key 'UNIQ_XXXX'
查看>>
Mysql 拼接多个字段作为查询条件查询方法
查看>>
mysql 排序id_mysql如何按特定id排序
查看>>
Mysql 提示:Communication link failure
查看>>
mysql 插入是否成功_PDO mysql:如何知道插入是否成功
查看>>
Mysql 数据库InnoDB存储引擎中主要组件的刷新清理条件:脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log
查看>>
mysql 数据库中 count(*),count(1),count(列名)区别和效率问题
查看>>
mysql 数据库备份及ibdata1的瘦身
查看>>
MySQL 数据库备份种类以及常用备份工具汇总
查看>>
mysql 数据库存储引擎怎么选择?快来看看性能测试吧
查看>>
MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作
查看>>
MySQL 数据库的高可用性分析
查看>>
MySQL 数据库设计总结
查看>>
Mysql 数据库重置ID排序
查看>>
Mysql 数据类型一日期
查看>>
MySQL 数据类型和属性
查看>>