목표
- OpenCelliD 데이터를 ClickHouse에 로드하는 방법
- Apache Superset을 ClickHouse에 연결하는 방법
- 데이터셋에서 사용할 수 있는 데이터를 기반으로 대시보드를 구축하는 방법
데이터셋 가져오기
- ClickHouse Cloud
- 자가 관리형
샘플 데이터 로드
ClickHouse Cloud는 이 데이터셋을 S3에서 업로드할 수 있는 간편한 옵션을 제공합니다. ClickHouse.cloud에서 ClickHouse Cloud 조직에 로그인하거나 무료 체험판을 만드십시오.서비스를 선택한 후Data sources -> Predefined sample data를 클릭하십시오.샘플 데이터 탭에서 기지국 데이터셋을 선택한 다음 데이터 로드를 클릭하십시오:cell_towers 테이블의 스키마 확인
SQL 콘솔에 연결
SQL 콘솔에 연결
ClickHouse Cloud 서비스 목록에서 서비스를 클릭하십시오.그러면 SQL 콘솔로 이동합니다.
DESCRIBE의 출력입니다. 필드 유형 선택에 대해서는 이 가이드의 뒤쪽에서 설명합니다.예시 쿼리 몇 가지 실행하기
- 유형별 기지국 수:
- 모바일 국가 코드(MCC)별 기지국:
사용 사례: Geo 데이터 활용
pointInPolygon 함수를 사용합니다.
- 다각형을 저장할 테이블을 생성합니다.
- ClickHouse Cloud
- 자가 관리형
- 다음은 모스크바의 대략적인 윤곽입니다(“new Moscow” 제외).
- 모스크바의 기지국 수를 확인하세요:
스키마 검토
이 테이블의 스키마는 디스크에서 compact하게 저장하고 쿼리 속도를 높일 수 있도록 설계되었습니다.
radio데이터는 문자열이 아니라Enum8(UInt8)로 저장됩니다.mcc, 즉 모바일 국가 코드는 값의 범위가 1~999이므로UInt16으로 저장됩니다.lon과lat는Float64입니다.
Apache Superset으로 시각화 만들기
pip install clickhouse-connect로 ClickHouse Connect만 추가하면 됩니다. Superset을 설치해야 한다면 바로 아래의 Docker에서 Apache Superset 실행을 여십시오.
Docker에서 Apache Superset 실행
Docker에서 Apache Superset 실행
Superset은 Docker Compose를 사용해 로컬에서 Superset을 설치하는 방법을 제공합니다. GitHub에서 Apache Superset 리포지토리를 체크아웃한 후 최신 개발 코드를 실행하거나 특정 태그를 지정해 실행할 수 있습니다.
pre-release로 표시되지 않은 최신 릴리스이므로 2.0.0 릴리스를 권장합니다.docker compose를 실행하기 전에 몇 가지 작업을 수행해야 합니다:- 공식 ClickHouse Connect 드라이버 추가
- Mapbox API Key를 발급받아 환경 변수로 추가(선택 사항)
- 실행할 Superset 버전 지정
공식 ClickHouse connect driver
Superset 배포에서 ClickHouse Connect 드라이버를 사용할 수 있도록 로컬 requirements 파일에 추가합니다:Mapbox
이는 선택 사항입니다. Mapbox API Key 없이도 Superset에서 위치 데이터를 표시할 수 있지만, 키를 추가해야 한다는 메시지가 표시되고 지도 배경 이미지는 나타나지 않습니다(데이터 포인트만 보이고 지도 배경은 보이지 않습니다). 원하면 Mapbox의 무료 플랜을 사용할 수 있습니다.가이드에서 생성하는 일부 예시 시각화는 경도와 위도 같은 위치 데이터를 사용합니다. Superset은 Mapbox 지도도 지원합니다. Mapbox 시각화를 사용하려면 Mapbox API Key가 필요합니다. Mapbox 무료 플랜에 가입한 후 API Key를 생성하십시오.Superset에서 API Key를 사용할 수 있도록 설정합니다:Superset 버전 2.0.0 배포
2.0.0 릴리스를 배포하려면 다음을 실행합니다:- ClickHouse 서비스를 Superset 데이터베이스로 추가합니다.
- cell_towers 테이블을 Superset 데이터셋으로 추가합니다.
- 몇 가지 차트를 만듭니다.
- 차트를 대시보드에 추가합니다.
Superset에 ClickHouse 서비스를 데이터베이스로 추가
ClickHouse Cloud 서비스의 연결 정보는 ClickHouse Cloud 콘솔에서 확인할 수 있습니다.
서비스를 선택한 다음 Connect를 클릭하십시오.
HTTPS를 선택하십시오. 연결 정보가 예시
curl 명령으로 표시됩니다.
자가 관리형 ClickHouse를 사용하는 경우 연결 정보는 ClickHouse 관리자가 설정합니다.
Superset에서는 데이터베이스 유형을 선택한 다음 연결 정보를 입력하여 데이터베이스를 추가할 수 있습니다. Superset을 열고 **+**를 찾으십시오. Data를 선택한 다음 Connect database 옵션을 클릭하십시오.
목록에서 ClickHouse Connect를 선택하십시오.
ClickHouse Connect가 옵션에 없으면 설치해야 합니다. 명령은
pip install clickhouse-connect이며, 자세한 내용은 여기에서 확인할 수 있습니다.연결 정보 추가
테이블 cell_towers를 Superset 데이터셋으로 추가하기
default), 그리고 cell_towers 테이블을 선택합니다:
몇 가지 차트 만들기
cell_towers)과 차트 유형을 지정해야 합니다. OpenCelliD 데이터셋은 기지국의 경도와 위도 좌표를 제공하므로 Map 차트를 만들겠습니다. deck.gL Scatterplot 유형은 지도 위의 밀집된 데이터 포인트를 표현하는 데 적합하므로 이 데이터셋에 잘 맞습니다.
맵에 사용할 쿼리 지정
lon 및 lat 필드에는 경도와 위도가 들어 있습니다:
mcc = 204인 필터를 추가합니다(또는 다른 mcc 값으로 대체할 수 있습니다):
radio = 'UMTS'인 필터를 추가합니다(또는 다른 radio 값으로 대체할 수 있으며, 선택 가능한 값은 DESCRIBE TABLE cell_towers 출력에서 확인할 수 있습니다):
다음은 radio = 'UMTS' 및 mcc = 204로 필터링하는 차트의 전체 구성입니다:
시각화를 렌더링하려면 UPDATE CHART를 클릭합니다.