OpenAlex数据快照下载及导入数据库
下载工具及安装
- 下载工具为 Amazon Web Services Command Line Interface (AWS CLI)。
- 工具下载地址:https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
aws --version
在命令行内验证后显示版本即为安装成功。
快照下载
aws s3 sync "s3://openalex" "openalex-snapshot" --no-sign-request
- 在命令行内运行上述命令即可开始下载,其中
"s3://openalex"
为下载文件内容,这里是下载了s3中的整个openalex文件夹,将文件保存至"openalex-snapshot"
文件夹下,这里可以替换为指定的绝对路径。 - openalex文件夹总计大约340G大小(查询时间为2023/12/5),下载前可以使用
aws s3 ls --summarize --human-readable --no-sign-request --recursive "s3://openalex/"
命令在命令行内查看当前快照大小及文件。 - 注意:为确保一次性下载完毕,请确保下载时的网络环境,如果中断,最简单的方法就是将已下载的删除并重新下载,如果剩余少部分文件,可以手动修改
"s3://openalex"
路径进行选择下载。
导入至数据库
- 本文使用了postgresql数据库(曾尝试使用SQL server但是官方并没有给出建表等需要的sql,在尝试后屡次因为字段问题导致导入失败,遂选择pqsql,如果只能使用指定的某个数据库,则可以先导入pqsql,再从pqsql中使用navicat等工具迁移到指定数据库。)
创建架构及表
- 官方提供了完整的sql可直接使用,不过注意部分语句被注释掉了,如需要可以取消注释。
- sql地址:https://github.com/ourresearch/openalex-documentation-scripts/blob/main/openalex-pg-schema.sql
JSON转CSV
- 同样官方提供了相关的python代码自动将下载的文件转换为xxx.csv.gz文件
- 文件地址:https://github.com/ourresearch/openalex-documentation-scripts/blob/main/flatten-openalex-jsonl.py
- 注:代码第7行为JSON文件存放路径,第8行为转换出的CSV文件保存路径。
- 注:这一过程可能较为缓慢(可能会花费几个小时甚至更久)。
导入数据库
- 受限于对pqsql的了解,官方提供的导入方法没能使用成功,于是选择了一种较为直接的方法。
- 手动将转换出的.csv.gz文件解压为csv文件,然后使用navicat的导入向导即可简单的导入,但是解压及导入的时间会花费很久(几十个小时或者更久),同时解压出的文件也很大,最好准备至少1.8T的空间用于存放转换后的文件及解压后的文件及数据库文件。
完成
- 至此操作全部完成。(因写下此内容时还在导入数据,所以完全导入后的情况及后续快照更新会在之后补上)