[Data Engineering] Apache Druid 예제 따라하기
안녕하세요 마개입니다.
설치가 완료되었다면 공식 홈페이지에서 제공하는 기본 예제를 따라해보겠습니다.
Data 올리기
Docker 버전이 아니라 Druid를 다운로드해서 설치하면 apache-druid-0.20.0 디렉터리가 있습니다. (버전은 다를 수 있습니다.) 해당 디렉터리에 quickstart/tutorial
디렉터리로 가면 wikiticker-2015-09-12-sampled.json.gz 이름을 가진 파일이 있는 것을 확인하실 수 있습니다. 이를 콘솔에서 올려보겠습니다.
콘솔로 접속해서 좌측 상단에 있는 Load data를 클릭합니다.
그러면 나오는 화면에서 좌측 Start a new spec을 클릭합니다.
위와 같이 Kafka
, Kinesis
, S3
등 다양하게 데이터를 올릴 수 있는데 예제는 로컬 데이터이기 때문에 Local disk를 클릭하고 우측에 Connect data를 클릭합니다.
그러면 위와 같이 나오는데 오른쪽 사이드바 (빨간색 박스)에 내용을 작성합니다.
- Source type : local
- Base directory :
[tutorial이 있는 경로]
- File filter : wikiticker-2015-09-12-sampled.json.gz
작성하고 Apply를 클릭합니다.
위와 같이 raw 데이터가 나온 것을 확인할 수 있습니다. 다음으로 우측 하단에 Next: Parse data를 클릭합니다.
Data 파싱
Next: Parse data를 클릭하면 자동으로 파싱이 진행됩니다.
예제의 데이터가 JSON
파일이기 때문에 JSON
형태에 맞춰서 자동으로 column과 해당 값이 생성됩니다. 데이터가 JSON
파일이 아니면 우측에 Input format
을 변경하고 Apply 버튼을 클릭하여 적용해줍니다. 데이터가 이상 없이 잘 나오면 우측 하단에 Next: Parse time을 클릭합니다.
Time 파싱
이번에는 시간 데이터를 파싱하는 부분입니다. 이전에 설명드렸던 것처럼 Druid
는 시계열 데이터를 이용하기 때문에 시간 데이터를 설정해줘야 합니다. Next: Parse time을 눌러 결과를 봅시다.
이전과 달라진 점은 데이터가 나타난 곳에 맨 왼쪽에 __time
칼럼이 생성된 것을 확인할 수 있습니다. 그리고 아래에 from: 'time'
이라고 쓰여있는 것을 볼 수 있는데 이는 기존 데이터 중에 ‘time’ 칼럼을 __time
칼럼으로 시간 데이터를 이용하겠다는 뜻입니다. 자동으로 파싱이 되었지만 변경을 하고 싶다면 우측에 Column과 Format을 변경하고 Apply 버튼을 클릭합니다.
모두 완료되면 우측 하단에 Next: Transform을 클릭합니다.
Transform
Transform
작업을 할 것이 있다면 진행합니다. 예제에서는 없기 때문에 우측 하단에 Next: Filter를 클릭합니다.
Filter
Filter 단계에서도 작업할 것이 있으면 진행하지만 해당 예제에서는 생략하고 Next: Configure schema를 클릭합니다.
Configure schema
각 칼럼에 대해 type
을 지정하는 단계입니다.
Druid에서는 칼럼에 대한 type
을 지정해 줘야 하는데 위와 같이 각 칼럼을 보고 자동으로 type
을 지정해 줍니다. 각 칼럼에 모두 지정이 되었는지 확인하고 우측 하단에 Next: Partition을 클릭합니다.
Partition
데이터를 어떠한 기준으로 나눌 것인지 처리하는 부분입니다.
여기에서는 Segment
라는 개념이 나오는데 Segment
는 해당 Partition 작업을 거쳐 나오는 블록(?)이라고 보면 될 것 같습니다. 해당 Segment granularity
를 DAY로 설정하면 시간 데이터가 날짜 기준으로 Segment가 나눠집니다. 우측 하단 Next: Tune을 클릭합니다.
Tune
튜닝을 하는 부분인데 해당 부분은 생략하고 Next: Publish를 클릭합니다.
Publish
퍼블리싱을 하는 작업입니다.
좌측에 Datasource name
을 wikipedia
로 변경하고 Next: Edit spec을 클릭합니다.
Edit
마지막으로 확인하는 부분입니다.
해당 부분이 문제가 없다면 우측 하단 Submit 버튼을 클릭합니다.
확인
완료되면 Ingestion
뷰에 Tasks
에 생성된 것을 확인하실 수 있습니다.
Query 실행
이렇게 만들어진 데이터를 Query를 통해 결과를 확인해보겠습니다.
상단 메뉴에 Datasources
를 클릭하면 우리가 만들었던 wikipedia Datasource가 있는 것을 확인할 수 있습니다.
우측으로 넘어가면 Actions
부분에 드라이버 모양을 클릭하고 Query with SQL을 클릭합니다.
그러면 Query창으로 넘어오면서 데이터가 나오는 것을 확인하실 수 있습니다.