본문 바로가기

Database/Greenplum

(15)
[Greenplum] PXF 6.1.0 설치방법 PXF를 설치/사용하려면 JAVA 1.8 또는 JAVA 11이 설치되어 있어야 하고 smdw 노드를 제외한 모든 노드에 동일한 설치환경이 구성되어 있어야 한다. 해당 포스팅은 JAVA 1.8이 이미 설치된 것으로 간주하고 PXF 설치방법을 작성하였다. Greenplum을 설치하면 폴더 내 기본 pxf 가 설치되어 있는데 기본pxf는 사용하지 않고 최신버전 pxf rpm 파일을 다운받아 설치하자.(기본으로 설치되어있는 pxf는 기동이 잘 되지 않는다.) 설치환경 RedHat 7.5 Greenplum 6.12 JAVA 1.8 1. PXF RPM 설치 pxf-gp6-6.1.0-2.el7.x86_64.rpm 파일을 다운받아 /root/ 폴더에 업로드 후 진행 [root@sdw1 ~]# rpm -ivh pxf-g..
[Greenplum] ilike 를 이용하여 대소문자 구분없이 조회하기 환경정보 Greenplum 6.12(Postgresql 9.4 기반) 사전준비 drop table if exists public.test; create table public.test( no serial primary key , title varchar(300) not null , memo text null , create_dt timestamp default current_timestamp ) distributed by (no); insert into public.test (title) values ('abcdeFg'),('Ef'); select * from public.test; like 구문을 이용하여 '%ef%' 를 조회하면 데이터가 조회되지 않는다. 하지만 ilike를 이용하면 데이터가 조회되는..
[Greenplum] DBeaver 접속시 master-only utility mode FATAL 에러발생 Greenplum 을 접속하려고 했으나 master-only utility mode 라고 하면서 접속불가능한 상황발생 FATAL: System was started in master-only utility mode - only utility mode connections are allowed 에러원인은 Greenplum 을 Master 노드에서만 접속이 가능한 master only mode 로 시작을 하여 접속이 안되는 것이다. master 노드 - psql 로 접속하여도 DBeaver와 같은 메세지가 표시되면서 접속이 안된다. [gpadmin@mdw ~]$ psql -d postgres psql: FATAL: System was started in master-only utility mode - onl..
[Greenplum] 6.12.0 버전에서 PANIC 상황을 발생시키는 방법 Greenplum 6.12.0 버전에서 PANIC 상황을 발생시키는 방법 실제 운영 사이트에서 PANIC을 발생시키는 것은 말도 안되는 상황이지만 개발/테스트 환경에서는 여러가지 이유로 PANIC상황을 발생시키는 이유는 다양하다. PANIC상황을 발생시키는 이유 Pglog 에 PANIC 로그가 어떻게 남는지 확인 분석을 위한 코어덤프 파일이 생성되는지 테스트 장애환경발생시 대응방법 습득 실행환경 RedHat 7.5 Greenplum 6.12.0 Greenplum 6.14.0 에서 해결된 이슈(Resolved Issues) 30974를 참고하여 PANIC을 발생시켜보자. URL : https://gpdb.docs.pivotal.io/6-14/relnotes/gpdb-614-release-notes.html..
RefCursor를 이용하여 Multiple Results(다중 결과 데이터) Function 개발 Greenplum 또는 Postgresql 이용하여 Function 을 개발하다 보면 하나의 Function 을 실행했을때 다중 결과 데이터를 조회하고 싶을때 사용하는 것이 RefCursor 라는 기능이다. RefCursor 는 꼭 다중 결과 데이터를 조회할때만 사용하는 것이 아니라 동적쿼리를 만들어서 실행할 때도 사용하기도 한다. return query 를 사용하거나 새로운 DataType을 생성하여 return 형식을 고정하는 Function 은 동적쿼리를 생성하여 실행할 수 가 없기때문에 꼭 RefCursor를 이용한 Function 을 개발하여야 한다. Postgresql 9.4 - Cursor : https://www.postgresql.org/docs/9.4/plpgsql-cursors.htm..
[Greenplum] Function 개발 및 디버깅을 위한 RAISE 로깅 사용방법 Greenplum Function 을 개발하다보면 실행이력/에러내역등 로그를 남겨 확인해야 할 상황이 있을 것이다. 이럴때 사용하는 것이 RAISE 구문이며 DBeaver Tool을 사용하면 Output 창에 로그내용을 표시할 수 있어 Function 개발/디버깅이 용이하다. 그리고 리눅스 CLI 환경에서 psql 을 이용하여 Function 을 실행하면 표준출력으로 RAISE 구문의 내용이 표시되기 때문에 터미널 환경에서로 상황을 파악할 있다. (물론 Function 내에서 개발을 정상적으로 하였을때 상황이다.) 로그 레벨 정의 및 구문 참조 : https://www.postgresql.org/docs/9.4/plpgsql-errors-and-messages.html 0. 환경정보 Greenplum 6..
Greenplum 테이블의 분산키를 변경하는 방법 Greenplum의 분산키를 적용한 테이블을 운영하다 보면 예상과 달리 분산도가 안좋게 데이터가 쌓이고 있는 경우가 발생한다. Greenplum은 노드의 인스턴스들의 데이터가 균등하여야 성능을 최대치로 활용할 수 있도록 설계되어 있기 때문에 분산키를 재조정하여 세그먼트 인스턴스에 데이터를 골고루 분배하도록 하자. 0. 분산도 확인 -- gp_segment_id 로 확인 select gp_segment_id , count(*) as cnt from 스키마.테이블 group by gp_segment_id order by gp_segment_id -- 노드 hostname 으로 확인 select b.hostname , count(*) as cnt from 스키마.테이블 a , pg_catalog.gp_segm..
Greenplum ETL도구 소개 Greenplum 공식사이트에서 ETL 도구를 소개한 사항을 정리해 보았다. greenplum.org/greenplum-etl/ Introduction to Greenplum ETL tool – Overview Why ETL is important for Greenplum As a data warehouse product of future, Greenplum is able to process huge set of data which is usually in petabyte level, but Greenplum can’t generate such number … greenplum.org 1. pg_dump Postgresql 의 공식 백업 솔루션이며 일반 파일, 압축 파일, 사용자 정의 형식으로 dump ..