Hive使用指令碼載入資料

2021-07-25 03:29:05 字數 1759 閱讀 9401

方式一:直接寫在指令碼中

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

## 獲取昨天的日期

yesterday=`date -d -1days '+%y%m%d'`

####### echo "yesterday is $"

## 在此需要判斷$/$ 是否存在

## 迴圈遍歷目錄中的檔名稱

for line in `ls $/$`

doecho

"loading $ to db_track.yhd_log_load"

## echo "prepare load the file: $"

## 2016 11 18 19

date=$$$

# date = $

hour=$

## echo "date: $, hour: $"

$/bin/hive -e

"load data local inpath '$/$/$' into table db_track.yhd_log_load partition (date = '$', hour = '$') ;"

done

方式二:指令碼呼叫sql檔案

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

## 指令碼目錄

script_dir=/home/beifeng

## 獲取昨天的日期

yesterday=`date -d -1days '+%y%m%d'`

####### echo "yesterday is $"

## 在此需要判斷$/$ 是否存在

## 迴圈遍歷目錄中的檔名稱

for line in `ls $/$`

doecho

"loading $ to db_track.yhd_log_load"

## echo "prepare load the file: $"

## 2016 11 18 19

date=$$$

# date = $

hour=$

## echo "date: $, hour: $"

load_file=$/$/$

$/bin/hive --hiveconf load_file_param=$ --hiveconf date_param=$ --hiveconf hour_param=$

-f$/load_data.sql

done

load_data.sql:

load data local inpath '$'

into

table db_track.yhd_log_load partition (date = '$', hour = '$') ;

hive資料載入

一.需要注意的問題 1.hive不支援行級別的增刪改 2.使用overwrite會覆蓋表的原有資料,into則是追加。3.local會將本地檔案系統複製乙份再上傳至指定目錄,無local只是將本地檔案系統上的資料移動到指定目錄。4.若目錄指向hdfs上的資料則執行的是move操作。5.分隔符要與資料...

hive使用load載入資料1 0

安裝hive 直接操作hive create table if not exists l employee eid int,name string,salary string,destination string comment employee details row format delimit...

hive表載入資料

總結自己在hive表中常用的幾種載入資料的方式 1.load data 常用 load data inpath 集群路徑.txt load data local inpath 本地路徑 2.select 偶爾用 insert into table tablename1 select from tab...