CHAPTER 2 빅데이터의 탐색
2-1. 크로스 집계의 기본
2-2. 열 지향 스토리지에 의한 고속화
2-3. 애드 혹 분석과 시각화 도구
2-4. 데이터 마트의 기본 구조
2-5. 요약
2장에서는 데이터를 시각화하는 환경을 정비함으로써 대량의 데이터를 효율적으로 탐색할 수 있도록 준비한다.
Jupyter Notebook에 의한 애드 혹 분석 : 노트북에 분석 과정 기록하기
데이터 분석을 시작하는 데 있어, 처음에는 원하는 데이터가 어디에 있는지, 집계 시간이 얼마나 걸리는지 알지 못하여 여러 시행착오를 겪어야 한다. 그러한 과정에서는 대화형 실행 환경이 자주 사용된다.
오픈 소스의 대화형 도구로 인기 있는 것 중 하나는 'Jupyter Notebook'이다. 파이썬과 루비, R 언어 등 스크립트 언어를 실행할 수 있다.
사용할 언어를 선택하여 새 '노트북'을 만들고, 파이썬 스크립트와 외부 명령어를 실행한다. 마크다운 형식으로 주석을 넣거나, 사진/수식을 포함할 수도 있다.
이 노트북 안에서 애드 혹 분석으로 크로스 집계 결과를 확인할 수 있다. Jupyter Notebook은 웹 애플리케이션이며, 일반적으로 로컬 호스트에서 작동한다.
노트북 내에서의 시각화
matplotlib는 시각화 라이브러리 중 하나로, 파이썬을 사용하여 그래프를 생성한다. 이를 위해서는 프로그래밍이 필요하기 때문에 시간이 다소 소요될 수 있지만, 데이터 분석 과정에서 여러 방법으로 그래프를 만드는 경우 매우 유용하다.
노트북에 의한 워크플로
데이터 처리를 위한 일련의 태스크를 노트북에 정리해 놓고 메뉴의 [kernel]에서 [restart & run all] 을 선택하면, 모든 셀이 처음부터 순서대로 실행된다. 이렇게 수작업을 통해 실행할 수 있으며, 아래와 같은 느낌표(!) 명령어를 사용하여 외부 명령어를 실행할 수 있다.
# 외부 커맨드를 실행하기
!cp source.csv target.csv
* GitHub에서는 Jupyter notebook의 형태를 지원하고 있어 버전 관리를 할 수 있다.
대시보드 도구 : 정기적으로 집계 결과를 시각화하기
애드 혹 분석과는 반대로, 정기적으로 쿼리를 실행해 보고서를 작성하거나 주요 그래프를 모아서 대시보드를 작성하는 것을 고려해보면, BI 도구를 사용하는 것이 적합하다. 그러나 대시보드를 만드는 것만이 목적이라면 그것에 특화된 전용 도구가 사용된다.
대시보드 도구는 새로운 그래프를 쉽게 추가할 수 있는 것이 중요시되고, BI 도구는 대화형 데이터 탐색이 중요시된다.
대시보드 도구에서는 최신의 집계 결과를 즉시 확인할 수 있길 기대한다. 하루에 한번 자동 갱신하거나, 실시간으로 업데이트 할 수 있어야 한다.
오픈 소스의 대시보드 도구는 'Redash', 'Superset'이 있으며 실시간 시각화 도구인 'Kibana'가 있다.
Redash
Redash는 다수의 데이터 소스에 대응하는 파이썬으로 만든 대시보드 도구로 SQL에 의한 쿼리의 실행 결과를 그대로 시각화하는 데 적합하다. 아래의 순서로 대시보드를 작성한다.
1) 데이터 소스를 등록한다.
2) 쿼리를 실행해서 표와 그래프를 만든다.
3) 그래프를 대시보드에 추가한다.
하나의 쿼리가 하나 또는 여러 그래프에 대응하며, 등록한 쿼리는 정기적으로 실행회어 데이터베이스에 저장된다.
Redash의 구조는 알기 쉽고, SQL를 사용하여 분석 및 공유할 수 있는 점에서 우수하지만, BI 도구만큼 대량의 데이터를 처리할 수는 없다. 각 쿼리는 그래프를 만드는데 필요한 수십 행 또는 수백 행 정도의 레코드만 반환하기 때문에 대시보드가 증가함에 따라 백엔드 데이터베이스의 부하가 높아지게 된다.
Superset
(https://superset.apache.org/)
Superset은 대화형 대시보드를 작성하기 위한 파이썬으로 만든 웹 어플리케이션이다. Redash처럼 쿼리를 작성하는 것이 아닌, 마우스 조작으로 그래프를 만드는 것이 기본이다.
여러 데이터 소스에 대응하고 있으며, Redash와는 달리 대화형 시각화이기 때문에, 데이터 소스에 의한 집계를 몇 초 이내에 완료한다.
Superset은 내장 스토리지 시스템을 갖고 있지 않아, 데이터 집계는 외부 데이터 저장소에 의존한다. 또, BI 도구와 마찬가지로 시각화를 위한 데이터 마트를 먼저 만들어야 한다.
Kibana
(https://www.elastic.co/kr/kibana/)
Kibana는 자바스크립트로 만들어진 대화식 시각화 도구로, 실시간 대시보드를 만드는데 자주 이용된다.
검색 엔진인 'Elasticsearch'의 프런트엔드로 개발되었기 때문에 도입에는 Elasticsearch가 필수다. 그 외의 데이터 소스에는 대응하고 있지 않아 모두 Elasticsearch에 저장해야 한다.
Elasticsearch는 '전체 텍스트 검색'에 대응한 데이터 스토어이다. 따라서 키워드로 텍스트 데이터를 검색하려는 경우에 우수하고, 검색 조건에 맞는 데이터를 빠르게 시각화하는 데 적합한 도구다.
BI 도구 : 대화적인 대시보드
장기적인 데이터의 추이를 시각화하거나, 집계의 조건을 세부적으로 바꿀 수 있는 대시보드를 만들려면 BI 도구를 사용하는 것이 적합하다.
BI 도구에서는 시간을 들여 데이터를 분석하기 쉽도록 가공하는 일을 자주 한다. 종종 하나 또는 소수의 데이터 소스에서 다수의 그래프를 만든다.
무엇을 보고 싶은지에 따라 다수의 대시보드를 만드는데, 거기에 표시되는 데이터는 화면상에서 추려낼 수 있도록 디자인한다. 처음에는 하나의 테이블을 준비하여 그 상세를 확인할 수 있는 대화형 대시보드를 제공하는 형태가 된다.
'AI & 빅데이터 > [Book] 빅데이터를 지탱하는 기술' 카테고리의 다른 글
[책정리] 빅데이터를 지탱하는 기술 : 3-1. 대규모 분산 처리의 프레임워크 (0) | 2022.06.08 |
---|---|
[책정리] 빅데이터를 지탱하는 기술 : 2-4. 데이터 마트의 기본 구조 (0) | 2022.06.03 |
[책정리] 빅데이터를 지탱하는 기술 : 2-2. 열 지향 스토리지에 의한 고속화 (0) | 2022.05.23 |
[책정리] 빅데이터를 지탱하는 기술 : 2-1. 크로스 집계의 기본 (0) | 2022.05.23 |
[책정리] 빅데이터를 지탱하는 기술 : 1-4 BI 도구와 모니터링 (0) | 2022.05.04 |