如何使用Python和Jupyter笔记本使用Memgraph
#python #jupyter #memgraph #graphdatabase

您可以分析图形的最简单方法之一是创建 python脚本 jupyter笔记本。 Python一直是大多数数据科学家的首选语言,我们知道原因。它努力简单明了!

因此,本着这种简单性的精神,这是一个快速教程,讲述了如何使用 memgraph 和Python进行一些基本网络分析。

一般轮廓是:

  1. 开始MEMGRAPH
  2. 连接到MEMGRAPH
  3. 导入图
  4. 查询数据库
  5. 运行图算法

现在,我将向您展示如何完成此操作的示例。如果更多的是您的风格,您也可以看一下这个Jupyter Notebook

先决条件

对于本教程,您需要安装:

docker之所以使用,是因为memgraph是本机Linux应用程序,如果没有它,就无法在Windows和Macos上安装。即使您正在运行Linux,我也建议使用Docker安装,因为它包含一些其他有用的资源,例如 memgraph Lab

1.启动MEMGRAPH

虽然有几种安装memgraph的方法,但建议使用Docker安装 memgraph Platform 。如果您没有Docker,建议您关注this guide

安装Docker后,您可以通过运行:
来设置MEMGRAPH

docker run -it -p 7687:7687 -p 3000:3000 memgraph/memgraph-platform

此命令将启动下载,并在完成后,运行MEMGRAPH容器。

2.连接到MEMGRAPH

首先,创建一个名为memgraph.py的文件并添加以下代码:

from gqlalchemy import Memgraph


memgraph = Memgraph("127.0.0.1", 7687)

但是,在我们执行此操作之前,我们需要安装 gqlalchemy 软件包。我们将使用gqlalchemy对象图映射器(OGM)连接到memgraph并轻松执行Cypher查询。 GQLalchemy还作为Memgraph的Python驱动程序/客户端。您可以使用:
安装它

pip install gqlalchemy

提示:您可能需要在安装gqlalchemy之前安装cmake。

现在,通过运行脚本来确保所有内容都可以正常工作:

python3 memgraph.py

如果您遇到错误或需要其他帮助,请肯定地在Discord或通过我们的forum上发消息。

3.导入图

让我们确保备忘录是空的,然后再开始使用其他任何东西。
将以下行添加到memgraph.py

memgraph.drop_database()

您将需要下载包含一个简单数据集的this file,称为 Zachary的空手道俱乐部。要将其导入Memgraph,我们首先需要将其复制到Memgraph正在运行的Docker容器中。

通过运行:
找到CONTAINER_ID

docker ps

用以下命令复制文件(别忘了替换CONTAINER_ID):

docker cp karate-club.csv CONTAINER_ID:karate-club.csv

现在,我们可以执行Cypher命令LOAD CSV,该命令用于从CSV文件加载数据:

memgraph.execute("""
    LOAD CSV FROM "/karate-club.csv" NO HEADER AS row
    MERGE (p1:Person {id: row[0]})
    MERGE (p2:Person {id: row[1]})
    MERGE (p1)-[:FRIENDS_WITH]->(p2);
""")

就是进口。运行脚本后,应将MEMGRAPH与数据填充。您可以通过在地址http://localhost:3000的浏览器中打开 memgraph Lab 来确保。要从数据库中检索所有内容,请在 query 选项卡中执行以下查询:

MATCH (n)-[r]-(m) RETURN n, r, m;

提示: Memgraph Lab在http://localhost:3000上运行,如果您使用Docker安装了MEMGRAPH平台。否则,您需要手动进行download and install Memgraph Lab。

4.查询数据库

让我们确保通过检索正确导入数据:

results = memgraph.execute_and_fetch("""
    MATCH (p1:Person)
    RETURN p1
    ORDER BY ToInteger(p1.id) ASC;
""")

for result in results:
    print(result['p1'])

5.运行图形算法

现在,让我们用图表做一些聪明的事情。例如,计算每个节点的Pagerank:

results = memgraph.execute_and_fetch("""
    CALL pagerank.get()
    YIELD node, rank
    RETURN node, rank;
""")

for result in results:
    print("The PageRank of node ", result['node'].properties['id'], ": ", result['rank'])

下一步是什么?

您可以看到,使用Python连接到Memgraph并运行图形算法非常容易。我什至有一个建议,您可以在其中应用这些知识。

Read more Python and graph databases on memgraph.com