用shell将hdfs数据导入postgreSQL数据库
2017-03-08 22:19
253 查看
#注意点:1.如果是在postgres用户下操作,可能没有hdfs权限,需添加环境变量,反之亦然
# 2.postgreSQL从shell脚本里面实现免密登陆需要配置文件,有两种方式,此处选用自己生成文件
#!/bin/bash############################################ function : 从hdfs向postgresql数据库入数据# author : luojie# date ; 20170308############################################从hdfs向postgresql数据库入数据####################################################################环境准备##########[ ! -d ./data ]&&mkdir ./data[ ! -d ./log ]&&mkdir ./log#获取日期参数if [ $# -eq 1 ]; thenp_date=$1elseecho "参数错误!请传入日期。" | tee -a ./log/erro.logexitfi;[ ! -d ./data/p_date=$p_date ]&&mkdir ./data/p_date=$p_date[ ! -d ./log/$p_date ]&&mkdir ./log/$p_date#加载脚本变量文件,如果没有则生成默认变量[ ! -f ./cfg_SYNC_RSRP_TO_POSTGIS.cfg ]&&echo "link_ip=localhostlink_psot=5432link_db=postgis_devlink_un=postgreslink_pw=postgreshdfs_file_path=HDFS_HOME=/home/hdfs/hdfs/bin:/home/hdfs/hdfs/sbin">./cfg_SYNC_RSRP_TO_POSTGIS.cfgsource ./cfg_SYNC_RSRP_TO_POSTGIS.cfgecho "---------------------------------------------------$(date -d"now" +"%F %T")---任务开始..." | tee -a ./log/$p_date/input_data_gis.log#加载hdfs的环境变量export PATH=$PATH:$HDFS_HOME#免手工登陆postgres环境准备echo $link_ip:$link_psot:$link_db:$link_un:$link_pw>./psql_auto.cfgchmod 0600 ./psql_auto.cfgexport PGPASSFILE=./psql_auto.cfg##########################取文件###########echo "---$(date -d"now" +"%F %T")---开始获取 $p_date 的数据文件..." | tee -a ./log/$p_date/input_data_gis.logrm -rf ./data/p_date=$p_datemkdir ./data/p_date=$p_datehadoop fs -get $hdfs_file_path ./data/p_date=$p_date#文件合并#echo $filesfiles=`ls ./data/p_date=$p_date/`for file_name in $filesdocat ./data/p_date=$p_date/$file_name >> ./data/p_date=$p_date/my_data.txtdoneecho "---$(date -d"now" +"%F %T")---开始导入数据: "$link_un@$link_ip:$link_psot | tee -a ./log/$p_date/input_data_gis.logpsql -h localhost -p 5432 -U postgres -d postgis_dev<<SQLdrop table if exists my_tab;create table my_tab();--导入数据到temp\copy my_tab from ./data/p_date=$p_date/my_data.txt delimiter as ',' csv quote as '"';\qSQL##清理历史数据##清理logecho "---$(date -d"now" +"%F %T")---任务结束。" | tee -a ./log/$p_date/input_data_gis.log
相关文章推荐
- excel导入数据到postgresql数据库
- PostgreSQL数据库导入备份数据
- Postgresql数据库数据简单的导入导出
- 1.2 使用Hadoop shell命令导入和导出数据到HDFS
- 利用SQOOP将数据从数据库导入到HDFS
- postgresql 数据库中数据的导入导出(简单操作+示例)
- Excel表数据导入PostGresql数据库
- 从excel导入数据至PostgreSQL数据库
- sqoop工具介绍(hdfs与关系型数据库进行数据导入导出)
- 利用SQOOP将数据从数据库导入到HDFS
- Postgresql数据库数据简单的导入导出
- 利用SQOOP将数据从数据库导入到HDFS
- postgresql数据库数据导入导出
- 利用Sqoop将数据从数据库导入到HDFS
- 利用SQOOP将数据从数据库导入到HDFS
- 利用Sqoop将数据从数据库导入到HDFS(转)
- 利用SQOOP将数据从数据库导入到HDFS
- 下载OSM地图数据并导入至postgreSQL数据库中(Ubuntu16.04LTS)
- 利用SQOOP将数据从数据库导入到HDFS
- 用Sqoop把数据从HDFS导入到关系型数据库