# 7.1 GA 版本升级到 7.2 GA 版本

⚠️文档中以MySQL数据安装为示例进行安装。

⚠️GA 版本使用的AFCenter版本为8.3.0,对应的EOS Platform版本为8.3.0 LA1。

本文介绍从数据质量 7.1 GA 版本升级到 7.2 GA 版本的升级过程。

# 介质准备

下载数据质量 7.2 GA 介质,解压到安装服务器上。

微应用版本

微应用版本介质目录如下:

## 先解压Primeton_QualityCube_7.2_GA_MicroApp.tar.gz
## 再解压Primeton_QualityCube_7.2_GA_Server.tar.gz, Primeton_QualityCube_7.2_GA_Executor.tar.gz和Primeton_QualityCube_7.2_GA_UI.tar.gz
## Primeton_QualityCube_7.2_GA_Executor
├── bin
│   ├── shutdown.cmd
│   ├── shutdown.sh
│   ├── startup.cmd
│   └── startup.sh
├── config
│   ├── legal-validator-tpl
│   ├── mapper
│   ├── templates
│   ├── application.properties
│   ├── core-site.xml
│   ├── hdfs-site.xml
│   └── logback.xml
├── lib
├── version.properties
└── quality-executor-7.2.0-exec.jar
## Primeton_QualityCube_7.2_GA_Server
├── bin
│   ├── shutdown.cmd
│   ├── shutdown.sh
│   ├── startup.cmd
│   └── startup.sh
├── config
│   ├── QUALITY
│   ├── application-afc.properties
│   ├── application-dqms.properties
│   ├── application.properties
│   ├── application-eureka.properties
│   ├── application-job.properties
│   ├── application-nacos.properties
│   ├── bootstrap.properties
│   ├── seriakiller.xml
│   └── logback-spring.xml
├── db-scripts
│   ├── DaMeng
│   ├── GaussDB
│   ├── HighGo
│   ├── KingbaseES
│   ├── Mysql
│   ├── Oracle
│   ├── Postgresql
│   ├── SqlServer
│   ├── upgrade
│   └── xxl-job
├── lib
├── version.properties
└── dqms-boot-7.2.0-exec.jar
## Primeton_QualityCube_7.2_GA_UI
├── assets
├── index.html
├── remoteEntry.js
├── remoteEntry.js.gz
├── version.properties
└── static

独立部署版本

独立部署版本介质目录如下:

## 解压Primeton_QualityCube_7.2_GA_Standalone.tar.gz
├── clearLog.cmd
├── clearLog.sh
├── server
│   ├── executor ## 执行器后端服务
│   │   ├── bin
│   │   │   ├── shutdown.cmd
│   │   │   ├── shutdown.sh
│   │   │   ├── startup.cmd
│   │   │   └── startup.sh
│   │   ├── config
│   │   │   ├── legal-validator-tpl
│   │   │   ├── mapper
│   │   │   ├── templates
│   │   │   ├── application.properties
│   │   │   ├── core-site.xml
│   │   │   ├── hdfs-site.xml
│   │   │   └── logback.xml
│   │   ├── lib
│   │   ├── version.properties
│   │   └── quality-executor-7.2.0-exec.jar
│   ├── quality ## 数据质量后端服务
│   │   ├── bin
│   │   │   ├── shutdown.cmd
│   │   │   ├── shutdown.sh
│   │   │   ├── startup.cmd
│   │   │   └── startup.sh
│   │   ├── config
│   │   │   ├── QUALITY
│   │   │   ├── application-afc.properties
│   │   │   ├── application-dqms.properties
│   │   │   ├── application-comp-pubresmng.properties
│   │   │   ├── application.properties
│   │   │   ├── application-eureka.properties
│   │   │   ├── application-job.properties
│   │   │   ├── application-nacos.properties
│   │   │   ├── bootstrap.properties
│   │   │   ├── seriakiller.xml
│   │   │   └── logback-spring.xml
│   │   ├── db-scripts
│   │   │   ├── afcenter
│   │   │   ├── all
│   │   │   ├── dqms
│   │   │   ├── eos
│   │   │   └── public-resource
│   │   ├── lib
│   │   ├── pubresmng_ext_lib
│   │   ├── version.properties
│   │   └── dqmsall-boot-7.2.0-exec.jar
│   └── primetonlicense.xml
├── shutdown.cmd
├── shutdown.sh
├── startup.cmd
├── startup.sh
└── web
    ├── afcenter
    │   ├── assets
    │   ├── bfp
    │   ├── components
    │   ├── config
    │   ├── ext
    │   ├── formDesigner
    │   ├── ide
    │   ├── portal
    │   ├── index.html
    │   ├── quality ## 数据质量前端资源文件
    │   ├── pubresmng
    │   ├── remoteEntry.js
    │   ├── remoteEntry.js.gz
    │   ├── static
    │   └── version.properties
    │   ├── widget
    └── conf
        └── quality.conf

