# 微应用安装

本文档以 MySQL 数据库为示例进行安装部署。

数据质量 7.2 GA 基于 AFCenter 8.3.0 版本运行,因此不兼容非此版本的 AFCenter 组件。如果安装环境中的 AFCenter 版本低于 8.3.0,需要先升级 AFCenter。

# 安装介质说明和准备

微应用方式安装的前提是已经安装AFCenter环境, 即已经部署了独立的AFCenter环境。

微应用安装介质需提前准备好”Primeton_QualityCube_7.2_GA_MicroApp.tar.gz“文件,解压后”Primeton_QualityCube_7.2_GA_Server.tar.gz“对应后端介质,“Primeton_QualityCube_7.2_GA_UI.tar.gz”对应前端介质。

微应用安装介质目录如下:

Primeton_QualityCube_7.2_GA_MicroApp
├── Primeton_QualityCube_7.2_GA_Server
├── Primeton_QualityCube_7.2_GA_Executor
└── Primeton_QualityCube_7.2_GA_UI

Primeton_QualityCube_7.2_GA_Server
├── bin
│	├── shutdown.cmd
│	├── shutdown.sh
│	├── startup.cmd
│	└── startup.sh
├── config
│	├── QUALITY
│	├── application.properties
│	├── application-afc.properties
│	├── application-dqms.properties
│	├── application-job.properties
│	├── application-eureka.properties
│	├── application-nacos.properties
│	├── bootstrap.properties
│	└── logback-spring.xml
├── db-scripts
│	├── DaMeng
│	├── GaussDB
│	├── Postgresql
│	├── HignGo
│	├── KingbaseES
│	├── Mysql
│	├── upgrade
│	└── Oracle
├── lib
│	├── mapper
│	├── DmJdbcDriver18-8.1.1.193.jar
│	├── hive-jdbc-2.1.1.jar
│	├── sqljdbc4-4.0.jar
│	├── HgdbJdbc-6.2.2.jar
│	├── kingbase8-8.6.0.jar
│	├── postgresql-9.2-1004-jdbc4.jar
│	└── opengauss-jdbc-3.0.0.jar
└── dqms-boot-7.2.0-exec.jar


Primeton_QualityCube_7.2_GA_UI
├── quality.conf
└── dist
	├── assets
	│	├── css
	│	├── fonts
	│	├── images
	│	└── js
	├── static
	│	├── image
	│	├── images
	│	├── js
	│	├── json
	│	├── lang
	│	├── monaco-editor
	│	├── png
	│	├── tinymce5.2.0
	│	├── flow-config.json
	│	└── logo.png
	├── index.html
	└── remoteEntry.js

Primeton_QualityCube_7.2_GA_Executor
├── bin
│	├── shutdown.cmd
│	├── shutdown.sh
│	├── startup.cmd
│	└── startup.sh
├── config
│	├── legal-validator-tpl
│	├── mapper
│	├── spark
│	├── templates
│	├── account.properties
│	├── application.propertie
│	├── banner.txt
│	├── core-site.xml
│	├── hdfs-site.xml
│	└── logback.xml
├── lib
│   ├── DmJdbcDriver18-8.1.1.193.jar
│	├── hive-jdbc-2.1.1.jar
│	├── sqljdbc4-4.0.jar
│	├── HgdbJdbc-6.2.2.jar
│	├── kingbase8-8.6.0.jar
│	├── postgresql-9.2-1004-jdbc4.jar
│	└── mysql-connector-java-8.0.19.jar
├── spark
│	└── hiveseq_check
├── quality-executor-7.2.0-exec.jar
└── README.md

# 数据库初始化

如果执行的是mysql的脚本,在执行脚本之前,请将mysql设置为不区分表名大小写。

创建quality数据库。执行如下脚本:

CREATE DATABASE `quality` DEFAULT CHARACTER SET utf8mb4;

# 执行初始化脚本

微应用安介质安装时需要按顺序执行对应数据库的数据库初始化脚本。初始化脚本路径为Primeton_QualityCube_7.2_GA_MicroApp/db-scripts,其中包括了四种数据库dm、mysql、opengauss、oracle的脚本。

  1. 若quality(数据质量)所用的数据库与对应的AFCenter不是同一个库时,需先运行AFCenter介质中的 db-scripts/eos/所用库类型/all.sql。- 例如:AFCenter\db-scripts\eos\Mysql\all.sql

  2. 在已经安装的AFcenter的数据库afcenter_mysql里, 初始化数据质量的数据到库afcenter_mysql,

    执行如下脚本:

    db-scripts/Mysql/00-quality-afc-data.sql # 此脚本文件需放在afcenter的数据库运行
    
  3. quality数据库初始化,按顺序执行如下脚本:

    db-scripts/Mysql/10-quality-ddl.sql
    db-scripts/Mysql/11-quality-data.sql
    

# 修改配置文件

# 后端配置

微应用安介质安装时的配置文件,有需要修改的地方会在后面用“###-”提示说明。

质量后端配置:

config/application.properties配置文件

