분석과 사고에 도움이 되는 데이터를 제시하는 데 필요한 모든 조치를 취하세요. - 에드워드 터프테
이미 만들어진 멋진 데이터 시각화 도구가 없다면 어떻게 이런 그래프를 만들 수 있을까요?
쿼리를 실행하여 데이터를 랭글링하여 결과를 얻을 수 있습니다. 데이터를 원형 차트, 버블 차트, 히스토그램 및 선 그래프로 시각적으로 표시하고 싶은 경우가 많습니다. Tableau, Cognos 등이 있다면 시각화하기가 더 쉽습니다. 그렇지 않은 경우에는 결과를 구글 시트나 엑셀로 복사해야 합니다. 서식, 머리글 행 문제 등으로 인해 결과를 잘라내어 Google 스프레드시트에 붙여넣기가 어렵습니다. 하지만 Couchbase 쿼리 워크벤치를 사용하면 쉽게 할 수 있습니다. 쿼리 결과 옆에는 복사 아이콘을 클릭하면 출력을 표 형식으로 복사하여 Google 스프레드시트, Excel 등의 스프레드시트에 붙여넣을 수 있습니다. 이 기능은 쿼리 워크벤치 및 분석 쿼리 워크벤치 모두에서 사용할 수 있습니다.
몇 가지 샘플 데이터와 차트를 살펴보겠습니다.
- 문서의 유형과 개수를 계산합니다.
다음은 Couchbase와 함께 제공되는 여행 샘플 데이터 세트에 대한 쿼리입니다. 이미지를 클릭하면 GIF 애니메이션을 볼 수 있습니다.
1 2 3 4 5 6 7 |
선택 유형, COUNT(1) 유형 수 FROM `여행-sample` 그룹 BY 유형 주문 기준 유형 수 |
1 2 3 4 5 6 7 8 |
유형 유형 수 "항공사" 187 "호텔" 917 "공항" 1968 "랜드마크" 4495 "경로" 24024 |
다음은 데이터에 대해 생성된 파이차트입니다. 색상, 데이터 표시, 다양한 레이블 및 범례에 맞게 쉽게 사용자 지정할 수 있습니다.
이미지를 클릭하면 결과를 Google 스프레드시트로 가져와서 차트를 만드는 방법에 대한 GIF 애니메이션을 볼 수 있습니다.
2. 과제: 호텔 수가 가장 많은 상위 10개 도시 찾기.
1 2 3 4 5 6 7 8 9 10 11 |
선택 국가, 도시, COUNT(1) 호텔 수 FROM `여행-sample` 어디 유형 = 'hotel' 그룹 BY 국가, 도시 주문 기준 호텔 수 DESC LIMIT 10 |
결과:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
도시 국가 호텔 수 "샌프란시스코" "미국" 132 "London" "영국" 67 "Paris" "프랑스" 64 "샌디에이고" "미국" 48 "버밍엄" "영국" 36 "Los Angeles" "미국" 35 "영국" 23 "산타 모니카" "미국" 14 "말리부" "미국" 12 "Edinburgh" "영국" 10 |
여기서 히스토그램에 대한 유일한 사용자 지정은 실제 호텔 수를 표시하기 위해 데이터 레이블을 추가하는 것입니다.
2. 과제: 리뷰에서 '정원'이 있는 호텔이 가장 많은 상위 5개 도시 찾기
1 2 3 4 5 6 7 8 9 10 |
선택 도시, COUNT(1) 호텔 수 FROM `여행-sample` 어디 유형 = 'hotel' AND ANY r IN 리뷰 만족 search(r.content, "garden") END 그룹 BY 도시 주문 기준 호텔 수 DESC LIMIT 5; |
1 2 3 4 5 6 |
도시 호텔 수 "Paris" 10 5 "샌프란시스코" 5 "샌디에이고" 4 "Edinburgh" 3 |
"도넛 파이 차트"를 선택하고 레이블을 추가하기만 하면 됩니다.
6. 버블 차트를 사용하려면 각 행에 대한 백분율 값을 만들어야 합니다. 창 기능 ratio_to_report() 을 사용하면 쉽게 쿼리를 만들 수 있습니다. 쿼리가 있으면 버블 만들기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
선택 국가, 도시, SUM(ARRAY_SUM(reviews[*].ratings[*].Location)) / COUNT(1) city_avglocation, SUM(ARRAY_SUM(reviews[*].ratings[*].Service)) / COUNT(1) city_avgservice, 비율_투_보고서(COUNT(1)) OVER(파티션 기준 국가) * 100 비율_값, (TO_STR(라운드(비율_투_보고서(COUNT(1)) OVER(파티션 기준 국가) * 100, 0)) || "%" ) AS 비율_퍼센트 FROM `여행-sample` 어디 유형 = 'hotel' 그룹 by 국가, 도시 주문 기준 비율_값 desc, city_avgservice desc, 도시_평균값 desc LIMIT 10 |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
도시 city_avglocation city_avgservice 국가 비율_퍼센트 비율_val "Paris" 13.75 15.421875 "프랑스" "46%" 45.714285714285715 "샌프란시스코" 15.583333333333334 16.71969696969697 "미국" "37%" 36.56509695290859 "London" 11.567164179104477 15.746268656716419 "영국" "16%" 16.105769230769234 "샌디에이고" 15.583333333333334 16.729166666666668 "미국" "13%" 13.29639889196676 "Los Angeles" 11.971428571428572 12.628571428571428 "미국" "10%" 9.695290858725762 "버밍엄" 14.666666666666666 18.083333333333332 "영국" "9%" 8.653846153846153 "아비뇽" 10.375 13.375 "프랑스" "6%" 5.714285714285714 16.91304347826087 17.782608695652176 "영국" "6%" 5.528846153846153 "샤모니-몽블랑" 18 29.142857142857142 "프랑스" "5%" 5 "Nice" 11.571428571428571 15 "프랑스" "5%" 5 |
이 애니메이션 GIF는 이 차트를 만드는 방법을 보여줍니다.
7. 구글 차트에서는 국가와 도시를 인식하기 때문에 지리적 차트를 만드는 것이 매우 쉽습니다. 위도를 다룰 필요가 없습니다.
1 2 3 4 5 |
선택 국가, 카운트(1) num_hotels 에서 `여행-샘플` 어디 유형 = '항공사' |
1 2 3 4 5 6 |
국가 숫자_호텔 "미국" 127 "영국" 39 "프랑스" 21 |
위의 데이터를 Google 스프레드시트에 붙여넣은 다음 지역 차트를 만들면 됩니다.
8. 마커(비례 거품)가 있는 지리적 차트를 만들 수도 있는데, 이 역시 RATIO_TO_REPORT() 창 함수를 사용하여 만들 수 있습니다.
1 2 3 4 5 6 7 8 |
선택 국가, COUNT(1) AS num_hotels, (TOSTR(라운드(비율_투_보고서(COUNT(1)) OVER () * 100,0)) || "%") AS hotels_percent FROM `여행-샘플` 어디 유형 = 'hotel' 그룹 BY 국가; |
1 2 3 4 5 6 |
국가 hotels_percent 숫자_호텔 "영국" "45%" 416 "프랑스" "15%" 140 "미국" "39%" 361 |
차트를 지역(예: 미국)에 맞게 사용자 지정할 수도 있습니다.
마지막으로 이 블로그의 첫 번째 그래픽을 생성하는 쿼리입니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
선택 국가, 도시, SUM(ARRAY_SUM(리뷰[*].평가[*].위치)) / COUNT(1) city_avglocation, SUM(ARRAY_SUM(리뷰[*].평가[*].서비스)) / COUNT(1) city_avgservice, SUM(ARRAY_SUM(리뷰[*].평가[*].전체)) / COUNT(1) city_avgoverall, SUM(ARRAY_SUM(리뷰[*].평가[*].객실)) / COUNT(1) city_avgrooms, SUM(ARRAY_SUM(리뷰[*].평가[*].`가치`)) / COUNT(1) 도시_평균값 FROM `여행-샘플` 어디 유형 = 'hotel' 그룹 by 국가, 도시 주문 by city_avgservice desc, 도시_평균값 desc LIMIT 50 |