lsp66

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MySQL 的复杂类型(JSON、ENUM、BLOB)需适配 HBase 的字节存储特性:
MySQL JSON → HBase 字符串:Linux 下通过 Sqoop 自定义--map-column-java参数转换:
sqoop import
--connect jdbc:mysql://mysql-ip:3306/mydb
--username root --password Mysql@123
--table json_table
--hbase-table hbase_json
--column-family cf1
--hbase-row-key id
--map-column-java json_col=String # 将MySQL JSON列映射为Java String,写入HBase
MySQL BLOB → HBase 二进制:自定义 Sqoop 转换器,Linux 下编译 jar 包放入sqoop/lib,实现 BLOB 字节流直接写入 HBase:
java
// 核心逻辑示例(自定义Converter)
public Object convert(ResultSet rs, int idx) throws SQLException {
Blob blob = rs.getBlob(idx);
return blob.getBytes(1, (int) blob.length()); // 转为字节数组写入HBase
}
(2)时间戳统一
MySQL 的timestamp/datetime与 HBase 的TimeToLive(TTL)/ 版本号联动:
Linux 下编写脚本,将 MySQL 时间字段转为 HBase 的版本号(版本号为时间戳):

示例:读取MySQL时间字段,转为HBase版本号写入

hbase shell> put 't1', 'row1', 'cf1:time_col', '2026-01-03 10:00:00', 1735989600000

posted on 2026-01-03 14:05  李世鹏66  阅读(2)  评论(0)    收藏  举报