hive数据同步到oracle或oracle数据同步到hive参考代码
hive数据同步到oracle或oracle数据同步到hive参考代码
·
使用Java JDBC连接Hive和Oracle数据库,并使用Hive JDBC和Oracle JDBC驱动程序进行数据读取和写入。下面是一个简单的Java代码示例,用于将Hive表中的数据同步到Oracle数据库:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Hive2Oracle {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// Hive连接信息
String hiveUrl = "jdbc:hive2://<hive_host>:<hive_port>/<hive_db>";
String hiveUser = "<hive_user>";
String hivePassword = "<hive_password>";
String hiveTable = "<hive_table>";
// Oracle连接信息
String oracleUrl = "jdbc:oracle:thin:@<oracle_host>:<oracle_port>:<oracle_sid>";
String oracleUser = "<oracle_user>";
String oraclePassword = "<oracle_password>";
String oracleTable = "<oracle_table>";
// 加载Hive JDBC驱动
Class.forName("org.apache.hive.jdbc.HiveDriver");
// 连接Hive数据库
Connection hiveConn = DriverManager.getConnection(hiveUrl, hiveUser, hivePassword);
// 创建Hive表查询语句
String hiveQuery = "SELECT * FROM " + hiveTable;
// 执行Hive表查询
Statement hiveStmt = hiveConn.createStatement();
ResultSet hiveRs = hiveStmt.executeQuery(hiveQuery);
// 加载Oracle JDBC驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
// 连接Oracle数据库
Connection oracleConn = DriverManager.getConnection(oracleUrl, oracleUser, oraclePassword);
// 创建Oracle表插入语句
String oracleInsert = "INSERT INTO " + oracleTable + " VALUES (?,?,?,?)";
// 执行Oracle表插入
while (hiveRs.next()) {
// 从Hive结果集中读取数据
String col1 = hiveRs.getString(1);
String col2 = hiveRs.getString(2);
String col3 = hiveRs.getString(3);
String col4 = hiveRs.getString(4);
// 创建Oracle表插入语句并设置参数
Statement oracleStmt = oracleConn.createStatement();
oracleStmt.executeUpdate(oracleInsert);
oracleStmt.setString(1, col1);
oracleStmt.setString(2, col2);
oracleStmt.setString(3, col3);
oracleStmt.setString(4, col4);
oracleStmt.close();
}
// 关闭连接
hiveRs.close();
hiveStmt.close();
hiveConn.close();
oracleConn.close();
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Oracle2Hive {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// Oracle连接信息
String oracleUrl = "jdbc:oracle:thin:@<oracle_host>:<oracle_port>:<oracle_sid>";
String oracleUser = "<oracle_user>";
String oraclePassword = "<oracle_password>";
String oracleTable = "<oracle_table>";
// Hive连接信息
String hiveUrl = "jdbc:hive2://<hive_host>:<hive_port>/<hive_db>";
String hiveUser = "<hive_user>";
String hivePassword = "<hive_password>";
String hiveTable = "<hive_table>";
// 加载Oracle JDBC驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
// 连接Oracle数据库
Connection oracleConn = DriverManager.getConnection(oracleUrl, oracleUser, oraclePassword);
// 创建Oracle表查询语句
String oracleQuery = "SELECT * FROM " + oracleTable;
// 执行Oracle表查询
Statement oracleStmt = oracleConn.createStatement();
ResultSet oracleRs = oracleStmt.executeQuery(oracleQuery);
// 加载Hive JDBC驱动
Class.forName("org.apache.hive.jdbc.HiveDriver");
// 连接Hive数据库
Connection hiveConn = DriverManager.getConnection(hiveUrl, hiveUser, hivePassword);
// 创建Hive表插入语句
String hiveInsert = "INSERT INTO " + hiveTable + " VALUES (?,?,?,?)";
// 执行Hive表插入
while (oracleRs.next()) {
// 从Oracle结果集中读取数据
String col1 = oracleRs.getString(1);
String col2 = oracleRs.getString(2);
String col3 = oracleRs.getString(3);
String col4 = oracleRs.getString(4);
// 创建Hive表插入语句并设置参数
Statement hiveStmt = hiveConn.createStatement();
hiveStmt.executeUpdate(hiveInsert);
hiveStmt.setString(1, col1);
hiveStmt.setString(2, col2);
hiveStmt.setString(3, col3);
hiveStmt.setString(4, col4);
hiveStmt.close();
}
// 关闭连接
oracleRs.close();
oracleStmt.close();
oracleConn.close();
hiveConn.close();
}
}

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)