1. OpenSearch란1. Elasticsearch 계열의 오픈소스 검색 엔진 + 분석 엔진2. 빠른 검색과 대규모 데이터 분석이 목적 2. Elasticsearch 와 비교구분ElasticsearchOpenSearch출발점원래 Elasticsearch 프로젝트Elasticsearch 7.10.2 기반으로 시작대표 UIKibanaOpenSearch Dashboards클라우드Elastic CloudAmazon OpenSearch ServiceQuery DSL사용사용Full-text 검색사용사용통계 분석사용사용
1. elastic search image 설치 및 실행 2. 포트 및 이름 설정 3. 비밀번호 설정# 도커 실행 확인docker ps# 컨테이너 ID를 확인하고 아래의 명령어를 입력하여 컨테이너에 접근docker exec -it 컨테이너ID sh# 비밀번호 설정# 비밀번호는 6자리 이상bin/elasticsearch-setup-passwords interactive4. 재시작후 로그인 1. 기본 사용자 이름은 elastic2. 비밀번호는 설정한 비밀번호 입력
1. Elasticsearch란1. 대용량 데이터를 빠르게 검색하고 분석하기 위한 분산 검색 엔진2. 내부적으로는 Apache Lucene 기반으로 동작하고, JSON 문서를 저장하며 REST API로 접근 2. RDBMS 와 비교항목RDBMSElasticsearch목적데이터 저장/정합성검색/분석데이터 구조테이블(Row/Column)JSON Document검색 방식정확한 조건 검색전문(full-text) 검색검색 속도LIKE 느릴 수 있음검색 최적화형태소 분석제한적강함실시간 분석제한적강함 3. 장점1. 역색인 방식으로 대용량 검색 성능 좋음2. Full Text Search(방대한 양의 텍스트 문서나 데이터베이스에서 사용자가 입력한 검색어를 포함하는 모든 문서를 찾아내는 기술) 좋음3. Kibana 연동..
📌 참고사항Postgresql 위주로 작성쿼리 튜닝을 하게된 이유마이그레이션 작업중 급격하게 늘어난 데이터로 인해 시스템 목록 조회할때 많은 시간이 소요되는 현상발견 원인1. 과도한 JOIN 으로 인한 원인2. WHERE 절에 LIKE문을 앞뒤로 % 붙여 사용으로 인한 원인3. 특정 조건절에서만 사용하는 불필요한 테이블 JOIN으로 인한 원인4. 과도한 집계함수 사용으로 인한 원인 해결1. WITH절 사용하여 인덱스 적용되는 실행 우선순위별로 쪼개서 해결≫ 원본SELECT *FROM A a JOIN B b ON a.id = b.id JOIN C c ON a.id = c.id ...WHERE a.id = 'A' ...LIMIT 10 OFFSET 0≫ 수정본WITH withA AS ( SELECT a.i..
📌 참고사항최소 Oracle 9i 버전 이상부터 사용가능MySQL / MariaDB은 innoDB에서만 사용가능한 비슷한 기능 있음SQL Server는 유사한 기능 있음1. 사용방법--2025년 10월 17일 09시 데이터 조회SELECT *FROM table_nameAS OF TIMESTAMP (TO_DATE('2025-10-17 09:00:00', 'YYYY-MM-DD HH24:MI:SS'))... 2. Flashback Table Oracle 10g 부터 사용 가능한 Flashback Table 기능이 있는데 Flashback Query는 특정 시점에서의 데이터 상태를 조회할 수 있는 기능이지만 Flashback Table 기능은 테이블 단위로 데이터를 이전 시점으로 복구하는 기능--2025년..
1과목1. 데이터 모델링 유의점더보기≫ 중복성, 유연성, 비일관성 2. 데이터 스키마 구조 단계 - 외부, 개념, 내부더보기≫ View 단계는 여러 사용자 관점으로 구성하는 외부 스키마에 해당≫ 논리적인 데이터 독립성을 고려하는 단계는 외부, 개념적 단계≫ 물리적인 저장구조를 표현하는 스키마는 내부스키마≫ 통합된 모든 사용자의 관점은 개념스키마와 관련있음 3. 엔티티 특징더보기≫ 영속적으로 존재하는 인스턴스의 집합이어야함≫ 발생시점에 따라 구분할수있는건 행위, 중심, 기본 엔티티≫ 엔티티에 이름을 부여할때 가능하면 약어를 사용안함 4. 속성의 특징더보기≫ 인스턴스에서 관리하고자 하는 의미상 더이상 분리 되지않은 최소 데이터 단위≫ 하나의 인스턴스에서 각각의 속성은 한개의 속성값을 가짐≫ 이름을 부여할때 ..
1. IF EXISTS-- 해당 테이블이 존재하면 실행되는 조건문IF EXISTS (SELECT ID FROM TEST WHERE ID ='홍길동' ) --조건 설정 BEGIN --조건 결과 값이 있을 때 실행문 ENDELSE BEGIN --조건 결과 값이 없을 때 실행문 END-- 해당 테이블이 존재하지 않으면 실행되는 조건문IF NOT EXISTS 2. WITH (NOLOCK)-- MSSQL 은 기본적으로 SELECT 시 공유잠금이 걸림-- 작업중인 테이블 에 SELECT 할 경우 해당 작업이 끝나야 SELECT 할 수 있음-- 그렇게되면 DB의 성능은 떨어지고 데드락이 발생될수있음, 이를 방지하기 위해 사용함SELECT * FROM TEST WITH(N..
1. Redis설명 : 키 - 값 쌍의 해시 맵과 같은 구조를 가진 비관계형(NoSQL) 데이터베이스 관리 시스템장점 : 메모리에 저장되어 평균적으로 읽기 및 쓰기의 작업 속도가 1ms로 디스크 기반 데이터베이스보다 빠르다.사용용도 : 캐싱, 세션 관리, 메시지 브로커, 실시간 데이터 처리 ✅ 주요 데이터 구조데이터 타입설명예제String일반 문자열 저장SET key "hello"List순서가 있는 리스트LPUSH list_key "item1"Set중복 없는 데이터 집합SADD set_key "value1"Hash필드-값 형태 저장HSET user:1 name "Alice"Sorted Set값에 점수를 매겨 정렬ZADD scores 100 "user1"✅ 기본 명령어# Redis 서버 실행redis-se..
📌 기본 문법-- 데이터베이스 확인 --SELECT * FROM pg_catalog.pg_namespace;-- 스키마 확인 --SELECT * FROM pg_catalog.pg_tables;-- 테이블명 변경 --ALTER TABLE "test2222" rename to test;-- 컬럼명 변경 --ALTER TABLE test rename column asd1 to asd; 1. Croess Join-- test x test2 --SELECT * FROM test CROSS JOIN test2 2. Using--- 두 테이블의 컬럼명이 같을때 사용 ---SELECT * FROM test1 INNER JOIN test2 ON test1.name = test2.name;SELECT * FROM tes..
1. NOW오라클의 SYSDATE 와 같은 현재 날짜를 조회SELECT NOW() (FROM MEMBER) 생략 가능 2. DATE_FORMAT오라클의 TO_CHAR 와 같이 날짜를 받아와 데이터 포맷에 맞춰 문자열로 반환DATE_FORMAT(NOW(),'%Y-%m-%d') 3. LIMIT오라클의 ROWNUM 과 같이 페이징 처리할때 사용, 첫 번째 인자는 시작 번호, 두번째 인자는 조회할 개수LIMIT 1 , 10 4. REPLACE, REPLACE INTOINSERT 처럼 사용시 : 삽입하려는 내용중 key 값이 없으면 INSERT, 있으면 해당 ROW 삭제후 INSERTUPDATE 처럼 사용시 : SET 부분에 key 값이 없으면 INSERT, 있으면 UPDATE작성하지 않은 컬럼값은 default..