美文网首页
构建Neo4J图数据库(一)将mysql数据导出为csv

构建Neo4J图数据库(一)将mysql数据导出为csv

作者: 菜菜鑫 | 来源:发表于2019-08-02 20:58 被阅读0次

构建上市公司知识图谱

由于我的数据都存储在mysql中,格式较为友好,避免了复杂的知识抽取的过程.
首先,类似于数据库的ER图设计,设计出各个表之间对应的关系,构建出符合知识图谱结构的实体和关系,大概设计一下,类似于下图这样:


知识图谱概念图

接着开始连接mysql数据库,使用python3中的pymysql
安装pymysql: pip3 install pymysql
之后开始编写,直接用csv.writer()写入

import pymysql
import csv
config={
    "host":"*.*.*.*",
    "port": **,
    "user":"**",
    "password":"**",
    "database":"**"
}
def read_mysql_to_csv(sql, file_name):
    # 打开数据库连接
    db = pymysql.connect(**config)
    with open(file_name, 'w', encoding='utf-8') as f:
        head = []
        write = csv.writer(f)
        cursor = db.cursor()
        print('读取数据库表中,请稍后.')
        count = cursor.execute(sql)
        for index in cursor.description:
            head.append(index[0])
        head = tuple(head)
        print('读取到总数据行数为:',count)
        write.writerow(head)
        data = cursor.fetchall()
        for row in data:
            write.writerow(row)
    # 关闭数据库连接
    db.close()

数据库中的每张表都应具有唯一id用于关系间的对应
分别导出实体和关系至csv文件中,生成'机构.csv','人物.csv','机构-人物.csv'等文件,表结构如下图所示,其中标题字段的含义我们将在之后的几篇文章中进行解释

人物.csv 机构.csv 机构-人物.csv

下一篇,我们将安装Neo4J,并将生成的csv文件上传至Neo4J数据库中

\color{red}{(涉及公司机密,完整代码和数据无法提供,请见谅,转载请注明来源)}

相关文章

网友评论

      本文标题:构建Neo4J图数据库(一)将mysql数据导出为csv

      本文链接:https://www.haomeiwen.com/subject/qfvrdctx.html