FineBI实战项目一(3):Kettle实现ETL到数据仓库

目前,finebi_shop_bi 中是没有任何数据的,是一个空的数据库。而后续我们的所有数据分析都将在该数据库中进行。我们第一件事情就是要将 「finebi_shop」数据库中的所有表抽取到「finebi_shop_bi」数据库中。要抽取并装载数据到「finebi_shop_bi」中,我们首先要在「finebi_shop_bi」中创建对应的表。

1 数据抽取业务分析

我们已经大概熟悉了上面的6张表,这6张表不是所有数据一次性原封不动地同步到数据仓库中,而是有一些处理细节。考虑以下几个业务场景:

  1. 每一天都需要进行订单的分析,例如:2020年4月18日一共有多少笔订单、订单的总额是多少。
  2. 每一天都需要进行用户的分析,例如:2020年4月18日一共注册有多少个用户。
  3. 商品分类、区域的变化率很少,因为分类、区域几乎都是常年不变的。

商品的数据相对变化频率较高,因为可能每天都会有商品信息的更新。

结合上述的业务场景,我们可以确定数据的抽取周期:

表名 说明 装载表 抽取方式 抽取周期
finebi_areas 行政区域表 ods_ifinebi_areas 全量同步抽取 每周
finebi_goods 商品表 ods_finebi_goods 全量同步抽取 每天
finebi_goods_cats 商品分类表 ods_finebi_goods_cats 全量同步抽取 每周
finebi_orders 订单表 ods_finebi_orders 增量同步抽取 每天
finebi_order_goods 订单明细表 ods_finebi_order_goods 增量同步抽取 每天
finebi_users 用户信息表 ods_finebi_users 增量同步抽取 每天
  • 全量同步抽取:将所有数据同步抽取到数据仓库
  • 增量同步抽取:只抽取抽取新增的数据到数据仓库

2 关于 ods 的意义

ODS(英语:Operational 业务/ Data 数据/ Store 存储)是一种数据架构或数据库设计的概念,出现原因是来自于当需要集成来自多个系统的数据,结果又要给一或多个系统使用时。

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第1张图片

数据仓库的ods表是将业务系统数据库表原样抽取进来,结构几乎是一样的,只不过加了一个抽取数据的日期字段。

3 每周数据抽取作业开发

3.1 开发行政区域数据抽取

finebi_areas 行政区域表 全量同步抽取 每周

根据之前的分析,行政区域表为全量同步抽取,所以我们只需要全部抽取到数据仓库中建表即可。但需要注意:我们需要清晰地标识出数据是哪天抽取过来的,所以需要额外添加一个当前日期的字段。

(1)构建Kettle数据流组件图

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第2张图片

(2)配置表输入组件

新建数据库连接,点击新建

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第3张图片

配置数据库连接信息

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第4张图片

获取读取的表信息

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第5张图片

SELECT *, current_date() as dt FROM finebi_areas

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第6张图片

通过预览数据,可以看到,除了原有 finebi_areas 表的所有字段之外,还增加了一个当前日期字段,后续作为数据的抽取日期。

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第7张图片

(3)配置插入/更新组件

配置数据仓库的连接

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第8张图片

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第9张图片

指定目标表,目标表的名称为:业务系统数据库表加一个 ods_ 前缀。

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第10张图片

点击「SQL」按钮执行

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第11张图片

执行转换

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第12张图片

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第13张图片

查看数据表

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第14张图片

(4)构建作业,每天执行一次

创建作业

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第15张图片

配置转换

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第16张图片

配置定时运行:每天00:05同步一次

FineBI实战项目一(3):Kettle实现ETL到数据仓库_第17张图片

你可能感兴趣的:(FineBI,finebi)