JackieMium / my_blog

在 Issues 中建立的个人博客
GNU General Public License v3.0
31 stars 12 forks source link

MIMIC III 数据 + postgreSQL #16

Open JackieMium opened 6 years ago

JackieMium commented 6 years ago

20180620_13-30-29

MIMIC III 数据 + postgreSQL

申请的 MIMIC III 数据库 今天终于通过了,下载发现一堆 csv.gz 大小也是惊人。所以自己一一个用表格怕是不可能了,只能去用他们推荐的数据库管理了。

安装和配置

首先第一步就是用官方提供的 mimin-code 来构建数据库了。官方推荐postgreSQL,那就用这个好了。 Debian 的话安装postgresql倒是没什么,直接sudo apt install postgresql就 KO 了。看了一下版本

➜  ~ psql --version
psql (PostgreSQL) 10.4 (Debian 10.4-2)

还是挺新的。很多基础的东西文档都已经覆盖,但是人懒就是没看,碰到问题查,感觉浪费的时间也不少。

安装完之后默认会创建postgres这个用户,然后我就psql -U postgres 打算登录,结果报错:

psql: FATAL:  Peer authentication failed for user "postgres"

上网查了一下就解决了。解决办法是 编辑/etc/postgresql/10/main/pg_hba.conf文件,将

# Database administrative login by Unix domain socket
local   all             postgres                                peer

peer改成trust,然后systemctl restart postgresql.service 重启下服务重载设置应该就能登录了。确保posgres用户可用之后就能直接用 mimic-code 提供的脚本构建数据库了,由于这个数据很大,构建数据库需要一会儿,可以先坐和放宽。

简单使用

现在只有postgres用户,数据我自己用,我们显然想自己的用户也是 super user 的。所以下面就是给我自己授权了。

首先 psql -U postgres 登录 postgres 用户,然后:

CREATE USER XXX;
ALTER USER XXX SUPERUSER CREATEDB;
\du

就行了。这样我自己也能管理数据库了。

要进入 mimic 数据库,直接psql mimic就行了。

值得注意的是,mimic-code 提供了很多concepts,就是已经定义好的一些疾病和数据提取方法。但是按照 README 里写的直接make concepts并不能直接生成这些数据,我自己就看了Makefile,发现根本就没写concepts的规则,也难怪直接 make 不行。所以需要把mimic-code/buildmimic/postgres/Makefile复制一份到mimic-code/concepts/,然后自己编辑加入concepts规则。具体做法倒很简单,直接把上面的那些规则复制一份然后改动具体调用的sql文件为当前目录下的make-concepts.sql就行了。 这个也不知道是 mimic-code 本来设置如此还是我搞错,但是反正黑猫白猫吧,那些物化视图我倒是都顺利生成了。

最后来看看MIMIC III里的数据的样子:

patients

嗯,很好,数据库建立完毕,剩下的就是怎么用数据库和导入 R 分析的问题了。

BruceLuo33 commented 5 years ago

请问能装在移动硬盘里吗?

JackieMium commented 5 years ago

@BruceLuo33 可以当然是可以的,但是不建议。因为这个你随时可能想看一下都需要连接读取的,硬动硬盘不能保证随时携带,也不能保证连接性稳定,读取速度也比不上本地硬盘。本身数据库只需要 50~60G 空间而已,有移动硬盘的话自己把硬盘空出空间来岂不更好。

BruceLuo33 commented 5 years ago

主要是因为我的电脑只剩下40多个G的容量了哈哈,我再去删点东西,谢谢回复!

BruceLuo33 commented 5 years ago

楼主你好,我想问一下,我将mimic iii数据库导入到了sql之后能删掉之前的csv吗?因为硬盘容量只剩下10来个G了,现在速度非常慢。谢谢!

JackieMium commented 5 years ago

@BruceLuo33 数据库建好了当然可以删

Sent from my ONEPLUS A3010 using FastHub

BruceLuo33 commented 5 years ago

@JackieMium 好的谢谢!