Query 뷰 알아보기
Query 뷰 알아보기 (Get to know Query view)
Apache Druid의 Query 뷰에 내장된 유용한 기능 몇 가지를 보여 드릴게요. Query 뷰를 사용하면 수집된 데이터에 대해 Druid SQL 쿼리와 네이티브(JSON 기반) 쿼리를 실행할 수 있어요. API 요청에서 사용하기 전에(예: SQL 기반 수집(SQL-based ingestion)) 쿼리를 테스트하고 튜닝할 수도 있고, Query 뷰에서 직접 데이터를 수집할 수도 있어요.
출처: 문서
본문
이 튜토리얼은 샘플 데이터를 수집하고 몇 가지 Query 뷰 기능을 사용해 수집된 데이터를 쿼리하는 단계를 안내해요.
사전 준비 (Prerequisites)
이 튜토리얼의 단계를 따라가기 전에, quickstart에 설명된 대로 Druid를 다운로드하고 로컬 머신에서 실행 중이어야 해요. 어떤 데이터도 로드할 필요 없어요.
데모 쿼리를 실행해 데이터 수집하기 (Run a demo query to ingest data)
Druid에는 각각 다른 Druid 기능을 시연하는 데모 쿼리가 포함되어 있어요 — 예를 들어 수집 중 데이터 변환, 수집된 데이터 정렬 등이에요. 각 쿼리에는 더 많이 배우는 데 도움이 되는 상세한 주석이 있어요.
이 섹션에서는 데모 쿼리를 로드하고 SQL 태스크를 실행해 샘플 데이터를 table 데이터소스(table datasource)에 수집해요.
http://localhost:8888의 Druid 콘솔로 이동해 Query 를 클릭해 주세요.- 쿼리 창 하단의 말줄임표를 클릭하고 Load demo queries 를 선택해 주세요. 데모 쿼리를 로드하면 현재 쿼리 탭이 모두 교체된다는 점에 주의해 주세요. 데모 쿼리는 여러 탭으로 로드돼요.
- Demo 1 탭을 클릭해 주세요. 이 쿼리는
kttm_simple이라는 데이터소스에 샘플 데이터를 수집해요. Demo 1 탭 제목을 다시 클릭해서 옵션을 확인해 보세요 — 탭을 이름 바꾸기, 복사, 중복할 수 있어요. - Run 을 클릭해 데이터를 수집해 주세요.
- 수집이 완료되면 Druid가 insert 쿼리를 완료하는 데 걸린 시간과 새 데이터소스
kttm_simple을 왼쪽 창에 표시해요.
쿼리 결과 보기와 필터링 (View and filter query results)
이 섹션에서는 새 데이터소스에 대해 몇 가지 쿼리를 실행하고 쿼리 결과에 몇 가지 작업을 수행해요.
- 기존 탭 오른쪽의 + 를 클릭해 새 쿼리 탭을 열어 주세요.
- 왼쪽 창에서 데이터소스 이름
kttm_simple을 클릭해 자동 생성된 쿼리 몇 개를 표시해 주세요. SELECT * FROM kttm_simple을 클릭하고 쿼리를 실행해 주세요.- 쿼리 결과 창에서
browser컬럼에 나타나는 아무Chrome을 클릭한 뒤 Filter on: browser = 'Chrome' 을 클릭해 결과를 필터링해 주세요.
집계 쿼리 실행하기 (Run aggregate queries)
Aggregate functions (집계 함수)는 값 집합에 대한 계산을 수행하고 단일 값을 반환해요.
이 섹션에서는 집계 함수를 사용하는 쿼리를 몇 가지 실행하고, 쿼리를 만드는 데 도움을 주도록 설계된 단축 기능을 사용해 결과에 작업을 수행해요.
-
새 쿼리 탭을 열어 주세요.
-
왼쪽 창에서
kttm_simple을 클릭해 생성된 쿼리를 표시해 주세요. -
SELECT COUNT(*) AS "Count" FROM kttm_simple을 클릭하고 쿼리를 실행해 주세요. -
집계 함수가 포함된 쿼리를 실행한 뒤에는 Query 뷰 옵션이 추가로 생겨요.
kttm_simple데이터소스 왼쪽의 화살표를 클릭해 컬럼을 표시한 뒤country컬럼을 클릭해 주세요. 쿼리에 country 기반 필터와 집계 함수를 적용하는 여러 옵션이 나타나요. -
Aggregate > COUNT(DISTINCT "country") 를 클릭해 이 절을 쿼리에 추가해 주세요. 쿼리는 이제 다음과 같이 보여요:
SELECT COUNT ( * ) AS "Count" , COUNT ( DISTINCT "country" ) AS "dist_country" FROM "kttm_simple" GROUP BY ( )이 예시의
dist_country같은 컬럼 이름을 쿼리를 만들 때 단축키로 사용할 수 있다는 점에 주목해 주세요. -
업데이트된 쿼리를 실행해 주세요.
-
Engine: Auto (SQL native) 를 클릭해 엔진 옵션을 표시해 주세요 —
Native(네이티브(JSON 기반) 쿼리),SQL native(Druid SQL 쿼리),SQL MSQ-task(SQL 기반 수집)가 있어요.Auto를 선택하면 Druid가 쿼리 입력에 따라 가장 효율적인 엔진을 선택하게 해 줘요. -
엔진 메뉴에서 쿼리 컨텍스트를 편집하고 일부 쿼리 기본값을 끌 수도 있어요. Use approximate COUNT(DISTINCT) 를 선택 해제하고 쿼리를 다시 실행해 주세요. 계산이 더 정확해지면서 결과의 country 수가 줄어들어요. 자세한 내용은 SQL aggregation functions을 참고해 주세요.
-
Query 뷰는 함수가 정확히 무엇을 하는지 확실하지 않을 때 함수에 대한 정보를 제공할 수 있어요.
COUNT(DISTINCT country) AS dist_country쿼리 줄의 내용을 지우고COUNT(DISTINCT)를 입력해 교체해 주세요. 함수에 대한 도움말 대화상자가 표시돼요. 도움말 창 밖을 클릭하면 닫힙니다. -
결과 창의 계산된 컬럼에 작업을 수행할 수 있어요.
dist_country COUNT(DISTINCT "country")결과 컬럼 헤더를 클릭해 사용 가능한 옵션을 확인해 주세요. -
Edit column 을 선택하고 Output name 을
Distinct countries로 변경해 주세요.
Explain plan 생성하기 (Generate an explain plan)
이 섹션에서는 쿼리에 대한 explain plan을 생성해요. explain plan은 전체 쿼리 세부 사항과 Druid가 이를 실행하기 위해 수행하는 모든 연산을 보여 줘요.
Druid는 특정 유형의 쿼리를 최적화해요 — explain plan을 해석하고 그 세부 정보를 사용해 쿼리 성능을 개선하는 방법은 SQL query translation을 참고해 주세요.
- 새 쿼리 탭을 열어 주세요.
- 왼쪽 창에서
kttm_simple을 클릭해 생성된 쿼리를 표시해 주세요. SELECT * FROM kttm_simple을 클릭하고 쿼리를 실행해 주세요.- 쿼리 창 하단의 말줄임표를 클릭하고 Explain SQL query 를 선택해 주세요. 쿼리 계획이 새 창에서 열려요.
- Open in new tab 을 클릭해 주세요. 쿼리 세부 사항을 검토하고 필요에 따라 수정할 수 있어요.
- limit을 1001에서 2001로 변경해 주세요:
"Limit" : 2001그리고 쿼리를 실행해 업데이트된 쿼리가 2,001개의 결과를 반환하는지 확인해 주세요.
몇 가지 기능 더 사용해 보기 (Try out a few more features)
이 섹션에서는 유용한 Query 뷰 기능을 몇 가지 더 사용해 봐요.
계산기 모드 사용하기 (Use calculator mode)
FROM 절이 없는 쿼리는 계산기 모드로 실행돼요 — 함수가 어떻게 동작하는지 이해하는 데 유용할 수 있어요. 자세한 내용은 Druid SQL functions 참조를 참고해 주세요.
- 새 쿼리 탭을 열고 다음을 입력해 주세요:
SELECT SQRT ( 49 ) - 쿼리를 실행해 결과
7을 만들어 주세요.
쿼리 결과 다운로드하기 (Download query results)
쿼리 결과를 CSV, TSV, 또는 개행으로 구분된 JSON(newline-delimited JSON) 형식으로 다운로드할 수 있어요.
- 새 쿼리 탭을 열고 쿼리를 실행해 주세요. 예:
SELECT DISTINCT platform FROM kttm_simple - 결과 창 위에서 아래 화살표를 클릭하고 Download results as… CSV 를 선택해 주세요.
쿼리 기록 보기 (View query history)
아무 쿼리 탭에서 쿼리 창 하단의 말줄임표를 클릭하고 Query history 를 선택해 주세요.
왼쪽의 링크를 클릭해 특정 날짜와 시간에 실행된 쿼리를 보고, 이전에 실행한 쿼리를 새 쿼리 탭에서 열 수 있어요.
더 읽어보기 (Further reading)
수집과 데이터 쿼리에 대한 자세한 내용은 다음 주제를 참고해 주세요:
- Quickstart — Druid 시작하기 정보.
- Tutorial: Querying data — Druid 데이터에 실행할 예제 쿼리.
- Ingestion — 수집 및 Druid에서 사용 가능한 수집 방법 개요.
- SQL-based ingestion — SQL 기반 수집 개요.
- SQL-based ingestion query examples — 다양한 사용 사례에 대한 SQL 기반 수집 예제.
- Introduction to Druid SQL — Druid SQL에 대해 더 알아보기.
더 알아보기 (Learn more)
- Druid SQL 소개 (Introduction to Druid SQL) — Druid SQL 쿼리 사용법.
- SQL aggregation functions — 집계 함수에 대한 상세.
- SQL query translation — explain plan 해석과 쿼리 최적화.