# 独立安装
文档中以MySQL数据安装为示例进行安装。
# 安装介质说明和准备
独立安装介质内置了AFcenter,无需再安装AFCenter环境。
独立安装介质目录如下:
Primeton_QualityCube_7.2_GA_Standalone
├── standalone
│ ├── clearLog.cmd
│ ├── clearLog.sh
│ ├── readme.txt
│ ├── shutdown.cmd
│ ├── shutdown.sh
│ ├── startup.cmd
│ └── startup.sh
├── server
│ ├── executor
│ │ ├── bin
│ │ ├── config
│ │ ├── lib
│ │ ├── spark
│ │ ├── quality-executor-7.2.0-exec.jar
│ │ └── README.md
│ ├── quality
│ │ ├── bin
│ │ ├── config
│ │ ├── db-script
│ │ ├── lib
│ │ └── dqmsall-boot-7.2.0-exec.jar //数据质量主程序
└── web
├── afcenter
│ ├── assets
│ ├── bfp
│ ├── components
│ ├── components-ext
│ ├── config
│ ├── formDesigner
│ ├── ide
│ ├── index.html
│ ├── quality // 数据质量前端资源
│ ├── remoteEntry.js
│ ├── remoteEntry.js.gz
│ ├── static
│ └── version.properties
└── conf
└── quality.conf
# 数据库初始化
# 创建数据库
如果执行的是mysql的脚本,在执行脚本之前,请将mysql设置为不区分表名大小写。
创建"quality"数据库。执行如下脚本:
CREATE DATABASE `quality` DEFAULT CHARACTER SET utf8mb4;
# 执行初始化脚本
独立介质安装时需要按顺序执行EOS、AFCenter、Quality的数据库初始化脚本。初始化脚本路径为
Primeton_QualityCube_7.2_GA_Standalone/server/quality/db-scripts,其中包括了EOS、AFCenter、QUALITY的脚本。
quality数据库初始化,按顺序执行如下脚本:
eos/Mysql/00-eos-table.sql
eos/Mysql/01-eos-data.sql
afcenter/Mysql/00-afc-table.sql
afcenter/Mysql/01-afc-data.sql
public-resource/Mysql/00-table.sql
public-resource/Mysql/01-data.sql
dqms/mysql/00-quality-afc-data.sql
dqms/mysql/10-quality-ddl.sql
dqms/mysql/11-quality-data.sql
或者执行全量脚本:
all/mysql/all.sql
# 修改配置文件
# 后端配置
按需修改
质量后端配置: server / quality / config / application.properties
#-------------------------------------按需修改的部分-----------------------------------------
# 修改quality端口号
server.port=28091
# 修改redis的配置
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=密码
# 缓存机制 [ map -> 本地缓存 ] [ redis -> redis 缓存 ]
eos.cache.mode=map
质量后端配置: server / quality / config / application-dqms.properties**
#---------------------------------------可按需修改-------------------------------------------------
#使用的数据库类型
pagehelper.helperDialect=mysql
#检核结果文件存放路径(!!!需要和executor配置在同一目录下)
common.base_dir=/绝对路径/data
#调度器配置,与质量端口保持一致
xxl.job.admin.addresses=http://127.0.0.1:28091
xxl.job.admin.token=c0101b6109e8478784ceb8897159fe2b
质量后端配置: server / quality / config / application-eureka.properties配置文件
eureka.client.enabled=false
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
质量后端配置: server / quality / config / application-nacos.properties配置文件
spring.cloud.nacos.discovery.enabled=false
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 ###-nacos所在服务器ip
eureka.client.enabled=false
其中:application-nacos.properties和application-eureka.properties配置文件,根据实际选择使用进行选择配置。
质量后端配置: server / quality / 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
质量后端配置: server / quality / 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&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2b8</configValue>
<configValue key="C3p0-UserName">用户名</configValue>
<configValue key="C3p0-Password">密码</configValue>
执行器配置: server / executor / 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:28091
#token可以参考[系统变量]目录下最后的token管理部分[(6)mdm_server_token(MDM对应AFC提供的访问凭证)]
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) 保持相同的路径
# 前端配置
在nginx.conf 文件中加入如下配置
worker_processes 1;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#监听afc后端端口,若以独立模式启动,该端口号与quality端口号相同
#监听quality后端端口
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://qualityapp ;
}
location ~/(.*)/api/ {
rewrite ^/(.*)/api/(.*)$ /api/$2 break;
#proxy_set_header X-EOS-SourceSysKey 359e22bf398043cb866a92dc1cbbd3f6;
proxy_pass http://qualityapp ;
}
#location ~ \.biz\.ext$ {
# proxy_pass http://afcenterapp;
#
}
location / {
root /介质解压到的目录;
index index.html index.htm;
#try_files $uri /index.html;
}
# 启动服务
启动后端服务时根据需求可选择质量后端、调度器、执行器单独启动,也可选择一键启动。
单独启动:
执行器启动
Linux 系统
[root@localhost Primeton_QualityCube_7.2_GA_Standalone]# ./server/executor/bin/startup.sh
Windows 系统
D:\Desktop\Primeton_QualityCube_7.2_GA_Standalone\server\executor\bin> startup.cmd
质量后端启动
Linux 系统
[root@localhost Primeton_QualityCube_7.2_GA_Standalone]# ./server/quality/bin/startup.sh
Windows 系统
D:\Desktop\Primeton_QualityCube_7.2_GA_Standalone\server\quality\bin> startup.cmd
一键启动:
质量后端启动
Linux 系统
[root@localhost Primeton_QualityCube_7.2_GA_Standalone]# ./startup.sh
Windows 系统
D:\Desktop\Primeton_QualityCube_7.2_GA_Standalone> startup.cmd
前端ui 系统
[root@localhost Primeton_QualityCube_7.2_GA_Standalone]# nginx -c ./nginx.config
# 环境登录和验证
访问http://localhost
,使用初始用户登录,初始用户名、密码为:admin、000000。
1.点击组织中心/账号管理/找到自己的用户信息点击“角色数量”下的数字,进入“角色详情”。
2.在”角色详情“页面,选择添加角色,选择数据质量管理员。
3.可以看到角色列表中已经有数据质量管理员的角色了
4.刷新即可看到“数据质量”功能。
# 产品组件账号说明
微应用部署方式涉及的账号信息
组件/模块 | 账号 | 账号角色 | 是否有密码策略 | 密码更改位置 | 投产建议 |
---|---|---|---|---|---|
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&characterEncoding=utf8&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 账号、密码默认没有开启,建议在生产环境中开启并修改默认密码。
# 补充
高斯数据库的upgrade存在语法错误,需要更新。
对应错误脚本:
ALTER TABLE AFC_SYSTEM_VARIABLE MODIFY COLUMN VALUE VARCHAR(1024);
需要将以上脚本修改为如下内容再进行执行:
alter table afc_system_variable alter column value type varchar(1024) using value::varchar(1024);
comment on column afc_system_variable.value is '扩展系统变量值';