hive上传数据到oracle

# Oracle 建立hive外部表

使用oracle的大数据连接器向建立hive的外部表,在通过在oracle中根据外部表建立内部表(create table as select * from external_table)即可实现hive表向oracle导出。

## Steps

1. 登陆141 fast用户,进入程序目录:

```shell
# login to fast@10.92.59.141
cd cd /home/fast/luohai/loadmr2ora/bin
```

  

2. 配置oracle文件与文件路径变量

```shell

ORACLE_CONF_FILE=../conf/oracles/ORACLE_65.CONF

  

```

其中ORACLE_65.CONF 文件如下配置:

```ini
hostname=10.92.190.65
port=1521
username=fastmdt
schemaname=fast
password=passwordtodb
procedure=p_mdt_hdfs_inst
# 65 为HIVE_EXT_DIR,135与62 为EXT_DATA_PATH
exttab_defaultDirectory=HIVE_EXT_DIR
connection_url=jdbc:oracle:thin:@//$hostname:$port/$schemaname
connection_user=$username
connection_password=$password

```

  

3. 配置程序运行变量

```shell
export APP_HOME=/home/fast/luohai/loadmr2ora
export LOGFILE=$APP_HOME/log/run.log
export APP_HOME=/home/fast/luohai/loadmr2ora
export OSCH_HOME=/home/fast/orahdfs-3.8.0
export HADOOP_CLASSPATH="$OSCH_HOME/jlib/*:/usr/hdp/2.5.0.0-1245/hive/lib/*:/usr/hdp/2.5.0.0-1245/hive/conf/:/usr/hdp/2.5.0.0-1245/hadoop/lib/lib/*"

```

  

4. 导入shell函数:

```shell
source common.sh
```

  

5. 建立外部表

```shell
# etlOperate hive_db hive_tb ext_oracle_tb operation oracle_conf_path
etlOperate TEST tdlte_mro_locate_hour_zhengzhou201812 tdlte_mro_locate_hour_zz201812 createTable $ORACLE_CONF_FILE
```

  

注意:若oracle没有该表可以使用相同表名
etlOperate test MRCP_G50_FREQ_CPF_T(hive数据表) MRCP_G50_FREQ_CPF_T(oracle表名)  createTable $ORACLE_CONF_FILE

其中:

* **ext_oracle_tb** 表名不能超过32

为在oracle中建立的外部表

* **operation**

对该外部表所做的操作:

**createTable** 建立新外部表

**drop** 删除外部表

**publish** 更新外部表(在hive中数据换了之后)

上一篇:阿里云nat mysql配置


下一篇:Angular 自定义指令传参