Skip to content
所有文章 ‹ Part 01 of 09 · 一個操作,三種引擎
工程 · 1 min read

ClickHouse 資料型別:實務上真正會碰到的那些

實務專案裡真正會碰到的 ClickHouse 資料型別:數值、日期時間、字串、LowCardinality、Nullable,以及複合的 Array/Tuple/Map(陣列從 index 1 開始)。

專案常用型別

先整理出目前實務專案裡最常碰到的幾組:

DateTime
String
LowCardinality(String)
UInt8
UInt16
UInt32
Int64
Float64
Nullable(Float64)
Array(String)
Array(UInt32)
Array(LowCardinality(String))

核心型別分類

數值

  • 整數:UInt8/16/32/64/128/256、Int8/16/32/64/128/256(共 12 種)
  • 浮點:Float32、Float64
  • Decimal:Decimal、Decimal32/64/128/256

日期與時間

  • Date:範圍 [1970-01-01, 2149-06-06],0 = 1970-01-01
  • Date32:範圍 [1900-01-01, 2299-12-31]
  • DateTime、DateTime64:儲存時間與額外的「時區」

字串與二進位

  • String、FixedString(N)

布林

  • Bool(內部以 UInt8 儲存)

特殊用途

  • UUID:128 bits 的高效表示
  • IPv4、IPv6
  • Enum、Enum8、Enum16
  • JSON
  • LowCardinality(T)(wrapper):改用字典編碼儲存。欄位相異值少(理想 < 10K)時,大幅提升 SELECT 效能
  • Nullable(T)(wrapper)

複合與巢狀

  • Array(T):index 從 「1」 開始
  • Tuple(T1, T2, …)
  • Map(key_type, value_type)
  • Point、Ring、Polygon、MultiPolygon(geo)

參考來源

Related: 回到跨引擎資料庫查詢總覽,或接著看 ClickHouse 陣列與條件函式。

↑↓ 移動 ↵ 開啟 esc 關閉