关系型数据库数据摄取方法解析
1. 数据摄取背景与挑战
在构建云数据平台时,我们面临着处理不断变化的数据的挑战。关系型数据库(RDBMS)驱动的应用负责业务运营,其中的数据时刻都在变化,包括新增行、更新现有行和删除某些行。而分析型数据平台与运营数据库关注的数据重点有所不同,运营数据库通常关注“某个项目的当前状态是什么”,例如当前购物车中有哪些商品、用户的账户余额是多少等;分析型数据平台则更关注“给定项目随时间如何变化”,比如客户按什么顺序将商品添加到购物车、是否添加了后来又移除的商品等。
为了说明问题,我们以一个在线服务为例。该服务允许用户注册试用账户,试用期结束后,用户可以选择购买高级订阅或取消账户。随着新用户注册和现有用户更改订阅状态,运营数据库中的数据会不断变化。例如,最初有两个用户,一个是高级订阅用户,一个是新加入的试用用户;之后新用户注册试用,有用户从试用转为高级订阅,还有用户取消了账户。这些变化可能在不同的时间范围内发生,而对于分析目的来说,用户取消账户等信息很重要,但在 RDBMS 中,当条目从表中删除时,这些数据就会丢失。因此,我们需要设计一个摄取管道,以便不仅能捕获某个时间点的数据,还能记录数据随时间的演变。
2. 全量表摄取
全量表摄取是一种从 RDBMS 进行周期性全量表摄取的方法,虽然简单但有局限性。其具体步骤如下:
1. 按照给定的时间表启动管道。
2. 针对源数据库执行 SQL 查询 SELECT * FROM some_table 。
3. 将查询结果保存到云数据平台存储中。
4. 将数据加载到云仓库中。
假设我们每天运行一次该管道,持续
关系型数据库数据摄取方法解析
超级会员免费看
订阅专栏 解锁全文
80

被折叠的 条评论
为什么被折叠?



