• 数据仓库的流程


    数据仓库完全用统计分析框架实现:Spark,MR
    但是因为实际生产环境中,需求量非常大,
    如果每个需求都采用独立c代码开发方式,重复计算会很多.
    提高性能的方法: 1.减少数据量 2. 减少重复计算
    例如RDD
    cache 可以减少重复计算,但是不安全,都在缓存中,
    persist 都放内存中,但是慢

    而数仓是通过表来保存数据,从而达到减少重复计算的操作.

    1.数据仓库的模块流程

    1.数据源ODS(Operate Data Store)

    1.作用: 汇总数据,为统计分析做准备

    2.特点(能不改就不改)

    1.行式存储

    不需要进行统计分析,所以尽量不改变存储格式,因为修改数据格式需要消耗大量资源.,

    2.数据格式

    尽量不改变数据格式,消耗资源,影响性能.
    JSON,TSV
    但是如果必须要修改,就是异构数据的融合,

    2.数据加工(Data Warehouse detail)

    1.作用

    为统计分析做准备

    2.什么意思?

    对数据的加工如过滤,无效数据筛选,

    3.统计(DWS ->Data Warehouse Summary)

    1.作用

    对加工后的数据进行统计

    4.分析(ADS->Application Data Service)

    应用程序数据服务

    1.作用

    分析后的结构是整个数仓的最终结果,最后需要对外提供服务,例如:可视化界面图像.

    5.DIM层(Common)

    1.什么是维度(Dimension)

    看事物的角度

    2.层级之间的思考?

    每一层执行完,再执行下一层,确保不会出现回环

    2.如何控制SQL的执行

    通过SQL和任务调度器,由任务调度器来完成调度工作.

    2.每层的问题

    1.ODS层

    1.创建

    • 1.建表格式 创建外部表,而不是创建内部表,因为在最初创建时,可能会频繁修改表结构,但是如果是内部表就会删除数据,所以使用外部表.所以如果表是设计好的,就可以使用内部表创建.
    • 2.压缩 因为ODS是数据源,需要存储海量数据,所以需要压缩数据,而这里的压缩,选择压缩率最高的,所以是选择GZIP
    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');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3.装载数据,如果数据转移到目录下但是没有元数据,则修复分区

    hive (default)> 
    msck repair table table_name [add/drop/sync partitions];
    
    • 1
    • 2

    2.DIM层(这个是单独出来的,从ODS中直接获取数据)

  • 相关阅读:
    Seamlessly Manipulate SVG Files in Python
    同行北京丨科士达聚渠道之力,共驱数据中心低碳高效发展
    PostgreSQL数据库统计信息——计算统计数据
    Codeforces Round 753 (Div. 3)(集训队加训2)
    华为OD机试 - 数字排列(Java & JS & Python & C & C++)
    Java内存模型之happens-before
    R语言ggplot2可视化:使用ggpubr包的ggviolin函数可视化小提琴图
    【数据结构初阶(4)】栈的基本操作实现
    二、防火墙-安全策略
    oracle 根据分号分割为多个列
  • 原文地址:https://blog.csdn.net/qq_42265608/article/details/132676050