一、前言

当谈到数据开发和数据治理平台时,Yearning无是一个备受关注的工具。Yearning是一个面向数据开发人员和数据工程师的开源项目,它为用户提供了简单易用的数据查询和数据治理功能。

在这篇博客中,我们将探讨Yearning的特点优势以及安装部署和如何使用它来提升数据开发和数据治理的效率。

Yearning的特点和优势:

易用性:Yearning提供了直观的用户界面和友好的交互体验,无需复的编程和技术背景即可轻松上手。多数据源支持:Yearning支持多种常见的数据源,包括MySQL、PostgreSQL、ClickHouse等,满足不同数据需求的接入要求。数据可视化和报表功能:Yearning提供了数据可视化和报表功能,用户可以通过图表和报表来更直观地理解和分析数据。数据字典和数据血缘追踪:Yearning内置了数据字典和数据血缘追踪功能,帮助用户更好地理解和管理数据的来源和关系。权限安全性:Yearning支持细粒度的权限管理,保障数据的安全性,同时支持LDAP等身份验证方式,与企业现有的用户认证系统无缝集成。

Yearning的介绍、背景以及特点网上都有,感兴趣的各位可以自行上网搜索,接下来走进正题开始安装及使用教学。

二、安装

2.1、安装和配置MySQL数据库

# 首先关闭防火墙和内核安全机制

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# setenforce 0

