自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据仓库工具箱】DW/BI系统的核心元素和基本要求

DW/BI 环境划分为4个不同的,各具特色的组成部分。记录的是操作型系统,用于获取业务事务。源数据关注的是处理性能和可用性。源系统一般不维护历史信息,而这部分责任可以依靠好的数据仓库来实现。是处于操作型系统和数据展现区之间的部分,1. 获取是将数据从操纵型系统中导入数据仓库中,2. 数据转换,elt系统通过数据清洗/合并来自不同数据源的数据/复制数据等,增强数据价值,3.数据加载,实际构建和加载数据到展现区域的目标维度模型中。elt 过程的主要任务是识别维度和事实,因此其包含的子系统非常重要。

2024-04-21 17:28:18 388

原创 SPARK:性能调优之RSS

RSS优化原生shuffle数据读的问题

2024-04-21 17:00:00 530

原创 HIVE:谓词下推

谓词下推 Predicate Pushdown(PPD),简而言之,就是在不影响结果的情况下,尽量将过滤条件提前执行。谓词下推后,过滤条件在map端执行,减少了map端的输出,降低了数据在集群上传输的量,节约了集群的资源,也提升了任务的性能。因为unix_timestamp是不确定函数,在编译的时候无法得知,所以,整个表达式不会被pushed,即ds='2019-10-09’也不会被提前过滤。比如以下选择,left join中左表s1为保留行表,所以on条件(join过滤条件)不能下推到s1中。

2024-04-21 16:26:47 477

原创 Hive:str_to_map实现行专列

通过上面四步就把行转成了一个 map,最后直接根据 科目 取出 成绩即可。

2024-04-14 19:31:37 97

原创 Hive:posexplode v.s. explode 实现列转行

hive中explode相关的列转行总结。

2024-04-14 18:54:14 367

原创 Spark:排序的原理

重点看,全局排序原理篇-

2024-04-14 17:49:23 88

原创 Spark:性能调优实战

一个Executor中同时可以执行的task数目(在Executor内存不变的情况下,executor-cores数越大,平均下来一个task可以使用的内存就越少)Executor Java进程的堆内存大小,即Executor Java进程的Xmx值Executor Java进程的off-heap内存,包括JVM overhead,sort、shuffle以及Netty的堆外内存等是否开启动态资源分配,强烈建议开启。开启动态资源分配后,同一时刻,最多可申请的executor个数。

2024-04-14 17:42:53 654

原创 Spark:shuffle key中包含rand问题

对于需要根据rand进行shuffle来实现将数据进行随机打散的情况,可以把shuffle规则从rand改成与数据的确定列绑定,也就是deterministic_function(deterministic_col1,出现问题的原因是:作业在进行的shuffle的时候,同一行数据,shuffle的结果不是幂等的。’, coalesce(store_id, 0), ‘_’,coalesce(delv_center_id, 0))),其中concat的字段是表的唯一粒度;1、用一个整数的id对20取模。

2024-04-14 17:16:52 367

原创 分布式快照算法 Chandy-Lamport

Chandy-Lamport 算法通过抽象分布式系统模型描述了一种简单直接但是非常有效的分布式快照算法。讨论 Chandy-Lamport 算法一定要注意算法的几个前提:网络可靠、消息有序。Spark 的 Structured Streaming 虽然在官方博客中披露使用的 Chandy-Lamport 算法来做 Failover 处理,但是并没有更细节的披露。相比之下 Flink 在 2015 发布了一篇论文更适合在工程上实现,而且已经应用在了 Flink 项目中。

2024-04-14 16:58:40 863

原创 Hive:开窗函数

【代码】Hive:开窗函数。

2024-04-14 16:34:53 231

原创 Hive:trunc函数

trunc函数对于日期和数值的截断详解。

2024-04-14 16:15:32 338

原创 Hive:日期函数

hive常用日期函数

2024-04-14 16:13:13 315

原创 正则表达式

注意正则表达中的转义问题。

2024-04-14 15:49:05 692

