iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
Software Development

ClickHouse:時序資料庫建置與運行系列 第 11

day11-SQL使用與操作方法介紹(二)

  • 分享至 

  • xImage
  •  

前言

在前一章節中,我們介紹了簡易的建立資料表與資料庫,以及寫入資料的兩種方式。在本章節中,我們會介紹ClickHouse資料庫與資料表引擎,並以清單的方式呈現與區分,後續各個資料庫與資料表引擎的細節會在後面的章節提到。

資料庫引擎

資料庫引擎允許我們可以使用哪一些資料表。ClickHouse資料庫預設會使用Atomic之資料庫引擎,其提供了可以設定資料庫引擎與SQL語句可以使用。

下面是ClickHouse資料庫支援資料庫引擎的完整清單,如下列表所示:

  1. Atomic
  2. MySQL
  3. MaterializedMySQL
  4. Lazy
  5. PostgreSQL
  6. MaterializedPostgreSQL
  7. Replicated
  8. SQLite

資料表引擎

資料表引擎,或是可以稱為資料表的類型,是需要決定下列幾件事情:

  1. 資料是如何存放以及存在哪裡,寫入資料到哪裡以及從哪裡進行讀取資料。
  2. 支援哪一些的SQL查詢並且是如何支援這些查詢。
  3. 使用併發性的資料存取。
  4. 如果有的話,索引的使用。
  5. 是否有支援多執行緒的請求執行的功能特性。
  6. 資料複製(replication)相關的參數。

資料表引擎家族

MergeTree

對於高負載的任務,且最廣泛與功能性的資料表引擎所使用的,這些資料表引擎共同的特性是會以快速的資料寫入和後續的背景資料處理。MergeTree系列的引擎支援了資料複製(replication),這個特性可以使用複製(replicated)版本的資料表引擎、分區、次要跳數索引(secondary data skipping indexes)以及其他資料表引擎所不支援的功能。

這系列的引擎如下:

  1. MergeTree
  2. ReplacingMergeTree
  3. SummingMergeTree
  4. AggregatingMergeTree
  5. CollapsingMergeTree
  6. VersionedCollapsingMergeTree
  7. GraphiteMergeTree

Log

此資料表引擎屬於輕量型的,且有著最小的功能,當我們需要快速的寫入多個小的資料表時,這些資料表引擎是最有效率的,資料筆數約為一百萬筆,並且可以在稍候立即的讀取這些資料。

這些引擎的家族如下:

  1. TinyLog
  2. StripeLog
  3. Log

Integration Engines整合的資料引擎

這類引擎通常是用來連接其他的資料儲存或是處理的系統,相關的引擎家族如下列表:

  1. ODBC
  2. JDBC
  3. MySQL
  4. MongoDB
  5. HDFS
  6. S3
  7. Kafka
  8. EmbeddedRocksDB
  9. RabbitMQ
  10. PostgreSQL

特殊的資料表引擎

特殊的資料表引擎家族如下列表:

  1. Distributed
  2. MaterializedView
  3. Dictionary
  4. Merge
  5. File
  6. Null
  7. Set
  8. Join
  9. URL
  10. View
  11. Memory
  12. Buffer

虛擬欄位

虛擬欄位是不可或缺的資料表引擎屬性,這屬性定義在資料表引擎的原始碼中。

我們不應該在使用CREATE TABLE建立資料表的時候,指定虛擬的欄位且我們使用SHOW CREATE TABLEDESCRIBE TABLE等SQL語句查詢資料表綱要的時候,在查詢完的結果不會看到上述這些虛擬的欄位,虛擬欄位是唯讀的,所以我們無法寫入資料到虛擬的欄位中。

為了要從虛擬欄位中查詢資料,我們必須指定它們的名稱來進行查詢,即使用SELECT COLUMN_NAME方式,若使用SELECT *方式的查詢結果則無法包含虛擬欄位所對應的結果。

如果我們要建立一個資料表且某個欄位名稱與虛擬欄位名稱相同時,虛擬欄位名稱會變成無法存取,同時ClickHouse官方也不建議這麼做,為了解決上述這類的衝突,虛擬欄位名稱最前面通常是包含以底線作為分隔的前墜字串。

結論

在本章節中,我們以清單方式整理出ClickHouse資料庫所支援的資料庫與資料表引擎;除了上述兩種引擎列表之外,還支援了整合的資料引擎介面與特殊的資料表引擎。在下一章節中,我們將要討論ClickHouse資料庫中的SQL語句與相關的資料。

參考資料


上一篇
day10-SQL使用與操作方法介紹(一)
下一篇
day12-SQL使用與操作方法介紹(三)
系列文
ClickHouse:時序資料庫建置與運行30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言