我已经在本地计算机(Linux)中拥有一个MySQL表,并且我有一个Hive外部表,该表具有与MySQL表相同的架构。
无论何时插入或更新新记录,我都希望同步我的配置单元外部表。我可以每小时进行一次批量更新。 不使用sqoop达到相同效果的最佳方法是什么?
谢谢, 提交
答案 0 :(得分:0)
您无需创建任何信息,就可以创建表STORED BY JdbcStorageHandler 。项目存储库: https://github.com/qubole/Hive-JDBC-Storage-Handler 它将像通常的配置单元表一样工作,但是查询将在MySQL上运行。谓词下推将起作用。
DROP TABLE HiveTable;
CREATE EXTERNAL TABLE HiveTable(
id INT,
id_double DOUBLE,
names STRING,
test INT
)
STORED BY 'org.apache.hadoop.hive.jdbc.storagehandler.JdbcStorageHandler'
TBLPROPERTIES (
"mapred.jdbc.driver.class"="com.mysql.jdbc.Driver",
"mapred.jdbc.url"="jdbc:mysql://localhost:3306/rstore",
"mapred.jdbc.username"="root",
"mapred.jdbc.input.table.name"="JDBCTable",
"mapred.jdbc.output.table.name"="JDBCTable",
"mapred.jdbc.password"="",
"mapred.jdbc.hive.lazy.split"= "false"
);