原创 Hive:正则regexp_extract函数

语法: regexp_extract(string subject, string pattern, int index)说明: 将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。第二参数: 需要匹配的正则表达式。2 是显示第二个括号里面的字段…第一参数: 要处理的字段。0是显示与之匹配的整个字符串。1 是显示第一个括号里面的。返回值: string。

2024-04-14 15:31:27 334

原创 OLAP与OLTP的区别知识

像 有下单的流程,那么这个下单流程产生的订单会是在OLTP数据库中,而如果BOSS或者运营想看本个月的销售运营情况,如订单间夜、销售额的统计,理论上是应该在OLAP数据库(或者仓库),所以从本质上来讲,OLAP是读为主而OLTP以写为主。OLTP系统强调的是内存效率,实时性比较高;OLAP: 联机分析处理(OLAP)系统是数据仓库系统最主要的应用,专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,强调的是数据分析,响应速度要求没那么高。

2024-04-14 15:28:41 278 1

原创 Hive:bigint和string进行join出现匹配错误问题

bigint和string比较时会隐式地都转换成double,java中double的精度只有15-16位(double可以精确的表示小于2^52=4503599627370496的数字)。当数字超过精度的时候就会比较不准确,出现上面描述的现象。在hive中,两个表进行join,on条件两表的字段含义一致(都是整数),但数据类型不一致:string和bigint。a)原因:Java中精度只有15至16位,当数据超过精度就会不准——也就会出现超过精度的记录join上许多不一致的记录。

2024-04-14 15:26:13 305

原创 Hive:transform和udf

transform中的值作为输入, 然后传递给python脚本,最后经过python的处理后,输出想要得到的字符串格式。工作中发现有时候会用到python脚本进行数据计算,但是现在貌似已经不这样再处理,一般使用封装好的udf函数。注意:在利用本地的python处理时,首先需要add file *.py;

2024-04-14 15:20:31 363

原创 Hive:GROUP BY GROUPING SETS

聚合函数grouping sets

2024-04-14 15:03:29 154 1

原创 Hive-distribute by与group by,order by与sort by 的区别,cluster by

涉及排序的函数的差异描述

2024-04-14 14:48:06 538 1

原创 date_format函数用法,大小写差异导致数据异常

可以发现format参数大小写对于日期输出有显著影响,容易出现数据问题。标准的应该是 yyyy-MM-dd。

2024-01-12 14:22:24 380 1

原创 count distinct总结

原理总结:count distinc 在spark上运行,会基于Expand, Exploded Shuffle, Partial Aggregations,多个count distinct转化为count

2024-01-04 17:26:37 388 1

原创 2 计算广告基础

这一章主要讲的是广告利润优化的概念性框架。

2023-09-16 16:09:28 85 1

原创 1 在线广告综述

广告是由已确定的出资人通过各种媒介进行的有关产品(商品、服务和观点)的,通常是有偿的、有组织的、综合的、劝服性的非人员的信息传播活动。三方角色:需求方=广告主/代表广告主利益的代理商供给方=媒体受众出资人、媒体和受众这三者的利益博弈关系是广告活动永远的主线,这一主线将贯穿于商业和产品形态的整个演化过程。另外,该定义还阐明了广告必须是有偿的、非人员的信息传播活动。这两点限制,前者使得广告的目标变得明确,后者使得这一目标可以采用计算的方式来优化,而这些都是计算广告产生的基础。

2023-09-16 15:36:32 100 1

原创 Flink状态处理

如图,DataFlow程序可以DataFlow图(DAG)表示,由于流和转换算子组成。每个DataFlow都是以数据源Source开始数据汇Sink结束。程序中的转换和DataFlow的算子常常是一对一的关系。数据并行和任务并行数据并行:相同算子在不同的数据分区中运行任务并行:不同的算子任务并行计算数据交换策略,参考Flink数据交换策略Partitioner转发策略(forward Strategy),类似于Spark中的map广播策略(broadcast Strategy)

2023-07-23 14:26:57 100 1

