首頁>技術>

資料準備

    資料來源 (點資料使用之前匯入的資料120038310條,https://juejin.cn/post/6903100159484395534)

 CREATE TABLE default.points(    `id` UInt32,    `Lon` Float32,    `Lat` Float32)ENGINE = MergeTree()ORDER BY (intHash64(id), Lon, Lat)SAMPLE BY intHash64(id)SETTINGS index_granularity = 8192insert into points SELECT id,Lon,Lat FROM pnts
取樣功能和Hash函式

SAMPLE 子句特點

該 SAMPLE 子句允許近似於 SELECT 查詢處理。

啟用資料取樣時,不會對所有資料執行查詢,而只對特定部分資料(樣本)執行查詢。 例如,如果您需要計算所有訪問的統計資訊,只需對所有訪問的1/10分數執行查詢,然後將結果乘以10即可。

近似查詢處理在以下情況下可能很有用:

當你有嚴格的時間需求(如<100ms),但你不能透過額外的硬體資源來滿足他們的成本。當您的原始資料不準確時,所以近似不會明顯降低質量。業務需求的目標是近似結果(為了成本效益,或者向高階使用者推銷確切結果)。

    Hash函式intHash64可以用於將元素不可逆的偽隨機打亂。經過測試一億多個點得抽樣效能比較滿意,可以為頁面提供比較滿意得展示。注意事項:sample的欄位必須是int型別,必須在主鍵或者排序中。抽樣sql,0.01為示例,可根據實際修改

SELECT id,Lon,Lat FROM points SAMPLE 0.01
增加服務端和網頁

    使用Express作為服務端,請求資料並且在網頁中使用Maptalks展示,本地測試[圖片上傳失敗...(image-4abeef-1609984875573)]

image

參考資料:

https://clickhouse.tech/docs/zh/sql-reference/functions/hash-functions/#md5https://clickhouse.tech/docs/zh/sql-reference/statements/select/sample/

17
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 技術中臺之DevOps自動化測試實踐