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

2024-01-08 07:20

本文主要是介绍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同步一次

这篇关于FineBI实战项目一(3):Kettle实现ETL到数据仓库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/582688

相关文章

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg