默认情况下,Pig 仅提供 MySQL 的数据库脚本。本文档介绍如何将 Pig 迁移到使用达梦数据库。
为了 SQL 的准确性、实时性,其他类型的数据库脚本需要开发者基于 Pig MySQL 版本进行转换。本文档以达梦数据库为例。
安装达梦数据库
1. Docker 运行 DM8
使用 Docker 快速部署达梦数据库:
# X86 架构
docker run -p 5236:5236 registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/dm:8
# ARM 架构
docker run -p 5236:5236 registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/dm:8-arm64
2. 安装 SQLark
SQLark 是一款面向信创应用开发者的数据库开发管理、数据库迁移工具,用于快速查询、创建和管理不同类型的数据库系统,现已支持达梦、Oracle 和 MySQL 数据库。
SQLark 下载 虽然安装达梦会自动安装 DTS(达梦自身的迁移工具)和图形化管理工具,但之前的 UI 和操作性较差且不支持 MacOS。SQLark 提供了更好的用户体验,并整合了数据迁移工具。
3. 数据迁移
按照以下步骤进行数据迁移:
创建达梦数据库链接
点击 SQLark 的数据迁移
创建迁移评估
链接源数据库(MySQL)
选择待迁移的数据库(pig/pig_config)
关闭检查
执行迁移
迁移成功会自动创建 PIG/PIG_CONFIG 的达梦数据库。由于 quartz 的数据结构外键不适配达梦,可能会有一些不兼容的情况,可以忽略。
应用配置
1. 配置 Nacos
在 pig-register
模块中:
添加依赖:
<!--达梦数据库 nacos 插件-->
< dependency >
< groupId > com.pig4cloud.plugin </ groupId >
< artifactId > nacos-datasource-plugin-dm8 </ artifactId >
< version > ${VERSION} </ version >
</ dependency >
<!--达梦数据库驱动-->
< dependency >
< groupId > com.dameng </ groupId >
< artifactId > DmJdbcDriver18 </ artifactId >
< version > 8.1.1.193 </ version >
</ dependency >
配置数据库连接:
db :
num : 1
url :
0 : jdbc:dm://127.0.0.01:5236?schema=PIG_CONFIG
user : SYSDBA
password : SYSDBA
pool :
config :
driver-class-name : dm.jdbc.driver.DmDriver
spring :
sql :
init :
platform : dameng
2. 配置微服务
在 pig-upms-biz
、pig-codegen
、pig-quartz
等模块中:
添加达梦驱动依赖:
<!--达梦数据库驱动-->
< dependency >
< groupId > com.dameng </ groupId >
< artifactId > DmJdbcDriver18 </ artifactId >
< version > 8.1.1.193 </ version >
</ dependency >
修改数据库连接配置:
spring :
datasource :
type : com.zaxxer.hikari.HikariDataSource
driver-class-name : dm.jdbc.driver.DmDriver
username : SYSDBA
password : SYSDBA
url : jdbc:dm://127.0.0.01:5236?schema=PIG
在 pig-codegen
模块中添加元数据读取依赖:
< dependency >
< groupId > org.anyline </ groupId >
< artifactId > anyline-data-jdbc-dm </ artifactId >
< version > ${anyline.version} </ version >
</ dependency >
测试验证
完成以上配置后,启动应用并验证数据库连接是否正常。可以通过访问系统管理模块,查看用户、角色等数据是否正确显示。
♥️ 获取支持
遇到问题? 如果您在使用过程中遇到任何问题、有功能建议或需求,请点击此卡片前往 Gitee 仓库提交 Issue。