Как автоматически синхронизировать внешнюю таблицу Hive с таблицей MySQL без использования Sqoop? - PullRequest
0 голосов
/ 26 июня 2018

У меня уже есть таблица MySQL на самой локальной машине (Linux), и у меня есть внешняя таблица Hive с той же схемой, что и у таблицы MySQL.

Я хочу синхронизировать свою внешнюю таблицу улья всякий раз, когда добавляется или обновляется новая запись. Пакетное обновление в порядке со мной, чтобы сказать ежечасно. Каков наилучший из возможных подходов для достижения того же самого без использования sqoop?

Спасибо, Sumit

1 Ответ

0 голосов
/ 26 июня 2018

Без совка вы можете создать таблицу STORED BY JdbcStorageHandler . Репозиторий проекта: https://github.com/qubole/Hive-JDBC-Storage-Handler Он будет работать как обычная таблица кустов, но запрос будет выполняться на MySQL. Предикат pushdown будет работать.

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"
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...