如何在不使用sqoop的情况下自动将hive外部表与mysql表同步?

z2acfund  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(409)

我的本地机器(linux)本身已经有了一个mysql表,并且我有一个hive外部表,其模式与mysql表相同。
每当插入或更新新记录时,我都要同步配置单元外部表。批量更新是可以与我说每小时。在不使用sqoop的情况下,实现相同功能的最佳方法是什么?
谢谢,苏米特

vulvrdjw

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"
);

相关问题