<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Mr.pan felix的专栏]]></title><description><![CDATA[Whatever is worth doing is worth doing well, persistence and indomitable.]]></description><link>https://blog.youkuaiyun.com/lovedieya</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lovedieya]]></copyright><item><title><![CDATA[hive解析json数组 array json]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/110732348</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/110732348</guid><author>lovedieya</author><pubDate>Sun, 06 Dec 2020 11:18:02 +0800</pubDate><description><![CDATA[在hive的内置函数中，提供了两个函数用来解析json，分别是get_json_object和json_tuple

以下出现的hive函数不懂的请到 hive2.0中常用的内置函数大全 这篇博客去查看了解

首先来查看下get_json_object函数的详细信息

&gt; desc function extended get_json_object;
OK
tab_name
get_json_object(json_txt, path) - Extract a json object from pa.]]></description><category></category></item><item><title><![CDATA[Hive优化-大表join大表优化]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107913560</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107913560</guid><author>lovedieya</author><pubDate>Mon, 10 Aug 2020 15:13:33 +0800</pubDate><description><![CDATA[　　5、大表join大表优化

　　　　　　如果Hive优化实战2中mapjoin中小表dim_seller很大呢？比如超过了1GB大小？这种就是大表join大表的问题。首先引入一个具体的问题场景，然后基于此介绍各自优化方案。

　　 5.1、问题场景

　　　　　　问题场景如下：

　　　　　　A表为一个汇总表，汇总的是卖家买家最近N天交易汇总信息，即对于每个卖家最近N天，其每个买家共成交了多少单，总金额是多少，假设N取90天，汇总值仅取成交单数。

　　　　　　A表的字段有：buyer_id、selle]]></description><category></category></item><item><title><![CDATA[【hive】cube和rollup/grouping sets函数]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107897179</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107897179</guid><author>lovedieya</author><pubDate>Sun, 09 Aug 2020 17:41:45 +0800</pubDate><description><![CDATA[cube

数据立方体（Data Cube），是多维模型的一个形象的说法.(关于多维模型这里不讲述,在数据仓库设计过程中还挺重要的,有兴趣自行查阅)
	立方体其本身只有三维，但多维模型不仅限于三维模型，可以组合更多的维度
	为什么叫数据立方体?
	一方面是出于更方便地解释和描述，同时也是给思维成像和想象的空间；
		另一方面是为了与传统关系型数据库的二维表区别开来
	
下图为数据立方体的形象图

其实并不用把cube理解得很高大上,只要理解为分别按照不同维度进行聚合.
	hive中也有cube函数,可以实现]]></description><category></category></item><item><title><![CDATA[Hive中的排序及优化 ORDER BY, SORT BY, DISTRIBUTE BY, CLUSTER BY]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107895821</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107895821</guid><author>lovedieya</author><pubDate>Sun, 09 Aug 2020 16:35:30 +0800</pubDate><description><![CDATA[Hive 提供了多重排序语句，我们这里对这几种排序方法做一解析，并进行测试



编排如下:

 试验场景

  Hive 中的 ORDER BY 与其不足

  Hive 中的 SORT BY，DISTRIBUTE BY

  Hive 中的CLUSTER BY 与其不足

  完成相同功能的Job 执行时长对比



实验场景：

我们创建了一个按天分区的分区表，将数据按天分区。


CREATE EXTERNAL TABLE `clickcube_mid`(
`logtyp...]]></description><category></category></item><item><title><![CDATA[数仓中面向主题的含义及场景详解]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107884353</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107884353</guid><author>lovedieya</author><pubDate>Sat, 08 Aug 2020 19:17:53 +0800</pubDate><description><![CDATA[面向主题

面向主题是数仓的四大特点之一，听起来很高大上，但是细细理解起来却有些费劲，本文主要是记录一下个人的理解，参考互联网上各种博客进行理解。

概念解析

抽象概念
	主题(Subject) :在较高层次上将企业信息系统中数据进行综合、归类分析利用。属于一个抽象概念，每一个主题基本对应一个宏观分析领域。
	
	逻辑概念
	主题(Subject)是对应企业中某一宏观分析领域所涉及的分析对象（重点是分析的对象，对象，仔细理解一下对象的含义）。例如："销售分析"就是一个分析领域，这个"销售分析"所涉及到的分]]></description><category></category></item><item><title><![CDATA[SQL 先进先出的库龄计算]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107825626</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107825626</guid><author>lovedieya</author><pubDate>Wed, 05 Aug 2020 22:01:33 +0800</pubDate><description><![CDATA[库存信息：

现有一表记录产品进出库
product_id(产品代码) inoutdate（出入库日期）   qty（数量）
001           20200701         10
001           20200703        -8
001           20200704        -1
001           20200705  ...]]></description><category></category></item><item><title><![CDATA[SQL 求某天各个直播间最大在线人数]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107823894</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107823894</guid><author>lovedieya</author><pubDate>Wed, 05 Aug 2020 20:15:27 +0800</pubDate><description><![CDATA[如下需求：


一张表有如下字段：
1）直播间： live_id
2）用户:userid
3）时间戳:date_stamp
4）登陆类型:entry_type (登入和登出)

求直播间在某一天同一时间点的最大在线用户数？



逻辑说明：

将直播间每登陆一个记为1，每登出一个记为-1，如此将会登陆和登出出现抵消，然后再根据时间进行排序求和。


WITH live_tab as (
select 1 live_id,'A' userid,to_date('20200801 10:00:00','yyyy]]></description><category></category></item><item><title><![CDATA[无懈可击的数据仓库体系规划及实施流程]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107802217</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107802217</guid><author>lovedieya</author><pubDate>Tue, 04 Aug 2020 22:29:59 +0800</pubDate><description><![CDATA[作者介绍

水大人，数据开发小哥，爱折腾、爱记笔记，热衷方法论提炼和效率提升。虽然半路出家，但致力于全栈远景。《七天数据埋点之旅》系列作者。

一、前言

数仓规划是数仓建设的蓝图，涵盖从需求分析开始到最终的数仓评估验收整个环境；数仓规划之所以重要，是因为它是描述了数据流动的概念性框架，为元数据管理奠定了基础，对数据加工过程的理解、数仓建设的交流分享、数据的使用和问题排查、数仓健康度的评估都提供了极大的帮助。

需要强调的是本节是从宏观上描述数仓的框架，具体到数据模型的细节对比、存储选型和管理、接入数据源管]]></description><category></category></item><item><title><![CDATA[数据仓库维度建模建设步骤]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107801967</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107801967</guid><author>lovedieya</author><pubDate>Tue, 04 Aug 2020 22:22:45 +0800</pubDate><description><![CDATA[一、数据仓库的架构

数据仓库（Data Warehouse DW）是为了便于多维分析和多角度展现而将数据按特定的模式进行存储所建立起来的关系型数据库，它的数据基于OLTP源系统。数据仓库中的数据是细节的、集成的、面向主题的，以OLAP系统的分析需求为目的。

数据仓库的架构模型包括了星型架构（图二：pic2.bmp）与雪花型架构（图三：pic3.bmp）两种模式。如图所示，星型架构的中间为事实表，四周为维度表，类似星星；而相比较而言，雪花型架构的中间为事实表，两边的维度表可以再有其关联子表，从而表达了清晰]]></description><category></category></item><item><title><![CDATA[深度剖析Hive GroupBy，Distinct 与 Join 原理]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107683811</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107683811</guid><author>lovedieya</author><pubDate>Thu, 30 Jul 2020 10:26:58 +0800</pubDate><description><![CDATA[Hive 中的 GroupBy, Distinct 和 Join

GroupBy

	几种 Mode
		原理
		相关参数
	
	Distinct
	Single Distinct
		Multi Distinct
	
	Join
	Common Join
		Map Join——Hive MapJoin 优化历程、FaceBook Join优化
		Skew Join——Skewed Join Optimization
		Bucket Join
	
本文将介绍 Hive GroupBy，Distin]]></description><category></category></item><item><title><![CDATA[Hive性能调优之Group By]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107658164</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107658164</guid><author>lovedieya</author><pubDate>Wed, 29 Jul 2020 10:54:19 +0800</pubDate><description><![CDATA[默认情况下，map阶段同一key数据分发给同一reduce，如果单一key过大就很容易造成数据倾斜。（100条数据分组后一组90条，一组10条，这就会数据倾斜）

这样的话，我们就可以预先在map端进行一些聚合操作，减轻reduce端的压力。

常用参数：


--是否在 Map 端进行聚合，默认为 True
hive.map.aggr = true
--在 Map 端进行聚合操作的条目数目
hive.groupby.mapaggr.checkinterval = 100000
--有数据倾斜的时候进行负载]]></description><category></category></item><item><title><![CDATA[Hive Group By的实现原理]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107658067</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107658067</guid><author>lovedieya</author><pubDate>Wed, 29 Jul 2020 10:52:11 +0800</pubDate><description><![CDATA[group by多字段

select rank, isonline, count(*) from city group by rank, isonline;

将GroupBy的字段组合为map的输出key值，利用MapReduce的排序，在reduce阶段保存LastKey区分不同的key。MapReduce的过程如下（当然这里只是说明Reduce端的非Hash聚合过程）



group by单字段

group by 单字段和多字段时的不同在于key上，以如下例子为例（出处太多）：SELECT ui]]></description><category></category></item><item><title><![CDATA[数据仓库、主题域、主题概念与定义]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107607478</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107607478</guid><author>lovedieya</author><pubDate>Mon, 27 Jul 2020 11:14:20 +0800</pubDate><description><![CDATA[一、数据仓库

 关于数据仓库概念的标准定义业内认可度比较高的，是由数据仓库之父比尔·恩门（Bill Inmon）在1991年出版的“Building the Data Warehouse”（《建立数据仓库》）一书中所提出：

 中文定义：数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合，用于支持管理决策。

 英文定义：A data warehouse is a subject-oriented, integrated, nonvolatile, and ...]]></description><category></category></item><item><title><![CDATA[HIVE小文件合并(Map输入端、Map/Reduce输出端合并)]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107583723</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107583723</guid><author>lovedieya</author><pubDate>Sat, 25 Jul 2020 19:42:37 +0800</pubDate><description><![CDATA[背景


Hive query将运算好的数据写回hdfs（比如insert into语句），有时候会产生大量的小文件，如果不采用CombineHiveInputFormat就对这些小文件进行操作的话会产生大量的map task，耗费大量集群资源，而且小文件过多会对namenode造成很大压力。所以Hive在正常job执行完之后，会起一个conditional task，来判断是否需要合并小文件，如果满足要求就会另外启动一个map-only job 或者mapred job来完成合并

参数解释



hi.]]></description><category></category></item><item><title><![CDATA[美团配送数据治理实践【转载美团技术团队博客】]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107542486</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107542486</guid><author>lovedieya</author><pubDate>Thu, 23 Jul 2020 17:14:11 +0800</pubDate><description><![CDATA[大数据时代的到来，让越来越多的企业看到了数据资产的价值。将数据视为企业的重要资产，已经成为业界的一种共识，企业也在快速探索应用场景和商业模式，并开始建设技术平台。

但这里要特别强调一下，如果在大数据“拼图”中遗忘了数据治理，可能再多的技术投入也是一种徒劳。因为没有数据治理这一环节，其带来后果往往是：随处可见的数据不统一，难以提升的数据质量，难以完成的模型梳理，难以保障的数据安全等等，源源不断的基础性数据问题会进一步产生，进而导致数据建设难以真正发挥其商业价值。

因此，消除数据的不一致性，建立规范的数据标]]></description><category></category></item><item><title><![CDATA[HIVE SQL 将父子/树形结构转换成层级结构]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107474112</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107474112</guid><author>lovedieya</author><pubDate>Mon, 20 Jul 2020 21:31:16 +0800</pubDate><description><![CDATA[如下需求：

将左边父子结构转换成右边层级结构（转换到三个层级即可）。



难点解析：父子层级表难点主要在层级深度，父子结构解析需要自连接及id=parent_id逐步进行处理，第一次连接可以获取到两个层级，当第二次自连接即可获取到第三个层级


with area_info as
 (select 1 as id, '北京市' as name, 0 as parent_id
  union all
  select 2 as id, '山东省' as name, 0 as parent_id
  uni]]></description><category></category></item><item><title><![CDATA[剖析linux下的零拷贝技术（zero-copy）]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107453710</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107453710</guid><author>lovedieya</author><pubDate>Sun, 19 Jul 2020 23:11:00 +0800</pubDate><description><![CDATA[原文链接：https://www.jianshu.com/p/fad3339e3448



本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景。为了迅速建立起零拷贝的概念，我们拿一个常用的场景进行引入：

引文##

在写一个服务端程序时（Web Server或者文件服务器），文件下载是一个基本功能。这时候服务端的任务是：将服务端主机磁盘中的文件不做修改地从已连接的socket发出去，我们通常用下面的代码完成：




while((n = read(diskfd, buf, BUF_S..]]></description><category></category></item><item><title><![CDATA[Hadoop YARN：调度性能优化实践【转载】]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107449750</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107449750</guid><author>lovedieya</author><pubDate>Sun, 19 Jul 2020 19:09:47 +0800</pubDate><description><![CDATA[原文链接：https://tech.meituan.com/2019/08/01/hadoop-yarn-scheduling-performance-optimization-practice.html

背景

YARN作为Hadoop的资源管理系统，负责Hadoop集群上计算资源的管理和作业调度。

美团的YARN以社区2.7.1版本为基础构建分支。目前在YARN上支撑离线业务、实时业务以及机器学习业务。

离线业务主要运行的是Hive on MapReduce， Spark SQL为主的数据仓库作业]]></description><category></category></item><item><title><![CDATA[YARN调度器(Scheduler)详解]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107447102</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107447102</guid><author>lovedieya</author><pubDate>Sun, 19 Jul 2020 16:26:30 +0800</pubDate><description><![CDATA[转载：https://my.oschina.net/u/4350851/blog/3443167



理想情况下，我们应用对Yarn资源的请求应该立刻得到满足，但现实情况资源往往是有限的，特别是在一个很繁忙的集群，一个应用资源的请求经常需要等待一段时间才能的到相应的资源。在Yarn中，负责给应用分配资源的就是Scheduler。其实调度本身就是一个难题，很难找到一个完美的策略可以解决所有的应用场景。为此，Yarn提供了多种调度器和可配置的策略供我们选择。YARN架构如下:



ResourceMana.]]></description><category></category></item><item><title><![CDATA[解决Hive创建文件数过多的问题]]></title><link>https://blog.youkuaiyun.com/lovedieya/article/details/107447037</link><guid>https://blog.youkuaiyun.com/lovedieya/article/details/107447037</guid><author>lovedieya</author><pubDate>Sun, 19 Jul 2020 16:23:02 +0800</pubDate><description><![CDATA[一. Hive的创建文件数的限制

Hive对文件创建的总数是有限制的，这个限制取决于参数：

hive.exec.max.created.files，默认值是10000。如果现在你的表有60个分区，然后你总共有2000个map，在运行的时候，每一个mapper都会创建60个文件，对应着每一个分区，所以60*2000&gt; 120000，就会报错：exceeds 100000.Killing the job

解决办法：

最简单的解决办法就是调大hive.exec.max.created.files参数]]></description><category></category></item></channel></rss>