数据仓库:缓慢变化维度(SCD)
什么是SCDSCD(Slowly Changing Dimensions),一般翻译成:缓慢变化维。 SCD的提出是因为,在现实世界中,维度的属性并不是静态的,它会随着时间的流逝发生缓慢的变化。 缓慢变化维度其实就是指,在维度表中那些会随着时间变化的字段,比如用户基本资料。 缓慢是一个相对的概念,与 ...
Read more
Flink的Tumbling Windows和Sliding Windows
Flink的窗口函数官网地址:https://ci.apache.org/projects/flink/flink-docs-release-1.7/dev/stream/operators/windows.html 在流系统中通常会使用到Windows来统计一定范围的数据,比如按时间、按个数等进行 ...
Read more
推荐系统:协同过滤算法
协同过滤算法协同过滤算法是诞生最早,且较为著名的推荐算法,主要用于预测和推荐。 算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。 协同过滤推荐算法分为两类:基于用户的协同过滤算法(user-based collaborative filterin ...
Read more
Spark窗口函数
窗口函数引入 使用Spark SQL进行复杂的离线统计任务,有时需要计算一些排序特征、窗口特征等,显然不能简单地通过groupBy来完成,这时就需要了解spark中的窗口函数。 比如下面的统计需求: 统计订单表,每个店铺每个订单和前一单的价格和。此时如果通过groupBy来完成特别费劲。 统计订单 ...
Read more
数据仓库:拉链表
什么是拉链表拉链表是针对数据仓库中表存储数据的方式而定义的。 所谓拉链,就是记录历史,记录一个事物从开始,一直到当前状态的所有变化的信息。 下面的示例就是一张拉链表,存储的是用户的基本信息以及每条记录的生命周期。我们可以使用这张表拿到当天的最新数据以及之前的历史数据。 register_dat ...
Read more
数据仓库:模型设计和维度建模
数据仓库模型数据仓库中有几种经典的数据模型:范式模型、维度模型、DataVault。 很多模型的设计都在同构化,而且在工作中也不是单独地用一种模型,会根据业务场景做出选择。 范式模型范式是数据库逻辑模型设计的基本理论,一个关系模型可以从第一范式到第五范式进行无损分解。 在数据仓库的模型设计中目前一般 ...
Read more
Hive实现WordCount程序
Hive实现WordCountHive的底层执行引擎是MapReduce,既然MR程序可以实现单词统计,那么Hive也可以,而且相对于MR编程实现来说更容易,只需要编写SQL语句即可。 数据准备创建数据库: create database wordcount; 切换至wordcount数据库: us ...
Read more
HBase与Hive、Phoenix的集成&节点的管理
HBase与Hive的集成HBase与Hive的对比 Hive HBase 特点 类SQL数据仓库 NoSQL (key - value) 适用场景 离线数据分析和清洗 适合在线业务 延迟 延迟高 延迟低 存储位置 存储在HDFS 存储在HDFS HBase与Hive集成 ...
Read more
HBase的读写流程&HBase API
HBase读数据流程 HRegionServer保存着.META.的这样一张表以及表数据,要访问表数据,首先Client先去访问zookeeper,从zookeeper里面找到.META.表所在的位置信息,即找到这个.META.表在哪个HRegionServer上保存着。 接着Client通过刚才获 ...
Read more
HBase的RowKey设计
RowKey的重要性RowKey的特点: 类似于MySQL、Oracle中的主键,用于标示唯一的行; 完全是由用户指定的一串不重复的字符串; HBase中的数据永远是根据 Rowkey 的字典排序来排序的。 RowKey的作用: 读写数据时通过RowKey找到对应的Region; MemSto ...
Read more