Database 5

[Elasticsearch] Data Indexing, Searching By Query

Elasticsearch는 관계형 데이터베이스와 다르게 쿼리(Query)와 필터(Filter)를 통해 데이터를 인덱싱 및 서칭 합니다. 쿼리와 필터는 모두 JSON형식으로 구현하며 이 QueryDSL(Domain Specific Language)라고 합니다. 쿼리와 필터는 각각 독립적인 요소로 실행되는데 이들에 대해 상세하게 설명드리도록 하겠습니다. 기본적인 형태소 분석 과정에 대해 설명드리자면, 대문자를 모두 소문자로 변환하고 중복 단어를 제거 후 분석 과정을 거치게 됩니다. 이러한 과정을 거치고 저장된 토큰을 텀(term)이라고 합니다. 이제 쿼리에 대해 하나씩 예시 코드와 함께 설명드리겠습니다. Indexing IndexQuery Indexing: 데이터를 검색될 수 있는 토큰으로 변환하기 위해 원..

[Elasticsearch] Elasticsearch란 무엇이고 왜 사용하는가

Elasticsearch는 Apache Lucene 기반의 검색 엔진입니다. HTTP 웹 인터페이스와 스키마에서 자유로운 Json 문서와 함께 멀티테넌트 지원 전문 검색 엔진을 제공합니다. 더불어, 자바 기반의 오픈 소스이지만, 클라이언트는 수많은 언어(Java, C#, PHP, Python..)로 이용이 가능합니다. Apache Lucene 특징 자바 언어로 개발 사용자 위치 정보 이용 가능 다국어 검색 지원 자동 완성, 미리 보기 지원 철자 수정 기능 지원 Elasticsearch 특징 분산 시스템 여러 개의 node로 구성되는 분산 시스템 기존 node에서 새 node를 실행하여 연결하는 것만으로 확장 가능 data는 각 node에 분산하여 저장 복사본(replica)을 유지하여 각종 충돌로부터 n..

[DB] MySQL Replication, Garela Cluster

오늘은 DBMS 복제 기술인 MySQL Replication, Garela Cluster에 대해서 알아보려고 합니다. MySQL Replication은 Replication(복제) 기능만 제공하지만, Garela Cluster는 Replication(복제) 기능에 더해 Clustering 기능을 제공해 줍니다. 각각의 특징과 장, 단점에 대해 설명드리겠습니다. 1. MySQL Replication Master/Slave 방식의 구성 Master(Write) / Slave(Read) 여러 개의 DB를 권한에 따라 수직적인 구조(Master/Slave)로 구축하는 방식 Master node에서 write transaction이 수행되면 Master node는 MySQL Data File이란 곳에 Data 저..

Database 2023.09.21

[DB] MariaDB, MySQL 비교

오늘은 RDBMS 중에서도 많이 사용되고 있는 mysql과 mariadb를 알아보려고 합니다. 이 둘은 서로 호환성도 좋지만, 성능적인 면에서 크게 차이가 있습니다. 우선 공통점부터 알아보겠습니다. MySQL 세계에서 가장 많이 쓰이는 오픈 소스 관계형 데이터베이스 관리 시스템 다중 스레드. 다중 사용자, 구조질의어 형식의 데이터베이스 관리 시스템으로 Oracle이 관리 및 지원하고 있습니다. SQL이라고 칭하는 구조화된 쿼리 언어를 사용하여 데이터를 정의, 조작, 제어, 쿼리할 수 있습니다. 데이터가 하나 이상의 열과 행의 테이블에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악할 수 있습니다. GUI를 통해 액세스할 수 있습니다.(MySQL Workbench) MariaDB MyS..

Database 2023.09.20

[DB] Redis란 무엇인가?

Redis(Remote Dictionary System) "key-value" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스기반의 비관계형 데이터베이스 관리 시스템 in-memory 데이터 저장소(RAM)로서 모든 데이터를 메모리에 올려둡니다. (caching) 평균 작업 속도가 1ms로 굉장히 빠른 편이며, 초당 수백만 건의 작업이 가능합니다.(지연시간 감소, 처리량 증가) (caching) Scale-up, Scale-out, Replication, Sharding 기능 지원 Scale-up: 동일 서버 하드웨어에 컴퓨팅 자원(CPU, Memory)을 추가(서버 성능 향상) Scale-out: 서버를 여러 대 추가하여 시스템 확장(서버 성능 향상) Replication: 동일 데이터를 다수..

Database 2023.09.08