ODS層載入資料指令碼

2021-10-01 09:43:20 字數 1465 閱讀 6369

匯入資料:

load data inpath '/origin_data/gmall/log/topic_event/2019-12-10' into table gmall.ods_event_log partition(dt='2019-12-10');

hive中建表語句:

建立輸入資料是lzo輸出是text,支援json解析的分割槽表

drop table if exists ods_event_log;

create external table ods_event_log (`line` string)

partitioned by (`dt` string)

stored as

inputformat 'com.hadoop.mapred.deprecatedlzotextinputformat'

outputformat 'org.apache.hadoop.hive.ql.io.hiveignorekeytextoutputformat'

location '/warehouse/gmall/ods/ods_event_log';

ods層載入資料指令碼

1)在hadoop102的/home/atguigu/bin目錄下建立指令碼

[atguigu@hadoop102 bin]$ vim ods_log.sh

在指令碼中編寫如下內容

#!/bin/bash

# 如果是輸入的日期按照取輸入日期;如果沒輸入日期取當前時間的前一天

if [ -n "$1" ] ;then

do_date=$1

else 

do_date=`date -d "-1 day" +%f`

fi $hive -e "$sql"

說明1:

[ -n 變數值 ] 判斷變數的值,是否為空

-- 變數的值,非空,返回true

-- 變數的值,為空,返回false

說明2:

檢視date命令的使用,[atguigu@hadoop102 ~]$ date --help

2)增加指令碼執行許可權

[atguigu@hadoop102 bin]$ chmod 777 ods_log.sh

3)指令碼使用

[atguigu@hadoop102 module]$ ods_log.sh 2019-02-11

4)檢視匯入資料

hive (gmall)> 

select * from ods_start_log where dt='2019-02-11' limit 2;

select * from ods_event_log where dt='2019-02-11' limit 2;

5)指令碼執行時間

企業開發中一般在每日凌晨30分~1點

02 ODS層簡介和ODS層設計

本篇主要講述運算元據儲存 ods 系統產生的背景 定義 特點,以及它與資料倉儲的區別。ods中的資料具有以下4個基本特徵 1 實現企業級的oltp操作 傳統的操作型資料庫往往只存放企業某一類業務或者某乙個部門的資料,因此無法面向企業全域性資料的oltp,而ods可以實現。因為ods的資料是面向整個企...

Hive使用指令碼載入資料

方式一 直接寫在指令碼中 load track logs.sh bin sh 環境變數生效 etc profile hive home hive home opt cdh 5.3.6 hive 0.13.1 cdh5.3.6 日誌目錄 log dir datas tracklogs 獲取昨天的日期 ...

資料倉儲與ODS的區別,資料倉儲和ODS並存方案

我在公司的資料部門工作,每天的訂單類資料處理流程大致如下 刪除分析資料庫的歷史訂單資料 全量更新訂單資料到分析資料庫。由於訂單核心資料不大,所以經受得起這麼折騰 將資料簡單清洗,並生成資料集市層 分析處理,產出報表。當然還有其他的資料也是這麼處理的 比如產品的資料 景區的資料 票種的資料 商的資料等...