自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java中的内部类与匿名内部类详解

内部类与匿名内部类详解

2022-08-01 14:36:35 43

原创 最真实的大数据SQL面试题(二)

真实数仓sql面试

2022-07-28 19:15:03 530

原创 最真实的大数据SQL面试题(一)

真实数仓sql面试题(一)

2022-07-28 18:27:09 547

原创 kafka为什么使用消费者组

目录1- 消费者组的特点2- 消费者组的优势2.1- 高性能2.2- 消费模式灵活2.3- 故障容灾3 小结1- 消费者组的特点这是 kafka 集群的典型部署模式。消费组保证了:一个分区只可以被消费组中的一个消费者所消费一个消费组中的一个消费者可以消费多个分区,例如 C1 消费了 P0, P3。一个消费组中的不同消费者消费的分区一定不会重复,例如:所有消费者一起消费所有的分区,例如 C1 和 C2 共同完成了对 P0、P1、P2、P3 的消费。在不同消费组中,每个消费组都会消费所有

2022-05-02 21:38:27 454

原创 Flink流批一体在小米的实践

目录0- 前言1- 小米的大数据发展演变2- 流批一体的平台建设2.1- 元数据管理2.2- 权限管理2.3- 作业调度2.4- Flink 的生态建设3- 流批一体应用场景4- 未来规划0- 前言摘要:本文整理自小米软件开发工程师金风在 Flink Forward Asia 2021 流批一体专场的演讲。本篇内容主要分为四个部分:1- 小米的大数据发展演变2019 年之前,小米的实时计算主要以 SparkStreaming 为主,少部分 Storm,离线计算以 Spark 为主。201

2022-04-18 13:32:08 212

原创 Hadoop生态里,为什么Hive活了下来

目录0- 前言1- Hive Metastore 做了什么?1.1- 虚拟化1.2- 可发现性1.3- 模式演化1.4- 性能2- Hive 会在下一次革命中幸存吗?2.1- 开放表格式2.2- 数据目录2.3- 可观察性工具3- 结语0- 前言Apache Hive 在 2010 年作为 Hadoop 生态系统的一部分崭露头角,当时 Hadoop 是一种新颖而创新的大数据分析方法。Hive 的功能就是实现 Hadoop 的 SQL 接口。它的架构包括两个主要服务:一是查询引擎:负责执行 SQL 语句;

2022-04-15 13:41:31 82

原创 阿里云flink平台之电商场景实战之订单与销量统计

目录1- 背景信息2- 业务架构图3- 准备工作4- 编写业务逻辑5- 难点解析6- DEMO示例以及源代码7- 常见问题1- 背景信息以下案例是实时计算的合作伙伴袋鼠云通过阿里云实时计算来完成电商订单管理的案例。2- 业务架构图业务流程:使用数据传输服务DTS把您的数据同步到大数据总线(DataHub)。阿里云实时计算订阅大数据总线(DataHub)的数据进行实时计算。将实时数据插入到RDS的云数据库。通过阿里云的DataV或者是其他的大屏完成数据展示。3- 准备工作将RDS M

2022-04-11 18:30:26 1249

原创 hiveSQL的小数取整

