Elastic Stack

Elasticsearch transform / rollup

iiliiiili 2021. 9. 10. 23:38

데이터 롤업 또는 변환

Elasticsearch는 데이터 조작을 위해 다음과 같은 방법을 제공합니다.

 

Transform - 데이터 변환

  • 변환을 사용하면 기존 Elasticsearch 인덱스를 요약된 인덱스로 변환하여 새로운 통찰력과 분석을 위한 기회를 제공할 수 있습니다.

 

Rollup - 과거데이터 롤업

  • Elastic Stack 데이터 롤업 기능은 과거 데이터를 요약하고 저장하는 수단을 제공하여 분석에 계속 사용할 수 있지만 원시 데이터의 저장 비용의 일부에 불과합니다.

 

 

 

 

 

 

cf) rollover (롤오버)

https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-rollover-index.html

 

Rollover API | Elasticsearch Guide [master] | Elastic

To trigger a rollover, the current index must meet these conditions at the time of the request. Elasticsearch does not monitor the index after the API response. To automate rollover, use ILM’s rollover instead.

www.elastic.co

ILM 

 

metricbeat-7.14.1-2021.09.01-000001 형식의 index를 

metricbeat-7.14.1-2021.09.01 로 reindex하고 metricbeat  ilm 을 mapping 했더니 

[2021-09-15T09:10:41,620][ERROR][o.e.x.i.IndexLifecycleRunner] [node1] policy [metricbeat] for index [metricbeat-7.14.1-2021.09.01] failed on step [{"phase":"hot","action":"rollover","name":"check-rollover-ready"}]. Moving to ERROR step

java.lang.IllegalArgumentException: index name [metricbeat-7.14.1-2021.09.01] does not match pattern '^.*-\d+$'

 

이런 에러가 발생한다.

 

별칭에 대한 인덱스 이름 증가

인덱스 별칭을 롤오버할 때 새 인덱스의 이름을 지정할 수 있습니다. 이름을 지정하지 않고 현재 인덱스가 -및 숫자(예: my-index-000001또는 my-index-3)  끝나는 경우 새 인덱스 이름은 해당 숫자를 증가시킵니다. 예를 들어, 현재 인덱스가 my-index-000001인 별칭을 롤오버하면 롤오버는 이라는 새 인덱스를 생성합니다 my-index-000002. 이 숫자는 이전 인덱스 이름에 관계없이 항상 6자이며 0으로 채워집니다.

인덱스 별칭 롤오버와 함께 날짜 수학 사용

시계열 데이터에 인덱스 별칭을 사용하는 경우 인덱스 이름에 날짜 수학  사용 하여 롤오버 날짜를 추적 할 수 있습니다 . 예를 들어 이라는 인덱스를 가리키는 별칭을 만들 수 있습니다 <my-index-{now/d}-000001>. 2099년 5월 6일에 인덱스를 생성한 경우 인덱스의 이름은 my-index-2099.05.06-000001. 2099년 5월 7일에 별칭을 롤오버하면 새 인덱스의 이름은 my-index-2099.05.07-000002입니다. 예를 들어 쓰기 인덱스가 있는 인덱스 별칭 롤오버를 참조하세요 .

 

 

00001 00002 이런식으로 별칭?을 붙여줘야됨

 

 

 

beat 류 인덱스 날짜별로 생성되지 않고 생성된 날짜의 인덱스에 데이터가 쌓임.

인덱스 최대 샤드 1개 최대 데이터 20G ~ 40G 

A1) 인덱스 자체에는 제한이 없지만 샤드에는 제한이 없습니다. 힙 GB당 권장 샤드 수는 20(JVM 힙 - kibana 스택 모니터링 탭에서 확인할 수 있음)입니다. 즉, JVM 힙이 5GB인 경우 권장되는 양은 100입니다. .

A2) 1개의 인덱스는 1개에서 x개의 샤드(기본 1개 및 보조 1개)를 취할 수 있음을 기억하십시오. 일반적으로 사람들은 1개의 기본 및 1개의 보조를 갖습니다. 이 경우 5GB의 힙으로 50개의 인덱스를 생성할 수 있습니다.