<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[github_36444580的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/github_36444580</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; github_36444580]]></copyright><item><title><![CDATA[简单搞定数仓搭建:ODS层设计规范]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/120531654</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/120531654</guid><author>github_36444580</author><pubDate>Tue, 28 Sep 2021 16:13:26 +0800</pubDate><description><![CDATA[命名规范

表命名规范表命名规则：{层次}{源系统表名}{保留位/delta与否}。
	增量数据：{project_name}.s{源系统表名}delta。
		全量数据：{project_name}.s{源系统表名}。
		ODS ETL过程的临时表：{project_name}.tmp{临时表所在过程的输出表}{从0开始的序号}。
		按小时同步的增量表：{project_name}.s{源系统表名}{delta}_{hh}。
		按小时同步的全量表：{project_name}.s{源系统表名}{hh]]></description><category></category></item><item><title><![CDATA[简单搞定数仓搭建:层次调用规范]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/120313559</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/120313559</guid><author>github_36444580</author><pubDate>Wed, 15 Sep 2021 17:39:29 +0800</pubDate><description><![CDATA[层次调用规范

ADS应用层优先调用数据仓库公共层数据。如果已经存在CDM层数据，不允许ADS应用层跨过CDM中间层从ODS层重复加工数据。CDM中间层应该积极了解应用层数据的建设需求，将公用的数据沉淀到公共层，为其他数据层次提供数据服务。同时，ADS应用层也需积极配合CDM中间层进行持续的数据公共建设的改造。避免出现过度的ODS层引用、不合理的数据复制和子集合冗余。总体遵循的层次调用原则如下：

ODS层数据不能直接被应用层任务引用。如果中间层没有沉淀的ODS层数据，则通过CDM层的视图访问。CDM层视图]]></description><category></category></item><item><title><![CDATA[简单搞定数仓搭建:数仓模型(DIM)]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/120002614</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/120002614</guid><author>github_36444580</author><pubDate>Mon, 30 Aug 2021 18:10:38 +0800</pubDate><description><![CDATA[公共维度汇总层DIM（Dimension）基于维度建模理念，建立整个企业的一致性维度。

公共维度汇总层（DIM）主要由维度表（维表）构成。维度是逻辑概念，是衡量和观察业务的角度。维表是根据维度及其属性将数据平台上构建的物理化的表，采用宽表设计的原则。因此，公共维度汇总层（DIM）首先需要定义维度。

定义维度

在划分数据域、构建总线矩阵时，需要结合对业务过程的分析定义维度。本教程以A电商公司的营销业务板块为例，在交易数据域中，我们重点考察确认收货（交易成功）的业务过程。

在确认收货的业务过程中，主要有]]></description><category></category></item><item><title><![CDATA[简单搞定数仓搭建:数仓模型(DWS)]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/119787230</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/119787230</guid><author>github_36444580</author><pubDate>Wed, 18 Aug 2021 19:21:28 +0800</pubDate><description><![CDATA[公共汇总粒度事实层以分析的主题对象作为建模驱动，基于上层的应用和产品的指标需求构建公共粒度的汇总指标事实表。公共汇总层的一个表通常会对应一个派生指标。

公共汇总事实表设计原则

聚集是指针对原始明细粒度的数据进行汇总。DWS公共汇总层是面向分析对象的主题聚集建模。在本教程中，最终的分析目标为：最近一天某个类目（例如：厨具）商品在各省的销售总额、该类目Top10销售额商品名称、各省用户购买力分布。因此，我们可以以最终交易成功的商品、类目、买家等角度对最近一天的数据进行汇总。

注意

聚集是不跨越事实的。聚]]></description><category></category></item><item><title><![CDATA[简单搞定数仓搭建:数仓模型(DWD)]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/119613335</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/119613335</guid><author>github_36444580</author><pubDate>Wed, 11 Aug 2021 18:01:44 +0800</pubDate><description><![CDATA[明细粒度事实层（DWD）

明细粒度事实层以业务过程驱动建模，基于每个具体的业务过程特点，构建最细粒度的明细层事实表。您可以结合企业的数据使用特点，将明细事实表的某些重要维度属性字段做适当冗余，即宽表化处理。

公共汇总粒度事实层（DWS）和明细粒度事实层（DWD）的事实表作为数据仓库维度建模的核心，需紧绕业务过程来设计。通过获取描述业务过程的度量来描述业务过程，包括引用的维度和与业务过程有关的度量。度量通常为数值型数据，作为事实逻辑表的依据。事实逻辑表的描述信息是事实属性，事实属性中的外键字段通过对应维度]]></description><category></category></item><item><title><![CDATA[简单搞定数仓搭建:数仓模型(ODS)]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/119351283</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/119351283</guid><author>github_36444580</author><pubDate>Tue, 03 Aug 2021 16:14:15 +0800</pubDate><description><![CDATA[数据引入层（ODS）

ODS（Operational Data Store）层存放您从业务系统获取的最原始的数据，是其他上层数据的源数据。业务数据系统中的数据通常为非常细节的数据，经过长时间累积，且访问频率很高，是面向应用的数据。

数据引入层表设计

本教程中，在ODS层主要包括的数据有：交易系统订单详情、用户信息详情、商品详情等。这些数据未经处理，是最原始的数据。逻辑上，这些数据都是以二维表的形式存储。虽然严格的说ODS层不属于数仓建模的范畴，但是合理的规划ODS层并做好数据同步也非常重要。本教程中，]]></description><category></category></item><item><title><![CDATA[简单搞定数仓搭建:数仓分层]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/119043076</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/119043076</guid><author>github_36444580</author><pubDate>Fri, 23 Jul 2021 19:39:32 +0800</pubDate><description><![CDATA[我们建议将数据仓库分为三层，自下而上为：数据引入层（ODS，Operation Data Store）、数据公共层（CDM，Common Data Model）和数据应用层（ADS，Application Data Service）。

数据仓库的分层和各层级用途如下图所示。



数据引入层ODS（Operation Data Store）：存放未经过处理的原始数据至数据仓库系统，结构上与源系统保持一致，是数据仓库的数据准备区。主要完成基础数据引入到MaxCompute的职责，同时记录基础数据的历史变化。]]></description><category></category></item><item><title><![CDATA[简单搞定数仓搭建:架构与模型设计(二)]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/118802443</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/118802443</guid><author>github_36444580</author><pubDate>Fri, 16 Jul 2021 15:55:35 +0800</pubDate><description><![CDATA[上期引用：https://mp.youkuaiyun.com/mp_blog/creation/editor/118491690

数据模型

目录

数据引入层（ODS）

数据引入层表设计

建表示例

数据引入层存储

缓慢变化维度

明细粒度事实层（DWD）

明细粒度事实表设计原则

明细粒度事实层（DWD）规范

建表示例

公共汇总粒度事实层（DWS）

公共汇总事实表设计原则

公共汇总事实表规范

建表示例

公共维度汇总层（DIM）

定义维度

设计维表

公共维度汇总层（DIM）维表规范

建表]]></description><category></category></item><item><title><![CDATA[简单搞定数仓搭建:架构与模型设计（一）]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/118491690</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/118491690</guid><author>github_36444580</author><pubDate>Mon, 05 Jul 2021 16:05:32 +0800</pubDate><description><![CDATA[技术架构选型

在数据模型设计之前，您需要首先完成技术架构的选型。本教程中使用阿里云大数据产品MaxCompute配合DataWorks，完成整体的数据建模和研发流程。

完整的技术架构图如下图所示。其中，DataWorks的数据集成负责完成数据的采集和基本的ETL。MaxCompute作为整个大数据开发过程中的离线计算引擎。DataWorks则包括数据开发、数据质量、数据安全、数据管理等在内的一系列功能。





数仓分层

我们建议将数据仓库分为三层，自下而上为：数据引入层（ODS，Operatio.]]></description><category></category></item><item><title><![CDATA[pulsar简介]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/118296680</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/118296680</guid><author>github_36444580</author><pubDate>Mon, 28 Jun 2021 11:03:38 +0800</pubDate><description><![CDATA[这两年pulsar发展比较快，有好多大公司引入了pulsar，相关的资料和课程也多了，今天一起来了解一下pulsar这款中间件。

下图是几款消息中间件的历史：





2012年pulsar在Yahoo内部开发，2016年开源并捐献给Apache，2018成为Apache顶级项目。

1架构

pulsar的架构图如下：





总结一下，pulsar有下面的几个特性。

1.1 计算存储分离

pulsar采用计算和存储相分离的架构，Broker集群负责把producer发出的消息发送给consum]]></description><category></category></item><item><title><![CDATA[简单搞定数仓搭建:业务调研]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/118296380</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/118296380</guid><author>github_36444580</author><pubDate>Mon, 28 Jun 2021 10:47:19 +0800</pubDate><description><![CDATA[确定需求

您在构建数据仓库之前，首先需要确定构建数据仓库的目标与需求，并进行全面的业务调研。您需要了解真实的业务需求，以及确定数据仓库要解决的问题。

业务调研

充分的业务调研和需求分析是数据仓库建设的基石，直接决定数据仓库能否建设成功。在数仓建设项目启动前，您需要请相关的业务人员介绍具体的业务，以便明确各个团队的分析员和运营人员的需求，沉淀出相关文档。

您可以通过调查表和访谈等形式详细了解以下信息：

用户的组织架构和分工界面。
	例如，用户可能分为数据分析、运营和维护部门人员，各个部门对数据仓库的]]></description><category></category></item><item><title><![CDATA[简单搞定数仓搭建:数仓构建流程]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/118082910</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/118082910</guid><author>github_36444580</author><pubDate>Mon, 21 Jun 2021 11:22:02 +0800</pubDate><description><![CDATA[基本概念

在正式学习本教程之前，您需要首先理解以下基本概念：

业务板块：比数据域更高维度的业务划分方法，适用于庞大的业务系统。
	维度：维度建模由Ralph Kimball提出。维度模型主张从分析决策的需求出发构建模型，为分析需求服务。维度是度量的环境，是我们观察业务的角度，用来反映业务的一类属性。属性的集合构成维度，维度也可以称为实体对象。例如，在分析交易过程时，可以通过买家、卖家、商品和时间等维度描述交易发生的环境。
	属性（维度属性）：维度所包含的表示维度的列称为维度属性。维度属性是查询约束条件、]]></description><category></category></item><item><title><![CDATA[简单搞定数仓搭建:数仓规范]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/117921306</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/117921306</guid><author>github_36444580</author><pubDate>Tue, 15 Jun 2021 11:37:55 +0800</pubDate><description><![CDATA[DMP数仓规范

1. 数据模型架构规范

1.1数据层次的划分

ODS：Operational Data Store，操作数据层，在结构上其与源系统的增量或者全量数据基本保持一致。它相当于DW数据的一个数据准备区，同时又承担着基础数据的记录以及历史变化。其主要作用是把基础数据引入到DMP。
	CDM：Common Data Model，公共维度模型层，又细分为DWD和DWS。它的主要作用是完成数据加工与整合，建立一致性的维度，构建可复用的面向分析和统计的明细事实表，以及汇总公共粒度的指标。
	DWD：D]]></description><category></category></item><item><title><![CDATA[简单搞定Spark性能优化:常见异常解决（三）]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/117415418</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/117415418</guid><author>github_36444580</author><pubDate>Mon, 31 May 2021 14:17:46 +0800</pubDate><description><![CDATA[第一部分内容链接：https://blog.youkuaiyun.com/github_36444580/article/details/117037685

die
]]></description><category></category></item><item><title><![CDATA[简单搞定Spark性能优化:常见异常解决（二）]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/117219963</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/117219963</guid><author>github_36444580</author><pubDate>Mon, 24 May 2021 11:13:07 +0800</pubDate><description><![CDATA[第一部分内容链接：https://blog.youkuaiyun.com/github_36444580/article/details/117037685



11.ERROR shuffle.RetryingBlockFetcher: Failed to fetch block shuffle_7_18444_7412, and will not retry

原因：Executor被kill，无法拉取该block。可能是开启AE特性时数据倾斜造成的，其他executor都已完成工作被回收，只有倾斜的exec..]]></description><category></category></item><item><title><![CDATA[简单搞定Spark性能优化:常见异常解决（一）]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/117037685</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/117037685</guid><author>github_36444580</author><pubDate>Wed, 19 May 2021 17:34:13 +0800</pubDate><description><![CDATA[spark日志查看方法

分享一个博客：https://blog.youkuaiyun.com/qq_33588730/article/details/109353336



异常集

1.org.apache.spark.SparkException: Kryo serialization failed: Buffer overflow

原因：kryo序列化缓存空间不足。



解决方法：增加参数，--confspark.kryoserializer.buffer.max=2047m。





2.o...]]></description><category></category></item><item><title><![CDATA[简单搞定Kafka: producer拦截器]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/116539833</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/116539833</guid><author>github_36444580</author><pubDate>Sat, 08 May 2021 19:34:24 +0800</pubDate><description><![CDATA[拦截器原理

Producer拦截器(interceptor)是在Kafka 0.10版本被引入的，主要用于实现clients端的定制化控制逻辑。

对于producer而言，interceptor使得用户在消息发送前以及producer回调逻辑前有机会对消息做一些定制化需求，比如修改消息等。同时，producer允许用户指定多个interceptor按序作用于同一条消息从而形成一个拦截链(interceptor chain)。Intercetpor的实现接口是org.apache.kafka.client]]></description><category></category></item><item><title><![CDATA[简单搞定Kafka: 工作流程分析]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/116162256</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/116162256</guid><author>github_36444580</author><pubDate>Mon, 26 Apr 2021 17:02:50 +0800</pubDate><description><![CDATA[Kafka生产过程分析

写入方式

producer采用推（push）模式将消息发布到broker，每条消息都被追加（append）到分区（patition）中，属于顺序写磁盘（顺序写磁盘效率比随机写内存要高，保障kafka吞吐率）。

分区（Partition）

消息发送时都被发送到一个topic，其本质就是一个目录，而topic是由一些Partition

Logs(分区日志)组成，其组织结构如下图所示：







我们可以看到，每个Partition中的消息都是有序的，生产的消息被不断...]]></description><category></category></item><item><title><![CDATA[简单搞定Kafka:消费过程分析]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/115865265</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/115865265</guid><author>github_36444580</author><pubDate>Mon, 19 Apr 2021 15:14:45 +0800</pubDate><description><![CDATA[高级API

1）高级API优点

高级API 写起来简单

不需要去自行去管理offset，系统通过zookeeper自行管理

不需要管理分区，副本等情况，系统自动管理

消费者断线会自动根据上一次记录在zookeeper中的offset去接着获取数据（默认设置1分钟更新一下zookeeper中存的的offset）

可以使用group来区分对同一个topic 的不同程序访问分离开来（不同的group记录不同的offset，这样不同程序读取同一个topic才不会因为offset互相影响）

2）高级AP]]></description><category></category></item><item><title><![CDATA[简单搞定Kafka:分布式集群部署]]></title><link>https://blog.youkuaiyun.com/github_36444580/article/details/115620532</link><guid>https://blog.youkuaiyun.com/github_36444580/article/details/115620532</guid><author>github_36444580</author><pubDate>Mon, 12 Apr 2021 14:22:55 +0800</pubDate><description><![CDATA[环境准备

集群规划


			hadoop102
			
			
			hadoop103
			
			
			hadoop104
			
		zk
			zk
			zk
		kafka
			kafka
			kafka
		







jar包下载

下载地址：http://kafka.apache.org/downloads.html







虚拟机准备



1）准备3台虚拟机

2）配置ip地址

3）配置主机名称

4）3台主机分别关闭防火墙





安装jdk...]]></description><category></category></item></channel></rss>