自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(197)
  • 资源 (5)
  • 收藏
  • 关注

原创 hive 中正则表表达式使用

hive 正则表达式总结

2023-09-14 20:10:28 849

原创 hive sql之将一行中的时间范围转成多行

二、hive sql 开发,其中主要应用hive 关键算子repeat 将特定开始时间结束时间生成重复的几个连续字符。lateral view posexplode(split(repeat_num,'&'))t as row_index,一、生成hive 临时表其中date_time 包含其实日期和结束日期。new_date将特定字符打成多行,并且记录打成多行其对应的行号。date_add 在开始时间加上对应行号生成日期。

2023-03-15 17:20:10 771 1

原创 linux 下命令杂记

linux 命令自己杂记

2022-12-08 10:54:54 453

原创 Hive、Spark SQL任务参数调优回顾

待todo

2022-03-02 15:35:46 2171

原创 hive explode 使用

hive explode 使用和行转列的两种写法

2022-02-23 17:21:22 849

原创 hive with as的测试使用记录

with table1 as(select 1 as t1_id, ‘小满t1_1’ as name, 100 as oldunion allselect 2 as t1_id, ‘小满t1_2’ as name, 100 as oldunion allselect 3 as t1_id, ‘小满t1_3’ as name, 100 as oldunion allselect 4 as t1_id, ‘小满t1_4’ as name, 100 as old),table2 as(sel

2021-12-28 19:37:13 837

原创 hive 索引应用

1、背景Hive从0.7.0版本开始加入了索引,目的是提高Hive表指定列的查询速度。没有索引的时候,Hive在执行查询时需要加载整个表或者整个分区,然后处理所有的数据,但当在指定列上存在索引,再通过指定列查询时,那么只会加载和处理部分文件。此外,同传统关系型数据库一样,增加索引在提升查询速度的同时,会额外消耗资源去创建索引和需要更多的磁盘空间存储索引。2、原理和机制Hive的索引其实是一张索引表(Hive的物理表),在表里面存储索引列的值,该值对应的HDFS的文件路径,该值在数据文件中的偏移量。当

2021-08-16 17:26:20 379

原创 HIVE常用函数速查

Hive 提供了较完整的 SQL 功能,HQL 与 SQL 基本上一致,旨在让会 SQL 而不懂 MapReduce 编程的用户可以调取 Hadoop 中的数据,进行数据处理和分析。记录日常数据分析过程中 Hive SQL 需要的查询函数,方便手头随时查询,定期更新补充。...

2021-08-12 15:32:55 1683

原创 hive 总结排序相关

order by会对输入做全局排序,因此只有一个Reducer(多个Reducer无法保证全局有序),然而只有一个Reducer,会导致当输入规模较大时,消耗较长的计算时间。关于order by的详细介绍请参考这篇文章

2021-08-10 16:47:31 103

原创 hive分析相关窗口函数三之取数相关

1、开窗函数取特定值开窗函数中经常遇到去取出某个特定的值,具体的相关函数为1、开窗函数值具体例子

2021-08-06 16:05:32 1063

原创 hive分析相关窗口函数二之排序相关

1、开窗函数(排序相关)row_numberROW_NUMBER() 从1开始,按照顺序,生成分组内记录的序列SELECT cookieid, createtime, pv, ROW_NUMBER() OVER(PARTITION BY cookieid ORDER BY pv desc) AS rn FROM test;RANK 和 DENSE_RANKRank() 生成数据项在分组中的排名,排名相等会在名字中留下空位,Dense_Rank() 生成数据项在分组中的排名

2021-08-05 15:51:19 1027

原创 hive分析相关窗口函数一之聚合相关

背景:随着hive 的发展支撑的开窗函数越来越多,其中增加了很多分析相关开窗函数例如SUM、AVG、MIN、MAX 等

2021-07-20 21:10:42 456 1

原创 doris引擎介绍

背景:在目前的MPPOLAP系统众多,比如Greenplum、Apache Impala、Presto、Doris、ClickHouse、Druid、TiDB等等,druid 虽然在不设置roll up 的情况下支持明细数据。但数据join 和性能都比较差。clickhouse 虽然在支持明细和汇总数据查询,但在集群扩展和数据join 的方面也比较弱。基于上面几个方面Doris 在兼容roll_up 的形式,也兼容了明细数据的join 查询。在数据应用方面有很大市场。介绍:Doris是基于MPP架构的

2021-07-05 20:41:59 2288 1

原创 HIVE相关方法优化之聚合函数GROUP SETS

1、背景在数据开发统计相关计算过程中,group by 和group sets 是我们经常用的方法。但当统计指标过程中如果维度特别多,会使得数据任务运行特别慢,导致任务延迟经常出现。针对上面问题对group sets 常用指标进行调研优化。2、...

2021-07-05 11:36:00 3237

原创 sparkUI 详解记录

参考:https://www.jianshu.com/p/8143a50a5af9

2021-06-17 16:24:04 193

原创 LSM思想在大数据生态圈中应用

LSM 思想广泛应用在大数据生态圈中,被人们广泛知道包含了 Hbase 、kudu 、druid 的设计思想(注:此文章根据自己的经验总结得出,如果错误之处欢迎指出,不胜感激)

2021-01-12 10:31:41 435 2

原创 java并发杂记之-无锁CAS的底层实现

一、综述我们曾经详谈过有锁并发的典型代表synchronized关键字,通过该关键字可以控制并发执行过程中有且只有一个线程可以访问共享资源,其原理是通过当前线程持有当前对象锁,从而拥有访问权限,而其他没有持有当前对象锁的线程无法拥有访问权限,也就保证了线程安全。但synchronized 的底层的重量级锁效率比较低,所以在本篇文章中介绍下无锁并发,即不加锁也能保证并发执行的安全性。即CAS 的实现原理...

2021-01-09 11:03:01 130

原创 数据仓库建模 事件杂记

dwd 建议用范式建模 mid dws 应用维度建模

2021-01-08 19:42:07 275

原创 hive array类型转成多行

1、explode(array)函数接受array类型的参数,其作用恰好与collect_set相反https://my.oschina.net/u/3204727/blog/1571101

2020-12-30 18:13:49 3522

原创 hive 相同key 多行多列合并 处理

概述在join 的过程中我们很容易出现数据膨胀现象,即一行变成多行情况。面对这种情况,一般会有两种处理方式第一种:用row_number 等分窗函数,根据不同策略取不同行的数据第二种:将相同key对应多行的情况合并成一行,(如果一行有多个字段,还有可能合并为一个字段中)实现方式如源表结构:pcgid string mobilegid string

2020-12-22 15:16:22 4086

原创 druid 关键技术点回顾

一、druid 的设计原则方式1、快速查询:(1)、实现技术点,内存使用上精细设计,(例如在druid中使用bitMap 压缩技术)(2)、维护一些倒排索引(可以加快And和 Or 的计算操作)2、水平扩展能力:(1)、druid 查询性能很大晨读依赖于内存的优化使用,数据可以分布在多个节点的内存中。数据增长的时候,可以通过简单增加机器的方式进行扩容。只是按照时间切分有时候是不够的(druid 的每个segment 不超过2000万行),故druid 还支持对segment进一步分区。(2)、历

2020-12-16 17:37:31 399 1

转载 idea git 使用备忘

https://blog.csdn.net/dasini321/article/details/84427406

2020-11-19 10:42:29 93

原创 hive group by 的高级用法

roup by 作为一种分组查询,在sql中用处十分广泛。

2020-11-12 20:27:08 1918

原创 flink 端到端的一致性 实现

一、综述flink 通过内部依赖checkpoint 并且可以通过设置其参数exactly-once 实现其内部的一致性。但要实现其端到端的一致性,还必须保证1、source 外部数据源可重设数据的读取位置2、sink端 需要保证数据从故障恢复时,数据不会重复写入外部系统(或者可以逻辑实现写入多次,但只有一次生效的数据sink端)幂等操作:一个操作,可以重复执行多次,但只导致一次结果更改,豁免重复操作执行就不起作用了(逻辑与、逻辑或等)具体理解参照自己以前写的文章。事务写入:事务应该具有四个属性

2020-11-03 20:37:06 1594

原创 hive的数据倾斜解决(Map端、reduce 端 、join中)

hive 的数据倾斜一般我们可以分为 Map倾斜、reduce 倾斜和join 倾斜这几种。

2020-11-02 15:24:08 5348 3

原创 数据仓库主题十-(周期快照事实表)

综述当我们在实际工作过程中涉及到一些指标的计算比如账户余额、买卖家星级 商品库存、卖家累积交易额等计算中,则需要聚集与之相关的事务才能进行识别计 ;或者聚集事务无法识别 ,比如 温度等。对于这些状态度量,事务事实表是无效率的,而这些度量也和度量事务本身一样是有用的 ,因此, 维度建模理论给出了第二种常见的事实表一一周期快照事实表,简称“快照事实表”。快照事实表:在确定时间间隔内对实体的度量进行抽样,这样可以很容易的研究实体的度量值,而不需要要聚集长期 事务历史。接下来将以淘宝交易结束后的评价数据、卖家

2020-10-20 16:52:29 8743 1

原创 java阻塞队列SynchronousQueue

综述再线程池的源码分析中我们经常对比两个线程池的实现 newCacheThreadPool和newFixedThreadPool

2020-10-19 18:01:29 188

原创 数据仓库主题九-(事务事实表)

对于单事务事实表,一个业务过程建立一个事实表,只反映一个业务过程的事实 对于多事务事实表,在同一个事实表中反映多个业务过程。多个业务过程是否放到同一个事实表中。

2020-10-13 18:01:51 3027 4

原创 数据仓库主题八-(事实表思想)

事实表作为数据仓库维度建模的核心,紧紧围绕着业务工程来设计,通过获取描述业务过程的度量来表达业务工程,包含了引用的维度和与业务工程有关的度量。

2020-10-12 16:30:16 1244 3

原创 Java volatile源码分析

synchronized是阻塞式同步,在线程竞争激烈的情况下会升级为重量级锁,而volatile 可以说是JVM 提供的最轻量级的同步机制。jMM告诉我们,各个线程会将共享变量从主内存中拷贝到工作内存,然后执行引擎会基于工作内存中的数据进行操作处理。线程在工作内存进行操作后什么时候写回到主内存中,实际上没有明确的限制。而针对volatile修饰的变量给java虚拟机特殊的约定,线程对volatile 变量的修改会立刻被其他线程所感知,即不会出现数据脏读,从而保证数据的一个可见性。https://blog.

2020-09-29 15:43:44 1028 7

原创 flink checkpoint 源码分析三-状态的恢复流程

四、状态的恢复流程todo 结合源码分析:https://blog.jrwang.me/2019/flink-source-code-checkpoint/

2020-09-28 15:15:40 1207

原创 flink checkpoint源码分析二

概述:上一篇文文章总体接收了flinkcheckpoint的源码分析的总体概念和流程。并结合代码介绍了checkpoint的发起和任务执行过程详细参考:https://blog.csdn.net/weixin_40809627/article/details/108537480本篇文章将接着上篇文章,继续介绍 flink checkPoint 的检查点快照、本地状态存储、checkpoint的确认、和状态恢复等过程。一、存储检查点状态快照在task 触发了chckpoint 之后,对于Task而言,

2020-09-22 17:43:19 584 1

原创 flink checkpoint源码分析一

FlinK CheckPoint 是程序故障恢复以及数据一致性的效果的基础,checkpoint是一种分布式快照:对一个Flink作业的所有task做一个快照且将快照保存在 memory / file system 等存储系统中。这样,在任务进行故障恢复的时候,就可以还原到任务故障前最近一次检查点的状态,从而保证数据的一致性。当然,为了保证 exactly-once / at-least-once 的特性,还需要数据源支持数据回放。todo 结合源码分析:https://blog.jrwang.me/20

2020-09-11 16:40:31 896

原创 数据仓库主题七-(维度变化和特殊维度问题)

一、维度设计之维度变化1、数据仓库的重要特点之一是反映历史变化,,维度的属性并不是静态的,它会随着时间的流逝发生缓慢的变化与数据增长较为快速的事实表相比,维度变化相对缓慢。在一些情况下,我们需要保留历史数进行分析。所以我们需要对缓慢变化的维度进行设计和处理。在 Kimball 的理论中,种处理缓慢变化维的方式,下面通过简单的实例进行说明,具体细节请翻阅 Kimball 的相关书籍。todo 待更新二、维度设计值特殊维度...

2020-09-09 11:50:26 2443

原创 java 基于AQS 类 锁实现的底层原理分析

所谓AQS,指的是AbstractQueuedSynchronizer,它提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier等并发类均是基于AQS来实现的,具体用法是通过继承AQS实现其模板方法,然后将子类作为同步组件的内部类。AbstractQueuedSynchronizer 具体实现锁待todo...

2020-08-31 11:12:56 259

原创 数据仓库主题六-(维度设计之整合和拆分)

数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合,用来支持管理人员的决策。其中集成是数据仓库的四个特性中最重要的一个。数据仓库的重要数据来源是大量的、分散的面向应用的操作型环境。不同的应用在设计过程中,可以自由决策 ,主要满足本应用的需求,很少会考虑和其他系统进行数据集成。应用之间的差异具体表现在如下几个方面:todo...

2020-08-21 17:17:46 2370 3

原创 Java 模式思想 - 策略模式(异同工厂)

一、概述:策略模式中,一个类的行为或其算法可以在运行时更改,这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的context对象。策略对象改变 context 对象的执行算法。意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如何解决:将这些算法封装成一个一个的类,任意地替换

2020-08-21 11:29:04 231

原创 数据仓库主题五-(维度设计)

一、概述1、概念维度建模思想事数据仓库领域的另一位大师 Ralph Kimball 所倡导,按照书中主要思想,维度建模并不要求维度建模满足三范式,数据库中强调3NF 主要是为了消除冗余。规范化的 3NF 将数据划分为多个不同的实体,每个实体构成一个关系表。比如说订单数据库,开始可能是每个订单中的一行表示一条记录,到后来为了满足3NF会变成类似蜘蛛网状图。也许会包含上百个规范化表。而且对于BI查询来讲,规范化模型太复杂,用户会难以理解这些记录和模型的使用。而且维度建模解决了模型过于复杂的问题。维度是维度

2020-08-18 16:21:59 867

原创 java阻塞队列LinkedBlockingQueue源码分析

一、概要阻塞队列与我们平时接触的普通队列(LinkedList 和ArrayList)的最大的不同点,在于阻塞队列支持阻塞添加和阻塞删除方法。阻塞队列常常应用于大数据框架源码和线程池源码中。1、阻塞添加:阻塞添加指的时当组设队列元素已经满时候。队列会阻塞加入元素的线程,直到对垒元素不满时才会重新唤醒线程执行元素加入。2、阻塞删除:是指在队列元素为空时,删除队列元素的线程被阻塞,直到队列不为空再执行删除操作。ArrayList 和ArrayBlockingQueue一样,内部基于数组来存放元素,而li

2020-08-17 15:17:18 409

原创 flink windows窗口 应用范例

概述:流式数据处理中,很多操作要依赖于时间属性进行,因此时间属性也是流式引擎能够保证准确处理数据的基石,window提供了一种处理无界数据的一种手段。flink的windows包含了很多的组件: 例如出发器trigger,触发器上下文triggerContext,内部状态windowState。窗口分配器windowassigner,内部时间服务器internalTimerService。其中每个组件都是winows 完成功能不可缺失的一部分。具体每个组件的作用。1.Time在 Flink 的流式处理

2020-08-14 12:59:07 581

show-busy-java-threads.sh

定位java线程中消耗cpu最忙的任务。定位到具体的代码片段。工作开发常用shell 脚本。定位java线程中消耗cpu最忙的任务。定位到具体的代码片段。工作开发常用shell 脚本。

2020-08-05

ThreadPoolTest.zip

用于执行线程池相应的例子程序,

2020-04-18

tensorflow-1.11.0-cp36-cp36m-win_amd64.whl

tensorflow 1.11.o window 10 python3.6 tensorflow-1.11.0-cp36-cp36m-win_amd64.whl

2019-08-26

presto 安装要的jar aircompressor

用于presto 在lib 下 更新相应jar包的版本presto 安装要的jar aircompressor

2018-11-14

Microsoft Visual C++ 14.0

Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools 相关资源文件(解压 执行安装)

2018-10-31

空空如也

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

TA关注的人

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