Table Range Partitioning
📦 Database/SQL2023. 12. 17. 04:13Table Range Partitioning

📘 Table Range Partitioning 이번에 로그 테이블과 통계 처리 테이블의 효율적인 관리를 위해 테이블 파티셔닝을 사용하게 되어 작성합니다. 통계 테이블은 Redis에서 통계 처리 로직을 거친 데이터들이 들어오게 되는데, 데이터의 양이 많고 Insert가 많이 일어나는 테이블, 특정 주기를 기준(Range)으로 파티션 테이블의 삭제 등, 로그, 통계 데이터의 관리 방법으로 테이블 파티셔닝(Range Partitioning 방식)을 선택하게 되었습니다. 📕 파티션 테이블이란? DB 테이블의 데이터가 너무 많아서 어떤 데이터를 조회하려고 할때 시간이 너무 많이 소요될때, 여러 방법중 파티셔닝을 하는 방법을 사용할 수 있습니다. 파티션 테이블은 논리적으로 1개의 테이블이지만 물리적으로 여러개의 ..

Redis Publish/Subscribe Pattern (Spring Data Redis)
📦 Database/NoSQL2023. 9. 13. 15:07Redis Publish/Subscribe Pattern (Spring Data Redis)

구현 요구사항 딥러닝 엔진에서 MQTT 데이터 전송 클러스터링/데이터 미러링된 RabbitMQ 클러스터 5대 노드에서 각 라우팅 키에 맞게 Exchange -> Routing Key -> Quorum Queue에 메시지들이 쌓이고 Slave Queue에 메시지가 미러링 됩니다. Redis 설치 Backend(Spring Data Redis)에서 미러링 된 Slave Queue에서 데이터를 가져와서 Redis Pub/Sub 채널을 열어줍니다. Spring Redis(Backend)에서 소켓을 열어줍니다. 소켓의 URL은 WebSocketConfig 클래스에 나온것처럼 ws://localhost:18080/ws입니다. 프론트엔드(React/TypeScript 환경)에서 백엔드의 소켓에 접속해 데이터를 받아옵..

Redis Configuration
📦 Database/NoSQL2023. 9. 12. 17:03Redis Configuration

Redis Configuration Red Hat Enterprise 9.2.0 버전에서 진행하며, Redis의 각종 옵션들을 공식 문서를 보며 대충 번역해서 자주 사용할 것 같은 옵션들만 정리합니다. Redis Configuration 공식 문서 서버 세팅 📕 Shell Script 작성 #!/bin/bash # 패키지 설치 dnf -y update && dnf -y upgrade && dnf -y install firewalld redis yum-utils net-tools wget curl # 방화벽 포트 & 서비스 설정 systemctl start firewalld && systemctl enable firewalld && firewall-cmd --permanent --add-port=6379/..

📦 Database/QueryDSL2023. 6. 25. 18:44간단한 조건 검색 (필터링, 상세검색) 기능 만들기 (Kotlin, QueryDSL)

검색 기능 만들기 QueryDSL의 Boolean Builder와 OrderSpecifier를 활용한 검색기능을 만들어 보았습니다. 요구사항 필터링: 와인 종류, 알코올 도수 범위, 와인의 가격 범위, 와인의 스타일, 와인의 등급, 지역 정렬: 와인 이름, 알코올 도수, 산도, 바디감, 단맛, 타닌, 와인의 점수, 와인의 가격 검색: 와인 이름 class CustomWineRepositoryImpl( @Autowired private val queryFactory: JPAQueryFactory ) : QuerydslRepositorySupport(Wine::class.java), CustomWineRepository { override fun findSingleWineByCondition(filter: ..

📦 Database/SQL2023. 6. 9. 11:17Python SQL Script 작성

Python SQL Script 작성 Mysql 1227 Error 의 연장선으로 파일들의 GTID를 일일이 삭제하기 귀찮아서 스크립트를 작성했습니다. AWS RDS의 Super Privileged를 얻는데 실패했다면 Python 코드를 이용한 SQL Script를 작성합니다. 스크립트에서 Product Dump의 SQL 파일들을 수정하여 Data Import를 할 수 있습니다. SQL 주석 변환 스크립트를 작성하기 전, 실제 데이터의 Encoding 형식을 확인하는 스크립트를 먼저 실행하고, 아래 스크립트에서 해당 인코딩 방식을 사용하여 디코딩 합니다. 아래 스크립트는 폴더 내부의 .sql을 돌면서 .sql 파일의 인코딩 방식을 리스트에 담고 모아서 출력하는 스크립트 입니다. 터미널에서 pip3 ins..

📦 Database/SQL2023. 5. 22. 18:39SQL - Point

Point POINT()는 MySQL에서 공간 데이터 타입인 POINT를 생성하는 함수입니다. POINT() 함수는 지리적 좌표를 나타내는 POINT 객체를 생성합니다. POINT() 함수는 두 개의 인자를 가지며, 각각 x 좌표와 y 좌표입니다. 일반적으로 경도(Longitude)와 위도(Latitude) 값을 사용하여 지리적 좌표를 표현합니다. 예를 들어, POINT(127.1234, 37.5678)은 경도가 127.1234이고 위도가 37.5678인 지점을 나타내는 POINT 객체를 생성합니다. 이를 통해 해당 레코드의 위치 정보를 POINT 객체로 저장하고 업데이트할 수 있습니다.

📦 Database/SQL2023. 5. 22. 15:40SQL DateDiff

Date Diff DATEDIFF 함수는 두 날짜 사이의 일 수 차이를 계산하는 SQL 함수입니다. 일반적으로 날짜 간의 차이를 계산할 때 사용됩니다. DATEDIFF 함수의 구문은 데이터베이스 시스템에 따라 다를 수 있지만, 대부분의 데이터베이스에서 유사한 방식으로 작동합니다. 아래는 일반적인 구문의 예입니다: DATEDIFF(end_date, start_date) end_date: 비교할 날짜의 종료일입니다. start_date: 비교할 날짜의 시작일입니다. DATEDIFF 함수는 end_date에서 start_date를 뺀 뒤, 그 결과로 두 날짜 사이의 일 수 차이를 반환합니다. 결과 값은 정수 형태로 반환되며, 음수 값일 수도 있습니다. 예를 들어, DATEDIFF 함수를 사용하여 2023년 5..

image