IT 기술/Database 61

PostgreSQL과 Kairos dbms간 ETL 작업 중에 겪은 황당한 일

이번에 ETL 작업을 하면서 겪은 당황스런 일을 적어두려합니다. 이번 작업은 아래에 설명할 두가지이며, 작업 환경은 다음과 같습니다. 세대의 장비는 모두 같은 건물 안에 있습니다. 멀리 넷트웍을 타고 전송되는 상황은 아닙니다. ETL tool : GeoKettle DBMS : PostgreSQL 9.x, Kairos 5.x 1. PC(1 cpu)에 설치된 PostgreSQL DB에서 데이타를 추출하여 서버(4 cpu)상의 PostgreSQL DB에 전송하는 작업. 2. 서버(4 cpu)상의 PostgreSQL DB에서 데이타를 추출하여 다른 서버(4 cpu)상의 Kairos DB에 데이타를 전송하는 작업. 1번 작업은 데이타 원본이 윈도우가 설치된 PC상에 있어서인지 오래 걸렸습니다. 더군다나 테이블끼리..

IT 기술/Database 2012.09.06

지리(공간)정보를 ETL로 다룰때 GeoKettle

그동안 오픈소스 ETL툴인 Pentaho kettle을 업무에 도입하기 위해 그리고 개인적으로 공부를 해왔었는데, 큰 문제를 만나게 되었습니다. 바로 지리공간정보를 다루게 되니... 데이터형 문제가 발생하더군요. 그래서 구글님께 물어봤더니 답을 주시더군요. GeoKettle입니다. www.spatialytics.org 이 툴은 오픈소스 ETL 툴인 Pentaho Kettle에 지리정보를 다룰 수 있도록 - spatial data type을 인식하도록 플러그인( 이게 맞는지는 아직 확인 중입니다. )이 미리 설정되어 있습니다. PostGIS가 설치된 PostgreSQL에서 테스트 해본 결과 100만건의 geometry형의 data를 전송하는데 별다른 문제는 없었습니다. 160초 가량 걸리더군요. 원본 디비..

IT 기술/Database 2012.08.29

Postgres-XC 개요 - 장단점

Postgres-XC로 시스템을 구축하려고 공부 중입니다. 아직 보기 좋게 정리는 못 했고 우선 간단히 장단점을 적어보려합니다. 회사에서 외부 사이트를 거의 막아놔서 아이폰에서 작성하는거라 글로만 설명하는 점 이해해주시길 바라며... 1. 장점 1.1. Open source라 구축 가능한 인력과 시간, 그리고 장비만 있으면 소프트웨어 라이선스 비용은 들지 않는다. 1.2. 읽기 및 쓰기 부하 분산이 가능하다. 1.3. Oracle RAC처럼 어플리케이션에서는 읽고 쓰는것을 구분하여 디비 접속을 하지 않아도 된다. 전체 노드가 읽기 및 쓰기가 가능하다. 2. 단점 2.1. 1.0 버전이 출시된지 몇달되지 않아서 구축 사례와 한글로 된 자료 등이 거의 없다. 2.2. PostgreSQL 9.1.x 버전에서만..

IT 기술/Database 2012.08.10

streaming replication과 pgpool-II 구성의 장점

Postgres-XC에 대해서 검색하다가 찾은 글이다. PostgreSQL의 streaming replication과 pgpool-II를 같이 쓰면 어플리케이션에서 접속 정보 변경없이 읽기, 쓰기를 구분하고 부하분산도 가능하다고 한다. 아... 이것도 꽤 쓸만한 구성인것 같은데... 원문 링크 : http://avicom.tistory.com/m/post/view/id/94 아래는 원문의 일부이다. 전체 글은 위의 링크를 클릭하면 볼 수 있다. 별도의 replication 관리 DB가 필요없고 복제 대상 테이블에 trigger를 설치할 필요가 없다. 아카이브 로그 파일을 읽을 필요가 없다 warm standby의 단점이었던 recovery중인 slave db에 대한 엑세스 제한이 없다. multi-sla..

IT 기술/Database 2012.06.25

DA#에서 AR repository 사용하기

