我的本地机器(linux)本身已经有了一个mysql表,并且我有一个hive外部表,其模式与mysql表相同。每当插入或更新新记录时,我都要同步配置单元外部表。批量更新是可以与我说每小时。在不使用sqoop的情况下,实现相同功能的最佳方法是什么?谢谢,苏米特
vulvrdjw1#
没有scoop,您可以创建由jdbcstoragehandler存储的表。项目存储库:https://github.com/qubole/hive-jdbc-storage-handler 它将像通常的配置单元表一样工作,但查询将在mysql上运行。 predicate 下推将起作用。
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" );
1条答案
按热度按时间vulvrdjw1#
没有scoop,您可以创建由jdbcstoragehandler存储的表。项目存储库:https://github.com/qubole/hive-jdbc-storage-handler 它将像通常的配置单元表一样工作,但查询将在mysql上运行。 predicate 下推将起作用。