# 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.