# 停止后端服务

在升级后端服务之前停止对应后端服务

# 升级数据库数据

⚠️升级前强烈建议先备份数据库,再进行数据库升级,以避免数据丢失!


微服务版本升级

  • 升级afcenter,在afcenter数据库中执行升级脚本

  • 升级公共资源,在afcneter数据库中执行如下脚本

    需要获取公共资源组件的安装介质

    • 执行scripts/upgrade/Mysql/8.2.5-8.2.6.sql脚本
    • 执行scripts/upgrade/Mysql/8.2.6-8.3.0.sql脚本
  • 升级数据质量的权限、业务字典数据,在afcenter数据库中执行如下脚本

    • 在afcenter库中执行db-scripts\upgrade\Mysql\7.1ga-7.2ga\00-quality-afc-data.sql脚本
  • 升级调度器

    新版本的数据质量产品中,调度器已经统一使用AFCenter提供的调度中心。

    • 数据质量数据库中执行db-scripts\upgrade\Mysql\7.1ga-7.2ga\01-quality-scheduler-ddl.sql脚本
    • 数据质量数据库中执行db-scripts\upgrade\Mysql\7.1ga-7.2ga\02-quality-scheduler-data.sql脚本
    • 导出调度器表的数据,涉及的表如下:

    导出数据时,不要选择生成建表、删表、索引语句,仅导出数据。

    xxl_job_info、xxl_job_log、xxl_job_log_report、xxl_job_logglue、xxl_job_registry、xxl_job_user、 xxl_job_group
    
    • 将导出的数据导入到afcenter数据库中

    如遇到数据主键冲突,请检查是否存在重复数据,删除或者合并后再进行单条数据导入。

  • 升级数据质量,在数据质量数据库中执行如下脚本

    • 执行db-scripts\upgrade\Mysql\7.1ga-7.2ga\11-quality-data.sql脚本

独立部署版本升级

  • 升级afcenter并升级数据质量的权限、业务字典数据

    • 执行quality\db-scripts\afcenter\upgrade\Mysql\8.2.5-8.3.0.sql脚本
    • 执行quality\db-scripts\dqms\upgrade\Mysql\7.1ga-7.2ga\01-quality-afc-data脚本
  • 升级公共资源

    • 执行quality\db-scripts\public-resource\upgrade\Mysql\8.2.5-8.2.6.sql脚本
    • 执行quality\db-scripts\public-resource\upgrade\Mysql\8.2.6-8.3.0.sql脚本
  • 升级调度器

    • 执行quality\db-scripts\dqms\upgrade\Mysql\7.1ga-7.2ga\01-quality-scheduler-ddl.sql脚本
    • 执行quality\db-scripts\dqms\upgrade\Mysql\7.1ga-7.2ga\02-quality-scheduler-data.sql脚本
  • 升级数据质量

    • 执行quality\db-scripts\dqms\upgrade\Mysql\7.1ga-7.2ga\11-quality-data.sql脚本

# 替换新版本介质

⚠️升级前请先备份文件。

更新数据质量后端服务

