환경 센서 데이터
Sensor.Community는 기여자가 주도하는 글로벌 센서 네트워크로, 공개 환경 데이터(Open Environmental Data)를 생성합니다. 데이터는 전 세계의 센서에서 수집됩니다. 누구나 센서를 구매해 원하는 곳에 설치할 수 있습니다. 데이터를 다운로드하기 위한 API는 GitHub에 있으며, 데이터는 Database Contents License (DbCL) 하에서 자유롭게 이용할 수 있습니다.
참조
이 데이터셋에는 200억 개가 넘는 레코드가 있으므로, 사용 중인 리소스로 해당 수준의 데이터 양을 처리할 수 있는지 확인하지 않았다면 아래 명령을 그대로 복사·붙여넣기 하지 않도록 주의해야 합니다. 아래 명령은 ClickHouse Cloud의 프로덕션 인스턴스에서 실행되었습니다.
- 데이터는 S3에 있으므로,
s3테이블 함수(table function)를 사용해 파일로부터 테이블을 생성할 수 있습니다. 또한 데이터를 원위치에서 직접 쿼리할 수도 있습니다. ClickHouse에 데이터를 삽입하기 전에 몇 개의 행을 먼저 살펴보겠습니다:
데이터는 CSV 파일에 저장되어 있지만 구분 기호로 세미콜론을 사용합니다. 각 행은 다음과 같습니다:
- ClickHouse에 데이터를 저장하기 위해 다음과 같은
MergeTree테이블을 사용합니다.
- ClickHouse Cloud 서비스에는
default라는 클러스터가 있습니다. 클러스터의 각 노드에서 병렬로 S3 파일을 읽는s3Cluster테이블 함수(table function)를 사용합니다. (클러스터가 없다면s3함수만 사용하고 클러스터 이름은 제거하십시오.)
이 쿼리는 실행에 다소 시간이 소요됩니다. 압축을 해제하면 약 1.67T의 데이터입니다.
다음은 응답으로, 처리된 행 수와 처리 속도를 보여 줍니다. 초당 600만 행 이상이 입력됩니다!
sensors테이블에 얼마나 많은 디스크 용량이 필요한지 확인해 보겠습니다:
1.67T 데이터는 310 GiB로 압축되었으며, 총 206억 개의 행이 있습니다:
- 이제 데이터가 ClickHouse에 들어갔으므로 데이터를 분석해 보겠습니다. 더 많은 센서가 배포될수록 데이터 양이 시간이 지남에 따라 증가하는 것을 확인하십시오:
SQL Console에서 차트를 생성해 결과를 시각화할 수 있습니다:

- 이 쿼리는 지나치게 덥고 습한 날의 수를 집계합니다:
다음은 결과를 시각화한 것입니다.
