Hive直接读取Mysql中的数据

思考:之前做过Hive和Hbase之间的映射,那必然HIve和Mysql也可以映射,如果能实现映射,那就不需要canal实时同步增量数据了??那如果实现了映射联查的效果咋样?
实现:

1、利用三方开源项目实现映射
项目地址:https://github.com/stagraqubole/Hive-JDBC-Storage-Handler或https://github.com/KironJ/hive-jdbc-storage-handler
2、打包之后上传到对应目录
2.1 打包:
例如:
  2.1.1:git clone https://github.com/qubole/Hive-JDBC-storage-Handler.git
  2.1.2:cd Hive-JDBC-storage-Handler
  2.1.3: mvn clean install -Phadoop-1
  2.1.4: 在target/下找到jar包
  2.1.5:把jar包放在hive中的auxlib文件夹中(这样就不用主动添加jar包,在HUE中也能用),如果你就是一次性的那就:ADD JAR <path-to-jar>
3、根据项目介绍我们只需要在hive中建立映射表即可
use ajmall_warehouse;
create external table if not exists uc_user_info(
    id bigint,
    update_date bigint,
    user_unique_id string,
    sex int,
    birthday string,
    preferences string
)
stored by 'org.apache.hadoop.hive.jdbc.storagehandler.JdbcStorageHandler'
tblproperties (
  'mapred.jdbc.driver.class'='com.mysql.jdbc.Driver',
  'mapred.jdbc.url'='jdbc:mysql://ip:port/your_database?characterEncoding=utf8',
  'mapred.jdbc.username'='your_user',
  'mapred.jdbc.input.table.name'='your_table_name',
  'mapred.jdbc.password'='your_password',
  'mapred.jdbc.hive.lazy.split'= 'false'
);
4.联查
你想怎么查就怎么查
5、结论
这种方式把我的mysql跑崩了,所以我果断使用canal同步数据哈哈哈哈哈哈,希望你们看到最后mysql没跑崩。RIP
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值