엔코어에서 개발한 DA#은 erwin과 같은 모델링 툴입니다. 최근 버전인 dataware는 써보지 않아서 모르겠지만 귀찮은 버그가 몇가지 있는걸 빼면 꽤 쓸만합니다. DA#에서 디비를 이용한 ar 저장소를 사용하면 표준화 작업에 편리하게 이용할 수 있다고합니다. 아직 써보지는 않아서 모르겠습니다. 요구사항은 Oracle Express edition 10g가 설치되어야 한다는점입니다. 최신버전인 11g는 안되더군요. 참고하시길... iPhone 에서 작성된 글입니다.

IT 기술/Database 2012.06.05

PostgreSQL의 view에 DML 명령을 실행하기

PostgreSQL을 사용하다보니 같은 DB내에서 혹은 다른 DB에 존재하는 테이블의 view를 만들어놓고 사용하는 경우가 종종 있다. (PostgreSQL의 디비링크가 아주 불편하기 때문이기도하고, DA분이 너무 정규화를 잘 해놓았기 때문이기도 하다.) PostgreSQL에서 처음에 뷰를 만들었을때...... 신기하게도 select만 가능한지 몰랐었다. update문을 실행해보고서야 곤란한 문제가 생겼다는것을 알게되었고, 곧바로 구글 검색과 메뉴얼 검색을 통해서 rule이라는걸 찾게되었다. rule이란 걸 이용하면 뷰에서 DML문이 실행되면 해당 rule에 맞는 부분만 실행이 되더군요. 예를들어서 update 구문에 대한 rule을 만들면서 "update emp set ename where empno ..

IT 기술/Database 2012.06.05

PostgreSQL에서 "connect by" 계층 쿼리 구현

Open source RDBMS인 PostgreSQL은 현재 9.1.3버전까지 나온 잘 만들어진 DBMS이지만 아주 큰 약점들이 있다. 오늘은 그중 하나인 계층형 쿼리 기능에 대한 해법을 말해보고자한다. 계층형 쿼리, Hierachical Query는 보통 조직도나 다단계 분류표 등의 구조를 나타내는데 쓰는 구문으로 Oracle RDBMS에서 "start with ~ connect by~"의 형태로 쓰며, 보통 "connect by"로 불리운다. 그런데 PostgreSQL에서는 계층형 쿼리를 쓰려면 추가 모듈을 설치해야 하는데, 이 모듈을 설치하면 쓸 수 있는 connectby라는 함수는 속도가 아주 느리다. 그래서 "connect by"를 따로 구현해 보았다. 입력받은 테이블과 컬럼 이름으로 "with..

IT 기술/Database 2012.05.30

WITH 구문을 이용하여 PostgreSQL에서 merge 구현

오라클을 주로 사용하던 이들은 다른 DBMS에서 아쉬운 것들이 몇가지 있죠. 현재 사용중인 PostgreSQL의 경우, 오라클의 자유로운 db link와 merge 등이 아주 그립습니다. 그래서 이 merge 기능을 대신하는 방법을 찾아봤습니다. 수정 가능한 WITH CTE 구문을 이용한 merge 기능 구현 WITH TEST AS ( UPDATE world_human A SET cel_phone = B.cel_phone, email_addr = B.email_addr FROM servay B WHERE A.human_id = B.human_id RETURNING A.*) INSERT INTO world_human(human_id, cel_phone, email_addr) SELECT C.human_id..

IT 기술/Database 2012.04.24

티베로를 지원하는 접근제어 솔루션

요즘 IT쪽에 보안 문제가 큰 화두가 되고있습니다. 물론 보안은 아주 기본적인 요구사항입니다. 하지만 제 경험상 보안 솔루션 도입은 비용과 운용상의 불편함을 이유로 검토 후 보류해버리는 경우가 많았습니다. 요즘 수 많은 사건사고로 인해서 보안 솔루션 도입에 꽤 적극적이 된 회사의 모습을 보면, 역시 어디서 한 건 터지고, 법으로 규제해야 기업체가 돈을 쓴다는걸 다시한번 머리속에 새깁니다. (기업이 돈을 많이 남기면 재투자하고, 고용을 확대해서 서민 경제가 좋아진다는 얘기는 어느나라 얘기일지...) 티베로 엔지니어를 통해서 확인한 티베로를 지원하는 DBMS 접근제어 솔루션들입니다. 1. 피앤피시큐어의 DBSafer 2. 웨어벨리의 Shakra(샤크라) 샤크라 맥스는 아직 티베로를 지원하지 않고 샤크라만 티..

IT 기술/Database 2011.12.02