目录0- 前言1- 四舍五入取整截取2- 向下取整截取3- 向上取整截取4- 舍弃小数取整5- 举例0- 前言hive 里的向上取整、向下取整、四舍五入取整的实例.以及精确保留小数位数。1- 四舍五入取整截取select round(54.56,0)round至少保留一位小数。55.02- 向下取整截取SELECT FLOOR(54.56)543- 向上取整截取SELECT CEILING(13.15)144- 舍弃小数取整select cast(123.5678 as i

2022-01-06 10:34:05 660

原创 hiveSQL优化思路(划重点)

目录0- 描述1- HQL语句优化1.1- 使用分区剪裁、列剪裁1.2- 尽量不要用COUNT DISTINCT1.3- 使用with as1.4- 大小表的join1.5- 数据倾斜0- 描述Hive的优化主要分为:配置优化、SQL语句优化、任务优化等方案。其中在开发过程中主要涉及到的可能是SQL优化这块。优化的核心思想是:减少数据量(例如分区、列剪裁)避免数据倾斜(例如加参数、Key打散)避免全表扫描(例如on添加加上分区等)减少job数(例如相同的on条件的join放在一起作为一个任务

2021-12-30 18:21:03 245

原创 hiveSQL面试题24__N指标--累计去重

目录0- 描述1- 问题一0- 描述描述:假设表A为事件流水表,客户当天有一条记录则视为当天活跃。表A: time_id user_id2018-01-01 10:00:00 0012018-01-01 11:03:00 0022018-01-01 13:18:00 0012018-01-02 08:34:00 0042018-01-02 10:08:00 0022018-01-02 10:40:00 0032018-01-02

2021-12-28 19:20:29 395

原创 hiveSQL面试题23__等值连接--最近匹配

目录0- 描述1- 问题一0- 描述描述:表t23_1和表t23_2通过a和b关联时,有相等的取相等的值匹配,不相等时每一个a的值在b中找差值最小的来匹配。t23_1和t23_2为两个班的成绩单,t23_1班的每个学生成绩在t23_2班中找出成绩最接近的成绩。表t23_1:a中无重复值a1245810表t23_2:b中无重复值b23711131- 问题一描述:单向最近匹配输出结果如下所示:注意:b的值可能会被丢弃a b1 22 24

2021-12-28 19:17:45 234

原创 hiveSQL面试题22__非等值连接--范围匹配

目录0- 描述1- 问题一0- 描述描述:表f是事实表,表d是匹配表,在hive中如何将匹配表中的值关联到事实表中?表d相当于拉链过的变化维,但日期范围可能是不全的。表f:date_id p_id 2017 C 2018 B 2019 A 2013 C表d:d_start d_end p_id p_value 2016 2018 A 1 2016 2018 B 2 2008

2021-12-28 18:49:51 159

原创 hiveSQL面试题21__时间序列--取最新完成状态的前一个状态

目录0- 描述1- 问题一2- 问题二0- 描述描述:时间序列–取最新完成状态的前一个状态表名:t21表字段及内容:date_id a b2014 1 A2015 1 B2016 1 A2017 1 B2013 2 A2014 2 B2015 2 A2014 3 A2015 3 A2016 3 B2017 3 A

2021-12-28 18:40:07 141

原创 hiveSQL面试题20__时间序列--补全数据

目录0- 描述1- 问题一0- 描述描述:时间序列–补全数据表名:t20表字段及内容:date_id a b c2014 AB 12 bc2015 23 2016 d2017 BC 1- 问题一描述:如何使用最新数据补全表格输出结果如下所示:date_id a b c2014 AB 12 bc2015 AB 23 bc2016 AB

2021-12-28 18:30:19 243

原创 hiveSQL面试题19__时间序列--取多个字段最新的值

目录0- 描述1- 问题一0- 描述描述:时间序列–取多个字段最新的值表名:t19表字段及内容:date_id a b c2014 AB 12 bc2015 23 2016 d2017 BC 1- 问题一描述:如何一并取出最新日期输出结果如下所示:date_a a date_b b date_c c2017 BC 2015 23 2016

2021-12-27 16:52:39 182

原创 hiveSQL面试题18__时间序列--构造连续日期

目录0- 描述1- 问题一0- 描述描述:时间序列–构造连续日期表名:t18表字段及内容:a b c101 2018-01-01 10101 2018-01-03 20101 2018-01-06 40102 2018-01-02 20102 2018-01-04 30102 2018-01-07 601- 问题

2021-12-27 16:32:45 89

原创 hiveSQL面试题17__时间序列--构造累积日期

目录0- 描述1- 问题一0- 描述描述:时间序列–构造累积日期表名:t17表字段及内容:date_id2017-08-012017-08-022017-08-031- 问题一描述:每一日期,都扩展成月初至当天输出结果如下所示:date_id date_to_day2017-08-01 2017-08-012017-08-02 2017-08-012017-08-02 2017-08-022017-08-03 2017-08-012017-08-03 20

2021-12-27 16:08:23 90

原创 hiveSQL面试题16__时间序列--构造日期

目录0- 描述1- 问题一0- 描述描述:时间序列–构造日期1- 问题一描述:直接使用SQL实现一张日期维度表,包含以下字段:create table if not exists dim_date ( date_id string comment '日期(yyyymmdd)' ,datestr string comment '日期(yyyy-mm-dd)' ,date_name

2021-12-27 11:49:20 246

原创 hiveSQL面试题15__时间序列--进度及剩余

这里写目录标题0- 描述1- 问题一0- 描述描述:时间序列–进度及剩余表名:t15表字段及内容:date_id is_work2017-07-31 12017-08-01 12017-08-02 12017-08-03 12017-08-04 12017-08-05 02017-08-06 01- 问题一描述:求每天的累计周工作日,剩余周工作日输出结果如下所示:date_id wee

2021-12-27 11:19:34 117

原创 hiveSQL面试题14__业务逻辑的分类与抽象--时效

目录0- 描述1- 问题一0- 描述描述:业务逻辑的分类与抽象–时效日期表:d_date表字段及内容:date_id is_work2017-04-13 12017-04-14 12017-04-15 02017-04-16 02017-04-17 1工作日:周一至周五09:30-18:30客户申请表:t14表字段及内容:a b c1 申请 2017-04-14 18:03

2021-12-24 18:26:55 316

原创 hiveSQL面试题13__抽象分组--断点排序

目录0- 描述1- 问题一0- 描述描述:抽象分组–断点排序表名:t13表字段及内容:a b2014 12015 12016 12017 02018 02019 -12020 -12021 -12022 12023 11- 问题一描述:断点排序输出结果如下所示:a b c 2014 1 12015 1 22016 1 32017 0 12018 0 22019 -1 1

2021-12-24 18:16:58 289

原创 hiveSQL面试题12__多容器--转多行

目录0- 描述1- 问题一0- 描述描述:多容器–转多行表名:t12表字段及内容:a b c001 A/B 1/3/5002 B/C/D 4/51- 问题一描述:转多行输出结果如下所示:a d e001 type_b A001 type_b B001 type_c 1001 type_c 3001 type_c 5002

2021-12-24 18:01:55 360

原创 hiveSQL面试题11__多容器--成对提取数据

目录0- 描述1- 问题一0- 描述描述:多容器–成对提取数据表名:t11表字段及内容:a bA/B 1/3B/C/D 4/5/21- 问题一描述:成对提取数据,字段一一对应输出结果如下所示:a bA 1B 3B 4C 5D 2参考答案:select a_inx, b_inxfrom ( select a, b, a_id,

2021-12-24 15:36:30 463

原创 hiveSQL面试题10__容器--反转内容

目录0- 描述1- 问题一2- 问题二0- 描述描述:容器–反转内容表名:t10表字段及内容:aAB,CA,BADBD,EA1- 问题一描述:反转逗号分隔的数据:改变顺序,内容不变输出结果如下所示:BAD,CA,ABEA,BD参考答案:select a, concat_ws(",",collect_list(str))from ( select a, str from t10 lateral view explode(split(r

2021-12-24 15:24:46 391

原创 hiveSQL面试题9__不使用distinct或group by去重

目录0- 描述1- 问题一0- 描述表名:t9表字段及内容:a b c d2014 2016 2014 A2014 2015 2015 B1- 问题一描述:不使用distinct或group by去重输出结果如下所示:2014 A2016 A2014 B2015 B参考答案:select t2.year ,t2.numfrom ( select * ,row_number() over (part

2021-12-24 11:39:34 266

原创 hiveSQL面试题8__模拟循环操作

目录0- 描述1- 问题一0- 描述表名:t8表字段及内容:a101101011- 问题一描述:如何将字符’1’的位置提取出来输出结果如下所示:1,3,42,4参考答案:select a, concat_ws(",",collect_list(cast(index as string))) as resfrom ( select a, index+1 as index, chr from (

2021-12-24 11:17:29 162

原创 hiveSQL面试题7__合并与拆分

目录0- 描述1- 问题一2- 问题二0- 描述表名:t7表字段及内容:a b2014 A2014 B2015 B2015 D1- 问题一描述:合并输出结果如下所示:2014 A、B2015 B、D参考答案:select a, concat_ws('、', collect_set(t.b)) bfrom t7group by a;2- 问题二问题描述:将分组合并的结果拆分出来参考答案:select t.a, dfrom(

2021-12-24 10:57:20 193

原创 hiveSQL面试题6__数据扩充与收缩

目录0- 描述1- 问题一2- 问题二3- 问题三4- 问题四5- 问题五0- 描述表名:t6表字段及内容:a3241- 问题一描述:数据扩充输出结果如下所示:a b3 3、2、12 2、14 4、3、2、1参考答案:select t.a, concat_ws('、',collect_set(cast(t.rn as string))) as bfrom( select t6.a, b.rn from t

2021-12-23 19:11:39 177

原创 hiveSQL面试题5__产生连续数值

目录0- 描述0- 描述期望输出结果如下所示:12345...100参考答案:不借助其他任何外表,实现产生连续数值此处给出两种解法,其一:selectid_start+pos as idfrom( select 1 as id_start, 1000000 as id_end) m lateral view posexplode(split(space(id_end-id_start), '')) t as pos, val其二:sele

2021-12-23 15:49:45 845

原创 hiveSQL面试题4__窗口大小控制

目录0- 窗口大小控制1- 问题一2- 问题二0- 窗口大小控制表名:t4表字段及内容:a b c2014 A 32014 B 12014 C 22015 A 42015 D 31- 问题一描述:按a分组按b字段排序,对c取前后各一行的和输出结果如下所示:a b sum_c2014 A 12014 B 52014 C 12015 A 32015 D 4参考答案:select a,

2021-12-23 15:32:22 75

原创 hiveSQL面试题3__累计求值

目录0- 累计求值1- 问题一2- 问题二3- 问题三4- 问题四0- 累计求值表名:t3表字段及内容:a b c2014 A 32014 B 12014 C 22015 A 42015 D 31- 问题一描述:按a分组按b字段排序,对c累计求和输出结果如下所示:a b sum_c2014 A 32014 B 42014 C 62015 A 42015 D 7参考答案:select

2021-12-23 15:13:41 325

原创 hiveSQL面试题2__排名中取他值

目录0- 描述1- 问题一2- 问题二3- 问题三4- 问题四5- 问题五0- 描述表名:t2表字段及内容:a b c2014 A 32014 B 12014 C 22015 A 42015 D 31- 问题一描述:按a分组取b字段最小时对应的c字段输出结果如下所示:a min_c2014 32015 4参考答案:select a, c as min_cfrom( select a,

2021-12-23 14:31:20 261

原创 hiveSQL面试题1__行列转换

目录0- 描述1- 问题一2- 问题二3- 问题三0- 描述描述:表中记录了各年份各部门的平均绩效考核成绩。表名:t1表结构:a -- 年份b -- 部门c -- 绩效得分表内容: a b c2014 B 92015 A 82014 A 102015 B 71- 问题一问题描述:将上述表内容转为如下输出结果所示: a col_A col_B2014 10 92015 8 7参考答案:select a, ma

2021-12-23 13:48:43 140

原创 数仓开发的10个陷阱

数仓健壮10要素!

2021-12-10 18:33:29 1890

转载 数据研发工程师面试全过程(个人面试)

终极大数据研发工程师面试!

2021-12-02 20:28:02 1423

原创 Java接口幂等性的几种实现方法

目录0- 什么是幂等性1- 方式1(普通方式,不推荐)2- 方式2(jvm加锁方式)3- 方式3(悲观锁方式)4- 方式4(乐观锁方式)5- 方式5(唯一约束方式)6- 总结0- 什么是幂等性举个例子:投资理财的案例,用户可以充值、投资、提现,使用第三方支付进行充值,过程如下:step1:用户网站中输入充值金额step2:后端创建充值订单入库,此时订单是待支付状态step3:跳转到第三方支付页面,输入银行卡,然后确认支付step4:第三方支付通过我方提供的回调接口异步将充值结果告知我方问题出

2021-11-24 14:15:19 1744

原创 基于OneData的数据仓库建设(阿里巴巴大数据之路)

目录1- 指导思想2- 数据调研2.1- 业务调研2.2- 需求调研3- 架构设计3.1- 数据域的划分3.2- 构建总线矩阵4- 指标体系搭建4.1- 基本概念4.2- 操作细则5- 模型设计5.1- 数据分层5.2- 接入层(ods)5.3- 明细层(dwd)5.4- 汇总层(dws)5.5- 数据集市层(dwm)5.6- 应用层(app)6- 维度设计6.1- 维度设计基本方法6.2- 规范化和反规范化6.3- 一致性维度和交叉探查6.4- 维度整合6.5- 拉链表6.6- 微型维度6.7- 递归层次

2021-11-22 19:23:03 2012

转载 MapReduce细致讲解(数据开发面试必问)

目录1- MapReduce1.1- MapReduce 设计构思2- MapReduce 编程规范3- Mapper以及Reducer抽象类介绍4- WordCount示例编写5- WordCount示例编写6- MapReduce的运行机制详解6.1- MapTask 工作机制6.2- ReduceTask 工作机制6.3- Shuffle 过程7- Reduce 端实现 JOIN7.1- 需求7.2- 实现步骤8- Map端实现 JOIN8.1- 概述8.2- 概述9- 社交粉丝数据分析9.1- 需求

2021-11-22 16:18:44 141

原创 Java中使用BufferedReader的readLine()方法和read()方法来读取文件内容

目标:读取文件编程时,有很多时候需要读取本地文件,下面介绍一下读取方式:读单行文件上代码:1 package com; 2 import java.io.*; 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import javax.print.DocFlavor.CHAR_ARRAY; 7 8 import com.google.common.primitives.Chars; 9 /*10 1、首先.

2021-11-11 19:56:36 1235

原创 MapReduce的Join解析(Java代码实现map-join)

目录0- 引言1- Reduce Join(会出现数据倾斜)2- Map Join0- 引言在hadoop的mapreduce中,数据通过map拉取并打标签,之后通过shuffle过程到reduce端关联得到结果的join称为reduce-join。只在map端关联得到结果的join称为map-join。1- Reduce Join(会出现数据倾斜)通过将关联条件作为Map输出的key,将两表满足Join条件的数据并携带数据所来源的文件信息,发往同一个ReduceTask,在Reduce中进行

2021-11-10 18:28:42 2855

空空如也

空空如也

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

TA关注的人

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