自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(191)
  • 收藏
  • 关注

原创 微服务-Gradle的入门和使用

Gradle的使用

2023-06-29 19:51:37 972

原创 解决Mac下载官网JDK速度过慢的问题

换了新电脑,用mac完去官网下载jdk,发现速度过于慢,要等非常久,为了解决这个问题,提供一个方法:将mac的网络换成手机热点,接着再去官网下载jdk1.8,速度快的飞起。

2023-05-20 11:26:15 2300 1

原创 阿里两道面试sql题

这句话的字面意思理解,统计到用户id,订单id的维度,筛选出订单金额超过1000的用户,再having count 取有超过3的数据。有用户user_id,支付金额pay_amount字段,统计支付金额前90%的用户id。例如总的支付金额是10000,A用户支付金额4000,B用户支付金额3000,C用户支付金额2000,那么这三个总的支付金额就占了前90%,把这三个用户输出就可。这里要统计前90%,所以要分成10个桶,取到前9个桶。输出:买家id,订单数,总订单金额,总订单金额top 3的买家。

2023-05-17 17:29:54 895

原创 Spark的运行流程

Spark的对于任务的运行流程是这样的:

2023-05-11 11:44:51 259

原创 hive数据倾斜场景以及方案

链接:https://blog.csdn.net/cys975900334/article/details/116802465。

2023-05-03 17:04:10 114

原创 sql:求波峰波谷

其中,lag函数,求改行所在的前n行的值,这里求得是price字段前一行的price。同理,lead函数,求该行所在的后一行。我们常见的股票会出现上下浮动,在浮动的过程中。现在要求的是数据中的波峰和波谷。波峰的值比两边所在的值要大,波谷所在的值比两边都要小。

2023-04-26 17:18:06 589

原创 HttpUtil工具类

http工具类

2023-03-08 22:04:14 151

原创 IDEA:外部引入jar包,打包失败,提示程序包找不到

IDEA打包,解决从导入外部包,程序包不存在的问题

2023-02-21 19:13:25 4025

原创 OLTP和OLAP的区别

概念

2022-07-27 11:45:49 396

原创 SpringBoot 多环境切换

springboot多环境

2022-07-05 13:07:14 362

原创 SpringBoot 松散绑定和JSR303校验

JSR303

2022-07-04 23:49:03 194

原创 SpringBoot:yaml配置注入bean

SpringBoot :yaml配置注入bean

2022-07-04 16:42:58 2986

原创 一道简单的sql练习题:统计客户数和订单数

