- 博客(150)
- 收藏
- 关注

原创 Hive函数积累,持续更新
1、删除分区1)删除一个分区数据ALTER TABLE table_name DROP PARTITION (dt='20200909');2)删除多个分区数据ALTER TABLE table_name DROP PARTITION (dt >="20200901",dt <='20200930')3)删除多字段分区ALTER TABLE table_name DROP PARTITION (dt='2020901', hour='10');...
2022-02-23 10:54:48
807
原创 presto中split函数报错Array subscript out of bounds(下标越界)
presto的cardinality函数默认数组的下标从1开始。select split('服饰/其他', '/')[3] as。报错:Array subscript out of bounds。hive的size函数默认数组的下标从0开始。的时候,hive和presto的函数不同。1 服饰/上衣/衬衫。3.2 presto用法。2 服饰/其他。3.1 hive用法。
2023-08-16 16:58:12
1355
原创 sql重decimal类型字段,乘除法结果为NULL异常问题
由于a * b / c 结果小数点位数超过30,所以结果为NULL。字段 a,数据类型 decimal(22,10)字段 b,数据类型 decimal(22,10)字段 c,数据类型 decimal(22,10)M是数据总位数,其范围为“1~65”,默认值是10;D是小数点位数,其范围是“0~30”,但不得超过M。decimal格式“DECIMAL(M,D)”。a * b / c 结果为NULL。解决方案:缩短小数点位数。
2023-08-16 16:35:30
642
原创 hive sql一些细节
1、两个int型的数据相除结果会默认为int型,如果其中有一个为double型结果就为double型,做强制类型转换或将其中一个数乘以1.0得到double型。
2023-05-15 10:33:40
139
转载 hive查询结果缺少数据——某些union all和join情况下会缺少数据
在使用hive sql 进行join 关联时,查询结果明显缺少数据,或于presto或其他查询渠道查询结果不一致时。原因可能是orc文件在加工过程中造成的部分。在使用hive sql 进行。all查询结果时,缺少数据。丢失,关闭元数据优化就可以了。
2023-05-05 14:26:21
952
转载 关于MySQL中datetime和timestamp的区别
关于MySQL中datetime和timestamp的区别1 MySQL的日期类型简介 2 datetime和timestamp的区别 3 总结在MySQL中一些日期字段的类型选择为datetime和timestamp,那么对于这两种类型不同的应用场景是什么呢
2022-04-24 10:57:53
16919
转载 hive报错:hive.ql.exec.vector.VectorMapOperator(向量化查询)
报错信息:Runtime Error while processing row at org.apache.hadoop.hive.ql.exec.vector.VectorMapOperator.process(VectorMapOperator.java:52)解决方案:关闭向量化查询set hive.vectorized.execution.enabled=false;set hive.vectorized.execution.reduce.enabled=false;
2022-04-14 17:35:56
2849
转载 HIVE使用unix_timestamp函数提示unix_timestamp(void) is deprecated. Use current_timestamp instead.
结论:使用select date_format(current_timestamp,'yyyy-MM-dd HH:mm:ss') 代替select from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss')。总结:以后还是尽量不用官方弃用的函数。今天在迁移项目时,发现HIVE中unix_timestamp得到的时间在测试环境和线上环境不一致,相差8小时。使用select from_unixtime(unix_timestamp(), '...
2022-04-07 13:56:51
1246
转载 hive严格模式下如何使用笛卡尔积?
首先,了解什么是笛卡尔积,笛卡尔积就是大多数情况下在我们没有注意的情况下产生了错误的关联条件,然后造成了笛卡尔积,如下图在hive严格模式下,是不允许笛卡尔积的操作的,因为在大数据领域笛卡尔积的存在会产生很大的数据量暴增,对于集群的伤害很大。但是如果在严格模式下必须要使用到笛卡尔积怎么办?案例:表A中有一条数据,是jn1表的班主任,表A中只有一个字段,现要把这条记录加入到jn1中1、非严格模式下使用笛卡尔积有三种方式方式1:select * from jn1,scri;方式
2022-04-07 10:42:01
1203
转载 Hive的严格模型(Strict mode)
对分区表进行查询,若在where子句中没有加分区的话,将禁止提交任务。把属性值进行设置.默认值是没有开启的。默认是nonstrict查看hive是否开启严格模式set hive.mapred.mode说明:在敲击命令过程中可以使用tab键补齐。设置为严格模式set hive.mapred.mode=strictset hive.mapred.mode=strict;说明:使用严格模式可以机制3种类型的查询。1、对于分区表,不加分区字段进行查询,不能执行。2.
2022-02-25 14:14:27
663
原创 replace into 与insert into 区别
新建一个test表,三个字段,id,title,uid, id是自增的主键,uid是唯一索引;CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `uid` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `sss` (`uid`)) ENGINE=InnoDB DEFAULT
2022-01-28 14:51:13
1020
原创 hive插入多行数据(硬编码)
insert into table 表名select 1,2,3union allselect 4,5,6union allselect 7,8,9
2021-12-03 11:34:48
4266
原创 hive实现全自动动态分区--案例详解
需求:删除s_ls_yijj_syjglj_yhxx中所有分区中HD_FIND_DATE字段大于当前系统日期的数据删除1.开启动态分区,并设置参数 #--开启动态分区,默认是false (可通过这个语句查看:set hive.exec.dynamic.partition;) set hive.exec.dynamic.partition=true; #--开启允许所有分区都是动态的,否则必须要有静态分区才能使用,默认是strict set hive.exec....
2021-10-13 18:07:47
2488
原创 Replace columns is not supported for table,SerDe may be incompatible.
ERROR : FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Replace columns is not supported for table hw_dwsdb.dws_student_classroom_homework_statistics. SerDe may be incompatible.INFO : Completed executing command(queryI.
2021-09-26 11:06:36
1729
转载 datax与其他数据库字段映射
通过源码解读Column-datax中的数据类型,可以知道datax框架中只有7(enum Type种)种数据类型,那么各个数据库的字段是如何和datax的字段进行相互映射?原文链接:https://waterwang.blog.youkuaiyun.com/article/details/113499474...
2021-09-07 18:20:57
1498
1
转载 dataX的WriteModel详解
本文中的writeModel主要是Mysql、Oracle等传统关系数据库中的writeMode。dataX导入到hive是直接写文件,不会支持这些writeModel。预备知识Mysql中的ON DUPLICATE KEY UPDATE使用 ON DUPLICATE KEY UPDATE语句的时候,如果你插入的记录导致主键或唯一索引重复,那么Mysql就会认为该条记录存在,则执行update语句而不是insert语句;反之则执行insert语句而不是更新语句。新建表user,id作为user
2021-09-07 17:54:34
14619
转载 DataX3.0配置文件参数详解
datax3.0介绍DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。Reader插件和Writer插件"reader": { "name": "mysqlreader", #从mysql数据库获取数据(也支持sqlserverreader,oraclereader) "name": "txtfilereader", #从本地获取数据
2021-09-07 17:47:48
13372
转载 MySQL Binlog 解析工具 Maxwell 详解
maxwell 简介Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。它的常见应用场景有ETL、维护缓存、收集表级别的dml指标、增量到搜索引擎、数据分区迁移、切库binlog回滚方案等。Maxwell主要提供了下列功能:支持SELECT * FROM table的方式进行全量数据初始化 支持在主库发生f..
2021-08-17 17:28:54
1961
转载 Hive_SQL_计算同时最大在线人数
题目假设我们的业务场景是回溯某一天的某游戏的最大同时在线人数,并有表connection_detail记录用户每一次上线和下线时间:user_id login_time logout_time dt 213142 2019-01-01 12:21:22 2019-01-01 13:45:21 20190101 412321 2019-01-01 13:35:11 2019-01-01 16:01:49 20190101 … …
2021-08-17 15:49:10
2799
2
转载 datax详细介绍及使用
https://blog.youkuaiyun.com/qq_39188747/article/details/102577017?ops_request_misc=&request_id=&biz_id=102&utm_term=datax&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-.nonecase&spm=1018.2226.3001.4187
2021-08-17 15:42:22
1053
原创 DMP和CDP有什么区别
CDP(Customer Data Platform) 客户数据平台DMP(Data management platform)数据管理平台DSP (Demand-side-platform) 需求方平台CRM(Customer Relationship Management)客户关系管理
2021-07-29 19:36:37
786
原创 left join中关联键为NULL时处理方式
表t1表t2表t1 left join 表t2select * from t1 left join t2 on t1.id=t2.id
2021-04-21 11:55:45
758
转载 MySql中 tinyint ,smallint,mediumint,int,bigint 与 decimal
MySql中int,smallint,mediumint与bigint一、容纳数据范围不同1、smallint(M) M默认为6带符号的范围是-32768到32767;无符号的范围是0到65535。2、mediumint(M) M默认为11带符号的范围是-8388608到8388607;无符号的范围是0到16777215。3、int(M) M默认为11带符号的范围是-2147483648到2147483647;无符号的范围是0到4294967295。4、bigint(M) M
2021-04-06 11:56:40
7525
转载 大公司VS小公司,如何选择,看完恍然大悟
总结:1. 尽量先去大公司,特别是对于应届生来说。2. 小公司什么都做,你什么都会,但没有一个精通的方向,即没有方法论的沉淀。大公司需要的是专才,不是全才,一个萝卜一个坑。3. 小公司没有明确的工作规范,比如代码规范,你的代码不规范、有错误、或没有经过优化,没有人给你指出来,渐渐的你的代码越来越不规范。4. 小公司没有大佬带你,自己摸索学习太慢。既然大公司那么不锻炼人,那为什么每年还有这么多人去当螺丝钉?例如Google等成熟的大公司,既然大家都说大公司不锻炼人,小公司才锻炼人.
2021-03-31 13:40:25
1051
原创 Hive中三种排序函数的区别
排序函数RANK() 排序相同时会重复,总数不会变DENSE_RANK() 排序相同时会重复,总数会减少ROW_NUMBER() 会根据顺序计算案例演示1.原始数据name subject score孙悟空 语文 87孙悟空 数学 95孙悟空 英语 68大海 语文 94大海 数学 56大海 英语 84宋宋 语文 64宋宋 数学 86宋宋 英语 8
2021-03-14 20:22:01
1297
原创 hive中时间类date函数
1. 日期格式化函数 :date_format(string date,输出格式)返回值: string说明: 对给定的字符串日期进行格式化。举例:hive> select date_format(current_date,'yyyy-MM-dd HH:mm:ss');返回结果 2021-03-14 00:00:00hive> select date_format('2019-06-29','yyyy-MM');返回结果 2019-06hive> sel...
2021-03-14 18:22:03
9018
原创 hive sql 中容易出错的点记录
1. group by 后接多个字段,表示将多个字段看作一个整体进行分组,各字段之间并无先后顺序。2. hive sql执行顺序 : group by>selectfrom ..on .. join .. where .. group by .. having .. select .. distinct .. order by..limit未完待续.........
2021-03-14 17:57:25
375
原创 hive sql 语句正确执行顺序
执行顺序:from ..on .. join .. .. where .. select .. group by .. having .. order by... limit ...map阶段from 加载,进行表的查找和加载 where过滤 select查询Reduce阶段group by :对map端发来的文件进行分组合并 order by : 对结果进行排序 limit 控制结果输出的行数案例:select dt, user_id, min(age)..
2021-03-14 16:52:17
8750
5
原创 sum(…) over(…) 连续求和分析函数
原表sum(mn_count) over( )sum(mn_count) over( partition byuserId)sum(mn_count) over( order by mn)sum(mn_count) over( partition byuserIdorder by mn)
2021-03-14 12:31:57
3844
2
转载 Hive数仓中存储格式ORC和Parquet,压缩方式LZO和Snappy
在数仓中,建议大家除了接口表(从其他数据库导入或者是最后要导出到其他数据库的表),其余表的存储格式与压缩格式保持一致。我们先来说一下目前Hive表主流的存储格式与压缩方式文件存储格式从Hive官网得知,Apache Hive支持Apache Hadoop中使用的几种熟悉的文件格式,如TextFile(文本格式),RCFile(行列式文件),SequenceFile(二进制序列化文件),AVRO,ORC(优化的行列式文件)和Parquet格式,而这其中我们目前使用最多的是TextFile,Se..
2021-03-08 10:51:16
11355
5
转载 Kafka常见面试题
事实表每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务所产生的数据,事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性纬度表的主键,而维度表包含事实记录的特性。事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与纬度表中对应项的相关索引字段之外的任何数据。 包含在事实数据表中的“...
2021-02-21 16:50:38
334
原创 Hive中反引号` ` 的作用
hive (default)> create table log(`line` string) ;注:语句中`line`加上反引号表示无论字段名line是否关键字都可以正常创建表格。
2021-02-21 16:50:02
2216
原创 maven中package和install的区别
这两个都是用来打包的。区别是package只是把包打在本项目target下。install会把包打在本项目target目录下,并安装到maven的本地仓库,其他maven项目也可以使用。
2021-02-14 11:18:42
1115
2
转载 hive的UDF实现类似oracle的decode函数功能
要求 : 让用hive实现类似orale的decode函数功能。 Oracle的decode函数语法:DECODE(value,if1,then1,if2,thne2,if3,then3,...else)。 首先涉及到的问题是输入参数的动态化,decode函数要求输入函数是偶数个,然后实现类似if,else的逻辑判断功能。这样的话用到了java的Object ... args 来传入多个参数,然后在方法中检测个数是否符合偶数个。选用Object类型的原因就是为了参数类型的动态识别。...
2021-02-08 16:01:47
1837
原创 as用法 : 重命名列名或表名
select后的字段是用来控制行字段(列名)的横向生成,group by后的字段是用来控制列数据的纵向生成。而as的作用是用来重命名列名的,所有无法对group by后的字段进行重命名,但可以对select后的字段进行重命名。注意:不能使用AS关键字来命名表别名在oracle中as可以给列取别名,但不能给表取别名,而空格可以给表取别名。空格在对列和对表取别名时和as用法一样...
2021-02-06 16:13:14
3563
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人