文章目錄
- mimic數據庫
- 在服務器上安裝mimic
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