• 电商数仓ODS层-----日志数据装载


    首先生成模拟日志数据上传到hdfs层
    再将hdfs中的日志数据剪切数据装载到ODS层日志

    一般企业在搭建数仓时,业务系统中会存在一定的历史数据,此处为模拟真实场景,需准备若干历史数据。假定数仓上线的日期为2020-06-14,具体说明如下。
    1.用户行为日志
    用户行为日志,一般是没有历史数据的,故日志只需要准备2020-06-14一天的数据。具体操作如下:
    1)启动日志采集通道,包括Flume、Kafak等
    在这里插入图片描述

    2)修改两个日志服务器(hadoop102、hadoop103)中的/opt/module/applog/application.yml配置文件,将mock.date参数改为2020-06-14。
    3)执行日志生成脚本lg.sh。
    4)观察HDFS是否出现相应文件。
    在这里插入图片描述

    以下使用datagrip数仓工具和脚本指令
    create database gmall;

    – ODS层
    – ODS日志表
    drop table if exists ods_log;
    create external table ods_log(linestring)
    partitioned by (dtstring) --按照时间创建分区
    stored as inputformat ‘com.hadoop.mapred.DeprecatedLzoTextInputFormat’
    –指定存储格式,读数据采用LzoTextInputFormat;
    OUTPUTFORMAT ‘org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat’
    LOCATION ‘/warehourse/gmall/ods/ods_log’ --指定数据在hdfs上的存储位置
    ;

    –数据装载语句:用装载脚本装载
    –2020-06-14
    //load data inpath ‘/origin_data/gmall/log/topic_log/2020-06-14’ into table ods_log partition(dt=‘2020-06-14’);

    –为hive表中的文件创建索引
    // [bin]$ hadoop jar /opt/module/hadoop3.1.3/share/common/hadoop-lzo-0.4.20.jar
    – com.hadoop.compression.lzo.DistributedLzoIIndexer /warehouse/gmall/ods/ods_log/dt=2020-06-14
    // 即hadoop jar jar包位置 全类名 要创建索引的lzo文件所在的路径

    //创建脚本 vim hdfs_to_ods_log.sh 再 chmod 777 hdfs_ods_log.sh
    /*
    #!/bin/bash

    定义变量方便修改

    APP=gmall
    hive=/opt/module/hive/bin/hive

    如果是输入的日期按照取输入日期;如果没输入日期取当前时间的前一天

    if [ -n “$1” ] ;then
    do_date=$1
    else
    do_date=date -d "-1 day" +%F
    fi

    echo ================== 日志日期为 d o d a t e = = = = = = = = = = = = = = = = = = s q l = " l o a d d a t a i n p a t h ′ / o r i g i n d a t a / do_date ================== sql=" load data inpath '/origin_data/ dodate==================sql="loaddatainpath/origindata/APP/log/topic_log/$do_date’ into table A P P . o d s l o g p a r t i t i o n ( d t = ′ {APP}.ods_log partition(dt=' APP.odslogpartition(dt=do_date’);
    "

    h i v e − e " hive -e " hivee"sql"

    hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.DistributedLzoIndexer /warehouse/ A P P / o d s / o d s l o g / d t = APP/ods/ods_log/dt= APP/ods/odslog/dt=do_date
    */
    执行脚本后原路径中的文件没有了,剪切到了ODS层的日志层中
    在这里插入图片描述
    在这里插入图片描述
    通过datagrip可看到数据装载到表中
    双击表可查看表数据

  • 相关阅读:
    部署LVS-DR 集群及实验
    PPT简明
    Linux常用环境Docker安装
    Spring+Vue实现token登录
    OpenGL简介
    (刘二大人)PyTorch深度学习实践-卷积网络(基础篇作业)
    产品经理如何做项目管理?
    LeetCode --- 1528. Shuffle String 解题报告
    c++ 11:二叉树练习
    一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句
  • 原文地址:https://blog.csdn.net/m0_46914845/article/details/126146260