数据仓库完全用统计分析框架实现:Spark,MR
但是因为实际生产环境中,需求量非常大,
如果每个需求都采用独立c代码开发方式,重复计算会很多.
提高性能的方法: 1.减少数据量 2. 减少重复计算
例如RDD
cache 可以减少重复计算,但是不安全,都在缓存中,
persist 都放内存中,但是慢
而数仓是通过表来保存数据,从而达到减少重复计算的操作.
不需要进行统计分析,所以尽量不改变存储格式,因为修改数据格式需要消耗大量资源.,
尽量不改变数据格式,消耗资源,影响性能.
JSON,TSV
但是如果必须要修改,就是异构数据的融合,
为统计分析做准备
对数据的加工如过滤,无效数据筛选,
对加工后的数据进行统计
应用程序数据服务
分析后的结构是整个数仓的最终结果,最后需要对外提供服务,例如:可视化界面图像.
看事物的角度
每一层执行完,再执行下一层,确保不会出现回环
通过SQL和任务调度器,由任务调度器来完成调度工作.
DROP TABLE IF EXISTS ods_base_category2_full;
CREATE EXTERNAL TABLE ods_base_category2_full
(
`id` STRING COMMENT '编号',
`name` STRING COMMENT '二级分类名称',
`category1_id` STRING COMMENT '一级分类编号',
`create_time` STRING COMMENT '创建时间',
`operate_time` STRING COMMENT '修改时间'
) COMMENT '二级品类表'
PARTITIONED BY (`dt` STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
NULL DEFINED AS ''
LOCATION '/warehouse/gmall/ods/ods_base_category2_full/'
TBLPROPERTIES ('compression.codec'='org.apache.hadoop.io.compress.GzipCodec');
3.装载数据,如果数据转移到目录下但是没有元数据,则修复分区
hive (default)>
msck repair table table_name [add/drop/sync partitions];