ODS即原始数据层,它里面的数据都是原始的数据,不经过任何加工处理的,是原始的json格式数据,因为原始数据有两种数据:启动日志和事件日志,所以在gmall数据库下创建两个表ods_start_log和ods_event_log。前面我已经把数据采集到HDFS上了,现在只要创建好表格,把数据导入表格中即可。
由于hivesql是基于MR的,而MR又比较慢,所以这里使用Tez,Tez是一个Hive的运行引擎,性能优于MR。执行同样的HQL,在Tez下效率会高很多,所以后面我都会使用这个运行引擎。
建表语句:

--创建原始启动日志数据表
drop table if exists ods_start_log;
CREATE EXTERNAL TABLE ods_start_log (`line` string)
PARTITIONED BY (`dt` string)
STORED ASINPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat'OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION '/warehouse/gmall/ods/ods_start_log';--导入数据
load data inpath '/origin_data/gmall/log/topic_start/2020-08-09' into table gmall.ods_start_log partition(dt='2020-08-09');

--创建事件日志表格
drop table if exists ods_event_log;
CREATE EXTERNAL TABLE ods_event_log(`line` string)
PARTITIONED BY (`dt` string)
STORED ASINPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat'OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION '/warehouse/gmall/ods/ods_event_log';
--导入事件日志数据
load data inpath '/origin_data/gmall/log/topic_event/2020-08-09' into table gmall.ods_event_log partition(dt='2020-08-09');

由于在生产环境中,每天都有新数据进来,这样人工导数据会显得有点不适合实际,所以通过编写脚本,到时候可以设定脚本执行时间即可自动导入数据,所以编写导入数据的脚本:

#!/bin/bash
# 定义变量方便修改
APP=gmall
hive=/opt/module/hive/bin/hive
hadoop=/opt/module/hadoop/bin/hadoop# 如果是输入的日期按照取输入日期;如果没输入日期取当前时间的前一天
if [ -n "$1" ] ;thendo_date=$1
else do_date=`date -d "-1 day" +%F`
fiecho "===日志日期为 $do_date==="
sql="
load data inpath '/origin_data/gmall/log/topic_start/$do_date' into table "$APP".ods_start_log partition(dt='$do_date');load data inpath '/origin_data/gmall/log/topic_event/$do_date' into table "$APP".ods_event_log partition(dt='$do_date');
"$hive -e "$sql"$hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.DistributedLzoIndexer /warehouse/gmall/ods/ods_start_log/dt=$do_date$hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.DistributedLzoIndexer /warehouse/gmall/ods/ods_event_log/dt=$do_date

脚本不是很复杂,基本可以看懂,以我现在的能力应该还不能独自编写,所以看懂就算过了。()

数据仓库之搭建ODS(原始数据层)相关推荐

  1. ODS+DWD层详细介绍

    ODS (原始数据层) 主要完成: (1)保持数据原貌不做任何修改,保留历史数据,储存起到备份数据作用: (2)压缩采用gzip,压缩比是100g数据压缩完10g左右: (3)创建分区表,防止后续的全 ...

  2. 数据仓库为何分层,各层作用?

    优秀的分层设计能够让整个数据体系更易理解和使用 为什么要设计数据分层? 数据有秩序地流转,数据的整个生命周期能够清晰明确被设计者和使用者感知.简单说就是使数仓整体看起来层次清晰.依赖关系直观. 因此, ...

  3. 数据仓库中的ODS、EDW、DM等分层是什么?

    参考:数据仓库中的ODS.EDW.和DM层是什么?(系列3) (pmcaff.com) 数据仓库各层说明: 一.数据加载层:ETL(Extract-Transform-Load) 二.数据运营层:OD ...

  4. 数据仓库DW、ODS、DM概念及其区别

    数据仓库DW.ODS.DM概念及其区别 一.整体结构 在具体分析数据仓库之前先看下一下数据中心的整体架构以及数据流向 数据中心整体架构 DB 是现有的数据来源(也称各个系统的元数据),可以为mysql ...

  5. 数据仓库学习笔记 --- ODS 与 EDW

    ODS简单的理解为 Operational Data Store, 可操作的数据仓库. EDW简单理解为 Enterprise Data Warehouse, 企业级数据仓库. 普遍存在于各种企业的B ...

  6. 8、Hive数据仓库——环境搭建及简单使用

    文章目录 Hive数据仓库--环境搭建及简单使用 Hive的安装和使用 一.Linux的JDK的安装 (已经安装过JDK可以跳过此步骤) 二.离线安装MySQL(已经安装过MySQL可以跳过此步骤) ...

  7. 数据仓库ods层是啥意思_数据仓库中的ODS、EDW、和DM层是什么?(系列3)

    在第一节内容,提到了数据仓库和数据库的区别,数据仓库作主要面向分析场景的数据库,又进行了"分层"的设计,因此出现了ods层.edw.dm层的设计(也有的公司会使用超过3层的设计模式 ...

  8. 数仓搭建——ODS层

    1 ODS层(用户行为数据) 1.1 创建日志表ods_log 建表语句 hive (gmall)> drop table if exists ods_log; CREATE EXTERNAL ...

  9. 数仓搭建 ODS 层

    文章目录 ODS层(用户行为数据) Shell中单引号和双引号区别 ODS层日志表加载数据脚本 ODS层(业务数据) 1,活动信息表 2, 活动规则表 3,一级品类表 4,二级品类表 5,三级品类表 ...

最新文章

  1. 我偷偷监听了他们的通信流量......
  2. 【API】网络编程模型、多线程
  3. 软件项目管理0728:项目经理的修养-干系人管理
  4. 饿了么超级会员数量暴增,外卖市场“去泡沫化”的先声?
  5. linux 两个驱动 竞争,Linux设备驱动第五章(并发和竞争)读书笔记(国外英文资料).doc...
  6. python模拟页面调度LRU算法
  7. Pinyin4j 的使用 Pinyin4jUtils工具类
  8. 使用Highcharts实现柱状图展示
  9. 每天一道剑指offer-删除链表中的 重复结点
  10. 联想新计算机开机黑屏,联想笔记本开机黑屏怎么办
  11. python黑马教程ppt_Python零基础教程下载|黑马Python零基础教程(附带教学课件 开发工具 环境配置下载 - 极光下载站...
  12. 单设施重心法选址matlab编程
  13. java 图片清晰度_Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图
  14. 网络攻击术语(Technical terms of the attacks)
  15. 推断性统计部分(一)---样本与分布的关系及其检验统计量
  16. 如何对CSDN中的博客和博客文章进行修改和管理
  17. 使用现成的组件生成伪随机二进制序列和白噪声
  18. 最近学习金融知识的感悟
  19. RNN中的Teacher Forcing
  20. 查看服务器内存型号及主频

热门文章

  1. 2029年会实现通用人工智能吗?
  2. Ubuntu20.04+GTX1060+显卡驱动+CUDA11.8+cuDNN8.5.0
  3. 电源输出的Overshoot和Undershoot 测试
  4. 关于hadoop运行成功但是无法链接web页面
  5. 这个时代,达不到百万级以上的并发量,都不叫高并发!!!
  6. 如何减少PDF文件的大小
  7. 邮箱发信量到达上限,发不出邮件,你知道该怎么办吗?
  8. 散列算法比较:MD5、SHA1、SHA256有哪些区别
  9. 计算机职称落户,2019有这些中级职称就可以在上海落户啦!(国家职业资格)
  10. R7900P/R7960P/R8000P梅林固件