文章目录
mimic数据库
mimic数据库是目前最大的公开医疗数据库,可以做医疗领域的数据挖掘和机器学习。
看这篇之前你需要拿到mimic的csv文件以及四个postgreSQL文件。
四个SQL文件分别是:
postgres_create_tables.sql
postgres_load_data.sql
postgres_add_indexes.sql
postgres_checks.sql
在服务器上安装mimic
服务器
这里使用的服务器系统是CentOS6.几。
(重要)官方指导
Install MIMIC(UNIX,MAC) 结合官方tutorials配合这篇来安装mimic
步骤
1.在服务器上装PostgreSQL数据库
(推荐)使用二进制安装
*用yum命令装数据库遇到的坑较多,推荐使用二进制安装(参考:Linux系统二进制安装PostgreSQL)
yum命令安装:
官方网站:postgreSQL download
在这里选择系统、版本(我选择的版本是12)等等,我这里使用yum命令安装,我这里的命令是:
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-6-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql12
service postgresql-12 initdb
chkconfig postgresql-12 on
service postgresql-12 start
坑1-报错"Couldn’t resolve host ‘apt.sw.be’"
运行以下命令后重试
cd /etc/yum.repos.d/
mv rpmforge.repo rpmforge.repo.bak
yum clean all
yum install
坑2-报错[Errno 14] problem making ssl connection
参考
this
这篇
这一篇
基本思路是缺少SSL证书,先禁用相关仓库、安装证书、再启用
参考命令
cd /etc/yum.repos.d/
vi /etc/yum.repos.d/pgdg-redhat-all.repo //找到enabled参数选项,改为0,即把这个仓库禁用掉,等安装完证书再改为1
// 安装证书
yum install ca-certificates
// 更新证书
yum update ca-certificates
坑3-开启远程访问和信任链接
改配置文件
vi /var/lib/pgsql/12/data/pg_hba.conf
# Accept from anywhere
host all all 0.0.0.0/0 md5
# Accept from trusted subnet
host all all 192.168.18.0/24 md5
vi /var/lib/pgsql/12/data/postgresql.conf
往下拉
listen_addresses = '*' // 所有用户,也可指定为唯一IP
*坑4-迁移数据库data路径
rpm是默认安装到系统盘的。我们都知道,数据库系统的数据通常都比较大,所以这里需要把数据库的data做一下迁移,迁移到数据盘(/home)。
参考:postgresql 数据库路径迁移1
参考:postgresql 数据库路径迁移2
默认的数据库路径是/var/lib/pgsql/版本号/data
新建一个路径放数据如/home/pgdata 并赋权
sudo mkdir /home/pgdata
sudo chown -R postgres:postgres /home/pgdata
sudo chmod 700 /home/pgdata
拷贝,先停服务
// (停服务)有的是这个命令
sudo systemctl stop postgresql
// (停服务)我的是这个命令
service postgresql-12 stop
sudo su - postgres
// 把数据复制过去
cp -rf /var/lib/pgsql/版本号/data/* /home/pgdata
修改pgsql的启动脚本
vi /etc/init.d/postgresql-12
修改PGDATA=/home/pgdata
重启服务
service postgresql-12 start
查看PG的数据库目录
su - postgres
psql
show data_directory
这里就应该是/home/pgdata了
然后我使用的是默认用户postgres、建立mimic数据库、建mimiciii Schema
ALTER USER postgres WITH PASSWORD 'postgres';// 修改默认用户postgres密码
// 建数据库
DROP DATABASE IF EXISTS mimic;
CREATE DATABASE mimic OWNER postgres;
// 建Schema
\c mimic;
CREATE SCHEMA mimiciii;
2、把mimic所需要的csv及SQL文件都放在数据盘,用命令打开到放sql的目录下,分别执行官方的四个SQL文件。
以下命令行都需要在服务器terminal运行,可以通过ssh远程连接。(这里本来以为Navicat可以执行命令行,试了后发现不行,Navicat只可以用来执行SQL语句)
这里有个坑~执行命令行需要稳定的ssh连接,如果使用ssh root@ip,一段时间没有操作的话就会broken,所以建议使用
ssh -o ServerAliveInterval=60 root@ip
打开相应的SQL目录命令:
cd /home/common/mimic_data/PostgreSQL_scripts
然后在此执行-createTable,这一步很快
psql 'dbname=mimic user=postgres options=--search_path=mimiciii' -f postgres_create_tables.sql
然后loadData,超级慢,怀疑人生的慢。。。因为有events表有多个子表,有三亿多行。这里一定要保持稳定的连接。至少需要六个小时吧
psql 'dbname=mimic user=postgres options=--search_path=mimiciii' -f postgres_load_data.sql -v mimic_data_dir="/home/common/mimic_data/TEMP/"
接下来加索引,挺快的
psql 'dbname=mimic user=postgres options=--search_path=mimiciii' -f postgres_add_indexes.sql
最后是验证,这一步也是挺慢的,耐心等待哈
psql 'dbname=mimic user=postgres options=--search_path=mimiciii' -f postgres_checks.sql
我们最终会得到这样一个结果,都是PASSED则说明安装成功,如果有FAILED就再次load data,指导check通过
撒花✿✿ヽ(°▽°)ノ✿
安装成功~
进入psql看看有哪些表吧
psql 'dbname=mimic user=postgres options=--search_path=mimiciii'
或者su - postgres
出来 -bash-4.1$
psql
\c mimic
\d
执行SQL验证下~
select count(subject_id) from patients;
3.(重要)请创建一个新的数据库用户,让它只可以查数据,不能改或者加数据
附上相应的命令哈,分别执行
CREATE USER mimicuser WITH PASSWORD ‘mimic’;
grant select on all tables in schema mimiciii to mimicuser;
grant usage on schema mimiciii to mimicuser;
grant connect on database mimic to mimicuser;
// 执行以下命令进入验证
psql 'dbname=mimic user=mimicuser options=--search_path=mimiciii'
4.用Navicat premium远程连接数据库
用Navicat premium新建PostgreSQL连接,用SSH连接,填入主机ip、用户名、密码等
然后在常规tab中依次填入连接名等等,点击确定即可。
参考
How To Install PostgreSQL 12 on CentOS 7 / CentOS 8
https://github.com/MIT-LCP/mimic-code/issues/296
centos7 安装最新版postgresql10