【数仓】数仓DWS层搭建及函数增强
123456端口号9870 HDFS端口号端口号7180 clouder manager 集群管理软件端口号8889 Hue的web界面端口号8090 Presto的webUI界面端口号19888 Yarn历史服务端口号8088 ResourceManager的web界面
维度之间的关系
维度之间存在并列和递进包含的关系。
比如列出以下维度组合:(日期,城市,商圈,店铺,品牌,大类,中类,小类)
总共可以得出2的8次方总共256种组合。这里分为
日期,
日期,城市
日期,城市,商圈
日期,城市,商圈,店铺
品牌
品牌,大类
品牌,大类,中类
品牌,大类,中类,小类
比如:日期,城市,商圈,日期和后面的两个属于并列关系。
但是城市和商圈属于递进包含关系。因为属于一个商圈的那必然属于一个城市。
从而日期,城市,商圈可以简写为日期,商圈
例如: 日期+城市 去掉城市, 影响分组结果, 所以: 日期和城市是并列关系.例如: 日期+城市+商圈 去掉城市, 不影响结果, 属于同一个商圈的一定属于同一个城市.递进包含关系
主题需求
指标
123销售收入、平台收入、配送成 ...
【数仓】ODS,DWD层搭建及拉链表
本文主要讲了数据抽取分为全量和增量抽取,以及拉链表的具体实现。
拉链表的公式:(旧的拉链表 left join 增量数据) union all 增量数据。
数据流向:业务数据库-> ODS,ODS->DWD
Hive中解决乱码问题在MySQL中执行如下命令
123456789-- 注意 下面sql语句是需要在MySQL中执行 修改Hive存储的元数据信息(metadata)use hive;show tables;alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8 ;alter table PARTITION_KEYS modif ...
【数仓】数仓DWB层搭建+Presto
本文主要解决搭建数仓的过程中遇到的一些自关联查询,多表联查,join错位问题。
DWB(DataWarehouse Base)
名称:基础数据层、中间数据层
功能:退化维度(Degenerate Dimension-DD)(降维)形成大宽表
功能
通过退化维度操作之后,带来的显著效果是
整个数仓中表的个数减少了;
业务相关联的数据(跟你分析相关的)数据字段聚在一起了,形成一张宽表。
分析查询时的效率显著提高了:多表查询和单表查询的差异。
带来的坏处是
数据大量冗余、宽表的概念已经不符合3范式设计要求了。
但是数仓建模的核心追求是,只要有利于分析,能够加快数据分析,都可以做。
订单明细宽表 dwb_order_detail
店铺明细宽表 dwb_shop_detail
商品明细宽表 dwb_goods_detail
订单明细宽表fact_shop_order注意
1,如果表是一张拉链表,加上过滤条件 end_date=’9999-99-99’,把当前有效的数据查询出来
2,对于fact_shop_order的end_date=’9999 ...
【Java查漏补缺(一)】数组与循环
除了数组与循环,还有方法,讲究看吧!后续练习内容都是连贯的!
命名规范: 再本文的后面,参照阿里的Java编程公约写的.其中强制是必须要遵守的,推荐的最好遵守.
Basical Java
看下Java中的变量类型吧!
数据类型
关键字
内存占用
二进制位数
字节型
byte
1个字节
4位
短整型
short
2个字节
8位
整型
int(常用)
4个字节
32位
长整型
long
8个字节
64位
单精度浮点数
float
4个字节
32位
双精度浮点数
double(常用)
8个字节
64位
字符型
char
2个字节
8位
布尔类型
boolean
1个字节
4位
注释
常见的注释有三种类型:
单行注释: //
多行注释: /* */
文档注释: /** */
常量
自定义常量(目前先了解, 在面向对象的时候, 才会详细解释)
字面值常量
整数常量: 如 1,2, 3, 4, 5
小数常量: 例如: 5.21, 13.14
字符常量: 字符常量通常用单引号引起来, 例如: ‘A’, ‘B’, ‘c’
字符串常量: 字 ...
【数仓】建模与分层
本文涉及拉链表的理论知识Slowly Changed Dimension(缓慢渐变维)
数仓Data WareHouse是么是数仓?数据仓库是面向分析的集成化数据平台,分析的结果给企业提供决策支持。
数仓的应用场景是什么?满足企业中所有数据的统一化存储,通过规范化的数据处理来实现企业的数据分析应用。
简而言之就是分析数据的。
数仓的4大核心特点1,面向主题性
主题(Subject) 是在较高层次上将企业信息系统中某一分析对象(重点是分析的对象)的数据进行整合、归类并分析的一种范围,属于一个抽象概念。
2,集成性
数据仓库不产生数据也不使用数据
只会实现存储和加工
3,非易失性
数仓上面的数据几乎没有修改操作,都是查询分析的操作。
数仓是分析数据规律的平台 不是创造数据规律的平台。
注意:改指的数据之间的规律不能修改。
4,时变性
数仓是一个持续维护建设的东西。
站在时间的角度,数仓的数据成批次变化更新。如一天一分析(T+1) 一周一分析(T+7)
OLTP和OLAP区别OLAP(联机事务处理系统)核心:事务支持
代表:RDBMS关系型数据库管理系 ...
Apache Sqoop正确使用方式
Summary(提炼):
在玩Sqoop时候最重要的是搞清楚到底是数据导入还是导出,抓不住这点你就是迷迷糊糊的(不是我)
import == 是mysql导入数据到Hive,HDFS,HBase
export == 刚好相反
对于Sqoop我的建议是记住一两个常用的数据导入方式(通过HCatlog将数据从mysql导入到Hive)
Linux中手动进入Hive二代客户端的命令:
beeline
!connect jdbc:hive2://hadoop01:10000 (注意!和connect中间可以没有空格)
Tips:Swoop是在Linux中直接执行的
数据导入数据导入-MySQL到HDFS指定分隔符
将数据从MySQL的userdb数据库的表tmp导出数据到HDFS上,
并指定存储位置为/sqoop/result2以及分割符为\t
1234567sqoop import \--connect jdbc:mysql://hadoop01:3306/userdb \--username root \--pa ...
MySQL综合练习
数据准备数据表介绍123456789101112131415--1.学生表Student(SId,Sname,Sage,Ssex)--SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表Course(CId,Cname,TId)--CId 课程编号,Cname 课程名称,TId 教师编号 --3.教师表Teacher(TId,Tname)--TId 教师编号,Tname 教师姓名 --4.成绩表SC(SId,CId,score)--SId 学生编号,CId 课程编号,score 分数
数据表创建1234567891011121314151617181920212223242526272829303132333435363738394041424344-- 学生表 Studentcreate table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssex varchar(10));insert into Student values('01' , ...
数仓项目需求及技术架构
Interview Summary1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283841,请简述你常用的Linux命令. # df -h, free... 2. 大数据的特点是什么? # 5V(大多值快信) 3. namenode是如何管理datanode的? # 心跳机制, 副本机制, 负载均衡. 4. HDFS的默认副本数是3, 那么这3个副本是如何存储的呢?5. Hive的三种部署方式, 内嵌模式, 本地模式, 远程模式的区别是什么? # 需不需要手动开启metastore(元数据服务) # 是否可以使用第三方的数据库 # 是否可以实现共享... 内嵌模式: 不需要, 不能, 不能. 本地模式: 不需要, 能, 能(metastore服务不能 ...
HDFS及上手Hive
HDFS的常见shell命令Summary(总结)第一点:书写HDFS的shell命令大致就是在shell的基础上在开头添加Hadoop fs 或者hdfs dfs这种,并且在命令起始添加 - 。
第二点:基础命令中只有put,get命令,还有appendToFile命令是Linux路径和HDFS路径进行交互的。
12345678910111213141516171819202122232425262728293031323334353637383940# HDFS的Shell命令指的是, 在CRT 或者 Tabby等工具中, 写Shell命令, 操作HDFS文件系统.# 格式, 如下两种方式, 除了通用性以外, 其它没区别. hadoop fs -命令名 [选项] [参数] # 更通用, 可以操作多种文件系统.hdfs dfs -命令名 [选项] [参数] # 只能操作HDFS文件系统.# ls命令, 查看指定目录的(子级)信息的hadoop fs -ls / # 只能查看单级hdfs dsf -ls / # 只能查看单级hadoop fs -lsr / # 查看目录的信息 ...
Linux进阶(Shell编程)
Summary:总结
echo输出的三种情况:(这几种情况固然很难区分,那么就每种情况记忆1个好了!标红的是)
和输出变量相关:(name=zhangsan) (大-括号)
echo $name ==>输出name变量的值
echo ${name}123 ==> 输出zhangsan123 (细节:如果只有变量名,大括号可以不写)
和数学运算相关(中-括号)
echo $((5+5)) ==>输出10
echo $[5+5]
echo `expr 5+5’
和执行Linux命令相关(小-括号)
echo `linux命令` ==> echo `pwd`
echo (Linux命令) ==> echo (ll -h)
开始前的准备修改Linux中默认制表符
linux中默认制表符即Tab键为8个空格,在shell编程中略有不便
12vim /etc/vim/vimrc # 编辑系 ...

