postgrest 를 사용할 때 table 의 컬럼이 중간에 변경되었으면, 재시작 해주어야 한다. 이거 몰라서 한참 해맸다.
Category: SQL
-
Primary key
CREATE TABLE t1 (id integer primary key generated always as identity);
-
SNOMED 코드 치환
Athena 에서 SNOMED 코드를 검색하면 편하다. 링크를 타고 다른 것들도 검색해 볼 수 있다. 그런데 검색을 하면 시간이 많이 소요된다. 이럴 경우에는 SNOMED 파일을 받아서 직접 검색을 하면 빠르다. 이렇게 vocabulary 파일을 받아서 DB에 import 할 경우 다음 사항을 고려해야 한다.
- CSV가 아닌 TSV로 파일이 생성된다. 수 많은 콤마가 있는 것을 고려하면 당연한 것이다.
- 겹 따옴표와 홑 따옴표가 모두 사용된다. 이것은 import 과정에서 예외 처리에 영향을 미쳐서 불완전하게 데이터가 들어온다.
concept_name에서 따옴표는 대세에 영향을 주지 않기 때문에 삭제한 후 import 시키도록 한다.
sed -i "s/\"//g" CONCEPT.csv sed -i "s/\'//g" CONCEPT.csv
-
세션 종료
PostgreSQL에서 일정 시간 사용하지 않는 세션을 종료하는 방법은 다음과 같다고 한다. 주기적으로 실행시키기 위해서는 해당 명령을 실행할 수 있도록 cron 에 등록시켜서 하면 된다.
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state = 'idle' AND state_change < now() - '15min'::interval;