[정리] 데이터베이스(33)
-
[2019.03.14] 엘라스틱 서치 (클러스터 설정 방법, 플러그인)
강의 출처 : https://www.youtube.com/watch?v=0ri2Ze4oFbk&list=PL7GFP9ynPAiQUPzheLp_f-NgAN1XUsus4&index=2컴퓨터 한대를 클러스터로 사용하고 3개의 노드를 띄우는 예제원래는 서버 한대당 노드 한개를 사용한다. 클러스터 예제1. 컴퓨터 한대에 Elastic search 파일을 다운 받고 3개로 복사한다. 2. 복사된 Elastic search 파일들을 각각 node 라고 생각하면된다. 그러므로 폴더 이름을 node1, node2, node3 이라고 바꾸자 3. 각 노드에 들어가서 설정을 바꿔주자.node1/config/elasticsearch.yamlcluster.name: myclusternode.name: node1node.maste..
2019.03.14 -
[2019.03.14] 엘라스틱 서치 (Mapping, 검색 detail)
type 엘라스틱 서치에서 제공하는 타입 Index analyzed 인덱싱 함 not_analyzed 인덱싱 하지만 분석 안함 no 인덱싱 안함 store yes 원본 값을 저장함 no 원본 값을 저장안함 boot 필드의 가중값 10이면 이 필드는 검색할 때 다른 필드보다 10배 중요하다. (랭킹시) analyzer 분석에 사용할 분석기 정의 copy_to 모든 값을 복사할 필드 정의 앨라스틱 서치의 검색 방법1. URI 요청 검색 : 간단한 테스트용 검색만 주로 사용2. QueryDSL 검색 : 복잡한 검색에 주로 사용 q 쿼리 스트링 default_operator 검색 조건에 사용하는 기본 연산자 field 검색 결과로 가져올 필드 sort 정렬 방법 ex) fieldName:asc 또는 fieldN..
2019.03.14 -
[2019.03.14] 엘라스틱 서치 강의 정리
강의 : https://www.youtube.com/watch?v=MQpHYcocKiY&list=PL7GFP9ynPAiQUPzheLp_f-NgAN1XUsus4&index=3검색엔진 만들어라 != 네이버나 다음을 만들어라 아님, 네이버나 다음은 검색 서비스검색엔진 = 데이터를 수집하고 검색 색인을 만든 과정검색엔진의 원리 : 인덱스, 목차검색엔진 평가방법Precision : 가져온 문서중 실제 관련있는 문서의 비율Recall : 전체 문서셋에 있는 관련있는 문서셋중 건져올린 문서의 비율 역인덱스0. 문서가 들어오면 필요있는 단어만 남긴다. 텍스트가 들어온다. 대학생선교회 형태소 분석한다. ["대학", "생선", "교회"] or ["대학생", "선교회"] Token이 생성된다. "대학생", "선교회" Tok..
2019.03.14 -
[2019.03.14] 카산드라 CQL
Mac에서 카산드라 설치 brew install cassandra 카산드라 설치 brew services start cassandra 카산드라 실행 cqlsh 카산드라를 조작하는 cql 실행 cassandra-cli 는 deprecated 됨 CQL 테이블 생성, 수정 간단 예시cqlsh> CREATE KEYSPACE test WITH REPLICATION = {'class':'SimpleStrategy', 'replication_factor':2}; cqlsh> USE test; cqlsh:test>CREATE TABLE member( id int, name text, age int, PRIMARY KEY (id));cqlsh:test> ALTER TABLE member ADD money int;cql..
2019.03.14 -
[2019.03.14] Consistent hashing
Consistent hashing 이 나온 배경DB의 부하 분산을 구현한다 생각해보자가장 먼저 생각할 수 있는 것이 노드(=DB) 갯수에 따라 나머지 연산을 해쉬로 사용하는 것이다.그런데 이런 경우 문제점이 노드 갯수가 추가되거나 삭제되었을 때를 생각해보자.모든 노드에 저장 되어 있는 모든 아이템 i 개를 다시 해쉬 함수를 돌려 다시 저장해야한다.확장성이 매우 떨어진다. 즉 위 방법에서는 노드의 추가 삭제가 발생하면 i개의 아이템 전부 다 저장 장소를 바꿔야한다.이러한 아이템의 이동 횟수를 어떻게 줄일 수 없을까?노드가 추가 삭제되어도 기존에 있는 노드들의 경우, 노드 안의 아이템들의 큰 위치 이동없이 일관되게 할 수 없을까? 그래서 나온것이 Consistent hashing 이다. Consistent ..
2019.03.14 -
[2019.03.14] 카산드라 Intro
카산드라 관련 좋은 정리 링크https://meetup.toast.com/posts/58https://meetup.toast.com/posts/60https://meetup.toast.com/posts/65 제품 데이터 레이어 RDBMS MySQL OracleDB PostgreSQL 데이터 베이스 테이블 행 열 NoSQL Cassandra 키 스페이스 테이블 행 열RDBMS에서 사용하는 데이터 레이어와 거의 유사하다.실제로 Cassandra를 통제하는 언어는 CQL이라고 부르는데 이름도 그렇고 사용방식이 거의 같다.그렇다고 RDBMS 를 완벽히 대체할 수 있는 솔루션은 아니므로 맹신하면 안된다. 장점+ 확장성과 가용성에 최적화된 분산형 Data storage 다.+ Consistent hashing 으로..
2019.03.14