hive降io

    xiaoxiao2023-03-24  5

    常用复杂或低效统计源上给出,以避免上层作业过多计算

    背景:日志10分钟加载一次到实时日志表trackreal中,过滤非法数据,爬虫数据。。。生成按天增量日志表trackinfo(增加url_page_id)

    上层应用就不需要调这个udf

    统计首页某一 天流量:

    select '首页',

    count(*) pv,

    count(distinct session_id) uv

    from tracking where ds='2015-11-11'

    and url like 'http://www.yhd.com/%';

    ===

    session_info,常用的session_id以及属性和指标统一给出

    背景:用户行为分析

    表分区:合理建表分区有效提高查询速度

    重要数据用外部表,create external table,因为这个表drop掉之后,数据是不丢失的

    内部表也叫托管表

    增量表:增量的频率,或者说时间粒度,决定hive表的分区结构

    日增量:日期

    小时增量:日期,小时分区

    10分钟增量:日期,小时,step

    在全天数据里查询某个时间段的数据,低效--增加hour分区,trackreal为例

    场景:大量小时级作业访问trackinfo,改造为trackinfo_hour(由日期和小时分区)

    tracking_hour生成频率? 0-9点:忙时

    10点后执行,可以用动态分区

    动态分区:数据自动找分区,和关系数据库类似

    动态分区:

    主分区静态分区,次分区是动态

    (ds string, hour string)

    所以hive在架构层面优化策略:

    分表

    合理利用中间结果,重视查了就丢的资源浪费,hadoop的io负载瓶颈

    常用复杂或低效统计源上给出,以避免上层作业过多计算

    合理设计表分区,静态分区和动态分区

    压缩技术

    转载请注明原文地址: https://ju.6miu.com/read-1202479.html
    最新回复(0)