Postgres) 계층형 쿼리작성 및 csv로 결과 저장하기

도커 컨테이너에 있는 Postgresql 데이터베이스에 접근해서 psql로 계층형 쿼리 조회하고 그 결과를 csv 파일로 저장해서 로컬로 가져오기 계층형 쿼리 상품 p 가 있고, 아이디는 product_id, 상위 product는 parent_product_id 라고 할 때, 아래와 같이 계층형 쿼리를 작성 할 수 있습니다. with recursive search_product(product_id) as ( select p.* from product p where product_id =21306 union all select p.* from product p, search_product sp where k.parent_product_id = sp.product_id ) select * from searc..

Data/PostgreSQL 2021.12.02
docker로 elastic search 띄우기

Intro docker-compose로 ELK 스택을 구축하는 간단한 링크 https://shanepark.tistory.com/241?category=1203908 하지만 이번 포스팅에서는 지극히 개인적인 gaia.best 서버를 띄우기 위해 간단하게 오라클과 엘라스틱 서버만 띄우고 로그 스태시로 해당 엘라스틱 서치로 부터 파이프라인을 한차례 받아오는 과정 까지를 기록 해 두려고 합니다. 바로 이전 포스팅 https://shanepark.tistory.com/285 에서 도커 컨테이너를 백업 하려고 하던 찰라에 엘라스틱 서치 컨테이너에 큰 문제가있다는 것을 발견해서, 그냥 엘라스틱 서치 컨테이너를 날려 버리고 데이터를 새로 밀어넣으려고 합니다. 지극히 개인적인 기록을 위한 포스팅이지만 어느 누군가에게는..

Data/Search Engine 2021.11.25
Postgres) rownum 사용과 Subquery를 통한 update

rownum Postgres 에서도 Oracle의 rownum을 사용 할 수 있을까요? 가능합니다. row_number()를 이용하면 됩니다. 그럼 아래 처럼 그냥 호출 하면 rownum을 사용 할 수 있을 것 같지만.. select row_number(), i.* from item i; 윈도우 함수 호출에는 OVER 절이 필요함 이라는 에러가 나옵니다. 딱히 조건을 걸 생각이 없었지만 그래도 over절은 넣어줘야 하나 봅니다. 그럼 이렇게 작성 한다면 rownum을 사용 할 수 있습니다. as로 alias 를 주는것도 좋겠네요. select row_number() over(), i.* from item i; Subquery를 통한 update 이제 rownum을 받아 왔으니, 서브쿼리에서 rownum을..

Data/PostgreSQL 2021.11.19
PostgreSQL) 모든 테이블에서 특정 값 찾기

모든 테이블 찾기 특정 값을 검색 할 때, 모든 테이블에서 찾아봐야 할 경우가 종종 있습니다. 이번에 특정 데이터의 완전 삭제 기능을 구현하고 있었는데 모든 테이블을 FK로 연결한 건 아니라서 관련된 데이터들이 모두 삭제 되었는지가 확실하지 않았습니다. FK 와 cascade 를 활용해서 싹 다 지워버리면 편하기야 하겠지만 의도치 않은 사이드이펙트가 나올 수도 있습니다. 특정 데이터를 삭제 할 경우 관련된 데이터를 무작정 제거하는게 아닌 다른 비즈니스 로직을 수행해야 하는 경우도 있을 수 있고, 실제로 데이터를 지우지 않고 상태만 변경해야 할 경우도 있습니다. 클라이언트의 요구사항은 다양하기 때문에 한가지 방법만을 고집 할 수는 없습니다. 비관계형 데이터베이스까지 커버해야 할 경우마저 있네요. Guava..

Data/PostgreSQL 2021.10.08
docker-compose 이용해 ELK Stack 구축하기

docker나 docker-compose가 아직 준비되어 있지 않다면 아래 글을 참고해서 먼저 설치 해 주세요. Ubuntu 20.04 LTS ) Docker 설치하기 Windows) Docker 설치하기 MacOS ) m1 맥북 docker 설치하기 저장소 클론 아래의 저장소에서 docker-compose 설정을 클론하면 아주 쉽게 docker-compose 를 이용한 ELK STACK을 구축 할 수 있습니다. git clone https://github.com/deviantony/docker-elk.git 그러고 해당 경로에 가서 docker-compose up -d 를 하면 실행 할 수 있습니다. docker-compose up -d 필요한 이미지를 다운 받고, 컨테이너가 모두 구동 됩니다. 키바나..

Data/Search Engine 2021.09.20