[root@localhost ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config

# 卸载自带的mysql源

[root@localhost ~]# yum list installed | grep mysql

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast

[root@localhost ~]# yum list installed | grep mariadb

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast

mariadb-libs.x86_64 1:5.5.68-1.el7 @anaconda

[root@localhost ~]# yum -y remove mariadb-libs.x86_64

[root@localhost ~]# find / -name mysql

/etc/selinux/targeted/active/modules/100/mysql

/usr/lib64/mysql

[root@localhost ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql

[root@localhost ~]# rm -rf /usr/lib64/mysql

# 安装mysql-5.7.38

[root@localhost ~]# wget -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

[root@localhost ~]# yum -y install mysql-community-server --nogpgcheck

[root@localhost ~]# systemctl start mysqld

[root@localhost ~]# systemctl enable mysqld

# 登录数据库并设置密码策略修改默认密码

[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log

2023-07-05T07:29:50.033212Z 1 [Note] A temporary password is generated for root@localhost: YS4qW5G=k=at

[root@localhost ~]# mysql -uroot -pYS4qW5G=k=at

mysql: [Warning] Using a password on the command line interface can be insecure.

.......

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> set global validate_password_policy=0;

Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=1;

Query OK, 0 rows affected (0.00 sec)

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Kpt90njaG#1o';

Query OK, 0 rows affected (0.00 sec)

# 创建Yearning要使用的数据库

mysql> CREATE DATABASE `Yearning` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| Yearning |

| mysql |

| performance_schema |

| sys |

+--------------------+

5 rows in set (0.00 sec)

这段代码主要是在安装和配置MySQL数据库的过程。以下是每个步骤的解释:

删除已安装的MariaDB,并移除与MySQL相关的文件和目录。 安装MySQL-5.7.38:通过下载MySQL社区版的RPM包(mysql57-community-release-el7-10.noarch.rpm),然后使用yum命令安装MySQL Community Server。 登录数据库并设置密码策略修改默认密码:首先,使用grep命令查看数据库初始密码;然后使用mysql命令登录MySQL数据库,修改密码策略,将密码策略验证策略设置为0,将密码最小长度设置为1;最后,使用ALTER USER语句修改root用户的密码为指定值。 创建Yearning要使用的数据库:使用mysql命令创建一个名为"Yearning"的数据库。 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Kpt90njaG#1o';,Kpt90njaG#1o这个是你的数据库密码,可以自行修改。

2.2、搭建Yearning

# 下载Yearning到自己的安装目录并解压

# 如果下载不了,去到https://github.com/cookieY/Yearning/releases/download/网页搜索Yearning查看适用版本,然后复制链接替换我下面的链接

[root@localhost ~]# wget https://github.com/cookieY/Yearning/releases/download/v3.1.5/Yearning-v3.1.5-linux-amd64.zip

[root@localhost ~]# unzip Yearning-v3.1.5-linux-amd64.zip

Archive: Yearning-v3.1.5-linux-amd64.zip

creating: Yearning/

creating: Yearning/docker/

inflating: Yearning/docker/Dockerfile

inflating: Yearning/docker/README.md

inflating: Yearning/docker/docker-compose.yml

inflating: Yearning/.DS_Store

inflating: Yearning/conf.toml

inflating: Yearning/migrate

inflating: Yearning/Yearning

# 修改Yearning配置文件

[root@localhost ~]# cd Yearning

[root@localhost Yearning]# ls

conf.toml docker migrate Yearning

[root@localhost Yearning]# vim conf.toml

[Mysql]

Db = "Yearning"

Host = "127.0.0.1"

Port = "3306"

Password = "Kpt90njaG#1o" #数据库密码

User = "root"

[General]

SecretKey = "kpijoHesuankisjp" #随便修改为长度16位的字符,大小写均可

Hours = 4

QueryClient = true

QueryPort = 3307

....... #其他不动

# 初始化Yearning数据库

[root@localhost Yearning]# ./Yearning install

是否已将数据库字符集设置为UTF8/UTF8MB4? [yes|no]: yes

.......

初始化成功!

用户名: admin

密码:Yearning_admin

请通过./Yearning run 运行,默认地址:http://:8000

# 启动服务

[root@localhost Yearning]# nohup ./Yearning run &

[root@localhost Yearning]# netstat -atnpl

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp6 0 0 :::8000 :::* LISTEN 22827/./Yearning

# http://ip:8000访问Yearning平台(8000是默认端口)

这段代码的作用是安装和配置 Yearning 平台,一个 SQL 审核平台。以下是每个步骤的解释:

从指定的 GitHub 发布页面下载 Yearning 的压缩包(Yearning-3.1.5-linux-amd64.zip)到当前目录。wget 是一个用于从 Web 下载文件的命令。 解压下载的 Yearning 压缩包。unzip 命令用于解压文件。 编辑 Yearning 的配置文件 conf.toml。 vim 命令用于编辑文本文件。在配置文件中,修改了与数据库连接相关的信息(数据库名称、主机、端口、密码和用户名)以及其他一些设置项(如密钥和有效时间)。 执行 ./Yearning install 命令来初始化 Yearning 数据库。这将创建管理员账户和密码,并输出给您。 通过运行 nohup ./Yearning run & 命令启动 Yearning,使其在后台运行,而不受当前终端会话的影响。 通过访问 http://ip:8000(其中 "ip" 是服务器的 IP 地址),您可以访问 Yearning 平台。默认情况下,Yearning 使用 8000 端口。 默认:admin / Yearning_admin

这些步骤指在安装和配置 Yearning 平台,并通过访问相应的网址来使用该平台进行 SQL 审核工作。

2.3、反向代理配置《坑》

由于Yearning中个别功能使用websocket进行通信。如采用反向代理的方式访问Yearning请在代理层对websocket协议进行代理支持。

例如: nginx 需要配置 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";

直接上代码吧:

[root@localhost conf.d]# vim yearning.laifuyun.conf

upstream yearningbackend {

server 192.168.50.118:8000;

}

server {

listen 80;

listen 443 ssl http2;

server_name yearning.laifuyun.com;

ssl_certificate /mnt/server/ssl/laifuyun.com/fullchain.pem;

ssl_certificate_key /mnt/server/ssl/laifuyun.com/privkey.pem;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

ssl_prefer_server_ciphers on;

location / {

proxy_pass http://yearningbackend;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

}

}

这段代码是一个 Nginx 的配置文件,用于将来自特定域名的 HTTP 或 HTTPS 请求代理到 Yearning 平台后端的服务器:

首先,定义了一个名为 "yearningbackend" 的上游服务(upstream),指定了 Yearning 平台后端服务器的 IP 地址和端口号(192.168.50.118:8000)。 然后,配置了一个服务器块(server),监听在 80 端口和 443 端口,并设置了服务器名称为 "yearning.laifuyun.com"。 接下来,配置了 SSL 证书及私钥文件的路径,用于支持 HTTPS 连接。 设置了 SSL 协议版本(TLSv1、TLSv1.1、TLSv1.2)、加密算法列表以及首选服务器加密算法。 在 location 部分配置了代理转发规则,将所有请求转发到上游服务 "yearningbackend"。同时,通过 proxy_set_header 配置设置了一些请求头信息,如 Host、X-Real-IP、X-Forwarded-For 和 X-Forwarded-Proto 等。 最后,配置了代理协议版本、HTTP 升级相关的请求头信息。 通过这样的配置,当用户访问 yearning.laifuyun.com 的时候,Nginx 会将请求转发给后台的 Yearning 平台进行处理。 如果想要直接复制,需要修改两个地方:一是IP+端口号,二是SSL 证书及私钥文件的路径。

至此,SQL审核平台Yearning的安装配置就OK了!!!

三、使用

3.1、设置

钉钉群、群设置、机器人、添加机器人、添加机器人、自定义、添加、完成。

3.2、Yearning设置

点击Yearning设置、填写webhook地址、填写webhook秘钥、打开webhook推送开关、点击hook测试、保存。

3.3、审核规则

打开:允许单个工单提交多条DDL语句、允许使用after/first、允许insert语句插入null值。修改:char字段最大长度=100、表名最大长度=50、Insert最大插入行数上限=1000、DML最大影响行数=30000000。保存。

3.4、用户

根据自己需求添加用户。

3.5、流程

流程的作用是为用户提供一种规范和可管理的方式来组织和管理 SQL 审核过程。

3.6、数据源

环境:随便选名称:自己起地址:根据自己数据库实际情况填写用户名:数据库用户密码:用户的密码流程:选择自己上面创建的流程负责人:admin

3.7、权限组

把添加进来的数据库根据自己情况分配权限,目的是为了下一步给用户授权做准备,就是用户有什么权限对这个数据库进行操作。

3.8、用户添加权限

选择要添加权限的用户、点击权限,把刚才添加的权限组授权给他,保存。

 3.9、使用用户账号查看当前权限

Yearning安装和使用教程到此已经结束了,可能看着有点迷,提交几次工单就会了,非常简单,不用有压力,如果在过程中出现问题或者不理解的,欢迎评论区留言。

希望这篇博客能对你有所帮助!若有其他问题,欢迎继续咨询,祝您生活愉快。

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: