使用 Neo4j BI 连接器

在本教程中,我们使用 Neo4j BI 连接器从 Aura 实例读取图数据,使用一些常见的SQL 客户端BI 工具

本教程包含有关第三方软件使用说明,这些软件可能随时发生超出我们控制范围的变化。如有疑问,请参阅第三方软件文档。

下载连接器

下载中心下载连接器。根据将要使用的 SQL 客户端或 BI 工具,您将需要 JDBC 或 ODBC 连接器;请参阅使用示例以获取更多详细信息。

准备示例数据

在使用任何列出的工具尝试连接器之前,需要在 Aura 上加载一些数据。这可以通过在 Neo4j 浏览器中运行以下 Cypher 查询来实现

CREATE
  (john:Person {name: "John", surname: "Doe", age: 42}),
  (jane:Person {name: "Jane", surname: "Doe", age: 40}),
  (john)-[:KNOWS]->(jane)

使用 BI 工具

常用的 BI 工具包括Tableau(它使用 JDBC 驱动程序)和Power BI(它使用 ODBC 驱动程序)。

使用 JDBC 驱动程序连接时,必须将neo4j+s URI 方案更改为neo4j,并将SSL=true参数添加到 URL 中。

Tableau

此示例需要Tableau Desktop

有关如何添加 JDBC 数据库的更多信息,请参阅Tableau 文档

下载中心下载 JDBC Neo4j BI 连接器后

  1. 关闭任何正在运行的 Tableau Desktop 实例。

  2. 将 Neo4j 驱动程序复制到相应的 Tableau 驱动程序文件夹(例如,Windows 上的C:\Program Files\Tableau\Drivers或 macOS 上的~/Library/Tableau/Drivers)。

  3. 启动 Tableau 并搜索“其他数据库 (JDBC)”选项。

  4. 将 Aura URL 插入为jdbc:neo4j://xxxxxxxx.databases.neo4j.io?SSL=true,将 SQL 方言保留为SQL92,并填写相关凭据。

如果连接失败并出现“通用 JDBC 连接错误”,您可以执行以下操作之一

  • ssl.com下载SSL.com CA 根证书,并按照Tableau 文档中的说明进行安装,然后重新启动 Tableau 并重复上述步骤(推荐选项)。

  • &sslTrustStrategy=TRUST_ALL_CERTIFICATES添加到连接字符串(在SSL=true之后),然后尝试再次连接。此选项需要谨慎使用,不应在生产环境中使用

建立连接后,您可以选择neo4j数据库和Node模式以查找Person表。然后,您可以浏览该表以查找示例数据。

Power BI

此示例需要 Microsoft Windows 和Power BI Desktop

有关如何添加 ODBC 数据库的更多信息,请参阅Power BI 文档

下载中心下载并安装 ODBC Neo4j BI 连接器后

  1. 打开 Power BI Desktop。

  2. 在“从其他来源获取数据”面板中搜索“ODBC”。

  3. 在“DSN 下拉”菜单中选择“Simba Neo4j”。

  4. 在“高级选项”部分中插入连接字符串Host=xxxxxxxx.databases.neo4j.io;SSL=1

  5. 插入您的用户名和密码。

连接后,在“导航器”窗口中依次打开ODBCneo4jNodePerson以查看表的预览。

使用命令行 SQL 客户端

为了运行 SQL 查询,我们需要一个可以使用自定义驱动程序的 SQL 客户端。常用的基于 JDBC 的命令行 SQL 客户端包括sqllinejdbcsql

使用 JDBC 驱动程序连接时,必须将neo4j+s URI 方案更改为neo4j,并将SSL=true参数添加到 URL 中。

sqlline

sqlline是一个命令行工具,用于通过 JDBC 向关系数据库发出 SQL 查询。要克隆和构建它,请运行以下命令

$ git clone https://github.com/julianhyde/sqlline
$ cd sqlline
$ ./mvnw package

现在我们需要使 BI 连接器驱动程序可供sqllite使用。这可以通过将下载的JDBC BI 连接器中的Neo4jJDBC42.jar文件提取到sqlline/target文件夹中来完成。

现在可以按如下方式运行sqlline客户端

$ ./bin/sqlline -d com.simba.neo4j.neo4j.jdbc42.Driver

从客户端提示符,可以通过在提示时提供用户名和密码来连接到 Aura 实例

sqlline> !connect jdbc:neo4j://xxxxxxxx.databases.neo4j.io?SSL=true

建立连接后,可以使用!tables命令获取表列表

jdbc:neo4j://xxxxxxxx.databases.neo4j.io> !tables
+-----------+--------------+---------------------+------------+---------+----------+------------+-----------+--------+
| TABLE_CAT | TABLE_SCHEM  |     TABLE_NAME      | TABLE_TYPE | REMARKS | TYPE_CAT | TYPE_SCHEM | TYPE_NAME | SELF_R |
+-----------+--------------+---------------------+------------+---------+----------+------------+-----------+--------+
| neo4j     | Node         | Person              | TABLE      |         |          |            |           |        |
| neo4j     | Relationship | Person_KNOWS_Person | TABLE      |         |          |            |           |        |
+-----------+--------------+---------------------+------------+---------+----------+------------+-----------+--------+

也可以运行 SQL 查询

jdbc:neo4j://xxxxxxxx.databases.neo4j.io> SELECT * FROM Person;
+----------+-----+------+---------+
| _NodeId_ | age | name | surname |
+----------+-----+------+---------+
| 0        | 42  | John | Doe     |
| 1        | 40  | Jane | Doe     |
+----------+-----+------+---------+

jdbcsql

jdbcsql是一个命令行工具,可用于通过 JDBC 驱动程序连接到 DBMS。

SourceForge下载jdbcsql-1.0.zip文件后,将其解压缩到jdbcsql文件夹中;然后,将下载的JDBC BI 连接器中的Neo4jJDBC42.jar文件复制到jdbcsql中,并进行以下更改

  1. 将以下行添加到JDBCConfig.properties

    # neo4j settings
    neo4j_driver = com.simba.neo4j.neo4j.jdbc42.Driver
    neo4j_url = jdbc:neo4j://host?SSL=true
  2. META-INF/MANIFEST.MF中的Rsrc-Class-Path行中添加Neo4jJDBC42.jar

现在运行以下命令(将xxxxxxxx.databases.neo4j.io替换为 Aura 连接 URI,将yyyyyyyy替换为实际密码)

$ java org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader -m neo4j -h xxxxxxxx.databases.neo4j.io -d neo4j -U neo4j -P yyyyyyyy 'SELECT * FROM Person'

查询结果

"_NodeId_"	age	name	surname
0	42	John	Doe
1	40	Jane	Doe