select case when order_nums <= 5 then '0-5' when order_nums>=6 and order_nums<=10 then '6-10' when order_nums>=11 and order_nums<=20 then '11-20' else '20以上' end as sale_nums, count(1) as user_numsfrom( select user_id, .

2022-05-27 20:52:30 2306 1

原创 数仓业务上判断一个表的唯一主键是哪几个字段

平时业务量比较大,一张HIVE表里面的字段也比较多,如何判断所select 的这几个字段是这张表的唯一主键,也就是,选取这几个主键,可以唯一确定只有一行数据可以通过,select A,B,C from table group by A,B,C HAVING COUNT(1)>=2通过所选取的字段查看查询出来的数据有几条,如果只有一条,那么可以判断是唯一主键。...

2022-04-26 10:47:07 3575

原创 HIVE表拉链表全量表和增量表三种表获取历史至今的数据

HIVE拉链表,一般会有dp和dt两个可以卡,拉链表每天存储的是每天新增及变化的数据,如果要获得历史至今的最新数据,卡dp=active每日全量表,每天一份最新的完整数据,卡历史至今的一份全量数据,直接抽select MAX(dt) from table每日增量表,每天保存的是一份新增的数据,要卡历史至今的数据,用dt<MAX(dt)...

2022-04-24 22:55:19 2762

原创 JAVA接口继承接口

JAVA里面接口可以继承接口吗?答案是可以的。但是继承的话不是使用implements关键字,而是使用extends关键字。下面这么写代码是会报错的://这个代码肯定是会报错的,因为子接口继承父接口应该使用extendsinterface Animal{// 写一个抽象方法 void test();}interface Cat implements Animal{ }应该按照下面这么写:interface Animal{// 写一个抽象方法 void test();}i

2022-04-11 20:10:36 6808

原创 Spring基本入门

Spring基础入门一、Spring是什么二、Spring体系结构1. Data Access/Integration(数据访问/集成)2. Web 模块3. Core Container(Spring 的核心容器)4. AOP、Aspects、Instrumentation 和 Messaging5. Test 模块三、第一个Spring程序1. 创建Java类四、Spring IoC(控制反转)1.控制反转(IoC)2.依赖注入(DI)3.IoC 的工作原理4.IoC 容器的两种实现1.BeanFact

2022-04-11 17:29:17 653

原创 sql中的 where条件中AND、OR运算符的组合使用

我们有时候在限制条件的时候,where后的衔接条件用到AND 和OR一起出现的情况,这种情况往往会出现查询出来的结果和我们所要的结果不一致的场景。场景:输出昨天的数据和paid_sum(支付次数),check_sum(检测次数)(只要其中一个不为0)的数据:SELECT *FROM table.table_nameWHERE dt=sysdate(-1) AND (check_sum <> 0 OR paid_sum <> 0)如上面代码所示:需要将其进行用括号补

2022-02-28 16:28:31 2749

原创 拉链表取某一天的历史快照

拉链表在数仓的应用十分普遍。它会在原始的表字段里面添加两个新的字段:create_time和end_time这两个。这两个字段的日期代表的是这条数据的开始时间和结束时间,也就是数据的生命周期。我在开发的过程中会有这么一个问题,那就是我要取某一天的数据,有说法是create_time<=XXXX-XX-XX and end_time>=XXXX-XX-XX,也有说法说是:create_time<=XXXX-XX-XX and end_time>XXXX-XX-XX。区别在于end_t

2022-01-04 15:25:09 6408 4

原创 数据同步策略

一、业务数据库里面的数据每天需要同步到我们的数据仓库里面。根据数据量的大小,数据的变化情况,可以分成以下几类:1、全量表:存储完整的数据2、增量表:存储新增加的数据3、新增及变化表:存储新增加的数据和变化的数据4、特殊表:只需要存储一次的数据二、同步策略全量同步策略:每日全量,就是每天存储一份完整的数据,作为一个分区适用于表中数据量很小,每天可能会有数据新增或者数据修改的情形。增量同步策略:每日增量,就是每天存储一份增量数据,,作为一个分区适用于数据量大,每天都会向表中新增数据的场景(

2022-01-04 14:14:05 1079

原创 HIVE-字段类型造成的数据倾斜

在创建表的时候,往往会关联ID字段,ID字段的类型会有STRING和INT,BIGINT等等。底层会自动去关联STRING跟INT STRING跟BIGINT,但是会出现数据倾斜的问题。 所以尽量在创建表的时候,保持表的类型一致。在join的时候会减少数据倾斜的产生。...

2021-12-21 18:02:32 956

原创 SQL-COALEASE函数

COALESCE()函数主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:COALESCE(expression,value1,value2,value3,...,valuen)COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。如果expression不为空值则返回expression;否则判断value1是否是空值;

2021-11-29 10:29:44 1136

原创 SQL-UNION ALL操作

SQL中的UNION ALL的注意事项:UNION 操作符用于合并两个或多个 SELECT 语句的结果集,这里需要注意的是:UNION 内部的 SELECT 语句必须拥有相同数量的列;列也必须拥有相似的数据类型(实际非必须);同时,每条 SELECT 语句中列的顺序必须相同。一、表的结构数据准备如下1.test_union_1CREATE TABLE `test_union_1` ( `one` varchar(255) DEFAULT NULL, `two` varchar(255)

2021-11-25 18:42:37 21375 1

原创 Java实现链表(包括添加节点/打印输出/反转链表)

首先,自定义首先一个ListNodeDemo类,在里面私有化一个ListNode类,这个类代表的是链表的节点。public class LinkListDemo { //节点类 private class ListNode{ private Object data; private ListNode next= null; ListNode(){ data = null; } Lis

2021-11-14 17:16:13 1217

原创 LeetCode-234.回文链表

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。输入:head = [1,2,2,1]输出:true输入:head = [1,2]输出:false思路:这题和之前回文不同的地方在于他是链表,因此这里采用new一个数组来存储。然后再定义头尾指针,分别判断是否相等,如果不相等返回false。如果相等,返回true。/** * Definition for singly-linked list. * public cla

2021-11-14 10:36:39 333

原创 Scala-类型转换

当Scala 程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数值类型,这个就是自动类型转换(隐式转换)。数据类型按精度(容量)大小排序为:1)基本说明(1)自动提升原则:有多种类型的数据混合运算时,系统首先 自动将所有数据转换成精度大的那种数据类型 ,然后再进行计算。(2) 把精度大的数值类型赋值给精度小的数值类型时,就会报错 ,反之就会进行自动类型转换。(3) ( byte short )和 char 之间不会相互自动转换。(4) byte short char 他们三者可以计算,

2021-11-13 19:47:54 1031

原创 Scala-数据类型(基础概念+案例)

Scala数据类型数据类型整数类型(Byte、Short、Int、Long)字符类型(char)数据类型1)Scala中一切数据都是对象,都是Any的子类。2)Scala中数据类型分为两大类:数值类型(AnyVal)、引用类型(AnyRef),不管是值类型还是引用类型都是对象。3)Scala数据类型仍然遵守,低精度的值类型向高精度值类型,自动转换(隐式转换)4)Scala中的StringOps是对Java中的String增强5)Unit:对应Java中的void,用于方法返回值的位置,表示方法

2021-11-13 17:01:43 2688

原创 Mysql事务隔离级别基础

https://www.jianshu.com/p/4e3edbedb9a8

2021-11-13 10:58:30 446

原创 SQL高级功能-窗口函数及其经典题目

窗口函数1、窗口函数有什么用?2、什么是窗口函数?3、如何使用窗口函数1.专用窗口函数rank2、专用窗口函数rank, dense_rank, row_number的区别4、经典面试问题1、窗口函数有什么用?在日常工作中,经常会遇到需要在每组内排名,比如下面的业务需求:排名问题:每个部门按业绩来排名topN问题:找出每个部门排名前N的员工进行奖励面对这类需求,就需要使用sql的高级功能窗口函数了。2、什么是窗口函数?窗口函数,也叫OLAP函数(Online Anallytical Proce

2021-11-11 11:23:55 1677

原创 DataNode知识点的总结归纳

DataNodeDataNode工作机制数据完整性掉线时限参数设置小文件存档DataNode工作机制1)一个数据块在DataNode上以文件的形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据的长度,块数据的校验和,以及时间戳。2)DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有

2021-11-10 19:11:02 795

原创 NameNode的故障处理

NameNode故障后,可以采用如下两种方法恢复数据。方法一:将SecondaryNameNode中数据拷贝到NameNode存储数据的目录;kill -9 NameNode进程删除NameNode存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)[atguigu@hadoop102 hadoop-2.7.2]$ rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*拷贝SecondaryNam

2021-11-10 16:54:07 190

原创 一道百度SQL题:求相互关注的用户数

今天面了百度,有一道这样的SQL题,题目是有一个user表,这个user表有两个字段,from_user,to_user:from_userto_userABBAACBC其中第一行数据代表的是A关注B,第二行数据代表B关注A,那么就表示A和B互相关注。求出所有互相关注的人数。最终的SQL如下:select u1.from_user, u1.to_userFROM weibo_user u1 join weibo_user u2 on u

2021-11-09 20:23:19 2071

原创 Scala入门- 变量(基础+案例)

Scala-变量和数据类型2.1 注释2.2 变量和常量(重点)2.1 注释Scala注释使用和 Java 完全一样。注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。1)基本语法(1)单行注释://(2)多行注释:/* */(3)文档注释:/****/ 在IDEA中,多行注释的用法:打/*,接着回车。也可/**,按回车。代码规范:(1)使用一次 tab 操作,实现缩进,默认整体向右边移动,用 shift+tab 整体向左移(2)或者使

2021-11-06 15:17:06 625

原创 MapReduce核心原理

MapReduceMapReduce优缺点MapReduce优点MapReduce缺点MapReduce核心思想(重点)MapReduce优缺点MapReduce优点1 MapReduce易于编程它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的 PC机器上运行。也就是说你写一个分布式程序,跟写一个简单的串行程序是一模一样的。就是因为这个特点使得 MapReduce编程变得非常流行。2 良好的扩展性当你的计算资源不能得到满足的时候,你可以通过简单的增加机器 来扩展

2021-11-05 16:12:18 236

原创 HDFS的优缺点/体系及其运行原理

HDFSHDFS优缺点HDFS体系HDFS运行原理HDFS优缺点HDFS(Hadoop Distributed File System):它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。HDFS 的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。HDFS优点:1)高容错性:数据自动存为多个副本,它通过增加副本的形式,提高容错性,某一个副本丢失以后,可以自动恢复。2)适合处理

2021-11-05 14:06:52 1242

原创 Scala入门(详细笔记总结包括环境搭建)

Scala入门1.1概述1.1.1 为什么学习Scala1.1.2 Scala发展历史1.1概述1.1.1 为什么学习Scala1)Spark—新一代内存级大数据计算框架,是大数据的重要内容。2)Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。3))Spark的兴起,带动Scala语言的发展!1.1.2 Scala发展历史联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。马丁·奥德斯基是编译器及编程的狂

2021-11-04 20:32:22 1792

原创 Hadoop之Yarn的工作机制

YARN主要由 ResourceManager、 NodeManager、 ApplicationMaster和 Container等组件构成。YARN工作机制(1)MR 程序提交到客户端所在的节点。(2)YarnRunner 向ResourceManager 申请一个Application。(3)RM 将该应用程序的资源路径返回给YarnRunner。(4)该程序将运行所需资源提交到HDFS 上。(5)程序资源提交完毕后,申请运行mrAppMaster。(6)RM 将用户的请求初始化成一个T

2021-11-04 19:35:46 965

原创 NameNode/SecondaryNameNode和DataNode的工作机制

NN和2NN的工作机制DataNode工作机制思考:NameNode中的元数据是存储在哪里的?首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在内存中,一旦断电,元数据丢失,整个集群就无法工作了。因此产生在磁盘中备份元数据的FsImage。这样又会带来新的问题,当在内存中的元数据更新时,如果同时更新FsImage,就会导致效率过低,但如果不更新,就会发生一致性问题,一旦NameNode节点断

2021-11-04 19:27:44 186

原创 Hadoop之HDFS的读写流程(面试题)

HDFSHDFS的写流程HDFS的写流程1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。2)NameNode返回是否可以上传。3)客户端请求第一个 Block上传到哪几个DataNode服务器上。4)NameNode返回3个DataNode节点,分别为dn1、dn2、dn3。5)客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用d

2021-11-04 19:05:07 274

原创 一道京东的SQL面试题:学生成绩表:id,科目,成绩,求总和

需求:有一张学生的成绩表,这张表有如下的字段:id,name,score,求查询结果是:id,name,score,以及该学生的所有科目的总和数据准备如下:首先创建表:create table stu_score(name varchar(20),subject varchar(20),score int(8))engine=innodb default charset=utf8;创建好表之后,插入数据:insert into stu_score values ('张三','语文',80

2021-11-04 11:14:31 2138

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除