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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 存储过程及Kettle初体验 -> 正文阅读

[大数据]存储过程及Kettle初体验

存储过程及Kettle初体验,感觉网上都不清楚,做了demo,简单记录下。

存储过程参考(视频,评论区有相关文档)
kettle参考(视频,评论区有相关文档)

1.存储过程

本次存储过程demo主要是从左表到右边的实现过程。

在这里插入图片描述
直接贴上代码,其实很简单,就是要理解写法,存储过程中大部分都得给个label,相当于前端给id的意思,方便调用。
过程中大致就是创建存储过程名称,定义变量名,定义结束标志,然后这里用了游标。

处理过程也可以在select时候处理的,一样的。

drop PROCEDURE IF EXISTS p;
CREATE PROCEDURE p()
BEGIN

-- 需要定义接收游标数据的变量
DECLARE id VARCHAR(255);
DECLARE `name` VARCHAR(255);
DECLARE created_date VARCHAR(50);
DECLARE score VARCHAR(50);

-- 遍历数据结束标志
DECLARE done INT DEFAULT FALSE;

DECLARE cur CURSOR FOR SELECT
t1.id,
t1.`name`,
t1.created_date,
t1.score
from student_info t1;

-- 将结束标志绑定到游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

-- 打开游标
OPEN cur;

-- 开始循环
read_loop: LOOP

	-- 提取游标里的数据
	FETCH cur INTO id,`name`,created_date,score;

	-- 声明结束的时候
	IF done THEN

	LEAVE read_loop;

	END IF;

	-- 这里做你想做的循环的事件
	CASE
		WHEN score <= 100 and score >= 85 THEN set score="优秀";
		WHEN  score < 80 and score >= 60 THEN set score="良好";
		WHEN  score < 60 THEN set score="不及格";
		ELSE set score="未知" ;
	END CASE;
		
	SET created_date=date_format(created_date,'%Y年%m月%d日');
		
	INSERT INTO student_result VALUES (id,`name`,created_date,score);

END LOOP;

-- 关闭游标
CLOSE cur;

END

通过call p来调用该存储过程,执行一次,后续只需调用就好了。

call p;

2.Kettle

实现过程功能跟上面相同,只不过是通过kettle实现,直接用kettle不知道怎么处理,因此还是调用了一个存储过程来处理。

在这里插入图片描述
大致过程:写了一个接口来获取数据库的参数,通过kettle调用api获取参数,然后通过调用存储过程进行处理,再插入新表。

接口代码就不放了

(1)生成记录

主要是写了获取接口的url以及type类型,自己写的接口不需要token什么的,有需要自己写哈。
在这里插入图片描述

2.HTTP client

HTTP client是get,HTTP post是post,REST client是两者都可以。
这里的url是之前写的,如果只是想我这样,只有URL请求,可以不写生成记录,直接这边URL填写路径,data是你返回值的结果。
在这里插入图片描述

3.JSON input

这里我有两个json,主要是因为我还传了一个total,他这个一次只能获取同一级的数值,具体看我的json,data和total是同一层。

{
    "data": {
        "data": [
            {
                "id": "1001",
                "name": "李四",
                "createdDate": "2022-03-10 14:28:52",
                "score": 90
            },
            {
                "id": "1002",
                "name": "王五",
                "createdDate": "2022-06-10 16:28:52",
                "score": 70
            },
            {
                "id": "1003",
                "name": "张三",
                "createdDate": "2022-08-10 09:28:52",
                "score": 59
            }
        ],
        "total": 3
    },
    "code": "ok"
}

$表示当前,.是获取当前,…是递归获取,具体参考文档哈。
在这里插入图片描述
在这里插入图片描述

4.存储过程

多个参数的话,就需要自己写参数,只有一个可以 直接返回值那里。
在这里插入图片描述
这里另外写了一个存储过程,包含输入和输出。特别注意的是kettle调用存储过程貌似不能用游标,所以加了total这个参数。

drop PROCEDURE IF EXISTS p1;
CREATE PROCEDURE p1(IN created_date datetime, IN score INT(6), IN total INT(2), OUT date VARCHAR(50), OUT `level` VARCHAR(50))
BEGIN
-- 开始循环
read_loop: LOOP
	
	-- 声明结束的时候
	IF total<=0 THEN

	LEAVE read_loop;

	END IF;

	-- 这里做你想做的循环的事件
	SET total = total-1;
	
	CASE
		WHEN score <= 100 and score >= 85 THEN set `level`="优秀";
		WHEN  score < 80 and score >= 60 THEN set `level`="良好";
		WHEN  score < 60 THEN set `level`="不及格";
		ELSE set `level`="未知" ;
	END CASE;
		
	SET date=date_format(created_date,'%Y年%m月%d日');

END LOOP;

END
5.表输出

在这里插入图片描述
表连接设置如下
在这里插入图片描述

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:40:18-

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