#-------------------------------------按需修改的部分-----------------------------------------
# 修改quality端口号
server.port=28091
# 修改redis的配置
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=密码

config/application-afc.properties配置文件

#---------------------------------------可按需修改-------------------------------------------------
# AFCenter的应用名称,如果修改了AFCenter的应用名称,这里需要同步修改
afc.application.name=AFCENTER

config/application-dqms.properties配置文件

#---------------------------------------可按需修改-------------------------------------------------
#使用的数据库类型
pagehelper.helperDialect=mysql
#检核结果文件存放路径(!!!需要和executor配置在同一目录下)
common.base_dir=/绝对路径/data
# scheduler,afcenter后端端口
xxl.job.admin.addresses=http://127.0.0.1:28083
xxl.job.admin.token=c0101b6109e8478784ceb8897159fe2b

config/application-eureka.properties配置文件

eureka.client.enabled=true
eureka.instance.prefer-ip-address=true
eureka.instance.lease-renewal-interval-in-seconds=10
eureka.instance.lease-expiration-duration-in-seconds=30
eureka.client.service-url.defaultZone=http://Admin:Admin9000@127.0.0.1:8761/eureka/  ###-eureka所在服务器ip

spring.cloud.nacos.discovery.enabled=false
spring.cloud.nacos.config.enabled=false

#apollo.meta=http://127.0.0.1:18081/
#apollo.bootstrap.enabled=true


config/application-nacos.properties配置文件

spring.cloud.nacos.discovery.enabled=true
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 ###-nacos所在服务器ip

eureka.client.enabled=false

其中:application-nacos.properties和application-eureka.properties配置文件,根据实际选择使用进行选择配置。

config/bootstrap.properties配置文件

此配置文件亦会影响Nacos,因此按需修改

# Alibaba nacos client settings
#spring.cloud.nacos.config.enabled=false
#spring.cloud.nacos.config.server-addr=127.0.0.1:8848

eureka.client.enabled=false
spring.cloud.nacos.discovery.enabled=false
spring.cloud.nacos.config.enabled=false

config/QUALITY/config/user-config.xml配置文件

        <!-------------------------------------需要修改的内容---------------------------------------------->
<!-- 配置数据库驱动 -->
<configValue key="Database-Type">MySql</configValue>
<configValue key="C3p0-DriverClass">com.mysql.jdbc.Driver</configValue>
<!-- 配置quality_afc数据库连接信息 -->
<configValue key="C3p0-Url">jdbc:mysql://127.0.0.1:3306/quality?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false&amp;serverTimezone=GMT%2b8</configValue>
<configValue key="C3p0-UserName">用户名</configValue>
<configValue key="C3p0-Password">密码</configValue>

执行器配置:

config/application.properties配置文件

#---------------------------------------可按需修改-------------------------------------------------
#执行器端口
server.port=28092
#使用的数据库类型
mybatis.configuration.database-id=mysql
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
mybatis.configuration.call-setters-on-nulls=true
mybatis.configuration.jdbc-type-for-null=null

logging.level.com.primeton.damp=INFO
logging.level.com.primeton.dqms=INFO

spring.main.allow-circular-references=true

#检核结果文件存放路径(!!!需要和quality后端配置在同一目录下)
common.base_dir=/绝对路径/data
common.damp_dir=/绝对路径/data
#告警邮件服务器配置
spring.mail.host=your.mail.host
spring.mail.protocol=smtp
spring.mail.username=your.mail@mail.host.com
spring.mail.password=your_password

spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.socketFactory.fallback=false
#数据库配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/quality_test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2b8
spring.datasource.username=账号
spring.datasource.password=密码
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.druid.test-while-idle=false
spring.datasource.druid.initial-size=20
spring.datasource.druid.min-idle=10
spring.datasource.druid.max-active=20
spring.datasource.druid.max-wait=20
spring.datasource.druid.time-between-connect-error-millis=20
spring.servlet.uploadPath=${common.base_dir}/upload/principal
#使用的数据库类型
pagehelper.page-size-zero=true
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true

afc.system-variable.tenantId=sys_tenant
afc.system-variable.mdm-resGroupId=quality-11

#xxl-job, 默认使用AFC内置调度器
xxl.job.admin.addresses=${afc.server.url}
xxl.job.admin.token=${afc.server.token}

# executor (this application)
xxl.job.registry.url=${afc.server.url}/api/afc/job/
xxl.job.executor.appname=quality-executor
# auto find local address if none ip set
#xxl.job.executor.ip=
# use random available port if none port set
xxl.job.executor.port=28094
xxl.job.executor.logpath=${common.base_dir}/logs
xxl.job.executor.logretentiondays=-1
#xxl.job.accessToken=
#afcenter的ip地址
afc.server.url=http://127.0.0.1:28083
#默认与application-dqms.properties配置文件中的token一致
afc.server.token=c0101b6109e8478784ceb8897159fe2b
#true means null-value-check will check blank values
datacheck.check-rules.null-value-check.include-blank-value=true

