본문 바로가기
반응형

OpenSearch (ElasticSearch)17

[8] 집계 - 메트릭 집계 메트릭 집계를 사용하면 필드의 최소값 최대값 및 평균값 찾기와 같은 간단한 계산을 수행할 수 있습니다. 메트릭 집계에는 단일 값 메트릭 집계와 다중 값 메트릭 집계의 두 가지 유형이 있습니다. 단일 값 메트릭 집계 단일 값 메트릭 집계는 단일 메트릭을 반환합니다. 예를 들어, sum, min, max, avg, cardinality, value_count가 있습니다. 다중 값 메트릭 집계 둘 이상의 메트릭을 반환합니다. 예: stats, extended_stats, matrix_stats, percentile, percentile_ranks, geo_bound. top_hits, scripted_metric :: sum, min, max, avg // taxful_total_price 필드의 총 합계를 .. 2022. 3. 10.
[7] 인덱스 템플릿 인덱스 템플릿을 사용하면 이미 정의된 mappings와 settings 그대로 새 인덱스를 초기화할 수 있다. 예를 들어, 지속적으로 인덱싱하는 log data라면, 이런 모든 index가 동일한 수의 샤드와 복제본을 갖도록 인덱스 템플릿을 정의할 수 있다. // Index Template 생성 예시 PUT _index_template/daily_logs // daily_logs라는 이름을 가진 템플릿 생성 { "index_patterns": [ "logs-2022-01-*" ], "template": { "aliases": { "my_logs": {} }, "settings": { "number_of_shards": 2, "number_of_replicas": 1 }, "mappings": { "pro.. 2022. 3. 2.
[6] 데이터 스트림 로그, 이벤트 및 메트릭과 같은 지속적으로 생성되는 시계열 데이터를 수집하는 경우, 문서의 수가 급격하게 증가하고 이전 문서를 업데이트할 필요가 없는 경우가 있을 때가 있습니다. 데이터 스트림은 타임스탬프 필드가 있는지 확인하고 시계열 데이터에 가장 적합한 설정을 시행합니다. 내부적으로 여러 backing 인덱스로 구성되는데, 검색 요청은 모든 backing 인덱스에 라우팅 되는 반면에 인덱싱 요청은 최신 쓰기 인덱스로 라우팅됩니다. ISM 정책을 사용하면 인덱스 롤오버 또는 삭제를 자동으로 처리할 수 있습니다. :: 인덱스 템플릿 만들기 데이터 스트림을 생성하려면 먼저 인덱스 세트를 데이터 스트림으로 구성하는 인덱스 템플릿을 생성해야 합니다. data_stream 객체는 일반적인 인덱스 템플릿이 아닌 .. 2022. 2. 25.
[5] 인덱스 별칭 (aliases) 별칭은 하나 이상의 인덱스를 가리킬 수 있는 가상 인덱스 이름입니다. 데이터가 여러 인덱스에 분산되어 있는 경우 쿼리할 인덱스를 추적하는 대신 별칭을 만들어 쿼리할 수 있습니다. 에를 들어, 월 단위 로그를 인덱스에 저장하고 이전 2개월 동안 로그를 자주 쿼리하는 경우 'last_2_months'라는 별칭을 만들고 매달 업데이트 할 수 있습니다. 별칭이 가리키는 인덱스는 언제든지 변경할 수 있으므로 별칭을 사용하여 인덱스를 참조하면 다운타임 없이 데이터를 다시 인덱싱할 수 있습니다. :: 별칭 만들기 // 별칭을 만들때 POST 요청을 사용합니다. POST _aliases // 아래는 actions를 사용하여 'alias1'이라는 별칭을 만들고 'index-1'을 이 별칭에 추가하는 요청이다. POST .. 2022. 2. 22.
[4] 인덱스 데이터 OpenSearch에는 인덱스 API와 _bluk API 두 가지가 있다. 새로운 데이터가 점진적으로 ( 소규모 비즈니스의 고객 주문 등 ) 쌓이는 구조의 경우 인덱스 API를 사용하여 개별적으로 문서를 추가할 수 있다. 데이터의 흐름이 더욱 천천히 쌓이는 경우 ( 마케팅 웹사이트에 대한 주간 업데이트 등 ) 파일을 생성하여 _bluk API로 보내는 것이 좋습니다. 많은 수의 문서에 대해 함께 묶어서 _bluk API를 사용하면 우수한 성능을 제공 받을 수 있습니다. 하지만 문서가 그보다 방대하다면 개별적으로 인덱스를 생성하는 것이 좋습니다. 데이터를 검색하려면 먼저 인덱스를 생성해야 합니다. OpenSearch는 고유 ID를 사용하여 각 문서를 식별합니다. // Index API 요청 PUT /_do.. 2022. 2. 18.
[3] 인덱스 생성과 설정 예제 :: Index Naming Restrictions 모든 문자는 소문자만 가능. 인덱스 이름의 시작은 '_'나 '-'로 시작될 수 없음. 인덱스 이름은 다음의 문자열을 포함할 수 없음. ( :, ", *, +, /, \\, |, ?, #, >, or < ) Movie라는 이름을 가진 인덱스의 생성 예시 기본적으로 settings와 mappings라는 key를 가진 JSONObject로 인덱스에 대한 설정 정보를 입력한다. // movie라는 이름을 가진 인덱스의 생성 예 PUT /movie { "settings": { "number_of_shards": 1, "number_of_replicas": 1, "shard": { "check_on_startup": false } }, "mappings": { ".. 2022. 2. 17.
[2] Opensearch와 클러스터 설정 Opensearch 구성은 cluster setting API에서 설정할 수 있다. 특정 부분은 opensearch.yml 파일을 수정하고 다시 시작해야되는 부분이 있는데, 이 특정 부분을 제외하고는 가능하면 cluster setting API를 사용하는 것이 좋다. cluster setting API는 클러스터 내 전체 노드의 설정을 적용하지만 opensearch.yml파일을 수정하는 것은 각각의 노드 설정을 변경하는 것이 된다. opensearch.yml 파일을 수정해야되는 특정부분은 네트워킹, 클러스터 구성, 로컬 파일 시스템에 대한 수정 작업이 이루어질 때이다. Opensearch에서 데이터를 검색 및 집계하기 전에 클러스터 생성부터 이루어져야 한다. 단일 노드 또는 다중 노드 클러스터로 작동할 .. 2022. 2. 14.
[1] OpenSearch란? Opensearch와 일반 RDB 비교 1. OpenSearch란? Elastic NV는 소프트웨어 라이선스 전략을 변경하는 바, 퍼미시브 ALv2 라이선스 하에서 Elasticsearch 및 Kibana의 새로운 버전을 더 이상 릴리스하지 않는다고 발표함으로써, AWS에서 마지막 ALv2 버전의 Elasticsearch 및 Kibana에서 갈래를 생성하고 유지 관리하기로 한 것을 Opensearch라고 지칭하였다. 2. OpenSearch와 일반 RDB 비교 일반 RDB 엘라스틱서치(Opensearch) 비고 Database, table index , type 일반 RDB는 하나의 Database 내에 여러개의 table을 가질수 있으나, 엘라스틱서치 6 (?)부터는 index당 오직 하나의 type 만 가질수 있습니다. 엘라스틱서치 7 에.. 2022. 2. 12.
반응형