Data 32

Apache Solr 시작하기

https://solr.apache.org/guide/8_11/solr-tutorial.html Intro Apache Solr 공식 튜토리얼 문서를 따라 진행해보며 조금은 더 이해하기 쉽게 각색 해 보았습니다. 모두 아시는 것 처럼 최고의 레퍼런스는 공식 문서임에는 틀림이 없지만 공식문서가 항상 가장 이해하기 쉬운 것은 아닙니다. 최대한 쉽게 작성하기 위해 많은 노력이 있었겠지만 애초에 문서 작성자와 튜토리얼 사용자의 눈높이가 다를 수 밖에 없고 언어도 영어로 작성되었기 때문에 시간과 집중력이 더 많이 필요 합니다. Apache Solr를 처음 사용해보는 입장에서도 쉽게 따라할 수 있도록 생소한 용어들에는 주석을 달았으며 어려울 수 있겠다고 생각 되는 부분들은 최대한 자세히 풀어서 진행 해 보았습니다...

Data/Search Engine 2022.04.12

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) 모든 테이블에서 특정 값 찾기

How to search a specific value in all tables (PostgreSQL)? https://stackoverflow.com/questions/5350088/how-to-search-a-specific-value-in-all-tables-postgresql ​ 모든 테이블 찾기 특정 값을 검색 할 때, 모든 테이블에서 찾아봐야 할 경우가 종종 있습니다. 이번에 특정 데이터의 완전 삭제 기능을 구현하고 있었는데 모든 테이블을 FK로 연결한 건 아니라서 관련된 데이터들이 모두 삭제 되었는지가 확실하지 않았습니다. FK 와 cascade 를 활용해서 싹 다 지워버리면 편하기야 하겠지만 의도치 않은 사이드이펙트가 나올 수도 있습니다. 특정 데이터를 삭제 할 경우 관련된 데이터를 무작정..

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

Docker로 Oracle Database 11g 띄우기

주의 Apple Silicon arm64 방식의 Mac 에서는 적용되지 않습니다. 저도 m1 맥북에어를 사용중이기 때문에 도커에서 오라클 데이터베이스를 띄워보려고 여러 노력을 해봤었지만 지금까지도 전혀 방법이 없습니다. Apple Silicon 환경에서의 오라클 데이터 베이스 사용은 아래 링크를 참고해주세요. Apple Silicon m1 맥북에서 Oracle Database 사용하기 ​ 서론 예전에 학원에 다닐 때 중간, 최종 프로젝트로 만들어 두었던 프로젝트들을 원래 windows 노트북에서 서버처럼 띄워 두었었는데 툭하면 윈도우 업데이트 등으로 종종 컴퓨터가 멋대로 재시작되는 경험을 하고, 외부에서 접속할때도 ssh 접속이 안되기 때문에 Windows Remote Desktop 등을 사용 하다가 이..

Data/Oracle 2021.09.20

Oracle Database가 갑자기 안될 때 TNS-12541, TNS-12560, TNS-00511 에러 해결

Oracle Database가 갑자기 안될 때 TNS-12541, TNS-12560, TNS-00511 에러 해결 방금 까지만 해도 잘 되던 Oracle Dabase가 재부팅 이후에 갑자기 안됩니다. 딱히 건든 게 없는 것 같은데 정말 멘붕이 옵니다. 하나씩 이유를 찾아 해결 해 보도록 합시다. ​ 일단 리스너의 상태를 확인 해 봅니다. lsnrctl status​ 에러가 세개나 나옵니다. ​ TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener 64-bit Windows Error: 2: No such file or directory​ 그런데 Connecting to 쪽이 뭔가 의심이 갑니다. HOS..

Data/Oracle 2021.09.06

MacOS PostgreSQL 설치 하고 테이블 생성, 조회하기

MacOS PostgreSQL 설치 하고 테이블 생성, 조회하기 ​ PostgreSQL PostgreSQL은 확장 가능성 및 표준 준수를 강조하는 객체-관계형 데이터베이스 관리 시스템의 하나 입니다. 오픈소스 RDBMS로서 사용율은 Oracle, MySQL, Microsoft SQL에 이어 4위를 기록하고 있으며 특히 MacOS 서버의 경우에는 PostgreSQL이 기본 데이터베이스 입니다. ​ ​ 설치를 위해 brew에 postgresql 을 검색해 보았습니다. brew search postgresql brew install postgresql 을 입력 해서 default 버전인 13.3 버전을 설치하겠습니다. ​ 설치가 완료되었습니다. To start postgresql : 이라며 친절하게 시작하는 ..

Data/PostgreSQL 2021.08.04

