Neo4j

重要

旧查询联合文档已停用,可能不会更新。 此内容中提到的配置未经 Databricks 正式认可或测试。 如果 Lakehouse 联邦 支持源数据库,Databricks 建议改用它。

Neo4j 是一个本机图形数据库,它利用数据关系作为一流实体。 可以使用 neo4j-spark-connector 将 Azure Databricks 群集连接到 Neo4j 群集,该连接器为 RDD、DataFrame 和 GraphFrame 提供 Apache Spark API。 neo4j-spark-connector 使用二进制 Bolt 协议将数据传输至 Neo4j 服务器,并从 Neo4j 服务器传输数据。

本文介绍如何部署和配置 Neo4j,以及如何配置 Azure Databricks 以访问 Neo4j。

Neo4j 部署和配置

可以在各种云提供商上部署 Neo4j。

若要部署 Neo4j,请参阅官方 Neo4j 云部署 指南。 本指南假定 Neo4j 3.2.2

将 Neo4j 密码从默认值更改(第一次访问 Neo4j 时会提示您进行修改),并修改 conf/neo4j.conf 以允许远程连接。

# conf/neo4j.conf

# Bolt connector
dbms.connector.bolt.enabled=true
#dbms.connector.bolt.tls_level=OPTIONAL
dbms.connector.bolt.listen_address=0.0.0.0:7687

# HTTP Connector. There must be exactly one HTTP connector.
dbms.connector.http.enabled=true
#dbms.connector.http.listen_address=0.0.0.0:7474

# HTTPS Connector. There can be zero or one HTTPS connectors.
dbms.connector.https.enabled=true
#dbms.connector.https.listen_address=0.0.0.0:7473

有关详细信息,请参阅 配置 Neo4j 连接器

Azure Databricks 配置

  1. 安装两个库: neo4j-spark-connectorgraphframe 作为 Spark 包。 有关说明,请参阅 指南。

  2. 使用这些 Spark 配置创建群集。

    spark.neo4j.bolt.url bolt://<ip-of-neo4j-instance>:7687
    spark.neo4j.bolt.user <username>
    spark.neo4j.bolt.password <password>
    
  3. 导入库并测试连接。

    import org.neo4j.spark._
    import org.graphframes._
    
    val neo = Neo4j(sc)
    
    // Dummy Cypher query to check connection
    val testConnection = neo.cypher("MATCH (n) RETURN n;").loadRdd[Long]