美文网首页
构建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