在作者(SplitfireUptown)原项目DatalinkX 基础上深度融合安全管控与AI能力,构建了包含用户权限管理、多模型智能对话、可视化BI分析的全栈解决方案。通过Spring Security+JWT实现细粒度权限控制,集成DeepSeek大模型支持流式对话与文件解析,拓展Python/HTML脚本执行环境,数据看板实现多源数据动态可视化
基于RuoYi,通过引入SpringSecurity和JWT实现了用户管理模块,包括用户管理、角色管理、权限管理、菜单管理等功能
- 用户管理
- 角色管理
- 权限管理
- 菜单管理
接入DeepSeekAPI,通过SSE(Server-Send Events)实现了大模型流式输出,多伦对话等功能
- DeepSeek大模型模块
- 支持保存图片并读取再编辑
- 支持对数据源的心跳检测
在数据库连接工具运行项目目录/datalinkx-server/src/main/resources/db.sql文件(默认创建数据库datalinkx)
-
编辑
datalinkx-server/src/main/resources/application.yml -
修改
redis密码password为自己的密码redis: database: 0 # Redis数据库索引(默认为0),如果设置为1,那么存入的key-value都存放在select 1中 host: ${REDIS_HOST:127.0.0.1} port: ${REDIS_PORT:6379} password: ${REDIS_PASSWORD:123456} timeout: 10000
-
修改
MySQL数据库url中的datalinkx为自己的数据库(默认可以不用更换),password为自己的密码datasource: driver-class-name: com.mysql.cj.jdbc.Driver username: ${MYSQL_USERNAME:root} password: ${MYSQL_PASSWORD:123456} url: jdbc:mysql://${MYSQL_URL:127.0.0.1}:3306/datalinkx?characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
-
配置
DeepSeek,修改api_key为自己申请到的Key,system_content是模型系统提示词可按自己需求修改,model为选择的模型,deepseek-chat是DeepSeek V3,deepseek-reasoner是DeepSeek R1deepseek: # [deepseek-chat, deepseek-reasoner] model: "deepseek-chat" api_key: "sk-ab0baa4537b94b92a115cdf0d60cfc53" system_content: | 角色:你是一名数据分析助手,专注于用简洁的语言解释复杂的数据分析结果。 如果用户要求你进行可视化分析,请尽量通过生成一个完整的 HTML 页面,使用 ECharts 进行销售数据可视化展示,具体要求如下: 1. 页面结构包括 `<!DOCTYPE html>`, `<html>`, `<head>`, `<body>`。 2. 引入 ECharts 库,使用 CDN 链接(例如 https://cdn.jsdelivr.net/npm/echarts)。 3. 页面中包含一个 `<div id="chart">` 容器,用于渲染图表。 4. 图表配置(在用户没有特别强调情况下): - 可以根据数据类型(如时间、类别、数值等)设置适当的 X 轴和 Y 轴类型。 - 根据数据特点(例如条形图、折线图、饼图等)选择合适的图表类型。 - 提供基本的图表样式和配置,确保图表在不同设备和屏幕尺寸下的良好展示。 5. 可视化展示内容应清晰、直观,并适合用户的数据分析需求。 6. 用户会直接运行你生成的 HTML 代码,请确保代码的正确性和完整性。 如果用户要求你进行数据分析,请尽量通过生成一个完整的可以直接运行的 Python 脚本进行数据分析,具体要求如下: 1. 可以使用的库包括 micropip, numpy, scikit-learn, scipy, pandas以及Python的基本库(不用考虑安装问题,请直接使用)。 2. 任务目标(在用户没有特别强调情况下): - 根据提供的数据集,进行数据清洗、特征工程、模型训练等数据分析任务。具体任务可以根据数据集的特点自行决定。 - 提供完整的数据分析过程,包括数据预处理、特征工程、模型训练、模型评估等步骤。 - 提供清晰的数据分析结果,包括数据摘要、模型评估结果等。 3. 输出格式要求所有的打印输出部分(如数据摘要、模型评估结果等)需合并成一个字符串并且保留换行作为结果返回,不用打印输出。 4. 生成的代码用户会通过第三方JS(Pyodide)运行,具体如下: ```javascript const result = pyodide.runPython(pythonCode) // 转换为可序列化的 JavaScript 数据 self.postMessage({ result: result.toString() ? result.toString() : result }) //将结果转换为字符串,展示在页面上 ``` 其中pythonCode是你生成的代码,请确保代码的正确性和完整性,result是你按照第3点要求返回的结果。 error_analysis_content: 请你帮我分析一下这段报错信息,给出详细的错误分析和解决方案,使用中文回答 system_analysis_content: 请你帮我分析一下系统运行状态,只需要输出展示给用户的部分,使用中文回答
-
- 搭建 xxl-job
-
datalinkx-job/src/main/resources/application.yml
xxl: job: accessToken: admin: addresses: http://127.0.0.1:8080/xxl-job-admin # xxl-job 管理端服务地址 executor: address: '' appname: datalinkx ip: '' logpath: log/jobhandler logretentiondays: 30 port: 9999
-
datalinkx-server/src/main/resources/application.yml
xxl-job: username: admin password: 123456 ## 执行器端口,与 datalinkx-job 配置文件中 xxl.job.executor.port 相同 executor-port: 9999 exec-handler: dataTransJobHandler executor-route-strategy: FIRST misfire-strategy: DO_NOTHING executor-blockStrategy: SERIAL_EXECUTION client: url: http://127.0.0.1:8080 # xxl-job 服务地址 logging: true
-
搭建 flink 1.10.3
-
进入到
datalinkx/flinkx目录下并且清空datalinkx/flinkx/lib下的文件(如果存在),执行打包命令。mvn clean install -U '-Dmaven.test.skip=true' '-Dcheckstyle.skip=true'
编译过程中出现依赖不存在问题,先执行
bin目录下install_jars脚本,如果还存在依赖问题,检查配置的maven环境是否可用,是否修改了项目pom文件。打包后请检查目录datalinkx/flinkx/flinkx-launcher下是否存在com.dtstack.flinkx.launcher.Launcher类。 -
修改datalinkx/flinkx/flinkconf/flink-conf.yaml
# Web 界面监听地址 rest.address: 0.0.0.0 # Web 界面监听端口 #rest.bind-port: 8888 # 注释掉 # JobManager 的 IP 地址,flink部署地址按需修改 jobmanager.rpc.address: localhost # JobManager 的 端口 ,flink服务端口按需修改 rest.port: 8081
使用node 18版本,提前安装好yarn,没有安装的执行npm install -g yarn命令安装。
进入项目根目录,打开cmd终端进入front-ui目录,安装前端依赖,并运行。
PS D:\Data\datalinkx> cd .\front-ui\
PS D:\Data\datalinkx\front-ui> yarn install
PS D:\Data\datalinkx\front-ui> yarn run serve核心功能 :在不同的异构数据源中进行数据同步,对同步任务进行管理和维护
意义:只要公司规模较大,部门与部门之间有数据协作都应该有类似DatalinkX的项目,比如爬虫组的同事爬下来数据要定时同步到数仓组负责的库下。同步服务会集中管理同步任务,收拢同步日志、提高内部工作效率。
- 简单易用:通过Web页面快速创建数据源、同步任务,操作简单,一分钟上手
- 定时触发:对接xxl-job定时,设置cron表达式触发同步任务
- 配置化任务对接:将数据库信息、任务详情界面化配置
- 高性能同步:使用高性能流式flink计算引擎
- 容器化部署:支持docker部署