<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[BigDataCoder的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a8874846</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a8874846]]></copyright><item><title><![CDATA[数据仓库建设Best Pratice学习]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/122162286</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/122162286</guid><author>a8874846</author><pubDate>Sun, 26 Dec 2021 22:59:15 +0800</pubDate><description><![CDATA[学前准备

数据仓库是什么？

从字面上理解，说白了就是把数据存在一个地方，类似于现实生活中的仓库，之所以叫数据仓库，也是由于它的一些特性

数据仓库的作用，可以分为以下几点：


	存储：数据仓库将接收和存储来自多个数据源的数据。
	
	
	处理：ETL。
	
	
	访问：为企业的分析和决策提供支持。
	
数据仓库的特点：

面向主题，基本的主题比如销量、用户。而普通数据库一般面向事务，比如用户下订单、用户注册登录
	数据仓库是集成的，数据来源于分散的操作型数据，将数据进行ETL之后才能进入数据仓库
学习]]></description><category></category></item><item><title><![CDATA[软技能-代码之外的生存指南读后感 生产力篇]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/122151841</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/122151841</guid><author>a8874846</author><pubDate>Sun, 26 Dec 2021 10:15:57 +0800</pubDate><description><![CDATA[专注

真正的专注是什么，回想一下自己闷头工作，忘记周围的人和事，为了解决一个问题忘记了吃饭和喝水，进入了心流状态，在这种状态下生产力非常高

使用意志力逼迫自己将注意力保持在手中的事情，一开始很痛苦，但熬过前十分钟后，就有足够的冲量推动进入专注状态

生产力提升计划

其实就是拆解大计划为小计划，先指定季度计划，再拆解为月计划-周计划-日计划

定额工作法

挑选一些重复去做的工作，设定一个定额，明确一个周期要完成什么，做出一个承诺，这个承诺很重要，一定要完成，否则计划不会成功。开始的时候承诺可以小一点，]]></description><category></category></item><item><title><![CDATA[软技能-代码之外的生存指南读后感 学习篇]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/122151711</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/122151711</guid><author>a8874846</author><pubDate>Sun, 26 Dec 2021 09:20:28 +0800</pubDate><description><![CDATA[如何自学

如果想成为最好的程序员，就必须懂得如何自学

剖析自学过程

回想一下，上次自学效率很高是什么时候？我近几年在玩一种卡牌游戏，叫做杀戮尖塔，游戏有四种职业，每个职业有近80张卡牌，我根本没有有意识地去记，就完全记住并熟练运用各种卡牌，通过这个例子可以分析我高效自学的特点：

感兴趣，好奇心使我轻而易举地记住了这么多信息
	实践的优先级很高，看完所有知识点再去实践是低效的，谁玩游戏会先去看攻略，再下载游戏打开呢？一定要先实践，在实践中积累的问题，立刻回到书本中去，你就有强烈的冲动去消化吸收其中的内]]></description><category></category></item><item><title><![CDATA[软技能-代码之外的生存指南读后感 自我营销篇]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/122144362</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/122144362</guid><author>a8874846</author><pubDate>Sat, 25 Dec 2021 16:13:24 +0800</pubDate><description><![CDATA[在软件开发行业，营销的名声并不好，很多人会直接把营销和骗局、夸大效果画等号

其实我们每个人在职场中都有个自己的人设，这个人设决定了别人怎么看待你，以及上级需要你做什么样的工作，这个人设在我们入职一段时间后往往会成为一个固定印象，上级会认为你就适合做这个，从而导致你一直在做重复性的工作。试想一下，你在工作中不断地自我提升，做好一件件工作，提升自己的技能，但英雄无用武之地，酒香也怕巷子深，适当的自我营销，打破他人的固有印象，让希望得到你服务的人和你自己连接起来，为他人提供价值，这就是自我营销的重要之处，也是突]]></description><category></category></item><item><title><![CDATA[软技能-代码之外的生存指南读后感 职业篇（2）]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/122143772</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/122143772</guid><author>a8874846</author><pubDate>Sat, 25 Dec 2021 15:14:16 +0800</pubDate><description><![CDATA[假装自己能成功

作为程序员，总有遇到困难的时候，所有选择留下来与困难作斗争的人，是真的对自己克服困难的信心十足吗？并不是，但他们中有很多人都有一个共同特点——假装自己能成功，当他们在假装自己能成功时，是在心理暗示自己那样行事：

你仿佛已经具备了成功完成任务的技能和天分
	你仿佛已经成为了自己想成为的那类人
	仿佛战斗已经结束，你已经大获全胜，因为你知道自己如果坚持下去，胜利就在眼前
	你仿佛已经对即将踏上的未知道路驾轻就熟
其实就是心理暗示自己能行，即使是在自己能力远远达不到的时候，也要有一种能够客服一]]></description><category></category></item><item><title><![CDATA[软技能-代码之外的生存指南读后感 职业篇（1）]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/122139982</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/122139982</guid><author>a8874846</author><pubDate>Sat, 25 Dec 2021 11:00:43 +0800</pubDate><description><![CDATA[这是一本从人的角度而非从技术角度来关注程序员的书，书中论述的内容既涉及生活习惯，又包括思维方式，目前只读了40页，从中也悟出了一点道理，记录在这

像企业一样思考

为了谋生一头扎进写代码的世界，那其实和产业线工人没什么区别。只有把自己当做一个企业去思考，才能做出良好的商业决策，其实可以把自己当做是甲方，一个软件开发的企业，而公司是我的客户。作为一个企业，我能提供的服务就是创建软件，所以我需要做到以下几点

专注于我提供的服务
	想方设法提升我的服务
	思考我能为哪些客户提供服务？
	集中精力成为一位专业.]]></description><category></category></item><item><title><![CDATA[事实表设计步骤]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/118740082</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/118740082</guid><author>a8874846</author><pubDate>Sat, 17 Jul 2021 18:24:15 +0800</pubDate><description><![CDATA[采用四步设计方法

1. 选择业务过程以及确定事实表类型

比如淘宝的订单流转的业务过程有四个：创建订单，买家付款，卖家发货，买家确认收货

明确了业务过程后，根据具体业务需求来选择与维度建模有关的业务过程。

比如买家付款这个业务过程，那么事实表应只包括买家付款这一个业务过程的单事务事实表

总而言之就是选择了哪些业务过程，那么所建立的事实表应为包含了所有业务过程的累积快照事实表


	
	
...]]></description><category></category></item><item><title><![CDATA[事实表设计之事实表特性]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/118713740</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/118713740</guid><author>a8874846</author><pubDate>Tue, 13 Jul 2021 23:51:40 +0800</pubDate><description><![CDATA[事实表特性

事实表是数据仓库维度建模的核心

事实表中一条记录所表达的业务细节程度被称为粒度

度量业务过程的事实，有可加性，半可加性，不可加性三种类型

事实表设计原则

尽量包含所有与业务过程相关的事实
	只选择与业务过程相关的事实，比如下单这个过程，不应出现支付金额，因其属于支付过程
	分解不可加事实为可加的组件，比如折扣率，可分解成原始价格与优惠价格
	选择维度和事实之前必须先声明粒度，粒度定义得越细越好
	同一个事实表中不能有多个不同粒度的事实，比如一次购物车多个商品下单，不应当存在订单总价的字]]></description><category></category></item><item><title><![CDATA[维度建模之行为维度]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/114494938</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/114494938</guid><author>a8874846</author><pubDate>Tue, 13 Jul 2021 23:28:43 +0800</pubDate><description><![CDATA[HBase就是谷歌bigdata论文中bigtable的实现，相比hdfs和hive，它可以实时读写，并且是nosql数据库系统

rowkey是hbase的主键，一般通过rowkey和主键的range来检索数据

主要用来存储结构化和半结构化的松散数据，

hbase表的特点

大：一个表可以有上十亿行，上百万列
	面向列:面向列(族)的存储和权限控制，列(族)独立检索。
	稀疏:对于为空(null)的列，并不占用存储空间，因此，表可以设计的非常稀疏。
	不支持事务
	不支持SQL
	不支持Join
..]]></description><category></category></item><item><title><![CDATA[正确使用Impala的invalidate metadata与refresh语句]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/115372951</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/115372951</guid><author>a8874846</author><pubDate>Thu, 01 Apr 2021 14:12:53 +0800</pubDate><description><![CDATA[正确使用Impala的invalidate metadata与refresh语句
https://www.jianshu.com/p/378060e1c509
看了下文章, 基本是官方文档的翻译
https://impala.apache.org/docs/build/html/topics/impala_invalidate_metadata.html
总结：
如果数仓中发生了增删表或改变表结构的行为，如create table、drop table、alter table add column等，就使用]]></description><category></category></item><item><title><![CDATA[[转]HBase底层原理(多维度分析)]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/114498543</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/114498543</guid><author>a8874846</author><pubDate>Sun, 07 Mar 2021 21:13:45 +0800</pubDate><description><![CDATA[先上HBase的系统架构图




系统架构







是不是看的N脸懵圈
不用担心,相信看了我下面的细化分析,肯定能让你恍然大悟~



HBase主要分为以下几个部分组成:



Client:



也就是我们所谓的"客户端",Client作为访问数据的入口,包含访问hbase的API接口,维护着一些cache(高速缓存存储器)来加快hbase的访问。



Zookeeper:



1.zoo...]]></description><category></category></item><item><title><![CDATA[数仓笔记]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/108556880</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/108556880</guid><author>a8874846</author><pubDate>Sat, 12 Sep 2020 23:26:54 +0800</pubDate><description><![CDATA[维度表

一般是对事实的描述信息。每一张维表对应现实世界中的一个对象或者概念。 例如：用户、商品、日期、地区等。

事实表

事实表中的每行数据代表一个业务事件（下单、支付、退款、评价等）。“事实”这 个术语表示的是业务事件的度量值（可统计次数、个数、件数、金额等），例如，订单事件中的下单金额。





数据仓库建模

ODS 层

针对 HDFS 上的用户行为数据和业务数据，我们如何规划处理？

（1）保持数据原貌不做任何修改，起到备份数据的作用。

（2）数据采用压缩，减少磁盘存储空间（例如：原始..]]></description><category></category></item><item><title><![CDATA[Spark SQL / Catalyst 内部原理 与 RBO]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/108514669</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/108514669</guid><author>a8874846</author><pubDate>Thu, 10 Sep 2020 15:16:48 +0800</pubDate><description><![CDATA[Spark SQL 架构

Spark SQL 的整体架构如下图所示

从上图可见，无论是直接使用 SQL 语句还是使用 DataFrame，都会经过如下步骤转换成 DAG 对 RDD 的操作

Parser 解析 SQL，生成 Unresolved Logical Plan
	由 Analyzer 结合 Catalog 信息生成 Resolved Logical Plan
	Optimizer根据预先定义好的规则对 Resolved Logical Plan 进行优化并生成 Optimized Logic]]></description><category></category></item><item><title><![CDATA[spark sql]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/108513946</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/108513946</guid><author>a8874846</author><pubDate>Thu, 10 Sep 2020 14:48:53 +0800</pubDate><description><![CDATA[spark内存计算框架
1.sparksql概述
1.1 sparksql的前世今生

Shark是专门针对于spark的构建大规模数据仓库系统的一个框架
Shark与Hive兼容、同时也依赖于Spark版本
Hivesql底层把sql解析成了mapreduce程序，Shark是把sql语句解析成了Spark任务
随着性能优化的上限，以及集成SQL的一些复杂的分析功能，发现Hive的MapReduce思想限制了Shark的发展。
最后Databricks公司终止对Shark的开发

决定单独开发一个框架，不]]></description><category></category></item><item><title><![CDATA[Spark调优]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/108513234</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/108513234</guid><author>a8874846</author><pubDate>Thu, 10 Sep 2020 14:22:18 +0800</pubDate><description><![CDATA[1、开发Spark项目的经验准则
   (1)尽量少生成RDD；
   (2)尽量少对RDD进行算子操作，如果有可能，尽量在一个算子里面实现多个功能；
    (3)尽量少使用发生Shuffle操作的算子，如GroupByKey、ReduceBy...]]></description><category></category></item><item><title><![CDATA[HDFS写文件]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/108450394</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/108450394</guid><author>a8874846</author><pubDate>Mon, 07 Sep 2020 16:20:28 +0800</pubDate><description><![CDATA[概述

开始之前先看看其基本属性，HDFS（Hadoop Distributed File System）是GFS的开源实现。

特点如下：

能够运行在廉价机器上，硬件出错常态，需要具备高容错性
	流式数据访问，而不是随机读写
	面向大规模数据集，能够进行批处理、能够横向扩展
	简单一致性模型，假定文件是一次写入、多次读取
缺点：

不支持低延迟数据访问
	不适合大量小文件存储（因为每条元数据占用空间是一定的）
	不支持并发写入，一个文件只能有一个写入者
	不支持文件随机修改，仅支持追加写入
HDFS中的]]></description><category></category></item><item><title><![CDATA[Spark任务提交流程]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/108449885</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/108449885</guid><author>a8874846</author><pubDate>Mon, 07 Sep 2020 16:03:05 +0800</pubDate><description><![CDATA[Standalone模式的启动流程





submit以后，和Master通信，向Master注册生成Driver
	Driver和Master申请资源，Master和Worker通信，生成Executor
	Executor对Driver反向注册
	在Driver端生成DAGScheduler和TaskScheduler
	运行main函数，在运行到action算子时,DAGScheduler通过宽依赖划分Stage，生成有向无环图
	每个Stage生成一个TaskSet，交给TaskSche...]]></description><category></category></item><item><title><![CDATA[题]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/108445303</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/108445303</guid><author>a8874846</author><pubDate>Mon, 07 Sep 2020 11:49:15 +0800</pubDate><description><![CDATA[1.为什么用zookeeper
2.spark Shuffle机制?
3.sortShuffle与HashShuffle区别是什么?
4.spark中的RDD的Partition数是由什么决定的?
5.Direct和Receiver的区别在哪?
6.spark内存模型是怎样的?
7.checkpoint是怎么做的,或者说使用在什么地方?
8.数据仓库模型是怎样的?
9.简单介绍下flink任务提交流程
10.你们数据传输之间的接口大体是如何设计的?
11.scala和java有什么区别?
12.spark.]]></description><category></category></item><item><title><![CDATA[Spark SQL 之 Join 实现]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/108442568</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/108442568</guid><author>a8874846</author><pubDate>Mon, 07 Sep 2020 10:26:53 +0800</pubDate><description><![CDATA[1. 简介

Join是SQL语句中的常用操作，良好的表结构能够将数据分散在不同的表中，使其符合某种范式，减少表冗余、更新容错等。而建立表和表之间关系的最佳方式就是Join操作。Join连接是大数据处理的重要手段，它基于表之间的共同字段将来自两个或多个表的行结合起来。如今Spark SQL(Dataset/DataFrame)已经成为Spark应用程序开发的主流，作为开发者，我们有必要了解Join在Spark中是如何组织运行的。

2. Join的基本要素

如下图所示，Join大致包括三个要素：Join方]]></description><category></category></item><item><title><![CDATA[HBase RowKey设计]]></title><link>https://blog.youkuaiyun.com/a8874846/article/details/108441768</link><guid>https://blog.youkuaiyun.com/a8874846/article/details/108441768</guid><author>a8874846</author><pubDate>Mon, 07 Sep 2020 10:09:50 +0800</pubDate><description><![CDATA[为什么Rowkey这么重要

RowKey 到底是什么

我们常说看一张 HBase 表设计的好不好，就看它的 RowKey 设计的好不好。可见 RowKey 在 HBase 中的地位。那么 RowKey 到底是什么？RowKey 的特点如下：

类似于 MySQL、Oracle中的主键，用于标示唯一的行；
	完全是由用户指定的一串不重复的字符串；
	HBase 中的数据永远是根据 Rowkey 的字典排序来排序的。
RowKey的作用

读写数据时通过 RowKey 找到对应的 Region；
	MemS]]></description><category></category></item></channel></rss>