기록은 가장 쉬운 명상입니다.
OpenSearch로 데이터 분석해보기
3 min read · 2024년 07월 10일
OpenSearch와 RDBMS 비교
| RDB | OpenSearch |
|---|---|
| DB | Index |
| Table | Type |
| Row | Document |
| Column | Field |
| Schema | Mapping |
| PK | Document ID |
인덱스 생성
OpenSearch Dev Tool 쿼리문
jsonPUT /index_name { "settings": { "number_of_shards": 1, "number_of_replicas": 1 }, "mappings": { "properties": { "field1": { "type": "text" } } } }
Java Service
javapublic String createIndex(String indexName) throws IOException { GetIndexRequest request = new GetIndexRequest(indexName); boolean exists = client.indices().exists(request, RequestOptions.DEFAULT); if (!exists) { CreateIndexRequest createIndexRequest = new CreateIndexRequest(indexName); CreateIndexResponse createIndexResponse = client.indices().create(createIndexRequest, RequestOptions.DEFAULT); System.out.println("Index Created: " + createIndexResponse.index()); return createIndexResponse.index(); } else { System.out.println("Index already exists."); return "Index already exists."; } }
Document 삽입
jsonPOST /hajongon/_doc { "type": "test1", "@timestamp": "2023-07-10T12:34:56Z", "age": 32 }
index-document-response
Dev Tools에서 hajongon이라는 index 내부 test1이라는 type에 데이터를 삽입합니다. @timestamp는 아래에서 더 다룰 예정이니 집중해주세요~
인덱스 패턴 설정
stack-management
- Stack Management 에 들어갑니다.
index-pattern-menu
- Index Patterns 메뉴를 클릭합니다.
- Create Index Pattern 버튼을 클릭합니다.
- 사용할 index pattern name을 입력하고 Next step 버튼을 클릭합니다.
- Index Pattern의 Time Field를 설정합니다. (이미 삽입된 document가 있어야 가능)
create-index-pattern
위에서 입력한 데이터에 있던 @timestamp 필드를 Time Field로 지정합니다.
discover-chart-1
Time Field에 의해 데이터가 정렬되고, 그걸 기반으로 한 차트토 볼 수 있습니다. (시간 별로 입력받은 데이터 수)