- 博客(37)
- 收藏
- 关注
原创 你应该知道的SQL中常用函数
语法为:select 字段 from 表 where 条件 group by 字段 having 条件。语法为:select 字段 from 表 group by 字段。语法为:select first(字段) from 表。语法为:select last(字段) from 表。语法为:SELECT AVG(字段) FROM 表。语法为:select max(字段) from 表。语法为:select min(字段) from 表。语法为:select sum(字段) from 表。2.count函数。
2023-06-01 19:44:37 477
原创 初识Python
print(3 > 4 and 4 < 5) # False 同时为真时才为真。print(a.index(3)) # 返回列表第一次出现该元素的位置 0。print(3 > 4 or 4 < 5) # True 有一个为真是真。print(a.count(1)) # 统计元素出现的次数 2。print(1 + 1 >= 2) # 大于等于: True。print(5 / 2 4) # 大于:False。
2023-04-21 22:10:28 769
原创 SQL优化,让你的SQL速度飞起来
in使用虽然非常方便,代码看起来也简单明了,但是会对子查询的结构进行一一扫描所以速度会相应的比较低。排序也会影响查询的效率,因为排序可能会在磁盘中进行,效率会大大降低。常见的会排序的运算和函数有:group by ,order by ,聚合函数,distinct,union,以及窗口函数。通常不同SQL语句能够产生同样的结果,但是不同SQL代码所执行耗费的时间不完全相同,因此考虑到响应效率,必须对相应的代码进行调整,使其能够以最快的速度查询出我们想要的结果。因此减少中间表的使用也是提高效率的一个重要方法。
2023-04-03 22:29:05 266
原创 MySQL中如何创建存储过程和存储函数(下篇)
上两篇主要说了如何创建存储过程和存储函数,本篇主要说流程控制。控制语句主要有,if,case,loop,leave,iterate,repeat以及while语句。
2022-11-30 22:16:30 445
原创 MYSQL中如何创建存储函数和存储过程(中篇)
上篇中说道存储函数和存储过程的创建,本篇讲变量的使用以及光标的使用。查询语句大都会返回大量的记录,此时需要在存储过程和存储函数中使用光标来逐条读取查询结果的数据。光标必须在声明处理程序前,并且变量和条件还必须在声明光标前辈声明
2022-11-29 22:02:09 701
原创 MYSQL中如何创建存储过程和存储函数(上篇)
存储程序分为存储过程和存储函数。在MySQL中创建存储过程和存储函数的语句分别是create procedure 和create function。使用call语句来调用存储过程,只能用输出变量返回值。
2022-11-28 22:03:39 2244
原创 SQL中的子查询及好处-(ANY,ALL,EXISTS,IN)关键字
子查询就是一个查询语句嵌套在另一个查询语句内部的查询,这样做就会很方便的基于一个表或者多个表去查询数据。子查询可以使用很多关键字比如有ANY,ALL,IN,EXISTS,以及运算符,如 >,
2022-11-27 20:42:33 1263
原创 SQL中常见的几种连接方法-(内连接,左连接,右连接)
根据所关联的字段进行匹配,将匹配上的数据组合成新的记录,也就是所,在内连接查询中,只有满足条件的记录才会出现在结果关系中。一般在实际的应用中主要用到的是做关联,因为更符合人们的阅读习惯。连接是数据库主要的特点,通常一个表中不会存放不同实体的信息,不同实体的信息存在不同的表当中,但是要同时查出多个表当中的信息时就需要多个表合并到一起进行查询,此时连接表的作用就出来了。在表建立时常把一个实体的所有信息存放在在一张表中,当查询数据时,通过连接操作查询出存放在多个表中的不同实体的信息。
2022-11-26 22:47:44 2791
原创 SQL中常用的聚合函数,知道这些就够了
sum()是一个求和函数,返回的指定列的总和。sum可以和group by搭配使用,返回的是每个分组的总和。需要注意的是sum函数在计算时会列值为null的行。在实际表的查询中,有时候不是简单的查些数据,而是需要对数据进行一些汇总,此时就要用到聚合函数。count()函数统计数据表中所包含的总行数,或者根据分组条件返回每个分组中的总的行数。avg()函数是计算返回的是所有行数数据的平均值。max()函数返回的是指定列的值最大的一个数据。min()函数和max正好相反,返回的是最小值的数据。
2022-11-26 21:39:01 7626
原创 简述SQL中常用关键字以及通配符
DISTINCT主要是用来去重的,有时候数据会产生大量重复,而这些重复的数据是不需要的,因此就需要过滤掉,此时DISTINCT的作用就出来了。OR关键字也是和where搭配使用,但是和AND不一样的是返回结果的只要满足OR条件任意一个都会返回,并且执行顺序在AND关键字的后面。IN操作符用来查询满足指定范围内的条件记录,使用IN关键字,将所有的检索条件用括号括起来,中间用逗号分隔,注意用使用英文逗号。AND关键字主要和where关键字搭配使用,筛选出同时满足多个条件的值。2.BETWEEN AND关键字。
2022-11-24 22:02:28 2313
原创 SQL关键字-group by--having--where--order by(上篇)
SQL常用关键字where,order by,group by,having等关键字的用法和相关注意点。
2022-11-23 22:18:11 155
原创 hive通用优化-数据倾斜优化-mr程序task个数调整
reducetask个数,用过代码指定,job.setNumReduceTask(N),在hive中reducetask的个数受一下几个条件的控制。maptask个数,在hive中,调整maptask的个数直接去HDFS调整文件的大小和个数,效率较高。方案一:开启map短聚合hive.map.aggr=true;方案一:提前过滤,将大数据变为小数据,实现map join。方案二:使用bucket join。方案三:数据倾斜时自动负载均衡。方案三:使用skew join。方案二:实现随机分区。
2022-09-06 21:14:58 695
原创 hive通用优化-join优化
底层还是mr的join优化。map join适合小表join大表或者小表join小表。方式二:sort merge bucket join。方式一:Bucket map join。reduce join适合于大表join大表。bucket join适合于大表join大表。
2022-09-05 21:40:44 1780
原创 hive中通用调优-fetch抓取-mr本地模式
mr本地模式:如果非要执行mr,能够执行本地的就不要提交yarn执行,默认是关闭的,意味着只要走mr就提交到yarn。Fetch抓取机制:在执行SQL的时候,能不走mr就不走mr,尽量直接去操作数据文件。hive提供了一个参数,自动切换mr程序为本地模式,如果不满条件,就执行yarn模式。参数设置:hive.fetch.task.conversion= more。mapreduce.framework.name = local 本地模式。通常情况下,全局查找,字段查找,limit查找都不走mr程序。
2022-09-01 21:43:46 594
原创 Hive中文件存储格式(text,orc,parquet)
hive中表的存储格式,不仅支持text文本格式,还支持其他很多格式。hive在建表的时候通过stored as 指定格式,如果没有指定格式就默认为textfile格式。hive默认的查询引擎是MapReduce,因此通常说的hive压缩是MapReduce压缩。数据存储效率极高,用于查询方便。map输出端,减少shuffle的数据量,提高shuffle时网络io的效率。当然压缩会带来一些弊端,浪费时间,消耗CPU,内存,某些优秀的压缩算法需要钱。reduce端,减少文件的大小,降低磁盘的存储空间。...
2022-08-30 21:46:29 2033
原创 Hive--窗口函数--lead函数--lag函数--first_value函数--last_value函数
LAST_VALUE 取分组内排序后,截止到当前行,最后一个值。FIRST_VALUE 取分组内排序后,截止到当前行,第一个值。lag函数主用与统计窗口内向上第几行值。lead用于统计窗口内向下第几行值。
2022-08-29 21:25:39 683
原创 Hive--窗口函数--排序函数--row_number--dense_rank--rank--ntile
ntile函数:将分组排序之后的数据分成若干指定的部分,尽量平分,优先满足最小的桶,彼此最多不想差一个。功能:主要对数据分组排序之后,组内顺序标号。适合场景:分组TopN问题。
2022-08-28 20:40:50 293
原创 Hive--窗口函数--window子句
这里以rows between为例来讲解窗口范围的划分,rows表示物理层面上的行,跟字段值没关系。功能:控制窗口操作的范围。
2022-08-25 21:34:15 562
原创 Hive-窗口函数-聚合函数
语法:sum|max|min|avg OVER ([PARTITION BY ] [ORDER BY ] [])有order by,默认是range between,首行到当前行,这里的"行"是逻辑上的行,由字段的值的区间range来划分范围。首先说下有没有partition by 影响的是全局聚合 还是分组之后 每个组内聚合。没有order by,默认是rows between,首行到最后行,这里的"行"是物理上的行;
2022-08-24 21:53:46 629
原创 Hive窗口函数-快速入门-语法规则
快速理解窗口函数功能,即window function 窗口函数、开窗函数、olap分析函数。窗口:可以理解为操作数据的范围,窗口有大有小,本窗口中操作的数据有多有少。也可以简单地解释为类似于聚合函数的计算函数,但是通过GROUP BY子句组合的常规聚合会隐藏正在聚合的各个行,最终输出一行;而窗口函数聚合后还可以访问当中的各个行,并且可以将这些行中的某些属性添加到结果集中。
2022-08-23 21:43:14 253
原创 Hive-JSON格式数据处理
-是UDTF 表生成函数 输入一行,输出多行 一次提取读个值 可以单独使用 也可以配合lateral view侧视图使用。在hive中,没有JSON类的存在,一般使用string类型修饰,叫做JSON字符串。--是UDF普通函数,输入一行 输出一行 一次只能提取一个值 多次提取多次使用。在hive中内置了两个用于解析JSON的函数。
2022-08-22 21:40:47 1457
原创 Hive中行列转化,多行转单列-collect_list-collect_set-字符串拼接函数-concat-concat_ws
collect_set --把多行数据收集为一行 ,返回set集合 ,去重无序。concat --直接拼接字符串,concat_ws --指定分隔符拼接。collect_list --把多行数据收集为一行 ,返回list集合 ,不去重有序。
2022-08-16 22:04:38 909
原创 Hive函数高阶应用-explode爆炸函数以及侧视图
explode属于UDTF函数,表生成函数,输入一行输出多行。接受map以及array类型数据,把map或者array的元素输出,一行一个元素。侧视图的原理是将UDTF的结果构建成一个类似于视图的表,然后将原表中的每一行和UDTF函数输出的每一行进行连接,生成一张新的虚拟表。...
2022-08-15 22:06:38 751
原创 Hive SQL 中内置函数的梳理--字符串函数--时间函数--数学函数--条件函数--加密函数
Hive SQL 中内置函数的梳理--字符串函数--时间函数--数学函数--条件函数--加密函数。
2022-08-14 21:50:17 1378
原创 Hive SQL的DQL语句--参数配置--函数-UDF-UDTF-UDAF
不管是写select语句环视看select语句,from关键字之后的表时最重要的,其后面的表可能是一张真实的物理存在的表,也可能是虚拟的表(视图view)DISTRIBUTE BY+SORT BY:相当于相当于把cluster by的功能一分为二。distribute by只负责分,sort by只负责分之后的每个部分排序,并且分和排序的字段可以不一样。DQL高阶查询cluster、distribute、sort、union。DQL语法是平时使用最多的语法,首先来看下DQL语法树。...
2022-08-10 21:45:35 748
原创 HIve SQL-DDL语句初掌握-DDL语句常见的问题和解决方法
DDL数据定义语言主要是针对表的。其重要程度直接关系到表和文件能否映射成功。本篇主要讲的是HQL DDL语言。1.建表语句-表存在忽略异常。3.建表时分割符指定语法。2.建表语句数据类型。
2022-08-08 22:15:47 626
原创 浅谈数据仓库-Hive-数仓分层架构-数据仓库特征-OLTP和OLAP的区别
说道数据仓库就会引申出数据库,那么两者之间有什么区别呢。数据库是面向事务支持事务的,OLTP系统注重的是数据安全、完整、响应效率。hive就是基于Hadoop的数仓,其核心功能就是将结构化文件映射成为一张表,基于表提供了hive SQL 类SQL语言支持查询。那么什么又是数据仓库呢?数据仓库其实就是面向分析的集成化数据平台,分析的结果给企业提供决策支持。数据仓库也不是大型的数据库,也没有要取代数据库的目标,只是一个数据分析平台。通过hive构建数据仓库,可以减少学者的学习成本,简单易得上手容易。...
2022-08-07 21:46:04 307
原创 数仓为什么要分层
不管是离线数仓还是实时数仓,都会有一个分层的动作。那么为什么要分层呢?分层有什么好处呢?首先为什么要分层,分层肯定就是便于管理和维护,需要什么数据直接在所分的层级去寻找。分层有什么好处呢,好处的话那就有很多,简单的来说下。分层好处:1.可以使复杂问题简单化。2.清晰数据结构。3.减少重复开发。4.屏蔽原始数据异常。5.方便血缘追踪等。...
2022-06-27 23:13:41 700
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人