使用解压后的后端介质文件,替换原有文件。

  • 微服务应用升级
    • 停止数据质量服务,替换后端程序目录Primeton_QualityCube_7.2_GA_Server

    • 修改Primeton_QualityCube_7.2_GA_Server/config/QUALITY/config/user-config.xml配置中的数据源

    • 修改application-afc.properties配置

    • afc.application.name=10.15.15.136:28085
      
    • 修改application.properties配置

    • # 修改后端端口
      server.port=28083 
      # 修改redis配置
      spring.redis.host=127.0.0.1
      spring.redis.port=6379
      spring.redis.password=
      
    • 修改application-dqms.properties配置

    • # 修改检核结果数据读取路径,需要和executor/config/application.properties中检核结果数据存储路径指向位置一致
      common.base_dir=../Primeton_QualityCube_7.2_GA_Executor/
      # 修改数据库方言,改为对应数据源名称,其中OpenGuass,postgresql,kingbase dialect 使用 postgresql
      # mysql、oracle、postgresql,sqlserver
      pagehelper.helperDialect=mysql
      # 修改调度器地址(与afcenter后端相同)
      xxl.job.admin.addresses=http://127.0.0.1:28083
      xxl.job.admin.token=c0101b6109e8478784ceb8897159fe2b
      
    • (可选步骤)其他配置可以按需修改

    • 清空redis缓存数据

    • 启动数据质量服务

    • 停止调度器和执行器

    • 修改Primeton_QualityCube_7.2_GA_Executor/config/application.properties

    • # 修改执行器端口号
      server.port=28092
      # mysql,oracle,dm,opengauss,PostgreSQL(KingbaseES,HighGo),sqlserver(改为对应数据源名称,kingbaseES使用postgresql)
      mybatis.configuration.database-id=mysql
      # 文件路径(默认executor执行器文件夹路径)
      common.base_dir=../Primeton_QualityCube_7.2_GA_Executor/
      # 文件路径(检核结果数据存储路径,需要和quality后端/config/application-dqms.properties中检核结果数据读取路径指向位置一致)
      common.damp_dir=../Primeton_QualityCube_7.2_GA_Executor/
      # 修改执行器数据库地址
      spring.datasource.url=jdbc:mysql://127.0.0.1:3306/quality?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2b8
      spring.datasource.username=root
      spring.datasource.password=root
      spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
      # 修改afc地址
      afc.server.url=http://127.0.0.1:28083
      afc.server.token=c0101b6109e8478784ceb8897159fe2b
      # 修改数据库类型
      pagehelper.helperDialect=mysql
      # 修改executor注册到xxl-job端口
      xxl.job.executor.port=28094
      
    • 启动执行器

  • 独立版本升级
    • 停止数据质量服务,替换后端程序目录server/quality

    • 修改server/quality/config/QUALITY/config/user-config.xml配置中的数据源

    • 修改application.properties配置

    • # 修改后端端口
      server.port=28083 
      # 修改redis配置
      spring.redis.host=127.0.0.1
      spring.redis.port=6379
      spring.redis.password=
      
    • 修改application-dqms.properties配置

    • # 修改检核结果数据读取路径,需要和executor/config/application.properties中检核结果数据存储路径指向位置一致
      common.base_dir=../executor/
      # 修改数据库方言,改为对应数据源名称,其中OpenGuass,postgresql,kingbase dialect 使用 postgresql
      # mysql、oracle、postgresql,sqlserver
      pagehelper.helperDialect=mysql
      # 修改调度器地址(与afcenter后端相同)
      xxl.job.admin.addresses=http://127.0.0.1:28083
      xxl.job.admin.token=c0101b6109e8478784ceb8897159fe2b
      
    • (可选步骤)其他配置可以按需修改

    • 清空redis缓存数据

    • 启动数据质量服务

    • 停止调度器和执行器

    • 修改server/executor/config/application.properties

    • # 修改执行器端口号
      server.port=28092
      # mysql,oracle,dm,opengauss,PostgreSQL(KingbaseES,HighGo),sqlserver(改为对应数据源名称,kingbaseES使用postgresql)
      mybatis.configuration.database-id=mysql
      # 文件路径(默认executor执行器文件夹路径)
      common.base_dir=../executor/
      # 文件路径(检核结果数据存储路径,需要和quality后端/config/application-dqms.properties中检核结果数据读取路径指向位置一致)
      common.damp_dir=../executor/
      # 修改执行器数据库地址
      spring.datasource.url=jdbc:mysql://127.0.0.1:3306/quality?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2b8
      spring.datasource.username=root
      spring.datasource.password=root
      spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
      # 修改afc地址
      afc.server.url=http://127.0.0.1:28083
      afc.server.token=c0101b6109e8478784ceb8897159fe2b
      # 修改数据库类型
      pagehelper.helperDialect=mysql
      # 修改executor注册到xxl-job端口
      xxl.job.executor.port=28094
      
    • 启动执行器

