목록PostgreSQL/파티셔닝 (5)
DB & AWS Knowledge
해당 페이지에서는 PostgreSQL 내 파티셔닝이 된 특정 테이블에 autovacuum_enabled 등의 파라미터를 설정 시, 유의 해야 할 사항 및 관련 설정방법을 다룬다. 또한 이 게시글은 이전 게시글 및 관련 URL 과 연관되어 있다. [1] 2021.03.07 - [PostgreSQL/파티셔닝] - PostgreSQL 및 PPAS 간의 생성 차이 [2] https://dbtut.com/index.php/2019/02/03/postgresql-psql-gexec/ PostgreSQL 에서의 파티셔닝 테이블 구조 PostgreSQL 은 다른 DB engine 과 다르게 독립적인 테이블들을 파티셔닝 관계로 묶어서 사용하는 logic 을 가지고 있다. 그래서 이러한 구조를 공식 Document 에서는..
PPAS (EDB PAS) 는 ORACLE 의 syntax 와 호환이 되고, 파티셔닝 테이블 생성이 그 중 대표적인 예이다. 우선 파티션 테이블을 생성하려는 대상의 테이블을 조회 해 본다. 그 후, ORACLE 과 같이 add partition 으로 필요한 파티션 테이블을 구성한다. 단, 각 테이블의 유저 소유권까지는 자동 부여가 되지 않기에 각 테이블 별로 테이블 사용 유저의 소유로 권한을 부여한다. 생성 및 소유권 부여 후, 생성 된 테이블 중 하나를 열어보면 PostgreSQL 과는 다르게 PK, check 조건 및 inherits 까지 생성된 것을 볼 수 있다. (단 PK 이외의 index [local index] 는 직접 개별적으로 구성 해 줘야 한다.) 또한 해당 테이블 대상으로 관련된 트리거..
해당 항목에 필자가 실제 운영 서비스 내 생성한 파티셔닝 테이블 사례를 개시한다. 먼저 테이블 생성을 수행한다. 우선 생성 하려는 대상 테이블을 확인한다. (메타데이터 내 조회 쿼리참조) 그 후, 해당 서비스에서 기존에 파티션 테이블을 구성했던 테이블들을 정리하여 기존에 어디까지 파티션테이블이 생성되었는지 확인 후, 신규 생성 기간을 어디부터 시작할 지 확인 한다. Postgresql 에서는 테이블 생성, 인덱스 구성, 테이블들에 대한 권한 부여 순서대로 작업을 진행한다. 혹은 해당 내용들을 아래와 같이 스크립트로 생성 후, infile 개념으로 수행해도 된다. ----------------202102------------------------ -- Table: voc_202102 -- DROP TABL..
PostgreSQL 의 파티션 테이블은 타 RDBMS 와는 이질적으로 부모-자식 간의 특이 테이블 유형을 보인다. 위의 항목 방법으로 테이블을 생성 한 후에는 개별적인 파티션에 데이터가 들어가도록 하기 위해서는 이에 대한 트리거를 아래와 만들어야 한다. (그 전에 개별 테이블들에 인덱스등의 오브젝트들은 미리 설정 해둔다.) (참조: https://www.postgresql.org/docs/9.4/ddl-partitioning.html) 예시 아래와 같이 파티션 테이블 (자식테이블) 을 만든다고 가정하자. CREATE TABLE measurement_y2006m02 ( CHECK ( logdate >= DATE '2006-02-01' AND logdate < DATE '2006-03-01' ) ) INHE..
PostgreSQL 은 10 버전 이전까지는 아래와 같이 INHERITS 와 CHECK 을 통하여 부모 자식 관계과 같은 종속관계 테이블 생성 명령어를 통하여 파티션을 생성한다. PPAS (EDB PAS) 는 ORACLE Syntax 를 통하여 생성 할 수 있다. (출처 : https://postgresql.kr/blog/postgresql_partition_table.html) (예시) 상위 테이블을 만듭니다. CREATE TABLE wwwlog ( seq serial not null, ctime timestamp not null default current_timestamp, node bigint not null, data jsonb not null); 일단 not null과 default를 제외한 ..