数据仓库和ETL
数据仓库 读书笔记
夜空霓虹
记录自己软件开发中遇到的和解决的问题
展开
-
《数据清洗》8.3.8 加载电影数据至电影维度表
NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身源代码中有误的点:1.数据库查询类型要设置为String2.数据库连接2--->数据库查询4,数据库连接2--->分组应该是复制形式,不应该是分发形式3.所以导致源代码最终的运行结果不对:源代码中的结果是:正确的最终运行结果:跟表film_actor中的数量是一致的:...原创 2021-11-09 15:57:11 · 1282 阅读 · 0 评论 -
有关kettle中的数值类型
源数据:1、Number类型,格式:0.002.Number类型,#,##0.###3.Integer 精度:34.Integer 精度3 (没效果)格式0.00(有效果,但只是整数阶段后加了两个00而已)5.Number,精度3,格式0.000(有效保留)6.Number,精度4(没效果),格式0.000(有效保留)7.Number,精度2(没效果),格式0.000(有效保留)8.Number只设置了精度,没效果...原创 2021-11-08 16:49:43 · 6561 阅读 · 0 评论 -
kettle案例23-拆分字段
在工作中经常将数据导出并备份到文件中,这时文件的数据由于没有数据库系统的规范字段格式管理,数据显得很乱,也很不方便管理。为了方便浏览日志内容,需要在某软件系统的操作日志“系统操作日志.xls”文件中,采用拆分字段组件,从日志内容中拆分出用户ID、操作时间、操作内容和IP地址字段,并对应到相关的数据。参数设置: 参数名称 说明 基础参数 步骤名称 表示拆分字段组件名称,在..原创 2021-11-08 11:42:11 · 4502 阅读 · 0 评论 -
kettle案例22-剪切字符串
字符串(String)是由数字、字母和下划线等组成,由一对英文双引号或单引号包括起来的用于表示文本的数据类型。剪切字符串,就是在字符串中,去除多余的内容,保留需要的内容,例如,在“Hello,World!”字符串中,只保留“Hello”,而去除其余部分。为了简化数据,需要在“2018年12月月考考试成绩.xls”文件中,采用剪切字符串组件,使“考试时间”字段只保留年月的数据。参数说明: 参数名称 说明 基础参数 .原创 2021-11-08 11:27:21 · 2770 阅读 · 0 评论 -
kettle案例21-将字段值设置为常量
增加常量是增加字段,并给该字段赋值。与增加常量类似,将字段值设置为常量,是对现有的字段重新赋一个新的固定值。为了统计课程考试的平均分数,需要在“2018年上学期期末语数英考试成绩.xls”文件中,对其中数据为空的“基础课程数”字段,采用字段值设置为常量组件,设置“基础课程数”字段的数据为“3”,表示语文、数学和英语等3门基础课程数。 参数名称 说明 基础参数 步骤名称 表示将字段值设置为常量组件名称,在.原创 2021-11-08 11:17:58 · 2367 阅读 · 0 评论 -
kettle案例20-增加常量
常量是指在计算机程序运行过程中其值不能改变的值。常量可以是任何的数据类型,例如,圆周率“3.14159”、中国首都“北京”等都可以是常量。增加常量是指在数据中增加一个字段,并给字段设置一个固定的值。为了方便统计学生考试的平均分数,需要在某年级的“2018年上学期期末考试成绩.xls”文件中,使用增加常量组件,增加“考试课程数”字段,并设置值为“6”. 参数名称 说明 基础参数 步骤名称 表示增加常量组件名原创 2021-11-08 11:08:43 · 3962 阅读 · 1 评论 -
kettle案例19-字段选择
数据文件中有些字段全是数字,如电话号码字段会被系统当成浮点型处理,有些字段在某个场景里用不上,也有个别字段使用了不恰当或错误的名称。对于这些问题,都需要对相应的字段进行改变类型、去除字段和改变名称等字段处理。为了统计语文、数学和英语3门基础学科的分数,需要对某年级的“2018年4月月考成绩.xls”文件,使用【字段选择】组件,选择语文、数学和英语字段,并且把创建时间改为考试时间。【选择和修改】选项卡参数 参数名称 说明 字段原创 2021-11-08 10:59:04 · 6828 阅读 · 0 评论 -
《数据清洗》8.3.5 加载用户数据至用户维度表
通过kettle工具加载用户数据至用户维度表dim_customer。1.表输入2.表输入23.新建一个转换:添加映射的字段address_id,该字段为传递的参数(由于转换load_dim_customer)中“表输入2”控件流获取的字段address_id用于查询用户的地址信息,而后续数据仓库维度表数据也需要用户的地址信息,因此这里将字段address_id作为传递的参数“映射输出规范”控件不需要任何配置。4.字段选择由于数据表cus...原创 2021-11-08 10:03:07 · 637 阅读 · 0 评论 -
《数据清洗》8.3.4 加载员工数据至员工维度表
COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。如果expression不为空值则返回expression;否则判断value1是否是空值,如果value1不为空值则返回value1;否则判断value2是否是空值,如果value2不为空值则返回value2;……以此类推,如果所有的表达式都为空值,则返回NULL。1.表输入:2...原创 2021-11-02 22:26:24 · 919 阅读 · 0 评论 -
《数据清洗》8.3.3 加载时间数据至时间维度表
需求:数据库中生成86400条数据每条数据对应一天的1秒起始:最终:数据库表dim_time各个字段的含义:报错原因:表字段的名称和mysql表结构不一致。 表字段和mysql表字段数量不一致。记录关联,笛卡尔输出:给出三个域:D1=SUPERVISOR = { 张清玫,刘逸 }D2=SPECIALITY= {计算机专业,信息专业}D3=POSTGRADUATE = {李勇,刘晨,王敏}则D1,D2,D3的笛卡尔积...原创 2021-11-02 21:19:34 · 452 阅读 · 0 评论 -
kettle案例18-分组
在进行数据统计中,往往需要对类别、区域、型号等范围进行统计。分组是对指定的字段或字段集合的数据进行分组统计。为了了解各班级和学生的学业情况,需要对“2019年10月月考英语成绩.xls”文件使用【分组】组件,统计各班的人数和平均分数。...原创 2021-11-01 13:39:24 · 2524 阅读 · 0 评论 -
kettle案例17-字符串操作
任务描述:在数据输入过程中,有时候会不小心输入多余的空格,错误的字符等,字符串操作是指将数据中不需要的字符处理掉。由于在“学籍信息.xls”文件中,学生学籍信息的籍贯字段数据前后有多余的空格,需要使用【字符串操作】去除这些空格,规范学籍信息。...原创 2021-11-01 13:31:12 · 1275 阅读 · 0 评论 -
kettle案例16-字符串替换
字符串替换与值映射非常类似,不同之处在于,字符串替换的字段值是字符串,值映射的字段可以是多种数据类型。由于在“学籍信息.xls”文件中,学籍数据用“H”或“J”表示,需要使用【字符串替换】组件,分别还原其对应的值“户籍生”和“借读生”。...原创 2021-11-01 13:07:53 · 2702 阅读 · 1 评论 -
kettle案例15-值映射
任务描述:在数据处理系统中,为了加快处理速度、减少内存和存储空间消耗,往往使用数字、字母或它们的组合表示真实的数据含义,例如,用“1”和“0”分别表示性别,难以直接看懂。在某校学生的“学籍信息.xls”文件中,性别字段数据分别用“1”或“0”表示。为了更加直观、一目了然地读懂学生的学籍信息,需要使用【值映射】组件,还原其对应的值“男”或“女”。尤其注意字段的设置:...原创 2021-11-01 12:55:34 · 524 阅读 · 0 评论 -
kettle案例14-过滤记录
参考《ETL数据整合与处理》--任务3.4任务描述:在数据处理时,往往需要对数据所属类别、区域和时间等进行限制,将限制范围外的数据过滤掉。为了统计2班的考试人数和成绩,需要对“2019年10月年级月考数学成绩.xls”文件,使用【过滤记录】组件,过滤掉不是2班的数据。在【过滤记录】转换工程中,单击【过滤记录】组件,再单击工作区上方的图标,预览过滤记录后的数据:...原创 2021-11-01 12:30:31 · 4895 阅读 · 0 评论 -
2021-11-01
//Script here//生成localevar locale = new java.util.Locale(language.getString(),country_code.getString());//生成Calendarvar calendar = new java.util.GregorianCalendar(locale);//设置时间calendar.setTime(initial_date.getDate());//设置日历为当前日期calendar.add(cale..原创 2021-11-01 12:08:08 · 201 阅读 · 0 评论 -
《数据清洗》第八章 综合案例--构建DVD租赁商店数据仓库
1) 了解数据库sakila中的数据表sakila样本数据库是MySql官方提供的一个模拟DVD租赁商店管理的数据库。sakila数据库--->数据清洗--->构建数据仓库1.案例概述1.1 案例背景介绍对于在线DVD租赁商店的决策者来说,他们需要从不同的商业角度观察数据,如从时间、电影、演员、用户等角度观察数据,并进行相关的分析得出决策,但是数据库中的数据不适合从多个角度进行分析,无法得出战略决策。然而,数据仓库支持复杂的分析操作,侧重于决策支持,并且还提供直观易懂的查原创 2021-11-01 10:37:15 · 2135 阅读 · 0 评论 -
kettle案例13-替换NULL
参考《ETL数据整合与处理》--任务3.3在Kettle转换过程中,默认情况下,会将空值当做NULL值处理。如果数据类型字段出现NULL值,那么在计算时就会出现错误。在“2019年11月月考英语成绩.xls”文件中,学号为“201709007”的同学没有参加考试,根据规定考试分数将按0分处理,需要使用【替换NULL值】组件,使用“0”替换该同学的英语考试分数。...原创 2021-10-27 09:22:30 · 3380 阅读 · 0 评论 -
kettle案例12-去除重复记录
参考《ETL数据整合与处理》--任务3.2由于输入或其他错误,数据文件中可能出现两条或多条数据完全相同的记录,这些相同的记录称为重复记录。重复记录属于“脏数据”,会造成数据统计和分析不正确,必须清洗掉重复记录。由于在“期考成绩.xls”文件中,发现存在序号不同,但是学号、各科考试成绩完全相同的记录,所以需要使用【去除重复记录】控件,去除这些重复的数据。 参数名称 说明 步骤名称 ...原创 2021-10-26 22:03:49 · 3453 阅读 · 0 评论 -
kettle案例11-排序记录
参考《ETL数据整合与处理》--任务3.1排序是对数据中心的无序记录,按照自然或客观规律,根据关键字段大小递增或递减的次序,对记录重新排列的过程。为了得出学生的成绩排名,需要对“2019年11月月考数学成绩.xls”文件,使用【排序记录】组件,对学生的成绩从低到高排序。 参数名称 说明 步骤名称 表示排序组件名称,在单个转换工程中,名称必须唯一。默认值是【排...原创 2021-10-26 21:30:13 · 2870 阅读 · 0 评论 -
kettle案例10-获取系统信息
系统信息是指Kettle系统环境的信息,包括计算机系统的日期,星期等时间类型的信息,计算机名称、IP地址等设备信息,Kettle系统转换过程中的信息等。为方便读取计算机上到本月最后一天的交易数据问价,需要通过获取系统信息,获得当月最后一天的时间,以及当前计算机名称与IP地址等系统信息。1.名称:表示字段名称2.类型:表示获取系统信息的类型,单击输入框,弹出【选择数据类型】对话框,选中以下类型(因类型浅显易懂,且内容较多,只列出类型所属归类)①时间类:包括现在、以前和...原创 2021-10-26 20:53:45 · 1472 阅读 · 0 评论 -
kettle案例9-生成随机数
参考《ETL数据整合与处理》--任务2.6在工作中,往往需要生成随机数验证码,作为数据或文件的验证码。为方便给授权用户验证文件,需要通过生成随机数,生成一组MD5信息授权码,作为数据文件的认证授权码。1.名称:字段的名称2.类型:表示生成随机数的类型。单击输入框,从弹出【选择数据类型】对话框中选择,有以下类型①随机数:生成0到1之间的随机数②随机整数:生成一个32位的随机整数③随机字符串:基于64位长随机值生成随机字符串④UUID:统一唯一标识符⑤UUID4:统一..原创 2021-10-26 20:38:16 · 2125 阅读 · 0 评论 -
kettle案例8-生成记录
参考《ETL数据整合与处理》--任务2.5在数据统计中,往往要生成固定行数和列数的记录,用于存放统计总数。为方便记录1~12月份商店的销售总额,需要通过生成记录,生成一个月销售总额的数据表。包括商品名称和销售总额两个字段,记录销售的商品和当月商品统计销售总额。...原创 2021-10-26 20:29:24 · 908 阅读 · 0 评论 -
kettle案例7-Excel输入
数据来源:把这些数据拷贝到excel表格中,生成一个文件,“物理成绩.xls”序号 学号 班级 物理 考试时间 1. 201709001. 1班 96. 2018/6/27 14:30 2. 201709002. 1班 97. 2018/6/27 14:30 3. 201709003. 1班 82. 2018/6/27 14:30 4. 201709004. 1班 78.原创 2021-10-26 20:18:51 · 354 阅读 · 0 评论 -
kettle案例6-计算器生成时间维度数据
参考:(20条消息) Kettle使用_17 计算器生成时间维度数据_数据科学汇集-CSDN博客指定一个开始日期,生成连续60天的日期,同时,生成当天的年份,月份,日期,周几,属于本年的第几天,本年的第几周,一个序号。实现效果:1.60条日期数据--生成记录控件2.序号_时间维度--增加序列控件3.计算器3---计算器控件尤其注意红框中的数据类型,不然会报错。4.字段选择2---字段选择控件...原创 2021-10-26 18:05:36 · 751 阅读 · 0 评论 -
kettle案例1,2,3,5
案例1:错误处理(20条消息) Kettle使用_1转换之错误处理_数据科学汇集-CSDN博客_kettle 错误处理案例2:变量替换之设置标量(20条消息) Kettle使用_2变量替换之设置标量_数据科学汇集-CSDN博客_kettle表输入变量替换案例3:变量替换之获取系统信息与命名参数(20条消息) Kettle使用_3变量替换之获取系统信息与命名参数_数据科学汇集-CSDN博客_kettle获取系统信息案例5:CSV文件输入跳过前几行之过滤记录(20条消息) Kettl原创 2021-10-26 11:25:38 · 459 阅读 · 0 评论 -
Kettle案例4《根据增删改标识处理数据》
参考:(20条消息) Kettle使用_26 根据增删改标识处理数据_数据科学汇集-CSDN博客略有变动。首先,mysql中已有数据:DROP TABLE tb_user;CREATE TABLE tb_user(id INTEGER,NAME VARCHAR(12)); TRUNCATE TABLE tb_user;INSERT INTO tb_user VALUES(2,'北京');INSERT INTO tb_user VALUES(3,'深圳');表中目前已有两条数原创 2021-10-26 08:40:04 · 670 阅读 · 0 评论 -
教材中遇到的问题---第六章
1.6.3节中为什么要用这么多排序?如图:如果去掉【排序记录】,那么会报以下错误:2.过滤记录中特别容易忽略的一点?这个NOT表示,如果Provincial字段不为NULL时,发送true数据给步骤空操作。如果Provincial字段为NULL时,发送false数据给步骤空操作2...原创 2021-10-16 14:27:32 · 106 阅读 · 0 评论 -
所有我们目前学的kettle转换步骤总结
1.输入类:一种特殊情况:(自定义常量数据,作为后续的输入)2.字段选择控件:能够用来选择我们想要保留的字段,移除我们不想要的字段,同时修改保留字段的元数据。3.排序合并两个功能:排序:按照某字段合并:将两个数据流进行合并(要保证两个数据流中数据类型一致,防止报错)4.增加序列新增一列,从某个数字开始,按照step的间隔,可以控制最大值。5.输出类表输出,:将流中的字段,和表中的字段做个映射,将流中数据写入到表中。..原创 2021-10-13 16:46:41 · 1440 阅读 · 0 评论 -
kettle使用过程的一些问题汇总
1.去重有同学遇到的问题:去重后还是9条。也就是没有去重,经检查:需要去掉简易转换的勾选,这样才能完成去重操作。具体原因还没查到。2. 填充缺失值有同学遇到的问题预览数据后只有一列数据需要在字段中,将三个字段,手输进去。因为我们这个文本文件没有列头。...原创 2021-10-13 16:05:14 · 360 阅读 · 0 评论 -
kettle参考资料
ETL-Kettle 文章分类 于贵洋的博客 - 天善智能:专注于商业智能BI和数据分析、大数据领域的垂直社区平台原创 2021-09-29 14:32:07 · 225 阅读 · 0 评论 -
ETL第三课
Spoon:图形化工具,用于快速设计和维护复杂的ETL工作流。 Kitchen:运行作业的命令行工具。 Pan:运行转换的命令行工具。 Carte:轻量级的(大概1MB)Web服务器,用来远程执行转换或作业,一个运行有Carte进程的机器可以作为从服务器,从服务器是Kettle集群的一部分。1. Spoon Spoon是Kettle的集成开发环境(IDE)。它基于SWT提供了图形化的用户接口,主要用于ETL的设计。在Kettle安装目录下,有启动Spoon的脚本。如Windows下...原创 2021-09-13 13:34:55 · 283 阅读 · 0 评论 -
Elasticserch基本概念
Elasticserch基本概念集群由一个或多个节点组成,对外提供服务节点一个节点只能加入一个集群分片主分片副本分片每个索引可以有多个主分片,一旦建立,不能修改数量。副分片可动态增加,必须和主分片在不同的节点上。复制功能,搜索可以在所有副本上并行执行索引具有相同结构的文档集合索引名字小写索引结构:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gpgYYnZb-1591863600125)(C:\Users\67534\AppData\Roami原创 2020-06-11 16:21:57 · 375 阅读 · 0 评论 -
ETL第二课
数据清洗的背景、定义、原理、基本流程、策略和方法海量数据的来源是广泛的,数据类型也是多而繁杂的,因此数据中会夹杂着不完整、重复及错误的数据。如果直接使用这些原始数据,会严重影响数据决策的准确性和效率。数据清洗:可靠,准确的数据。错误的数据---》错误的决策“数据质量”“数据质量管理是对数据从计划、获取、存储、共享、维护、应用、消亡生命周期的每个阶段里可能引发的数据质量问题,进行识别、度量、监控、预警等一系列管理活动,并通过改善和提高组织的管理水平使得数据质量获得进一步提高。数据质量管理的原创 2021-09-08 20:55:15 · 159 阅读 · 0 评论 -
ETL第一课--初识ETL
2.9 数据仓库的就餐体验(Kimball经典)使用比喻来表示看似复杂概念的好处,有效的语言和视觉比喻有助于复杂性转换成可轻易理解和令人印象深刻的映像。数据仓库应该有一个完全专注于数据准备和提取、转换以及加载操作的区域。2.9.1 厨房...原创 2021-09-06 18:18:54 · 326 阅读 · 0 评论 -
《数据仓库与商业智能宝典(第2版)》第一章 读本概览--读书笔记
1.1 抑制住立即开始编码的冲动设计一个DW/BI系统最重要的第一步,就是停下来,花一周时间好好想想,要完全确保对于项目所需要的所有需求具有足够全面的了解。原创 2021-09-06 10:04:34 · 252 阅读 · 0 评论