跳至主要內容
ODS&Sqoop

day04_保险项目课程笔记

今日内容:

  • 1- 基于Sqoop完成数据采集工作
    • 1.1 构建ODS层的表
    • 1.2 基于SQOOP完成采集工作: 全量 和 增量

1. 构建ODS层库和表

  • ODS层: 数据源层(贴源层)
	作用:  对接数据源, 一般会和数据源保持相同的粒度, 数据源中有那些表, 那么我们的ODS层就需要构建有那些表, 与之一一对应
	
在hive中建表的时候, 需要思考那些点呢? 
	1- 表选择为内部表还是外部表呢? 
		判断标准:  表未来存储的数据, 我们是否具有绝对的控制权
		
		项目中: 
			通过Spark SQL连接HIVE构建表, 由于是自己建表, 自己从数据库导入数据, 所有对数据具有控制权, 此时可以选择构建内部表或者是外部表, 建议构建内部表
		
	2- 表是否需要使用分区表还是分桶表: 
		分区表: 在HIVE数仓体系中, 对数据量比较大的表, 或者每天都有新增或者更新的数据表, 一般构建的都是分区表
		
		分桶表:  当需要对表数据进行采样操作的时候, 或者说每一天中数据量依然是非常庞大的,或者说每个分区下的数据依然也是非常庞大的, 为了能够进一步提升查询的性能, 可以选择构建分桶表
		
		项目中: 
			除了投保信息表 客户信息表 理赔信息表 退保信息表比较庞大以外, 需要构建分区表, 其他的表主要都是一些配置型的表 数据体量不是特别的大, 可以不用构建分区表, 对于配置型表 后续可以直接选择覆盖处理即可, 这些表一般都不需要维护历史变化
			而分桶表, 后续也不需要采样而且基于Spark SQL来处理 也不需要处理,  并不构建
		在学习环境中, 为了方便一些, 后续会全部构建普通表
	
	3- 表需要使用那种存储格式 以及压缩方案
		ODS层: 一般来说都是TextFile 或者 ORC
			说明: 如果后续构建表, 然后数据直接从HDFS上加载普通的文本文件数据, 此时一般构建为TextFile (load 加载, 此方式仅支持textFile), 以及通过 sqoop采集选择的是原生导入行为的, 一般构建textFile
			如果能支持ORC导入, 一般建议构建为ORC格式
		
		其他层次: 一般选择为ORC
			
		项目中: 所有的层次都是基于ORC格式来存储, 对于ODS层, 基于sqoop的hcatalog模式来导入的
		
		学习环境中: 所有层次都采用textFile, 对于ODS层, 由于sqoop使用apache原生版本测试, 导致对hcatalog支持不良好, 仅能使用原生方式导入, 在项目中不存在 因为是基于CDH版本 可以直接使用hcatalog模式
		
		压缩方案:  数仓体系中, 一般我们选择主要是以SNAPPY为主, 对于ODS层这样数据量比较庞大的基础层, 可以选用 zlib/GZ这种可以压缩的更小的压缩方案
	
	4- 对于表的字段的选择:  
		ODS层: 一般会和数据源的表保持相同的粒度 原有表有那些字段, 那么我们在ODS层建表中也有那些字段, 如果分区表,在此基础上添加分区字段即可, 分区字段一般以采集的周期为准
		
		其他层次的建表: 没有固定方案, 主要参考当前计算的维度 和 指标来构建表, 以能够存储结果数据为准则来建表

Znyoung大约 15 分钟大数据保险项目SqoopODS
数仓生态圈辅助工具

资料

Day02_数仓生态圈辅助工具

知识点01:课程内容大纲与学习目标

#课程内容大纲
	1、大数据分析交互平台Hue
		介绍、功能、架构原理
		Hue的使用(操作HDFS Hive)
	2、数据迁移同步工具Sqoop
		介绍、工作机制、原理
		数据导入
			全量数据
			增量数据
			条件部分
			Hive HCatalog API
		数据导出
        	全量导出
        	增量导出
	3、工作流调度工具Oozie
		工作流概念
		Oozie介绍、架构
		Oozie工作流类型
		Oozie使用案例
#学习目标
	了解Hue的功能、使用
	重点掌握Sqoop功能、使用
	了解oozie的功能、使用(azkban,airflow)
	
#辅助工具是帮助我们在开发中更方便、更迅速的从事某些任务。同类可替代的产品众多。
#希望大家能够具备一种意识:当我需要的时候 应该如何拾起来这个工具去帮我干活 如果换其他同类型产品如何快速切换使用

Znyoung大约 25 分钟大数据新零售HueSqoopOozie