空间分析_ClickHouse空间分析运用

本文介绍了ClickHouse在OLAP场景中的应用,强调其在处理大量数据分析时的优势。通过安装启动ClickHouse,创建表并导入经纬度数据,然后展示了如何进行空间分析,包括计算最大小经纬度、面筛选和缓冲区计算等操作。
摘要由CSDN通过智能技术生成

ClickHouse

ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。

OLAP场景的关键特征

绝大多数是读请求

数据以相当大的批次(> 1000行)更新,而不是单行更新;或者根本没有更新。

已添加到数据库的数据不能修改。

对于读取,从数据库中提取相当多的行,但只提取列的一小部分。

宽表,即每个表包含着大量的列

查询相对较少(通常每台服务器每秒查询数百次或更少)

对于简单查询,允许延迟大约50毫秒

列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节)

处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行)

事务不是必须的

对数据一致性要求低

每个查询有一个大表。除了他意以外,其他的都很小。

查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务器的RAM中

很容易可以看出,OLAP场景与其他通常业务场景(例如,OLTP或K/V)有很大的不同, 因此想要使用OLTP或Key-Value数据库去高效的处理分析查询场景,并不是非常完美的适用方案。例如,使用OLAP数据库去处理分析请求通常要优于使用MongoDB或Redis去处理分析请求。

ClickHouse安装和启动

sudo apt-get install apt-transport-https ca-certificates dirmngrsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4echo "deb https://repo.clickhouse.tech/deb/stable/ main/" | sudo tee     /etc/apt/sources.list.d/clickhouse.listsudo apt-get updatesudo apt-get install -y clickhouse-server clickhouse-clientsudo service clickhouse-server startclickhouse-client

sudo apt-get update如果更新不了可以修改下源,然后修改source.list,clickhouse.list

bec392b358247ca12f872007b00faa38.png
c5f55de4c5801939415dca62f06a9e48.png

新建表导入所需要的数据(120038310条经纬度)

b78733518257a5541dd80be0bec3be24.png
8eadb5337ea725f075d5a887647e3b84.png
create table pnts (Lon  Float64, Lat Float64) engine = MergeTree() order by (Lon, Lat);time clickhouse-client --query="INSERT INTO pnts FORMAT CSVWithNames" < test_data.csv

ClickHouse空间分析运用

计算最大小经纬度

select min(Lon), max(Lon),min(Lat), max(Lat)FROM pnts
c1ac7157b8dab67abc82393d105c7b26.png

select geohashesInBox(-150.0565255, 24.5449115001 , -66.950609997, 65.1341342731, 4)

c362b83aecc137f4d7aae253a0082c11.png

面筛选

SELECT geohashEncode(Lon, Lat, 5),count(1) FROM pnts group by geohashEncode(Lon, Lat, 5)
7370aac57a9405feca35da05b6fbb49e.png

缓冲区计算

select geoToH3(Lon, Lat, 3),count(1) FROM pnts group by geoToH3(Lon, Lat, 3)
e34329216d575ce16559b4a59f11f415.png
select geoToH3(Lon, Lat, 3),count(1) FROM pnts group by geoToH3(Lon, Lat, 3)
8e43b4d9af2163a91b7c6b2f07bff161.png

geohash聚合

SELECT geohashEncode(Lon, Lat, 5),count(1) FROM pnts group by geohashEncode(Lon, Lat, 5)
0556cf561cb085d974a5f0342d65d7cc.png


参考资料:https://clickhouse.tech/docs/zh/https://www.osgeo.cn/qgis-tutorial/docs/3/importing_spreadsheets_csv.htmlhttps://mirror.tuna.tsinghua.edu.cn/help/clickhouse/https://blog.csdn.net/BigData_Mining/article/details/87867979http://cncc.bingj.com/cache.aspx?q=clickhouse+anzhuang&d=4519770289931770&mkt=zh-CN&setlang=zh-CN&w=J6QG46UMC2AHWpTGJHFimsC7lpDNMJO-https://github.com/ClickHouse/ClickHouse/issues/9002https://www.bookstack.cn/read/clickhouse-20.10-en/bccae583b76cdb17.mdhttps://blog.csdn.net/jimo_lonely/article/details/107498806https://github.com/ClickHouse/ClickHouse/issues/17081

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值