# huaweicloud-haydn-tools-and-sample-code-agent
**Repository Path**: HuaweiCloudDeveloper/huaweicloud-haydn-tools-and-sample-code-agent
## Basic Information
- **Project Name**: huaweicloud-haydn-tools-and-sample-code-agent
- **Description**: Haydn解决方案数字化平台加速场-工具&示例代码,华为云验证团队持续沉淀方案构建、验证过程中自研的工具&示例代码并上架至Haydn平台,加速伙伴快速完成与指定云服务的预集成及验证。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master-dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2023-06-21
- **Last Updated**: 2025-06-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 交付中心数据探源工具
本项目是解决方案数字化平台交付中心数据探源工具, 可以用于探查源端数据库 库、表、字段维度的数据详情。
免责声明:本代码为示例代码,解决方案数字化平台及华为云计算公司不对该代码负任何责任。
## 使用方法:
1、编译本项目,打成jar 包。(jar包已提供压缩包和lib目录,下载后放在同一目录下,也可以通过修改代码,重新编译打包。)
2、将jar包放入远端服务器中。同文件下需要放入```application.properties```文件。 注意:该文件请到Haydn平台下载使用。
3、本工具将占用8809端口。如需修改,请直接修改application.yaml文件中的代码,重新编译后启用。
4、运行启动脚本 ```run_agent.sh```
启动脚本示例如下:
```
find_pid=`netstat -atpn | grep LISTEN | grep -E '8809' | grep '/java' | awk '{print $7}' | awk -F '/' '{print $1}'`
sha256sum -c haydn-delivercore-agent-1.0.0.sha256
if [ $? -eq 0 ]; then
echo "Integrity check succeed!"
else
echo "Integrity check failed!"
exit 0
fi
if test ! -z $find_pid; then
echo "old process id: " $find_pid
kill -9 $find_pid
echo "old process stopped"
fi
echo "start serivce..."
nohup java -jar -Dloader.path=lib haydn-delivercore-agent-1.0.0.jar >./haydn-delivercore-agent.log 2>&1 &
sleep 1
tail -f ./haydn-delivercore-agent.log
for _ in 1 2 3 4
do
if test ! -z $find_pid; then
echo "new process id:" $find_pid
echo "service OK"
exit 1
fi
done
```
5、查看日志:tail -f -n 500 haydn-delivercore-agent.log
6、停下工程:运行停止脚本```stop_agent.sh```
脚本示例如下:
```
pid=$(netstat -atpn | grep LISTEN | grep -E '8809' | grep '/java' | awk '{print $7}' | awk -F '/' '{print $1}')
if [[ ! -z $pid ]]; then
echo "process stopping: $pid"
kill -9 $pid
echo "status OK"
else
echo "process dose not exist"
fi
```
7、数据库类型为MRS,且开启了安全认证的使用方式:
(1)登录Manager界面,点击 系统-用户,查找需要连接到Hive的安全用户,点击 更多-下载认证凭据,解压得到两个文件:```krb5.conf```
和```user.keytab```。
(2)登录Manager界面,点击
集群-服务-Hive-更多-下载客户端,选择仅配置文件,下载,在解压后的目录(压缩文件的目录\FusionInsight_Cluster_1_Hive_ClientConfig_ConfigFiles.tar\FusionInsight_Cluster_1_Hive_ClientConfig_ConfigFiles\Hive\config)中,得到```hiveclient.properties```
文件。
(3)将上述三个文件,放置在```application.properties```文件的相同路径下。
## 权限说明
| | 探取基本信息:库、表/视图、字段基本信息 | 空值率 |
|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|
| oracle | 权限:CREATE SESSION,SELECT ANY DICTIONARY
示例sql:
CREATE USER "C##TEST" IDENTIFIED BY "test";
GRANT CREATE SESSION, SELECT ANY DICTIONARY TO "C##TEST" | 权限:对应表的select权限
示例sql:
grant select on C##DEV."test" TO C##TEST; |
| mysql | 权限:Select
示例sql:
CREATE USER `test`@`%` IDENTIFIED BY 'test';
GRANT Select ON *.* TO `test`@`%`; | 暂无 |
| sqlserver | 权限:需要目标数据库下的db_datareader数据库角色
示例sql:
CREATE LOGIN [read_login] WITH PASSWORD = 'xxxxxxxx', CHECK_POLICY = ON, CHECK_EXPIRATION = OFF
GO
USE [db_test]
GO
CREATE USER [read_user] FOR LOGIN [read_login];
EXEC sp_addrolemember N'db_datareader', N'read_user'; | 暂无 |
## 加密
该功能主要用于加密数据库密码,避免配置文件中出现明文密码
使用script/encrypt.sh脚本可加密密码,可通过```sh encrypt.sh key passward```命令来加密文本,其中key为加密密钥,passward为需要加密的数据库密码。
而后将加密后的数据库密码填入配置文件中,在启动时需指定所使用的加密密钥:
```sh run_agent.sh -k key```方能成功启动
## 开源协议
交付中心数据探源工具 采用 Apache 2.0 License.