图灵数据分析
# 图灵数据分析
# Neo4j简介
图形数据库(Graph Database)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和边都可以设置属性,顶点也称作节点,边也称作关系,每个节点和关系都可以由一个或多个属性。Neo4j创建的图是用顶点和边构建一个有向图,其查询语言cypher已经成为事实上的标准。
关系型数据库只对单个Join操作进行优化查询,而多重Join操作查询的性能显著下降。图形数据库适合查询关系数据,由于图形遍历的局部性,不管图形中由多少节点和关系,根据遍历规则,Neo4j只访问与遍历相关的节点,不受到总数据集大小的影响,从而保持期待的性能;相应地,遍历的节点越多,遍历速度越慢,但是变慢是线性的,这使得图形数据库不适合做海量数据统计分析。对于存在大量丰富关系的数据,遍历的性能不受图形数据量大小的影响,这使得Neo4j成为解决图形问题的理想数据库。
Neo4j的用途非常广泛,可用于检索、推荐、可视化多个用途。
# Neo4j安装
可参考示例:https://neo4j.com/docs/operations-manual/5/installation/windows/ (opens new window)
Neo4j运行环境基于java,所以需要先安装java运行环境。
Neo4j各版本与java对照关系表格,推荐安装Neo4j 5.x的版本:
Neo4j Version | JVM compliancy |
---|---|
3.x | Java SE 8 Platform Specification |
4.x | Java SE 11 Platform Specification |
5.x | Java SE 17 Platform Specification |
到https://adoptium.net/ (opens new window)下载jdk安装包,执行安装。 安装完成后注意要查看环境变量是否正确设置:


到https://neo4j.com/deployment-center/ (opens new window) 下载 neo4j 社区版,解压后放置到想要放置的目录下。 仿照java环境设置,设置neo4j的环境变量:添加NEO4J_HOME变量,变量值为解压后的路径。

Path变量中新建加入 %NEO4J_HOME%\bin

进入powershell界面,输入 neo4j console
显示出现 started 表示启动成功。

打开浏览器,输入网址:http://localhost:7474/browser/ (opens new window) 显示如下图即为安装成功!!
初始账号密码均为neo4j,点击Connect连接数据库。

第一次登录需修改密码(最少8位数),本文修改密码为12345678
# 将Neo4j安装为服务
在控制台界面,按下Ctrl+C停止neo4j的运行,在控制台界面输入以下内容。
neo4j windows-service install
如需要删除服务,请输入以下命令。
neo4j windows-service uninstall
# 设置允许远程连接
修改conf/neo4j.conf
文件,取消server.default_listen_address
选项的注释,可通过重新启动neo4j restart
观察到监听地址变化。

# 安装APOC插件
前往https://github.com/neo4j/apoc/releases (opens new window) 下载与neo4j版本对应的插件apoc-x.xx-core.jar
。放置于 plugins
文件夹中。
同时需要修改neo4j的配置文件。打开neo4j目录下的conf/neo4j.conf
,修改dbms.security.procedures.unrestricted
的选项如下:
dbms.security.procedures.unrestricted=gds.*,apoc.*
重新启动neo4j restart
以使插件生效。
# FastERP2集成
FastWeb 中的菜单项目 图灵数据分析
中的内容是为FastERP2 (opens new window)集成的,如需要使用这部分的功能,请按照下述方式进行修正调整。
请下载FastERP2数据导入工具,下载完成后,将工具主目录中的文件夹与目录放置于neo4j 目录下的import
文件夹中。
修改config.toml
文件,选项说明如下:
[database]
# FastERP2数据库地址
fasterp2_db_host = "127.0.0.1"
# FastERP2数据库端口号
fasterp2_db_port = 1433
# FastERP2数据库用户名
fasterp2_db_username = "sa"
# FastERP2数据库密码
fasterp2_db_password = "123456"
# FastERP2数据库名称
fasterp2_db = "fasterp2"
# FastERP2数据库驱动名称,默认为 SQL Server
fasterp2_driver = "SQL Server"
[neo4j]
# neo4j 数据库的地址连接串
neo4j_uri = "neo4j://localhost:7687"
# neo4j 数据库的登录用户名
neo4j_username = "neo4j"
# neo4j 数据库的登录用户密码
neo4j_password = "12345678"
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
数据导入工具包含两个主程序fasterp2_import.exe
以及 clear_data.exe
。分别用于增量更新以及定时数据清理的功能。
接下来将使用 TaskRunner 设置这两个程序的定时任务,使程序能定时启动执行数据导入与数据更新的操作。
在TaskRunner的自定程序界面创建两个程序,名称分别为 fasterp2_import
与 fasterp2_cleardata
。
分别设置运行的代码如下:
//fasterp2_import
//填写程序所在的位置,注意路径分割符号要使用\进行转义
{
ShellExecute("E:\\Program Files\\neo4j-community\\import\\fasterp2_import.exe","",nil);
}
2
3
4
5
//fasterp2_cleardata
//填写程序所在的位置,注意路径分割符号要使用\进行转义
{
ShellExecute("E:\\Program Files\\neo4j-community\\import\\clear_data.exe","",nil);
}
2
3
4
5
在TaskRunner的自动化作业界面创建两个自动化作业任务。在自动化作业的步骤环节分别添加步骤,示例如下
//呼叫运行fasterp2_import自定程序
{
UGCM.RunScript("fasterp2_import",nil,"");
}
2
3
4
//呼叫运行fasterp2_cleardata自定程序
{
UGCM.RunScript("fasterp2_cleardata",nil,"");
}
2
3
4
分别设置上述执行的时间间隔。按照上述方式设置完成后,可启动自动化作业,导入程序将定时执行数据导入。
FastERP2图灵数据分析模块也需要同步调整,点开各个模块的模块设计页面,打开程序页签,修改开头定义的FastERP2的Node节点数据库名称,以及neo4j API呼叫的地址,之后就可以查看图灵数据分析界面的模块运行效果。


