- 离线和实时大数据开发
- 数据分类
- 业务系统
- Web系统
- 通常是非格式化的文本文件
- 外部系统
- 人工整理
- 数据结构分类
- 结构化数据
- 半结构化数据
- 非结构化数据
- 图片
- 语音
- 视频
- 数据开发流程
- 数据采集和传输
- 离线
- 实时
- 数据存储处理
- 数据应用
- 数据采集和传输
- 数据管理
- 数据质量
-
- 完整性
- 数据信息是否存在缺失的状况
- 一致性
- 数据集合是否保持了统一的格式
- 准确性
- 数据记录的信息是否存在异常或错误
- 及时性
- 合法性
- 完整性
- 衡量标准
- 行数波动
- 主键重复
- 空值率
- 枚举值检查
- 字段最小值
- 最大值
- 均值
- 数值合计
-
- 数据规范
- 数据安全
- 元数据管理
- 数据源管理
- 维度管理
- 指标管理
- 数据质量
- OLAP与OLTP
- OLTP联机事务处理
- 比如新增一个订单
- OLAP联机分析查询
- 数据查询处理
- OLTP联机事务处理
- 数据仓库
- Bill Inmon
- 数据仓库之父
- 数仓定义:数仓是企业管理和决策中
- 面向主题
- 集成
- 与时间相关
- 不可修改的数据集合
- 数仓定义:数仓是企业管理和决策中
- 企业信息化工厂模式
- 第三范式和ER理论
- 数据仓库
- 数据集市应该是数据仓库的子集
- 先建数仓再建集市
- 数据仓库之父
- Ralph Kimball
- 维度建模模式
- 维度建模关键概念
- 度量和环境
- 事实和维度
- 度量称为事实,上下文和环境则称为维度
- 事实表
- 事务事实表
- 周期快照事实表
- 累积快照事实表
- 维度表
- 星形架构和雪花架构
- 建模一般过程
- 选取业务过程
- 定义粒度
- 确定维度
- 确定事实
- 维度表设计
- 维度变化
- 重写维度值
- 插入新的维度行
- 插入新的维度列
- 维度层次
- 第一种是将所有维度层次结构全部扁平化、冗余存储到一个维度表中,比如商品的一至三级类目分别用三个字段来存储,品牌等的处理也是类似的
- 第二种是新建类目维度表,并在维度表中维护父子关系
- 维度一致性
- 维度其他
- 退化维度
- 事实表中那些看起来像是事实表的一个维度关键字,但实际上并没有对应的维度表的字段。退化维度一般都是事务的编号,如购物小票编号、发票编号
- 行为维度
- 将事实转化为维度,以确保获得更多的分析能力。
- 角色维度
- 一个事实表中多个外键指向同一个维度表
- 杂项维度
- 微型维度
- 将分析频率比较高或者变化频率比较大的字段提取出来,建立一个单独的维度表
- 多值维度和属性
- 扁平化多值维度,在事实表引入多列
- 桥接表
- 事实表和多值维度表之间新增一个表
- 退化维度
- 维度变化
- 深入事实表
- 事务事实表
- 快照事实表
- 销售库存、银行账户余额
- 累计快照事实表
- 无事实的事实表
- 客户电话咨询或者在线业务咨询
- 维度建模关键概念
- 数据仓库
- 数据集市的集合
- 先建集市再建数仓
- 维度建模模式
- 数据仓库逻辑分层优点
- 隔离性
- 性能
- 可维护性
- 规范性
- 数据仓库一般分为如下几层
- 原始数据层
- 数据仓库明细层
- 数据仓库汇总层
- 应用层
- Bill Inmon
- 实时数据平台的整体架构
- 实时数据采集(如Flume)
- 消息中间件(如Kafka)
- 流计算框架(如Strom、Spark、Flink和Beam等)
- 实时数据存储
- Hive基本架构
- UI组件
- Driver组件
- Complier编译器
- Hive SQL语句进行解析
- Optimizer优化器
- 编译优化
- Executor执行器
- 生成执行计划
- Complier编译器
- Metastore组件
- 元数据服务组件、存储Hive的元数据
- CLI
- 命令行接口
- Thrift Server
- JDBC/ODBC
- 供JDBC和ODBC接入的能力
- JDBC/ODBC
- Hive Web Interface
- 网页方式访问Hive所提供的服务
- Hive SQL执行原理图解
- select语句执行图解
- 输入分片
- 128MB
- 128MB
- 44MB
- Map阶段
- 个数由分片阶段的SPLIT个数
- Map任务接收自己的分片文件
- 在Map函数中逐行对输入文件进行检查:商品类目是否为iPhone7?不是的话,将其过滤;是的话,获取select语句中指定的列值,并保存到本地文件中。
- Hadoop直接合并Map任务的输出文件到输出目录
- 输入分片
- group by语句执行图解
- 输入分片
- 同select语句
- Map阶段
- 如果是,则输出形如的键值对,因为需要按照city对订单数目进行统计(注意和select语句的不同)。
- Combiner阶段
- 如果计算只是求总数、最大值和最小值,可以使用Combiner,但是如果做平均值计算使用了Combiner,最终的Reduce计算结果就会出错。
- Shuffle阶段
- 多个reduce任务的同样键值对会被partiton过程分配到同样的Reduce Task上,而merge操作即将它们的值进行合并,比如对于key=hz的键值对,Map Task1的输出为,Map Task2的输出为,Reduce Task1的merge过程会将其合并为,从而作为Reduce Task1的输入
- Reduce阶段
- Reduce Task只需调用reduce函数逻辑将它们汇总即可,对于,即得到2+1=3
- Hadoop合并Reduce Task任务的输出文件到输出目录
- 输入分片
- join语句执行图解
- 输入分片
- join语句的输入文件包括第一个MapReduce任务和第二个MapReduce任务的输出文件。
- Map阶段
- Shuffle阶段
- 对于join语句,Shuffle过程主要是Partition
- join的键取hash值,然后对此hash值按照Reduce任务数目取模,被分配到reducer
- 对于join语句,Shuffle过程主要是Partition
- Reduce阶段
- join语句执行图解: 比如对于buyer_id=222的列,Map Task1-1的order_id=1003buyer_id=222的行会被分发到Reduce Task1上,而Map Task2-1的buyer_id=222age=25的列也会被分发到Reduce Task1上(因为它们的buyer_id都等于222),此时Reduce Task1就根据buyer_id将它们的值关联合并成一行,并写入本地的输出文件中。
- Hadoop合并Reduce Task任务的输出文件到输出目录
- 输入分片
- select语句执行图解
- 数据分类
离线和实时大数据开发
最新推荐文章于 2024-05-23 10:33:12 发布