본문 바로가기

전체 글25

dbeaver) ignite 접속하기 PuTTy를 사용하여 서버에 ignite를 설치하고 테이블을 생성해 주었다 https://cute772.tistory.com/289 [DB] Ignite Apache 설치 Ignite Apache 와 다른 솔루션 비교 https://www.gridgain.com/resources/product-comparisons/redis-comparison Ignite 의 성능 비교 pure cache on cache on with Ignite vs MariaDB Ignite Apache 설치 2.3.0.. cute772.tistory.com 설치엔 위의 블로그를 활용하였다 기존 DB 툴로 Dbeaver를 사용하고 있어서 ignite도 연결이 가능한지 찾아보니 역시나 간단하게 연결이 가능했다 ignite를 선택하여 .. 2022. 5. 30.
Shell 자동로그인) Super한 PuTTy를 쓰기위한 방법 PuTTy는 자동 로그인이나 분할 창 등의 기능이 기본적으로 제공 되지 않기 때문에 보다 편리하게 사용하기 위해 방법을 찾던 중 SuperPuTTy와 Kitty를 알게 되었다 SuperPuTTy와 kitty를 사용하면 업그레이드된 Putty를 사용할 수 있다 1. 실행 kitty가 포함돼 있는 SuperPuTTY-1.4.0.9를 다운로드하였다 SuperPutty.exe을 실행시키고 Tools의 Options을 클릭한다 kitty.exe 파일을 찾아서 열기를 눌러준다 (putty.exe 가 있을 경우 putty를 열어주면 된다) ok를 눌러줘 옵션 설정을 마무리해 준다 2. 연결 및 계정 정보 입력 Tools의 PuTTY configuration을 클릭한다 url과 이름과 서버 명칭을 입력 후 save를 .. 2022. 5. 30.
Spring batch) 대용량 처리를 위한 배치 전략 Spring batch를 사용해서 대용량 데이터에 대한 file to db insert 작업을 수행했다 기존 프로젝트 레퍼런스가 존재하지 않았고 검색 시 spring boot와 jpa 자료는 쉽게 찾아볼 수 있었지만 spirng 자료는 검색 시 활용하기 어려운 자료가 대부분이라 스프링 문서를 읽어가며 로직을 작성했다 사용 계기 처음엔 엑셀을 읽어 데이터를 list map형태의 파라미터로 만들어 서버로 보내 mybatis의 foreach를 사용해 bulk insert로 처리를 했다 시퀀스 처리와 postgresql에서의 dual 테이블이 제공되지 않아 조금 헤매었지만 몃번 시도 끝에 어렵지 않게 작성할 수 있았디 컬럼이 100개 내외에 row수가 5,000건 이상 되었을 때 isnert 작업이 6분 정도가.. 2022. 5. 2.
postgreSql) 선분이력 테이블 수정된 데이터를 이력으로 관리하는 서비스를 제공해야 해서 해당 테이블에 대한 선분 이력 테이블을 DA분께 설계 요청드렸고 생성된 테이블을 통해 기능을 완성했다 활용한 선분 이력 테이블에 대해서 정리해보았다 선분 이력 테이블이란? 이력을 관리하는 테이블로서 시작 시점과 종료 시점으로 데이터 이력을 관리한다 선분 이력 테이블 활용방법? original 테이블에서 변경사항이 발생했을 때, 최신 값을 기본 테이블에 수정하고 수정하기 이전의 레코드를 복사해서 history(선분 이력) 테이블에 추가한다 history 테이블에 추가할 때 종료일시와 시작 일시를 기록하는데, 종료일시는 변경하는 시간(현재시간), 시작 일시는 최초 입력 시 '19700101000000'로 입력한다 동일한 레코드의 두 번째 변경사항이 발.. 2022. 5. 2.
Geojson) Geometry Geojson으로 활용하기 SQL에서 ST_ASBINARY 함수는 GEOMETRY를 파라미터로 활용하여 Well-Known Binary(wkb)를 반환한다 SELECT ST_ASBINARY(GEOM) AS GEOMETRY 입력 시 아래와 같은 GEOMETRY가 출력된다 값을 클릭 시 아래 사진과 같이 16진수로 표현된다 이 값을 바탕으로 GeoJson으로 랜더링해 사용할 수 있다 geom값은 Polygon, MultiPolygon, LineString, Point 등으로 구성되어 있다 랜더링 시에는 buf.append("\"geometry\":" + "{\"type\":\"Point\","); buf.append("\"coordinates\":["); 이런 식으로 형태를 잡아주어야 한다 랜더링 한 값을 화면에 넘기고 화면단에서 해.. 2022. 4. 28.
postgreSql) Gin index생성 postgresql은 기본적으로 b-tree 기반의 인덱싱 구조를 default로 가지고 있기 때문에 타입을 지정하지 않고 인덱스 생성 시 b-tree 구조로 선택이 된다 해당 index가 추가되어 있을때 아래의 연산자를 사용하여 비교에 포함될 때마다 btree 인덱스 사용을 고려한다 SQL 작성 시 위의 연산자와 같이 많이 사용되는 연산자로 like 연산자가 있다 특정 구성 요소 값의 존재 여부를 검색할 때는 btree 로는 해결이 되지 않고 postgreSql에서 제공하는 인덱스 중 gin index를 사용할 수 있다 like 연산자의 속도 개선을 위해 gin index를 생성하고 사용해 봤다 CREATE EXTENSION pg_trgm; gin index(pg_trgm)를 생성해준다 CR.. 2022. 4. 27.