IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> hive自动化上传文件到表 -> 正文阅读

[大数据]hive自动化上传文件到表

自动化实现上传文件到表

#!/bin/bash
. /etc/profile
. ~/.bash_profile
. ~/.bashrc


error() {
       if [[ $? != 0 ]]; then
       echo "$@  运行失败"
       exit 1
       fi
}

# 待上传表名
inset_table_name=$1
# 待上传文件名
file_name=$2
# 分区名
pt=$3
load_path="/tmp/load_path/"

curr_date=`date +%F|sed 's/-//g'`

eg_sql="
create table  tmp.xx_xxx_${curr_date}
(
filed_list string 
,label_one string 
)partitioned by (pt string comment 'YYMMDD数据入库时间')
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS textfile
"

if [[ $1 = "help" ]];then 
   echo -e "\033[40;31m   追加写入分区表 :入参配置 4个参数:待上传表名+待上传文件名+分区名 + 1 [第四个参数为1,表示追加]  \033[0m"
   echo "ds_load upload_table file_name pt 1"
   echo -e "\033[40;31m   覆盖写入分区表 :入参配置 3个参数:待上传表名+待上传文件+分区名【不能为数字1】 \033[0m"
   echo "ds_load upload_table file_name pt"
   echo -e "\033[40;31m   追加写入非分区表 :入参配置 3个参数:待上传表名+待上传文件 + 1【数字1,表示追加】 \033[0m"
   echo "ds_load upload_table file_name 1"
   echo -e "\033[40;31m   覆盖写入非分区表 :入参配置 2个参数:待上传表名+待上传文件  \033[0m"
   echo "ds_load upload_table file_name"
   echo "建表语句样例:${eg_sql}"
   exit 0
fi 

if [[ $# < 2 ]];then 
  echo "参数个数有问题,请使用ds_load help 查看用法"
  exit 0
fi



hadoop fs -put ${file_name} ${load_path}${file_name}
error "上传失败,请检查HDFS目录,删除失败文件"

load_sql_pt_into="load data inpath '${load_path}${file_name}'  into table ${inset_table_name} partition(pt='${pt}')"

load_sql_pt="load data inpath '${load_path}${file_name}' overwrite  into table ${inset_table_name} partition(pt='${pt}')"

load_sql_into="load data inpath '${load_path}${file_name}'   into table ${inset_table_name} "

load_sql_ow="load data inpath '${load_path}${file_name}' overwrite  into table ${inset_table_name} "


#  追加写入分区表
if [[ $# = 4  ]] && [[ $4 = 1 ]];then 
  sh ~/bee_u_e.sh "${load_sql_pt_into}"
  error  "上传"
  echo "上传成功"
# 覆盖写入分区表,分区名不能为1
elif [[  $# = 3 ]] && [[ $3 != 1 ]];then
  sh ~/bee_u_e.sh "${load_sql_pt}"
  error  "上传"
  echo "上传成功"
# 追加写入非分区表
elif [[  $# = 3 ]] && [[ $3 = 1 ]];then
  sh ~/bee_u_e.sh "${load_sql_into}"
  error  "上传"
  echo "上传成功"
# 覆盖写入分区表
elif [[ $# = 2 ]];then 
  sh ~/bee_u_e.sh "${load_sql_ow}"
  error  "上传"
  echo "上传成功"
else 
  echo "请检查参数个数"
  echo -e "\033[40;31m 使用ds_load help 查看用法 \033[0m"
  exit 0
fi


  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:08:12  更:2022-03-06 13:10:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:57:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码