
sql
文章平均质量分 72
为笔者实践总结和问题总结
扫地增
莫问,问就是无敌
展开
-
【mysql实践】如何查看阿里云RDS的MySQL库中的binlog日志
此次操作仅为备忘,也希望这篇【mysql实践】如何查看阿里云RDS的MySQL库中的binlog日志 对大家有帮助。原创 2023-07-07 18:28:00 · 4177 阅读 · 1 评论 -
mysql 解析json字符串、数组字符串、json数组字符串
这是目前笔者使用JSON_EXTRACT函数的一些浅见,欢迎大家在评论区,交流经验和问题。原创 2023-05-16 10:05:20 · 6923 阅读 · 1 评论 -
mysql8之前如何实现row_number() over(partition by xxx order by xxx asc/desc)
学学其他大佬我们也来总结总结公式要想实现row_number() over(partition by 分组字段 order by 排序字段 desc)set @分组字段 = null;set @顺序字段 = 0;原创 2023-05-19 13:31:48 · 2598 阅读 · 1 评论 -
mysql类型转换函数使用小记
1 常用转换函数介绍MySQL数据库中常用类型转换函数有两个一个是CAST函数,另一个是CONVERT函数。2 使用说明2.1 语法CAST(expr AS type)CONVERT(expr,type) CONVERT(expr USING transcoding_name)2.2 参数介绍MySQL类型转换函数参数 : CAST(xxx AS 类型) , CONVERT(xxx,类型) 这个类型 可以是以下值其中的 一个: BINARY[(N)] CHAR[(N)]原创 2021-10-14 09:47:49 · 623 阅读 · 1 评论 -
SparkSql报错——记java.io.IOException: Illegal type id 0. The valid range is 0 to -1报错
报错现象21/07/03 09:44:02 WARN scheduler.TaskSetManager: Lost task 40.0 in stage 1.0 (TID 101, bj00-a-080-024-bdy.iyunxiao.com, executor 2): java.io.IOException: Illegal type id 0. The valid range is 0 to -1 at org.apache.orc.OrcUtils.isValidTypeTree(OrcUtil原创 2021-07-05 12:04:16 · 1630 阅读 · 1 评论 -
21个写好SQL的习惯(建议收藏)
前言每一个好习惯都是一笔财富,本文分SQL后悔药, SQL性能优化,SQL规范优雅三个方向,分享写SQL的21个好习惯,谢谢阅读,加油哈~1. 写完SQL先explain查看执行计划(SQL性能优化)日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。explain select userid, name, age from user where userid =10086 or age =18;2. 操作dele原创 2021-07-01 12:22:00 · 456 阅读 · 3 评论 -
什么是同构与异构?及在不同背景下的理解
同构与异构的基本理解异构:多个不同类型的物体参与完成某一件事情,异构系统的各个组成部分具有自身的自治性,实现数据共享的前提下,仍保留有自己的应用特性,完整特性,安全特性。同构:多个相同类型的物体参与完成某一件事情。数据源中的同构与异构同构数据源:如果你需要讨论一群鸟类或者一批飞机,那么这样的数据是同构的,比如包含鸟类的数组 [Bird] 和包含飞机的数组[Airplane]。异构数据源:有时候你想探讨的是这些空中家伙的共性 “飞翔”,因此你的数据源可能同时包含 Bird和 Airpl原创 2021-06-17 12:15:56 · 32821 阅读 · 3 评论 -
HiveSql&SparkSql —— 使用left semi join做in、exists类型子查询优化
LEFT SEMI JOIN(左半连接)介绍SEMI JOIN (即等价于LEFT SEMI JOIN)最主要的使用场景就是解决EXISTS IN。LEFT SEMI JOIN(左半连接)是 IN/EXISTS 子查询的一种更高效的实现。LEFT SEMI JOIN虽然含有LEFT,但其实现效果等价于INNER JOIN,但是JOIN结果只取原左表中的列。优化实例实例表准备:CREATE TABLE test.user1( `id` bigint)ROW FORMAT DELIMITED原创 2021-06-07 14:25:37 · 2778 阅读 · 1 评论 -
Hql&SparkSql——正则关键字的使用(like、rlike、regexp、regexp_replace、regexp_extract)
文章目录简述正则的通配符简介正则表达式的符号及意义字符簇:各种操作符的运算优先级:Hql、SparkSql支持的正则关键字LIKERLIKEREGEXPREGEXP_REPLACEREGEXP_EXTRACT特别说明简述笔者在最近的工作中使用的较为频繁,特此做下总结,最近遇到的某些数据的值十分脏乱,用正则表达式的话会让语句显得特别精简,也可以用各种字符串截取函数嵌套处理(必须要有一定规律),总结一下经常用到的几个。正则的通配符简介正则表达式的符号及意义通配符意义\做为转义原创 2021-06-05 15:52:03 · 10915 阅读 · 1 评论 -
HiveSql--基本运算符实战及注意点总结
文章目录关系运算1、等值比较: =2、不等值比较: <>3、小于比较: <4、小于等于比较: <=5、大于比较: >6、大于等于比较: >=7、空值判断: IS NULL8、非空判断: IS NOT NULL9、LIKE比较: LIKE10、JAVA的LIKE操作: RLIKE11、REGEXP操作: REGEXP数学运算:1、加法操作: +2、减法操作: -3、乘法操作: *4、除法操作: /5、取余操作: %6、位与操作: &7、位或操作: |8、位异或操作:原创 2021-05-29 11:24:13 · 2121 阅读 · 1 评论 -
HiveSql&SparkSql—COUNT(DISTINCT ) OVER (PARTITION BY )报错解决方案
背景:笔者在为公司搭建学生知识点画像时遇到了这种场景,在使用Spark DataFrame开发时,发现count(distinct user_id) over(partition by knowledge_id order by exam_time desc)时报错。如下:select count(distinct user_id) over(partition by knowledge_id order by exam_time desc)from exam_knowledge_detail原创 2021-05-27 18:37:34 · 7068 阅读 · 10 评论 -
hive中如何将13位bigint类型的时间戳的转化为毫秒标准时间格式
首先,我们先了解13位时间戳,13位的时间戳其实数据的时间单位就是ms。基于此我们来分析问题原因和实现方式。要点:13位时间戳因为时间单位为毫秒所以我们可以很容易知道转化成标准毫秒时间格式毫秒部分必然与13位时间戳一致。举个例子方便大家理解。bigint(13):1571709884123毫秒时间标准格式:2019-10-22 10:22:44.123解决方案:首选方案:那么就此我们开始分析我们该如何实现,首先容易想到的就是hive中默认的转换函数FROM_UNIXTIME(unix原创 2021-05-20 15:07:57 · 7955 阅读 · 12 评论 -
SQL DDL—— drop、truncate和delete(mysql)的区别理解小记
需要注意的是Hive是数据仓库,存储格式是文本,不支持行级别的更新删除和插入。所以在Hive中,只有drop table、truncate操作,没有delete操作。Drop语法及注意点:DROP TABLE [IF EXISTS] table_name [PURGE];DROP TABLE命令将会删除这个表的元数据和数据,如果是内部表且配置了Trash并且PURGE没有指定数据将会被移动到当前目录的.Trash下,元数据会直接被删除,若是外部表,数据依然在文件系统中,只是删除元数据。若是使.原创 2021-05-18 10:57:55 · 980 阅读 · 1 评论 -
hivesql -- array_contains()函数使用
某个字段条件过多,查询条件失效select * from login where dt='20130101' and (ver !='3.1' or ver !='3.2' or ver != '4.0' or ver != '5.2');select * from login where dt='20130101' and (ver !='3.1' and ver !='3.2'原创 2021-04-15 19:11:50 · 46591 阅读 · 4 评论 -
spark-sql COALESCE()函数解析用法——多字段优先级选择非空字段作为值
简介:很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用,其实使用CASE WHEN THEN ELSE END 或者IF(column1 IS NULL,column2,column1)本文主要讲解其中的一些基本使用:COALESCE()函数:主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:COALESCE ( expression原创 2021-03-10 18:36:04 · 7141 阅读 · 4 评论 -
hive实现数组中元素拼接为一个字符串
我们有些时候没法使用 集合类型,却要提供所有元素。我可以使用concat_ws("||",collect_set(字段))实现with price_group_01 as(select partner_id, collect_set(pgd) as pgd_setfrom (select distinct partner_id, concat(division,'-',price_group_description) as pgd from ccsd.原创 2021-02-05 15:34:45 · 2334 阅读 · 1 评论 -
hive sql——窗口函数使用实战小结
hive推出的窗口函数功能是对hive sql的功能增强,确实目前用于离线数据分析逻辑日趋复杂,很多场景都需要用到。用于实现分组内所有和连续累积的统计。一、什么是窗口函数1、窗口函数指定了函数工作的数据窗口大小(当前行的上下多少行),这个数据窗口大小可能会随着行的变化而变化。2、窗口函数对于每个组返回多行,组内每一行对应返回一行值。二、窗口函数介绍(一)、聚合函数: 1.sum(col) over() : 分组对col累计求和,over() 中的语法如下 2.count(col) ov.原创 2021-01-12 18:47:18 · 1426 阅读 · 1 评论 -
hive sql——hplsql命令行
PL/HQL主要是通过命令行工具来执行一个SQL查询语句或者是一个SQL脚本。进入$HIVE_HOME/bin/,执行./ hplsql即可显示命令行的用法:./hplsql usage: hplsql -d,--define <key=value> 变量替换,例如-d A=B或——define A=B -e HPL/SQL命令行参数 -f HPL原创 2021-01-06 14:58:50 · 980 阅读 · 2 评论 -
hive sql alter table 修改表操作小记
ALTER TABLE仅仅会修改表的元数据,但是不会对表数据本身作任何修改有全量表如下:create external table test.class_info( class string, student array<string>, user_info map<string, int>, position struct<province:string, city:string, district:string>)row format delimi.原创 2021-01-06 12:11:32 · 4533 阅读 · 4 评论 -
hive sql数据倾斜——大表join小表如何使用map join
Map Join是Hive的一种优化操作,其适用于小表JOIN大表的场景,由于表的JOIN操作是在Map端且在内存进行的,所以其并不需要启动Reduce任务也就不需要经过shuffle阶段,从而能在一定程度上节省资源提高JOIN效率一、mapjoin的使用场景:关联操作中有一张表非常小不等值的链接操作二、具体使用:方法一:在Hive0.11前,必须使用MAPJOIN来标记显示地启动该优化操作,由于其需要将小表加载进内存所以要注意小表的大小SELECT/*+MAPJOIN(smallta.原创 2021-01-05 16:55:14 · 6327 阅读 · 3 评论 -
Hive建表,字段中使用集合map、array、struct类型时,建表语句应如何指定集合数据中的分隔符?
Hive中使用textfile建表,存在map、array、和struct集合类型,那如果同时存在这三种格式时,建表语句的分隔符应该怎么指定呢?一、实例:1、建表语句create external table test.class_info( class string, student array<string>, user_info map<string, int>, position struct<province:string, city:string, d原创 2021-01-05 15:14:32 · 4037 阅读 · 2 评论 -
Clickhouse 时间日期函数实战总结
注:所有的时间日期函数都可以在第二个可选参数中接受时区参数。示例:Asia / Yekaterinburg。在这种情况下,它们使用指定的时区而不是本地(默认)时区。仅支持与UTC相差一整小时的时区。localhost :) select toDateTime(146600280) AS time,toDateTime(146600280,'Asia/Yekaterinburg') AS time_asia,toDateTime(146600280,'US/Samoa') AS time_us,toDa.原创 2020-12-11 16:19:33 · 31336 阅读 · 2 评论 -
Clickhouse 表相关操作小记
运行环境:[xxx@xxx ~]$ cat /etc/centos-releaseCentOS Linux release 7.8.2003 (Core)查看clickhouse版本Clickhouse> select version(); SELECT version() ┌─version()─┐│ 20.5.2.7 │└───────────┘ 1 rows in set. Elapsed: 0.001 sec. clickhouse表操作建表Clickhou原创 2020-12-05 18:50:42 · 5066 阅读 · 3 评论 -
clickhouse分区相关操作小记
废话不多说直接上操作:创建分区表示例一:函数式分区Clickhouse> create table visits(userid int,visitdate date,website String) engine=MergeTree() PARTITION BY toYYYYMM(visitdate) order by userid; CREATE TABLE visits( `userid` int, `visitdate` date, `website` Str原创 2020-12-05 17:00:50 · 6767 阅读 · 2 评论 -
mysql 查询结果补0的方法
Mysql补零的方法select lpad(IdcardNo,8,0) from user;这里就是查询user表中的ID卡号,不足8位的补零原创 2020-07-21 14:40:18 · 3521 阅读 · 1 评论 -
hivesql date_trunc()函数小注
本文章向大家介绍Hive date_trunc函数,主要包括Hivedate_trunc函数使用实例,应用技巧,基本知识点总结和需要注意的事项,具有一定的参考价值,需要的朋友可以参考一下。该函数 date_trunc 在概念上与trunc 数字函数相似 。date_trunc(' field ',source)source 是 timestamp 或 interval类型的值表达式 。(日期 和 时间类型的值 分别自动转换为 时间戳 或间隔 。) 字段 选择截断输入值的.原创 2020-09-16 09:39:28 · 12125 阅读 · 1 评论 -
hive中常用的日期表达方式
注意 MM,DD,MO,TU 等要大写Hive 可以在 where 条件中使用 case when已知日期要求日期语句结果本周任意一天本周一select date_sub(next_day(‘2016-11-29’,‘MO’),7) ;2016-11-28本周任意一天上周一select date_sub(next_day(‘2016-11-29’,‘MO’),14) ;2016-11-21本周任意一天本周二select date_sub(next_.原创 2020-09-16 09:39:52 · 1255 阅读 · 1 评论 -
spark任务shuffle溢出报错处理: Missing an output location for shuffle 0
执行数据量较大的spark任务时经常会出现MetadataFetchFailedException:org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 10at org.apache.spark.MapOutputTracker$$anonfun$convertMapStatuses$2.apply(MapOutputTracker.scala:867)at org原创 2020-09-16 09:43:24 · 3721 阅读 · 1 评论 -
sql中的几种join 及 full join问题
【注意】:Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+ union+右外连接实现初始化SQL语句:/*join 建表语句*/drop database if exists test;create database test;use test; /* 左表t1*/drop table if exists t1;create table t1 (id int not null,name varchar(20));insert in原创 2020-09-16 09:42:26 · 21918 阅读 · 3 评论