Java 에서 Elastic Search 사용하기3. - 간단 검색하기

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/_search_apis.html Search APIs | Java REST Client [master] | Elastic www.elastic.co 이번에는 엘라스틱 서치를 사용하는 이유인 검색을 해 보도록 하겠습니다. 일단 작성한 코드 먼저 보여드리겠습니다. client로 search 명령을 주면 , response를 return 합니다. 해당 response는 SearchHits 라는 Iterable 구현체를 가지고 있습니다. 지네릭 타입은 SearchHit 입니다. 해당 SerarchHit에서 각각 source를 getSourceAsMap() 메서드를 통해 받고, 모두 lis..

Data/Search Engine 2021.06.08 (1)

Java 에서 Elastic Search 사용하기 - 2. Post Request (Create)

Java 에서 Elastic Search 사용하기2. - Post Request (Create) https://shanepark.tistory.com/139 Java 에서 Elastic Search 사용하기 - Get Request org.elasticsearch elasticsearch 7.12.1 org.elasticsearch.client elasticsearch-rest-high-level-client 7.12.1 Elastic Search client로는 High level client 와 Low level client가 있습니다. low level clie.. shanepark.tistory.com 이번에는 1편에 이어 CRUD 중 첫번째인 C 를 해보겠습니다. 일단 1편에서 GET 방식을 연..

Data/Search Engine 2021.06.08

Java 에서 Elastic Search 사용하기 - 1. Get Request

org.elasticsearch elasticsearch 7.12.1 org.elasticsearch.client elasticsearch-rest-high-level-client 7.12.1 Elastic Search client로는 High level client 와 Low level client가 있습니다. low level client는 버전에 영향을 받지 않고 유연하지만, 사용하기 좀 더 어렵습니다. High level client는 Low level client를 한번 추상화 해서 사용합니다. https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high.html Java High Level REST Cl..

Data/Search Engine 2021.06.07

Logstash를 이용해 Oracle 데이터를 Elastic search와 동기화 하기

ElasticSearch의 버전을 확인합니다. number 에 써있는 7.12.1이 버전입니다 ! https://www.elastic.co/downloads/ Elastic 제품을 다운로드 | Elastic Elasticsearch, Logstash, Kibana 및 Beats를 무료로 다운로드하고 몇 분 내에 Elastic APM, Elastic App Search, Elastic Workplace Search 등을 시작하세요. www.elastic.co 위의 다운로드 링크에서 Logstash를 찾아갑니다. 7.13.1 버전 까지 나왔나 보네요. 아래에 보니 이전 버전을 확인 할 수 있습니다. 제가 서버로 쓰고 있는 컴퓨터에 맞게 7.12.1 WINDOWS 버전을 다운 받았습니다. 압축을 풀어줍니다. ..

Data/Search Engine 2021.06.06

Oracle 중복되는 데이터에는 같은 숫자 주며 순서 맥이기 . 윈도우 함수 DENSE_RANK()

json 에서 issue 들을 받아오는 페이지가 있습니다. 아직 페이징 처리가 되지 않고 있기 때문에 데이터가 많은데요 위에서 보이는 것 처럼 Collection 들을 가지고 있다 보니 쿼리 결과문에서 겹치는 부분이 꽤 있습니다. 페이징을 위해 rownum 을 보통 먹이곤 했는데, rownum을 줬다가는 같은 PK를 가진 친구들도 각기 다른 rownum을 가지기 때문에 제대로 된 페이징 처리가 될 수 없습니다. 이럴때는, 오라클의 윈도우 함수를 이용해서 번호를 주면 됩니다. 일단 기존의 쿼리문과 결과문입니다. select rownum as rn,a.* from ( SELECT ISSUE.ISSUE_SID AS ISSUE_ID ,ISSUE_NO ,ISSUE.PROJ_NO ,ISSUE_TITLE ,ISSUE..

Data/Oracle 2021.06.03

Windows) Kibana 설치하기 + Elastic Search 연동하기

Elastic Search 는 lucene 기반의 분석 엔진입니다. 쿼리를 짜서 '검색'을 하는 개념이기 때문에 Search 컨셉을 가지고 있습니다. Elastic Search는 시간이 갈수록 증가하는 문제를 처리하는 분산형RESTful 검색 및 분석 엔진입니다 위의 Elastic Stack을 구성하기 위해 Kibana를 설치해 보겠습니다. https://www.elastic.co/kr/downloads/kibana Download Kibana Free | Get Started Now | Elastic Download Kibana or the complete Elastic Stack (formerly ELK stack) for free and start visualizing, analyzing, and ..

Data/Search Engine 2021.05.16 (1)