IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据的商务规则计算&数据全量加载&数据增量加载&数据批量加载 -> 正文阅读

[大数据]数据的商务规则计算&数据全量加载&数据增量加载&数据批量加载

目录

一、数据商务规则计算

1.数据预览与准备

2.打开kettle创建转换

3.配置步骤

4.运行转换查看结果

二、数据全量加载

1.数据预览与准备

2.打开kettle创建转换

3.配置步骤

4.运行转换查看结果

三、数据增量加载

1.数据预览与准备

2.打开kettle创建转换

3.配置步骤

4.运行转换查看结果

四、数据批量加载

1.数据预览与准备

2.打开kettle创建转换

3.配置步骤

4.运行转换查看结果


一、数据商务规则计算

1.数据预览与准备

实现的主要是对数据表company_new中的数据进行商务规则的计算,即对数据表company_new中的数据进行相关处理和计算,从而得出手机在各省份的日销售额,并存储于数据表regional_sales中。

查看company_new中数据:

?由于company_new表是在上一个案例中运行后的结果,在这里不在提示建表,只建一个结果表regional_sales,SQL语句如下:

CREATE TABLE `regional_sales` (
  `salesArea` varchar(150) DEFAULT NULL,
  `total` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

2.打开kettle创建转换

?

3.配置步骤

双击“表输入”控件,进入“表输入”配置界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置如图所示

在SQL框中编写查询数据表company_new中全部数据的SQL语句,然后单击【预览】按钮,查看数据表company_new中数据是否成功从MySQL数据库中抽取到表输入流中

?

?

?双击“字段选择”控件,进入“选择/改名值”界面,并在“选择和修改”选项卡的“字段”处手动添加所需字段,这里添加字段id、salesArea、unitPrice和number,用于后续的计算处理

?选择“元数据”选项卡,切换到“元数据”选项卡界面,并添加需要改变元数据的字段,由于数据表company_new中字段unitPrice的数据类型为varchar(字符),字段number的类型为int,这字段类型不同的数据无法进行计算,因此需要将字段unitPrice的类型改为Integer,从而进行后续的计算操作

双击“计算器”控件,进入“计算器”界面,在“字段”处,添加一个新字段salesAmount,用于存储计算出的手机日销售额;在“字段A”和“字段B”处的下拉选项中分别选择“unitPrice”(销售价格)和“number”(销售数量)字段;在“计算”处的下拉框中选择“A*B”,即表示将字段A与字段B进行相乘计算

?

双击“排序记录”控件,进入“排序记录”界面,并在“字段”框中添加字段salesArea,以该字段为基础对所有数据进行升序排序

?

双击“分组”控件,进入“分组”界面,并在“构成分组的字段”处的添加分组字段salesArea,将字段salesArea相同的数据分为一组,便于进行“聚合”操作;在“聚合”处添加一个新字段total,用于存储各省份的手机销售总额

?

双击“字段选择2”控件,进入“选择/改名值”界面,并在“选择和修改”处选择需要的字段,这里选择的是字段salesArea和total,用于后续在“表输出”控件中进行输出操作

?

双击“唯一行”控件,进入“唯一行”界面,并在“用来比较的字段”处添加要去重的字段,因为“字段选择2”控件流中字段total的数据有重复,所以需要进行去重操作,因此这里选择去重的字段为total

?

双击“表输出”控件?,单击目标表右侧的【浏览】按钮,指定输出目标表,即数据表regional_sales(该表需提前创建,这里不作演示);勾选“指定数据库字段”复选框,用于将数据表regional_sales的字段与唯一行控件输出流中的字段进行匹配;单击“数据库字段”选项卡

?

单击【输入字段映射】按钮,弹出“映射匹配”对话框,依次选中“源字段”选项框的字段和“目标字段”选项框对应的字段,再单击【Add】按钮,将一对映射字段添加至“映射”选项框中,若“源字段”选项框的字段和“目标字段”选项框的字段相同,则可以单击【猜一猜】按钮,让Kettle自动实现映射,用于将数据表company_new中的字段salesArea、total与目标数据表中的字段salesArea、total进行匹配

?

4.运行转换查看结果

查看表regional_sales中数据:?

?

二、数据全量加载

1.数据预览与准备

假设,现有两张数据表,分别为数据表full_source和数据表full_target,其中数据表full_source为源数据表,数据表full_target为目标数据表。通过Kettle工具将数据表full_source中的数据全量加载到数据表full_target中。SQL语句如下:

create table `full_source` (
	`no` int (10),
	`book_name` varchar (60),
	`author` varchar (30),
	`tag` varchar (60)
); 
insert into `full_source` (`no`, `book_name`, `author`, `tag`) values('1','小王子','圣艾克苏佩里','外国文学');
insert into `full_source` (`no`, `book_name`, `author`, `tag`) values('2','解忧杂货店','东野圭吾','小说');
insert into `full_source` (`no`, `book_name`, `author`, `tag`) values('3','白夜行','东野圭吾','小说');
insert into `full_source` (`no`, `book_name`, `author`, `tag`) values('4','梦里花落知多少','郭敬明','小说');
insert into `full_source` (`no`, `book_name`, `author`, `tag`) values('5','看见','柴静','随笔');
insert into `full_source` (`no`, `book_name`, `author`, `tag`) values('6','围城','钱钟书','小说');
create table `full_target` (
	`no` int (10),
	`book_name` varchar (60),
	`author` varchar (30),
	`tag` varchar (60)
); 
insert into `full_target` (`no`, `book_name`, `author`, `tag`) values('1','小王子','圣艾克苏佩里','外国文学');
insert into `full_target` (`no`, `book_name`, `author`, `tag`) values('2','解忧杂货店','东野圭吾','小说');
insert into `full_target` (`no`, `book_name`, `author`, `tag`) values('5','看见','柴静','随笔');

表中数据如下:

?

?

2.打开kettle创建转换

?

3.配置步骤

双击“执行SQL脚本”控件,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置;在SQL框中编写删除数据表full_target中数据的SQL语句

?

双击“表输入”控件,进入“表输入”配置界面,在SQL框中编写查询full_source数据表的SQL语句

?

单击【预览】按钮,查看full_source数据表的数据是否成功从MySQL数据库中抽取到表输入流中

?

双击“表输出”控件,进入“表输出”配置界面;单击目标表处的【浏览】按钮,选择输出的目标表,即数据表full_target

?

?

4.运行转换查看结果

查看数据表full_atrget:

?

?

三、数据增量加载

1.数据预览与准备

通过Kettle工具将数据表incremental_source中的数据增量加载到数据表incremental_target中,现有两张数据表,分别为incremental_source和incremental_target,其中incremental_source为源数据表,incremental_target为目标数据表。数据表incremental_source和incremental_target的表结构、数据都是相同的。SQL语句如下:

create table `incremental_source` (
	`id` int (20),
	`name` varchar (60),
	`age` int (20),
	`create_time` datetime 
); 
insert into `incremental_source` (`id`, `name`, `age`, `create_time`) values('1','Isabella','18','2019-08-20 13:14:20');
insert into `incremental_source` (`id`, `name`, `age`, `create_time`) values('2','Jack','20','2019-08-21 13:14:21');
insert into `incremental_source` (`id`, `name`, `age`, `create_time`) values('3','Nicholas','22','2019-08-20 13:14:22');
insert into `incremental_source` (`id`, `name`, `age`, `create_time`) values('4','Jasmine','19','2019-08-20 13:14:23');
insert into `incremental_source` (`id`, `name`, `age`, `create_time`) values('5','Mia','20','2019-08-20 13:14:24');
create table `incremental_target` (
	`id` int (20),
	`name` varchar (60),
	`age` int (20),
	`create_time` datetime 
); 
insert into `incremental_target` (`id`, `name`, `age`, `create_time`) values('1','Isabella','18','2019-08-20 13:14:20');
insert into `incremental_target` (`id`, `name`, `age`, `create_time`) values('2','Jack','20','2019-08-21 13:14:21');
insert into `incremental_target` (`id`, `name`, `age`, `create_time`) values('3','Nicholas','22','2019-08-20 13:14:22');
insert into `incremental_target` (`id`, `name`, `age`, `create_time`) values('4','Jasmine','19','2019-08-20 13:14:23');
insert into `incremental_target` (`id`, `name`, `age`, `create_time`) values('5','Mia','20','2019-08-20 13:14:24');

两个表中数据都是一样的,这里只显示incremental_source中的数据

?

2.打开kettle创建转换

?

3.配置步骤

双击“表输入”控件,进入“表输入”配置界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮。MySQL数据库连接的配置

在SQL框中编写查询数据表incremental_source的SQL语句,然后单击【预览】按钮,查看数据表incremental_source的数据是否成功从MySQL数据库中抽取到表输入流中

?

?

双击“插入/更新”控件,进入“插入/更新”配置界面,单击目标表处的【浏览】按钮,弹出“数据库浏览器”窗口,选择目标表incremental_target,单击【获取字段】按钮,用来指定查询数据所需要的关键字,这里通过比较数据表incremental_target的字段id与输入流里的字段id是否一致为关键条件,更新数据表中的其它字段数据;单击【获取和更新字段】按钮,用来指定需要更新的字段

?

?

在数据表incremental_source中新增一条id为6、name为Mary、age为23的数据;对数据表incremental_source中id为2的数据进行修改,即将这条数据的年龄(age)改为25。修改后的数据表incremental_source中的数据内容如图所示。

?

?

4.运行转换查看结果

查看数据表incremental_target?

?

四、数据批量加载

1.数据预览与准备

通常情况下,对于几千条甚至几十万条记录的数据迁移而言,采取DML(即数据操纵语言)的INSERT语句能够很好地将数据迁移到目标数据库中。然而,当数据迁移量过于庞大时,就不能使用INSERT语句,因为执行INSERT、UPDATE以及DELETE语句的操作都会生成事物日志,事物日志的生成会减慢加载的速度,故需要针对数据采取批量加载操作。

通过Kettle工具将文件weibo_user.csv中的数据批量加载到数据表weibo_user中。

weibo_user.csv中数据截图如下:

数据表?weibo_user创建语句如下:

CREATE TABLE `weibo_user` (
  `user_id` int DEFAULT NULL,
  `user_name` varchar(60) DEFAULT NULL,
  `gender` varchar(30) DEFAULT NULL,
  `message` varchar(3000) DEFAULT NULL,
  `post_num` int DEFAULT NULL,
  `follower_num` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

2.打开kettle创建转换

?

3.配置步骤

双击“CSV文件输入”控件,在“文件名”处单击【浏览】按钮,选择要抽取的CSV文件weibo_user.csv;单击【获取字段】按钮,让Kettle自动检索CSV文件,并对文件中字段的类型、格式、长度、精度等属性进行解析

单击【预览】按钮,查看CSV文件weibo_user.csv的数据是否抽取到CSV文件输入流中

?

双击“表输出”控件,进入“表输出”配置界面,单击【新建】按钮,配置数据库连接,配置完成后单击【确认】按钮

?

单击目标表右侧的【浏览】按钮,选择输出的目标表,即数据表weibo_user(该表需提前创建,且表结构需根据文件weibo_user.csv中数据的字段和数据类型进行创建,这里不作演示);勾选“指定数据库字段”的复选框,用于将weibo_user数据表的字段与weibo_user.csv文件中的字段进行匹配;勾选“使用批量插入”的复选框,用于批量加载数据至目标表中,如图所示。

?

选择“数据库字段”选项卡,单击【输入字段映射】按钮,依次选中“源字段”选项框的字段和“目标字段”选项框的字段,再单击【Add】按钮,将一对映射字段添加至“映射”选项框中,若“源字段”选项框的字段和“目标字段”选项框的字段相同,则可以单击【猜一猜】按钮,让Kettle自动实现映射,具体如图所示

?

?

4.运行转换查看结果

查看结果表weibo_user:

?

总结:至此,本文就结束了,案例都比较简单,都是一些基础操作,但这个操作思想却是非常重要的,比如增量加载和批量加载在操作大数据时更加方便。?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:22:23  更:2022-10-22 21:24:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 -2025/4/22 18:04:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码