配置 Apache Arrow 服务器
GDS 支持通过 Apache Arrow Flight 导入图和导出属性。本章专门介绍如何将 Arrow Flight 服务器配置为 Neo4j 和 GDS 安装的一部分。有关将 Arrow Flight 与 Arrow 客户端一起使用,请参阅我们关于 投影图 和 流式传输属性 的文档。
使用 Arrow 最简单的方法是通过我们的 Neo4j 图数据科学客户端,如果可用,它默认使用 Arrow。
Arrow 与 GDS 企业版捆绑在一起,必须 安装。
安装
在 Neo4j AuraDS 上,Arrow 默认安装。 |
在独立的 Neo4j 服务器上,需要显式启用和配置 Arrow。Flight 服务器默认处于禁用状态,要启用它,请将以下内容添加到 $NEO4J_HOME/conf/neo4j.conf
文件中
gds.arrow.enabled=true
以下其他设置可用
名称 | 默认值 | 可选 | 描述 |
---|---|---|---|
|
|
是 |
此设置指定 Arrow Flight 服务器如何监听传入连接。它由两部分组成;一个 IP 地址(例如 127.0.0.1 或 0.0.0.0)和一个端口号(例如 7687),并以 <ip-address>:<port-number> 的格式表示。 |
|
|
是 |
此设置指定客户端应用于连接到 Arrow Flight 服务器的地址。如果服务器运行在将广告地址转发到内部地址的代理后面,这将很有用。广告地址由两部分组成;一个地址(完全限定域名、主机名或 IP 地址)和一个端口号(例如 8491),并以 <address>:<port-number> 的格式表示。 |
|
|
是 |
在中止导入过程之前,等待下一个命令的最长时间(以分钟为单位)。 |
|
|
是 |
用于箭头属性导出的批处理大小。 |
请注意,任何对配置的更改都需要数据库重启。
您可以运行 CALL gds.debug.arrow()
来检查 Arrow 是否可用。
身份验证
客户端到 Arrow Flight 服务器的连接使用 Neo4j 原生身份验证提供程序 进行身份验证。任何已认证的用户都可以执行所有可用的 Arrow 操作,即图投影和属性流式传输。没有专门的角色需要配置。
要启用身份验证,请使用以下 DBMS 设置
dbms.security.auth_enabled=true
加密
客户端和服务器之间的通信可以选择加密。Arrow Flight 服务器正在重新使用 Neo4j 原生 SSL 框架。在 配置范围 方面,Arrow 服务器支持 https
和 bolt
。如果配置了这两个范围,则 Arrow 服务器优先考虑 https
范围。
要为 https
启用加密,请使用以下 DBMS 设置
dbms.ssl.policy.https.enabled=true dbms.ssl.policy.https.private_key=private.key dbms.ssl.policy.https.public_certificate=public.crt
目前无法使用私钥受密码保护的证书。此类证书可用于保护 Neo4j。对于 Arrow Flight,仅接受无密码私钥的证书。 |
即使为 Neo4j 配置了 Flight 服务器加密,也可以将其停用。要禁用加密,请使用以下设置
gds.arrow.encryption.never=true
该设置只能用于停用 GDS Flight 服务器的加密。它不能用于停用 Neo4j 服务器的加密。如果 Neo4j 服务器未配置加密,则它不能用于为 GDS Flight 服务器激活加密。
监控
要返回有关 GDS Flight 服务器状态的详细信息,GDS 提供了 gds.debug.arrow
过程。
CALL gds.debug.arrow()
YIELD
running: Boolean,
enabled: Boolean,
listenAddress: String,
batchSize: Integer,
abortionTimeout: Integer
名称 | 类型 | 描述 |
---|---|---|
正在运行 |
布尔值 |
如果 Arrow Flight Server 当前正在运行,则为 True。 |
已启用 |
布尔值 |
如果启用了相应的设置,则为 True。 |
版本 |
列表 |
支持的命令版本的列表(例如 |
监听地址 |
字符串 |
Arrow Flight 客户端应连接到的地址(主机和端口)。 |
批处理大小 |
整数 |
用于箭头属性导出的批处理大小。 |
中止超时 |
持续时间 |
在中止导入过程之前等待下一个命令的最长时间。 |
公告监听地址 |
字符串 |
已弃用:与 |
服务器位置 |
字符串 |
已弃用:始终为 |
版本控制
GDS Arrow Flight 服务器公开的所有功能都经过版本控制。这使我们能够更改现有功能、引入新功能或删除已弃用的功能,而不会破坏现有客户端。版本控制方案应用于客户端发送到服务器的命令。命令是 Arrow Flight 操作、描述符和票证的 GDS 特定抽象。
客户端将命令作为 UTF-8 编码的 JSON 文档发送。每个命令都与其他元数据相关联,例如命令的版本。
{ name: "MY_COMMAND", version: "v1", body: { ... } }
唯一的例外是 Flight 操作,其中版本是操作类型的一部分。版本始终位于操作类型的开头,由正斜杠 (/
) 分隔。
Action type: V1/CREATE_GRAPH Action body: { ... }
可以使用 LIST_ACTIONS
端点从 GDS Arrow Flight 服务器请求所有可用的操作。
在 GDS 2.6 之前,命令没有版本控制,因为 GDS Arrow 功能仍处于 alpha 阶段。在 GDS 2.6 中,GDS Arrow 服务器同时支持版本控制和之前的 alpha 命令。alpha 命令被视为已弃用,将在将来的版本中删除。 |