原创 大数据处理框架性能和可靠性保障机制

什么是shuffle机制?运行在不同stage、不同节点上的task间如何进行数据传递。shuffle解决的问题是如何将数据重新组织,使其能够在上游和下游之间进行传递和计算。如果是单纯的数据传输,则只需要对数据进行分区、通过网络传输即可,没有太大难度,但是shuffle机制还需要进行各种类型的计算(如聚合、排序),而且数据量一般会很大。

2023-05-28 18:01:34 67

原创 大数据处理框架的核心理论

数据源数据模型:对输入、输出和中间数据进行抽象表示,使得程序能够识别处理。比MR的数据模型<k,v>record,更高层的抽象:RDDRDD只是一个逻辑概念,在内存中并不会为RDD分配存储空间(除非该RDD需要被缓存)。RDD中的数据只会在计算中产生,并且在计算完成后就会消失。RDD可以包含多个分区,不同分区可以由不同的任务(task)在不同节点进行处理。数据操作计算处理结果。

2023-05-28 17:55:14 64

原创 第一部分:大数据处理框架的基础知识

大数据的概念:大数据具有数据量大(Volume)、数据类型多样(Variety)、产生与处理速度快(Velocity)、价值高(Value)的4V特性。大数据带来的挑战:传统数据库和数据仓库面临着可扩展性的问题。

2023-05-27 13:18:44 417

原创 Hive UDF开发教程

Hive UDF(User Defined Function 用户自定义函数),是在Hive内置的处理函数无法满足用户需求时,由用户自行继承接口实现的单行数据处理函数。Hive 有两个不同的接口编写 UDF 程序。1 简单数据类型的 UDF 接口基础 UDF 的函数读取和返回基本类型,即 Hadoop 和 Hive 的基本类型。如 Text、IntWritable、LongWritable、DoubleWritable 等。2 复杂数据类型的 GenericUDF 接口。GenericUDF 可以。

2023-05-07 14:21:04 303

原创 归因分析和技术方案

归因因分析主要用于衡量站内多个位或事件对业务目标事件的转化贡献。用数据分析中归因的方式解决坑位运营中评估的问题。我们引入电商坑位归因的概念,把每一笔的成交都归给转化路径中不同的坑位。根据坑位的曝光转化价值来评判坑位的好与坏

2023-05-07 13:01:30 302

原创 四大业务场景数据分析思路拆解

分析场景的业务知识

2023-04-02 22:04:47 133

原创 埋点方案解决方案-字节跳动

字节跳动企业级埋点设计方法论及实践 笔记

2023-04-02 15:35:07 326

原创 查看hive表的分区存储大小

分区存储大小

2023-02-04 16:43:06 519

原创 算法入门笔记

什么是算法?

2022-07-23 16:21:54 162

原创 Yarn02:基础库介绍

介绍Yarn基础库

2022-06-11 18:50:24 135

原创 Yarn01:诞生背景、架构和工作机制介绍

写在前面的总结:Yarn只响应job的提交及为job的运行分配资源,yarn不参与job的具体运行机制和流程。mapReduce程序中有一个进程MrAppMaster来负责程序的具体运行流程控制。由于Yarn不参与用户程序的具体运行,所以Yarn可以为各种类型的应用程序提供资源服务(Yarn就类似于一个操作系统平台,可以运行各种各样的运算框架所开发的框架:mr,storm,spark等等)。因为Yarn可以整合各种运算框架,企业就可以把各种分布式框架整合到Hadoop集群。RM和AM分离资源调.

2022-05-08 08:00:00 342

原创 MapReduce02:分区与自定义数据类型

MapReduce的入门代码示例

2022-04-22 20:00:00 300

原创 MapReduce01:基本原理和wordCount代码实现

MapReduce是一种并行编程模型,用于海量数据集的并行运算,本文介绍了其基础理论知识和 wordCount 简单代码示例。

2022-04-10 14:19:10 2017

空空如也

空空如也

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

TA关注的人

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