更新数据质量前端资源

对于微应用版本,使用Primeton_QualityCube_7.2_GA_MicroApp.tar.gz解压后的Primeton_QualityCube_7.2_GA_UI目录进行替换。对于独立部署版本,使用web/afcenter目录进行替换原有文件。

更新nginx配置

对于微应用版本,nginx配置参考如下:

upstream afcenterapp {
	server 127.0.0.1:28083;
}

upstream qualityapp {
	server 127.0.0.1:28091;
}

server {
	listen 80;

    client_max_body_size 20M;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1";
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Permitted-Cross-Domain-Policies "master-only";
    add_header X-Download-Options noopen;
    add_header Content-Security-Policy "script-src * 'unsafe-inline' 'unsafe-eval'";
    add_header Strict-Transport-Security "max-age=SECONDS";
    add_header Referrer-Policy "no-referrer" always;

    location ~/QUALITY/ {
        rewrite ^/(.*)/api/(.*)$ /api/$2 break;
        #proxy_set_header X-EOS-SourceSysKey 359e22bf398043cb866a92dc1cbbd3f6;
        proxy_pass http://qualityapp;
    }

    location ^~/api/ {
        #proxy_set_header X-EOS-SourceSysKey 359e22bf398043cb866a92dc1cbbd3f6;
        proxy_pass http://afcenterapp ;
    }

    location ~/(.*)/api/ {
        rewrite ^/(.*)/api/(.*)$ /api/$2 break;
        #proxy_set_header X-EOS-SourceSysKey 359e22bf398043cb866a92dc1cbbd3f6;
        proxy_pass http://afcenterapp ;
    }

    location / {
        root /opt/idc/apps/afcenter;
        index index.html index.htm;
        try_files $uri /index.html;
    }

    #  location /quality/ {
    #       alias "/opt/idc/apps/test/install/QualityCube_MySQL/web/quality" ;
    #  }

}

对于独立部署版本,nginx配置参考如下:

    upstream qualityapp {
        server 127.0.0.1:28083;
    }

    server {
        listen 80;

        client_max_body_size 20M;
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection "1";
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Permitted-Cross-Domain-Policies "master-only";
        add_header X-Download-Options noopen;
        add_header Content-Security-Policy "script-src * 'unsafe-inline' 'unsafe-eval'";
        add_header Strict-Transport-Security "max-age=SECONDS";
        add_header Referrer-Policy "no-referrer" always;

        location ^~/api/ {
            proxy_pass http://qualityapp;
        }

        location ~/(.*)/api/ {
            rewrite ^/(.*)/api/(.*)$ /api/$2 break;
            proxy_pass http://qualityapp;
        }

        location ~ \.biz\.ext$ {
            proxy_pass http://qualityapp;
        }

        location / {
            root /opt/idc/apps/quality/web/afcenter;
            index index.html index.htm;
            try_files $uri /index.html;
        }
    }

# 重启nginx服务

nginx 重启命令参考

  • 重启nginx(默认nginx配置文件)

nginx -s reload

  • 重启nginx(指定nginx配置文件)

nginx -s reload -c /usr/nginx/nginx.conf

# 验证

验证后端服务

访问数据质量平台在线文档地址http://<ip>:<port>/swagger-ui.html,确认后端服务是否正常。

验证前端服务

清除浏览器缓存后,访问AFCenter,登录后切换到数据质量,检查菜单、数据是否正常展示。

# 增加租户资源和权限

同步租户资源

前端服务验证完毕后,进入【组织权限中心】→【通用管理】→【数据导入】→【同步租户资源】菜单,点击【同步】,等待同步完成后刷新页面,【通用管理】菜单下出现【调度中心】菜单,在这里查看和管理调度器及执行器。

勾选afcenter权限

进入【组织权限中心】→【权限管理】→【角色管理】,点击【租户管理员】,勾选同步后需要新增的权限,如【任务调度】权限组下的页面和功能。