MYSQL 迁移到 HIVE 的时候, 索引名称不能更改. HIVE 自己保证了hive schema 所有表的索引唯一和名称
准备工作
- 搭建达梦数据库
- 搭建 hive
每一步都需要声明 HIVE_HOME 的路径, 避免多环境影响
修改 Hive 配置
hive-site.xml
1 | <property> |
初始化数据库
1 | export HIVE_HOME=/home/user/hive && ${HIVE_HOME}/bin/schematool -dbType oracle -initSchema -verbose |
或者使用达梦的数据迁移工具进行操作
注意: 需要去掉大小写敏感(这个默认是打开的, 而且好像只能在初始化实例的时候修改一次)
- 操作后需要在
Windows 达梦客户端
里面对TABLE_PARAMS
表启用超长记录.
详解 DM 数据库字符串大小写敏感 | 达梦技术社区
达梦数据库大小写敏感设置及使用初探_达梦 大小写敏感_lilv1989的博客-CSDN博客
达梦数据库大小写敏感介绍_达梦数据库设置大小写不敏感_保定公民的博客-CSDN博客
JDBC URL 参数
&keywords=(comment,partition,top,AUTO_INCREMENT)&clobAsString=true&logDir=/tmp/dm
&keywords=(comment,partition,top,AUTO_INCREMENT)&clobAsString=true&logDir=/tmp/dm
达梦的 JDBC URL 不能有空格,否则识别会有问题
启动 HIVE
debug 启动 metastore:
export HIVE_HOME=/home/user/hive && hive --service metastore -p 11100 --hiveconf hive.root.logger=DEBUG,console
export HIVE_HOME=/home/user/hive && hive --hiveconf hive.root.logger=DEBUG,console
服务验证
- 将业务服务里面的 hive-site.xml 软链到上面修改过的 hive-site.xml
- 在业务服务的重启脚本里面将
export HIVE_HOME=/home/user/hive
添加进去 - 重启并观察日志
- 如果日志级别正常的话, 将会输出
HiveConf: Found configuration file file:/home/user/hive/conf/hive-site.xml
- 如果未输出, 检查日志级别以及是否加载了其他环境的 hive 配置
- 手动启动 修改过的 hive 和 之前的 hive, 手动在修改过的 hive 创建一张表, 检查 之前的 hive 是否可见, 以及 业务服务是否可见. 修改过的 hive: 可见, 之前的 hive: 不可见, 业务服务: 可见
1 | show tables in test; |
HIVE 开启 DEBUG 输出 SQL
修改 conf/hive-log4j.properties
1 | hive.root.logger=DEBUG,DRFA |
可能需要的步骤
删除部分约束条件
1 | alter table HIVE_META.ROLES drop constraint ROLEENTITYINDEX; |
使用DmJdbc驱动自带的获取数据库小版本号方法报错问题
使用DmJdbc驱动自带的获取数据库小版本号方法报错问题记录_at dm.jdbc.driver.dmdbdatabasemetadata.getdatabase-CSDN博客
方法一、使用DM V8 1-2-114之后的版本驱动,比如03134283904-20220714-165042-20005 该版本(DM V8 1-2-128)。
方法二、更换数据库版本为DM V8 1-2-114之前的版本。
方法三、不使用DmJdbc驱动自带的方法获取数据库小版本号,自己在代码中来实现。
Maven Repository: com.dameng » DmJdbcDriver18 » 8.1.3.140