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 存储)是一种数据架构或数据库设计的概念,出现原因是来自于当需要集成来自多个系统的数据,结果又要给一或多个系统使用时。

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

3 每周数据抽取作业开发

3.1 开发行政区域数据抽取

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

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

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

(2)配置表输入组件

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

配置数据库连接信息

获取读取的表信息

SELECT *, current_date() as dt FROM finebi_areas

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

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

配置数据仓库的连接

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

点击「SQL」按钮执行

执行转换

查看数据表

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

创建作业

配置转换


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

相关推荐
Leo.yuan9 天前
可视化报表如何制作?一文详解如何用报表工具开发可视化报表
大数据·数据库·数据分析·数据可视化·finebi
Leo.yuan12 天前
数据地图怎么做?推荐这款数据可视化地图生成器
大数据·信息可视化·数据分析·数据可视化·finebi
出发行进22 天前
FineBI介绍与使用
大数据·数据分析·finebi·报表工具
Hsu_kk2 个月前
finebi的20个面试题
finebi
The博宇2 个月前
finebi面试题精选
信息可视化·finebi
荒--5 个月前
FineBI连接MySQL5.7
finebi
YiRan_Zhao5 个月前
migrate table com.finebi.persist.impl.entity.PackageSubItemEntity failed
finebi
数据分析小鹏友8 个月前
FineBI学习:K线图
学习·数据分析·finebi
是阿牛啊8 个月前
【FineBI】强大处理、分析和可视化数据的工具
游戏·金融·健康医疗·娱乐·finebi·教育电商
月亮给我抄代码8 个月前
FineBI 6.0 Linux 部署、ClickHouse 源配置
大数据·linux·clickhouse·数据分析·finebi