# 独立安装

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

# 安装介质说明和准备

独立安装介质内置了AFcenter,无需再安装AFCenter环境。

独立安装介质目录如下:

Primeton_QualityCube_7.1_LA2_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.1.0-exec.jar
│   │   └── README.md
│   ├── quality
│   │   ├── bin
│   │   ├── config
│   │   ├── db-script
│   │   ├── lib
│   │   └── afc-embed-boot-7.1.0-exec.jar //数据质量主程序
│   ├── scheduler
│   │   ├── startJob.bat
│   │   ├── startJob.sh
│   │   ├── stopJob.bat
│   │   ├── stopJob.sh
│   │   ├── config
│   │   ├── lib
│   │   ├── README.md
│   │   └── xxl-job-admin-2.2.0-exec.jar
│   └── primetonlicense.xml
└── 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.1_LA2_Standalone/server/quality/db-scripts,其中包括了EOS、AFCenter、QUALITY的脚本。

quality数据库初始化,按顺序执行如下脚本:

eos/Mysql/00-eos-table.sql
eos/Mysql/01-eos-data.sql
eos/Mysql/02-quartz.sql
afcenter/Mysql/00-afc-table.sql
afcenter/Mysql/01-afc-data.sql
dqms/mysql/00-quality-afc-data.sql
dqms/mysql/01-afc-template-data.sql
dqms/mysql/10-quality-ddl.sql
dqms/mysql/11-quality-data.sql
dqms/mysql/12-quality-function.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-afc.properties

#---------------------------------------可按需修改-------------------------------------------------
# 需要和数据质量后端IP及端口一致
afc.application.name=127.0.0.1:28091

质量后端配置: server / quality / config / application-dqms.properties

#---------------------------------------可按需修改-------------------------------------------------
#使用的数据库类型
pagehelper.helperDialect=mysql
#检核结果文件存放路径(!!!需要和executor配置在同一个地方)
common.base_dir=/绝对路径/data
#执行器配置
xxl.job.admin.addresses=http://127.0.0.1:28093/job-admin/
xxl.job.admin.username=admin
xxl.job.admin.password=123456

质量后端配置: 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&amp;characterEncoding=UTF-8&amp;useSSL=false&amp;serverTimezone=GMT%2b8</configValue>
<configValue key="C3p0-UserName">用户名</configValue>
<configValue key="C3p0-Password">密码</configValue>

调度器配置: server / scheduler / config / application.properties

#---------------------------------------可按需修改-------------------------------------------------
#调度器端口
server.port=28093 
server.servlet.context-path=/job-admin
#使用数据库类型
mybatis.configuration.database-id=mysql
###数据库
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/quality?serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username=账号
spring.datasource.password=密码
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

执行器配置: server / executor / config / application.properties

#---------------------------------------可按需修改-------------------------------------------------
#执行器端口
server.port=28092
#使用的数据库类型
mybatis.configuration.database-id=mysql
<<<<<<< HEAD
#common中base文件路径(!!!需要和quality后端配置在同一个地方)
common.base_dir=${app.home:.}
common.damp_dir=/base文件路径
=======
#检核结果文件存放路径(!!!需要和quality后端配置在同一个地方)
common.base_dir=/绝对路径/data
common.damp_dir=/绝对路径/data
>>>>>>> 64b7b330c7c468c9edfd45a969450b91fe6d4db2
#告警邮件服务器配置
spring.mail.host=smtp.exmail.qq.com
spring.mail.protocol=smtp
spring.mail.username=lizw@primeton.com
spring.mail.password=i7cBHaDFzeWex539
#数据库配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/quality?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
#使用的数据库类型
pagehelper.helperDialect=mysql
# xxl-job
xxl.job.admin.addresses=http://127.0.0.1:28093/job-admin/
xxl.job.admin.username=admin
xxl.job.admin.password=123456
xxl.job.executor.appname=cdh-executor
xxl.job.executor.ip=
# 执行器注册至调度器中端口
xxl.job.executor.port=28094
#afcenter的ip地址
afc.server.url=http://127.0.0.1:28083
#token可以参考[系统变量]目录下最后的token管理部分
afc.server.token=8a7a1c279ea248189db39083b703d71a
#true means null-value-check will check blank values
datacheck.check-rules.null-value-check.include-blank-value=true

# 前端配置

在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.1_LA2_Standalone]# ./server/scheduler/startJob.sh

Windows 系统

D:\Desktop\Primeton_QualityCube_7.1_LA2_Standalone\server\scheduler> startJob.bat

执行器启动

Linux 系统

[root@localhost Primeton_QualityCube_7.1_LA2_Standalone]# ./server/executor/bin/startup.sh

Windows 系统

D:\Desktop\Primeton_QualityCube_7.1_LA2_Standalone\server\executor\bin> startup.cmd

质量后端启动

Linux 系统

[root@localhost Primeton_QualityCube_7.1_LA2_Standalone]# ./server/quality/bin/startup.sh

Windows 系统

D:\Desktop\Primeton_QualityCube_7.1_LA2_Standalone\server\quality\bin> startup.cmd

一键启动

质量后端启动

Linux 系统

[root@localhost Primeton_QualityCube_7.1_LA2_Standalone]# ./startup.sh

Windows 系统

D:\Desktop\Primeton_QualityCube_7.1_LA2_Standalone> startup.cmd

前端ui 系统

[root@localhost Primeton_QualityCube_7.1_LA2_Standalone]# nginx -c ./nginx.config

# 环境登录和验证

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

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

image-20221011200127038

2.在”角色详情“下的“权限”页面,选择应用列表为”数据质量“,勾选需要的权限,即可。

image-20221011200431165

3.在“账号管理”中,选择对应账号的”角色数量“下的数字,进行对账号角色的配置。

image-20221011200752601

4.在“账号管理”中,点击“添加角色”,即可把刚才创建的角色赋予这个账号。

image-20221011201016330

5.在”添加角色“中选择选中需要的角色,在右边的已选框中可查看到选择的角色。

image-20221011201110323

6.点击“确定”,可以看到选择的角色已添加成功。

image-20221011201310594

7.点击“确定”,保存成功,可看到,账号“角色数量”下的数字加一。

image-20221011201407938

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

image-20221011202003258

9.检查调度器启动是否成功

访问http://127.0.0.1:28093/job-admin/,检查是否能够正常打开页面。

# 产品组件账号说明

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

组件/模块 账号 账号角色 是否有密码策略 密码更改位置 投产建议
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=test

# 补充

高斯数据库的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 '扩展系统变量值';