<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[DM_Source的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/DM_Source</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; DM_Source]]></copyright><item><title><![CDATA[【开窗】求连续天数]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/116135549</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/116135549</guid><author>DM_Source</author><pubDate>Sun, 25 Apr 2021 18:39:14 +0800</pubDate><description><![CDATA[问题描述：

一张表：student_schedule（学生课程表）

字段comment：学生ID，课程ID，完成时间

问题：学生在一天内完成一节课，当前天记录为完成学习，现计算连续学习天数

————————————————————————————————————————————————————————————————————————

思路：

连续学习，使用排序和完成时间做对比

———————————————————————————————————————————————————————————]]></description><category></category></item><item><title><![CDATA[【开窗】取最近直播标题和直播时长]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/106661869</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/106661869</guid><author>DM_Source</author><pubDate>Wed, 10 Jun 2020 11:34:29 +0800</pubDate><description><![CDATA[问题描述：

一张表：test_over(uid, title, stime, etime, date)

字段comment：主播ID，直播间标题，开始直播时间戳，结束直播时间戳，日期分区

问题：求每个主播当天最近一次直播记录和全天总的直播时长

要求： shuffle次数最少

思路：

粒度是主播；时间周期是每天；需求是两个，第一，当天最近一次直播记录，第二全天总的直播时长；要求shuffle次数最低；

数据准备：

数据准备
	
			create table test_over(

			ui]]></description><category></category></item><item><title><![CDATA[【原创】hive/mysq  字典表多字段替换事实表多字段]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/103612031</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/103612031</guid><author>DM_Source</author><pubDate>Thu, 19 Dec 2019 11:56:05 +0800</pubDate><description><![CDATA[数据详情：

事实表：其中多个字段是字典code。

字典表：两列，字典code、字典value。

需求：

现在将事实表的字典code转换成字典value。

案例数据准备：


CREATE TABLE test_value (
 id int,
 k1 varchar(20) DEFAULT NULL,
 k2 varchar(20) DEFAULT NULL,
 k3 varch...]]></description><category></category></item><item><title><![CDATA[【Kimball维度建模】+【阿里巴巴中台—OneData实施】]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/103211940</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/103211940</guid><author>DM_Source</author><pubDate>Mon, 25 Nov 2019 14:32:20 +0800</pubDate><description><![CDATA[一、Kimball维度建模

1.前生今世

维度建模出自Ralph Kimall的《The DataWarehouse Toolkit-The Complete Guide to Dimensona Modeling》（《数据仓库工具箱》）一书，是十分流行的数仓建模理论。

维度建模从根本上来讲是以结果为导向的，由数据消费到底层数据的思路。维度建模是一种比较容易理解的业务数据化的方法和思维。个人...]]></description><category></category></item><item><title><![CDATA[【阿里巴巴中台—模型设计】模型分层和原则]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/103201342</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/103201342</guid><author>DM_Source</author><pubDate>Fri, 22 Nov 2019 15:22:13 +0800</pubDate><description><![CDATA[一、模型分层

维度建模将数据分为三层：操作数据层（ODS），公共纬度模型层（CDM），应用数据层（ADS），其中，CDM又分为明细数据层（DWD）和汇总数据层（DWS）。

操作数据层（ODS）：把操作系统数据几乎无处理的存放到数据仓库系统中。
公共纬度模型层（CDM）：又细分为DWD和DWS，分别是明细数据层和汇总数据层，采用维度模型方法作为理论基础，更多采用一些维度退化方法，将维度退化至事实...]]></description><category></category></item><item><title><![CDATA[【阿里巴巴中台—理论篇】为什么要建模？]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/103200078</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/103200078</guid><author>DM_Source</author><pubDate>Fri, 22 Nov 2019 14:49:44 +0800</pubDate><description><![CDATA[要想做一个比较好的全域模型架构，第一点，你要明白为什么要进行建模？

随着进入大数据时代，数据来源丰富，数据量也飞速增长。大数据时代之前的储存架构明显开始脱力，数据消费也面临完整性、准确性和及时性的挑战。类比，人类在农业革命之前，依靠大脑去储存植物、动物和地理相关等信息。但是在农业革命之后，帝国昌盛，帝国的运作，需要记录法律、税收、物质库存、各种节日和打了胜仗的日期等等信息。所以农业革命之前的‘储...]]></description><category></category></item><item><title><![CDATA[如何取每个分组中的前几项输出]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/80353089</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/80353089</guid><author>DM_Source</author><pubDate>Thu, 17 May 2018 17:38:56 +0800</pubDate><description><![CDATA[题目要求，一张表，两个字段，分别是城市，关键字，查找出每个城市关键词的前五。分析：    1.首先要求的每个维度是城市+关键字 -&amp;gt; 根据城市和关键字分组求出数量    2.要找到前五输出，想到ROW_NUMBER() 开窗函数实现如下：select city,keyss,ROW_NUMBER() OVER(partition by city order by count(*) desc) ...]]></description><category></category></item><item><title><![CDATA[Hadoop集群如何动态的增删节点]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/80339703</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/80339703</guid><author>DM_Source</author><pubDate>Wed, 16 May 2018 17:31:25 +0800</pubDate><description><![CDATA[环境：    集群环境是CentOS6；Hadoop版本为2.7.3一、增加节点    1.配置主节点和新增节点的免密登录（ssh信任）    2.将新的节点的ip（如果在主节点的/etc/hosts中配置了名字也可以用名字替代）加入到Hadoop配置文件中slave文件中    3.将主节点的Hadoop目录（如果tmp目录不再Hadoop中，需要再把tmp文件复制到新增节点的对应目录中）发送到...]]></description><category></category></item><item><title><![CDATA[灯泡问题，题目见下文]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/80276112</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/80276112</guid><author>DM_Source</author><pubDate>Fri, 11 May 2018 07:31:03 +0800</pubDate><description><![CDATA[问题：给1-100号灯泡，所有的灯泡都是灭的，按一次会变亮或者变暗。让1-100个人来按，规则如下：    第一个人：从1按到100    第二个人：隔一个按一次（2 4 6 8 ...）    第三个人：隔两个按一次（3 6 9 11 ...）    ......问最后那几个灯是亮的解析：    1.每个人按灯的编号都是自己编号的倍数    2.要想让灯亮着，那一定是奇数个人按过    3.怎么...]]></description><category></category></item><item><title><![CDATA[求解玻璃球的最大摔碎高度]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/80251222</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/80251222</guid><author>DM_Source</author><pubDate>Wed, 09 May 2018 11:30:09 +0800</pubDate><description><![CDATA[	今天，一哥们带回来一道题，很有意思。题目大概是这样：	给你两个玻璃球，在最少实验次数，求出它的最大摔碎的高度，给出的摔碎的高度是1-100层楼之间，不考虑其他因素的影响。	首先，来分析一下这个问题：两次机会，最少次数，1-100层高度。最先想到的时折半的方法求解，是吧？可是，限制条件是两次机会；那行，顺序查找，可是，限制条件是最少次数；那行，折半加顺序查找，可是，还是最少次数限制了你，你只是做了...]]></description><category></category></item><item><title><![CDATA[浅析Hive的四种排序方式]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/80248680</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/80248680</guid><author>DM_Source</author><pubDate>Wed, 09 May 2018 09:16:59 +0800</pubDate><description><![CDATA[一、order by 
order by 是要对输出的结果进行全局排序，这就意味着只有一个reducer才能实现（多个reducer无法保证全局有序），
但是当数据量过大的时候，效率就很低。如果在严格模式下（hive.mapred.mode=strict）,则必须配合limit使用。
二、sort by
sort by 不是全局排序，只是在进入到reducer之前完成排序，只保证了每个re]]></description><category></category></item><item><title><![CDATA[浅析Hive的group by和count（distinct）]]></title><link>https://blog.youkuaiyun.com/DM_Source/article/details/80246586</link><guid>https://blog.youkuaiyun.com/DM_Source/article/details/80246586</guid><author>DM_Source</author><pubDate>Tue, 08 May 2018 22:29:10 +0800</pubDate><description><![CDATA[    首先，Hive的group by和count（distinct）都是去除重复的数据，某种程度上来说，两者产生的结果是一样的。    实例代码：select a,count(distinct b) from t group by aselect tt.a,count(b) from (select a,b from t group by a,b)tt group by tt.a    上面两...]]></description><category></category></item></channel></rss>