- 博客(43)
- 收藏
- 关注
原创 数仓建设过程中如何确保抽到的数据是准确的,常用的试错加工技巧
我们在数据仓库的数仓层(DWD层)建设过程中,常常会遇到源数据存在问题,抽取后的数据条数变多等诸多问题,我整理了一下试错方法,可以初步判断抽到的数据是否可以继续向下一层加工常用的试错技巧。我做的项目是医院相关的数据,我会拿来举例,但实际上是通用的。
2025-01-08 15:03:28
816
原创 办公软件onlyoffice
它是一款功能强大的在线协作办公软件,可以创建编辑Word文档、Excel电子表格,PowerPoint(PPT)演示文稿、Forms表单等多种文件。支持多个平台,无论使用的是 Windows、Linux、macOS,还是 Android、iOS 等移动设备,甚至是国产化Linux系统,你都可以享受到其提供的强大功能。这使得你可以在不同平台和设备上无缝切换,灵活高效地进行协同工作。相比其他开源办公软件,能网络或本地部署,且协作功能强大。
2024-11-14 09:18:16
723
原创 如何快捷高效的写出sql建表语句?
在Excel中,连接字符串使用的是&符号,因此我们可以在D2单元格中将A2B2C2连接起来形成一串字符。首先我们将建表需要的字段在EXCEL中罗列,这个肯定要自己写吧,这个总不能自己生成对吧。然后我们在后面写出字段类型,大多数字段类型都是varchar(255)吧,接下来点击D2单元格按住加号往下拖就可以直接生成所有的建表语句。如图所示,接下来我们就可以写excel公式自动生成建表语句拉。如果你还想在语句中添加其他关键字同理。接下来写字段注释,这个也得自己写吧这个真生成不了,
2024-07-16 17:35:34
467
3
原创 Hive常用的内置函数
1601510400(秒): 从 1970-01-01 00:00:00 到 2020-10-01 00:00:00 过了多少秒。将 bigint 类型的时间戳转换成 我们想要的日期格式。
2024-07-03 11:58:47
527
原创 银行数仓项目实战(五)--搭建数仓和数据标准化
新建转换,转换的表输入使用ODS层的数据,对数据进行加工处理,首先统一日期类型,日期类型有SA_PSBK_DL_DT字段和SA_PSWD_DL_DT字段,其中SA_PSBK_DL_DT字段表中是STRING类型,SA_PSWD_DL_DT字段表中是DATE类型,要求我们把字段类型改为varchar(8),格式为yyyyMMdd,我们需要先把SA_PSBK_DL_DT字段转换为DATE类型,问甲方要建表语句,自己添加etldt字段和来源字段,通过之前文章教的Kettle把数据抽到自己数据库中。
2024-06-19 17:33:17
543
原创 银行数仓项目实战(四)--了解银行业务(存款)
可以看到,银行的贴源层并不紧贴源数据,而是从数据交换服务读取数据,因为处于安全性考虑,银行不能把敏感数据交给外包服务,因而银行会将必要的数据提交到数据交换服务。(贴源层不必写到项目文档,因为没啥操作没啥技术,只是数据。查看项目文档,明白项目的标准化需求,本文档的标准化需求如下。查看集成层(基础层)设计,了解业务的主题,银行的需求是什么。了解银行业务,明白每张表代表的意义是什么,计息规则不做阐述了,太麻烦太多了。但这样做也有弊端,效率很低。首先得学习业务,能看懂字段。本项目做两个主题做示范。
2024-06-19 12:38:43
795
原创 银行数仓项目实战(三)--使用Kettle进行增量,全量抽取
我们在目标表中添加了NEWDATE这一行代表上次抽取的时间,上次抽取的时间有很多,可以用MAX(NEWDATE)选择距离我们上次抽取最近的时间。我们之前全量抽取的时候,设置了上一次的抽取时间为newdate,我们判断新记录可以选择一个字段判断增量,在这个表中,无疑使用hiredate(入职时间)是最佳选择。我们进行增量抽取的时候,只需要判断每一条数据中的hiredate是否大于上一次的抽取时间,如果大于说明是新数据,需要抽取。一般只有项目初始化的时候会使用到全量抽取,全量抽取的效率慢,抽取的数据量大。
2024-06-18 17:30:25
1191
原创 银行数仓项目实战(二)--数据采集(Kettle的抽取(E)转换(T)加载(L))
Kettle又名PDI要求电脑中有Java环境。下载Kettle9.0的安装包,如有需要可以联系up私发噢。注意!!!解压路径有中文,空格解压后双击spoon.bat即可使用链接数据库需要相应的驱动,Oracle的驱动是OJDBC,导入到相应的文件夹中之后需要重启KettleETL:Extract(抽取)-translate(转换)-load(加载)Kettle是一个ETL工具。
2024-06-18 10:20:31
1839
原创 银行数仓项目实战(一)--什么是数据仓库
数据仓库技术是为了有效的把操作型数据集成到统一的环境中以提供决策型数据访问的各种技术和模块的总称,所做的一切都是为了让用户更快更方便查询所需要的信息,提供决策支持。1.数仓管理系统(Data Warehouse Management System,DWMS):用于管理银行数据仓库的建设,维护和运营,包括数据提取,清洗,转换,加载等功能。数据仓库是一个面向主题的,集成的,非易失的且随时间变化的数据集合,用来支持管理人员的决策。:用于确保报送数据的准确性,完整性和一致性,包括数据清洗,校验,修复等功能。
2024-06-17 11:56:42
3077
原创 SQL触发器
例题:创建一个触发器,修改emp表员工的工资,若原来的工资小于修改后的工资,打印输出涨薪,否则打印降薪。行级触发器:是指dml语句影响了多少条数据,就会触发多少次触发器。创建一个触发器若更新后的工资小于之前的工资则抛出异常 警告不许降薪。表级触发器:不管dml语句影响了多少条数据,就只会触发一次触发器。是指在对一张表进行dml语句操作时,触发的一系列事件。当增删改emp表的时候,要打印输出增删改了数据。当增删改emp表的时候,要打印输出修改了数据。例题 :给emp表创建一个触发器。行级触发器的两个属性。
2024-04-26 11:35:07
270
原创 SQL异常
系统已经设置好的异常,包含了异常名,异常代码,异常信息组成未知异常:OTHERS异常信息:SQLERRM错误代码:SQLCODE有各种各样的很多异常捕获异常的语法DECLAREBEGINEXCEPTIONWHEN 异常名 THEN要执行的代码WHEN 异常名 THEN要执行的代码WHEN 异常名 THEN要执行的代码------只能捕获到异常,捕获到异常后会执行相应的 代码,但是不会修改异常END;如果不知道前面可能会出现什么错误,就用OTHERS捕获异常。
2024-04-26 09:54:25
320
原创 PLSQL判断和循环
输入一个员工编号如果该员工工资小于2000则输出小于2000 x小于3000则输出小于3000。注意:当满足其中一个条件时,要执行对应的代码,然后直接跳到END IF结束判断。练习:输入一个员工编号,如果该员工时30号部门员工。自带条件的循环,只有满足条件才能进入循环。习题:练习打印输出100-1之间的奇数、外层的循环执行一次,内层的循环,循环全部。例题:打印输出100-1之间的偶数。使用reverse实现从100到1。最常见最好用最简单最牛的循环。输入一个字符,反向打印该字符;
2024-04-23 17:22:48
348
原创 PLSQL程序块中的无名块
练习:输入一个员工编号,打印输入该员工所在部门平均工资以及该员工姓名和岗位以及部门名称。是一个引用型变量类型,可以引用某张表的某个列的属性,也可以引用已经定义好的变量类型。2.打印输出7788 的员工的姓名岗位薪资部门编号部门名称以及对应的部门平均工资。练习:输入一个员工编号打印输出该员工的员工信息以及该员工对应的工资等级。练习:输入一个员工编号打印输出该员工的员工信息以及该员工对应的工资等级。练习:输入一个部门编号返回该部门的工资最高的员工的姓名。是一个引用型变量类型,可以引用每张表的一行的字段属性。
2024-04-22 17:01:36
1164
原创 SQL开窗函数
1.聚合开窗的时候,分析函数名必须有内容,即AVG() 括号里必须要有东西。SUM AVG MIN MAX COUNT --聚合开窗。例题:查询员工的姓名岗位薪资以及该员工对应的部门平均薪资。查询员工工资比该员工所在岗位平均薪资高的员工信息。dense_rank() --排序开窗。LAG() LEAD() --偏移开窗。2.分析子句里必须有 order BY。1.分析函数名内是不需要有东西的。练习:查询每个部门工资的前两名。ORDER BY 排序内容。2.分析子句没有要求。
2024-04-19 11:27:03
352
原创 SqL--DCL数据控制语言
语法创建角色CREATE ROLE 角色名给角色赋权GRANT 权限 TO 角色将角色交给用户GRANT 角色 TO 用户;将角色收回REVOKE 角色 FROM 用户删除角色DROP ROLE 角色名。
2024-04-17 15:14:12
538
原创 SQL-DML数据操纵语言(Oracle)
固定长度字符串,该字段属性下只能存储字符型数据,n表示总长度,存储的数据总长度不超过n,长度不足n时,会在右侧以空格填充,最终是以n个长度存储。varchar:可变长度字符串,该字段属性下只能存储字符型数据,n代表总长度,存入的数据总长度不能超过n,若长度不足n时,则以实际长度存储。2.值可以是具体的值,也可以使用函数,也可以是子查询,子查询只能是单行单列子查询,还可以是计算。是最常见的日期型字段属性,该属性下只能存储日期型数据,包含了世纪年月日时分秒。注意:查询语句结果的字段个数,顺序,属性要和列一致。
2024-04-16 15:57:56
977
原创 Oracle子查询
2.写出子查询的查询,为了实现第一步中的汉语部分,查询结果列的个数,顺序,属性要和主查询条件列一致。定义:一个查询语句中嵌套一个或多个查询语句,里层的查询语句的结果成为了外层查询语句的一部分。主查询在乎的是子查询的结果。习题:查询所有部门中平均工资最高的部门编号–把每个部门的平均工资当成表。例题:查询和SOCTT在同一部门并且岗位也相同的员工信息。是指子查询不能单独运行,子查询会牵扯主查询的部分内容。查询员工的姓名岗位薪资部门编号以及对应的部门名称。例题:查询十号部门中最高的工资的员工。
2024-04-12 16:19:14
519
原创 Oracle系统函数练习题50题,来看看你能做对多少吧(附答案)
31.显示员工的名字,工资, 如果工资大于1000小于2000, 显示一月一千多,如果工资大于2000小于3000显示一月二千多 …32.显示员工的名字, 工资, 如果时salesman 工资涨200,如果是manager 工资扣200 后的结果。30.显示员工的名字,名字长度, 如果名字长度为奇数则显示 奇数 如果名字长度为偶数则显示 偶数。18.将ename中的A,替换成ABC,显示编号,替换前的名字,替换后的名字。20.取ename的第二个字符到末尾的所有字符,显示编号,名字,截取后的字符。
2024-04-12 09:29:08
733
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人