check.result.save-mode=local
#check.result.host=10.15.15.136
#check.result.port=22
#check.result.username=test
#check.result.password=test
check.result.local-temp-dir=${common.damp_dir}/dataCheck
check.result.upload-root-dir=${common.damp_dir}/dataCheck
#check.result.kerberosPath=/opt/kerberos
#check.result.hdfsConfPath=/opt/hdfsConf

# 检核库的数据库连接池配置
#'true' presents rule 'null-value-check' will regard blank values as error as well as value 'null'
check.check-rules.null-value-check.include-blank-value=true

# Set the reconnect interval time
check.datasource.connection.config.time-between-connect-error-millis=3000
# Enable reconnection after failure
check.datasource.connection.config.break-after-acquire-failure=true
# Limit reconnect acquire times
check.datasource.connection.config.connection-error-retry-attempts= 1
# Maximum active communication
check.datasource.connection.config.max-active=20
# Minimum active connections
check.datasource.connection.config.min-idle=1
# Init connections
check.datasource.connection.config.initial-size=1
# Max waiting time for connection
check.datasource.connection.config.max-wait=5000

<执行器程序>检核结果的保存路径([executor / config / application.properties]common.base_dir 以及 common.damp_dir)要配置成与 <数据质量后端程序>的配置([quality / config / application-dqms.properties] common.base_dir) 保持相同的路径

# 前端配置

将Primeton_QualityCube_7.2_GA_UI.tar.gz解压到quality目录,然后将quality目录复制到afcenter到前端资源目录下。前端资源使用 AFCenter 默认的 Nginx 配置即可,无需修改。

66574114792

# 安装Quality补丁(可选)

  若使用EOS8.3.1上,公共资源PRM8.3.0.1,需打补丁QUALITYCUBE_7.2GA_SERVER_20240723_P1 

# 安装AFCenter补丁(可选)

1.检查是否需要安装AFCenter补丁。查看补丁列表 (opens new window)

  若使用AFC8.3.0,DM8应用库,需打补丁PLATFORM_8.3LA1_AFCENTER_20240910_P1 
  若使用AFC8.3.1,DM8应用库,需打补丁PLATFORM_8.3.1_AFCENTER_20240910_P1 

2.安装补丁后需要重启AFCenter后端。

# 启动服务

执行器启动

Linux 系统

[root@localhost Primeton_QualityCube_7.2_GA_Executor]# ./bin/startup.sh

Windows 系统

D:\Desktop\Primeton_QualityCube_7.2_GA_Executor\bin> startup.cmd

质量后端启动

Linux 系统

[root@localhost Primeton_QualityCube_7.2_GA_Server]# ./bin/startup.sh

Windows 系统

D:\Desktop\Primeton_QualityCube_7.2_GA_Server\bin> startup.cmd

前端ui 系统

[root@localhost Primeton_QualityCube_7.2_GA_MicroApp]# nginx -c /etc/nginx/nginx.config #需填写nginx配置文件的绝对路径

# 环境登录和验证

访问http://localhost,使用初始用户登录,初始用户名、密码为:admin、000000。

71023770306

1.点击组织中心/账号管理/找到自己的用户信息点击“角色数量”下的数字,进入“角色详情”。

71023760827

71024082599

2.在”角色详情“页面,选择添加角色,选择数据质量管理员。

71024094082

71024105130

3.可以看到角色列表中已经有数据质量管理员的角色了

71024113326

4.刷新即可看到“数据质量”功能。

710241133265

# 产品组件账号说明

微应用部署方式涉及的账号信息

组件/模块 账号 账号角色 是否有密码策略 密码更改位置 投产建议
AFCenter sysadmin 管理员 右上方“个人信息” --> 修改密码 按需更改密码策略
AFCenter admin 租户管理员 右上方“个人信息” --> 修改密码 按需更改密码策略
数据质量调度器 admin 管理员 右上方“个人信息” --> 修改密码 按需更改密码策略

配置文件中涉及账号的配置

数据源配置

涉及数据源账号、密码,对应配置文件:user-config.xml

<group name="default">
    ...
    <configValue key="Database-Type">MySql</configValue>
    <configValue key="Jdbc-Type"/>
    <configValue key="C3p0-DriverClass">com.mysql.cj.jdbc.Driver</configValue>
    <configValue key="C3p0-Url">jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true</configValue>
    <configValue key="C3p0-UserName">root</configValue>
    <configValue key="C3p0-Password">root</configValue>
    ...
</group>

Redis配置:涉及Redis账号、密码,对应配置文件:application.properties

spring.redis.host=127.0.0.1
spring.redis.port=6379
#spring.redis.password=

Nacos配置:设计Nacos账号、密码,对应配置文件:application-nacos.properties

spring.cloud.nacos.discovery.enabled=true
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#spring.cloud.nacos.discovery.username=nacos
#spring.cloud.nacos.discovery.password=nacos

eureka.client.enabled=false

⚠️注意:以上配置中 Redis、Nacos 账号、密码默认没有开启,强烈建议在生产环境中开启并修改默认密码。