使用 NineData GUI 建立與修改 ClickHouse 表結構

NineData發表於2023-02-09

01 前言

隨著 ClickHouse 的快速發展,越來越多的開發者關注並在業務中使用 ClickHouse。作為開發人員除了在應用中訪問資料庫、進行業務資料的分析跟進,還有很重要的一個庫表結構的設計。但在 ClickHouse 官方文件推薦的眾多第三方開發的視覺化管理工具中,不論是商業的還是開源的,絕大多數只關注在其資料的查詢、分析、報表呈現、效能等領域,對錶結構變更的視覺化管理僅 DBeaver、DBM 有少量支援(前者互動較重,後者僅少量場景的新建支援,可參考兩個產品的建表介面)。

參考兩個產品DBeaver、DBM的建表介面


在前面的文章中我們已經介紹過「NineData:強大的ClickHouse圖形客戶端工具」,今天我們重點來介紹一下如何透過 NineData 幫助開發者,透過 GUI 的方式建立、修改 ClickHouse 的資料庫表結構。


02 新建表

進入 NineData 平臺後(),首先開啟左側的 SQL 視窗,選擇我們的目標資料來源(此處演示為 ck_叢集測試1);在左側物件導航樹找到我們的目標資料庫(此處演示為 str_test),在該物件名上滑鼠右鍵選擇“建立表”,進入新建表頁面,如下:


NineData SQL視窗


預設我們會提供預設表名、主鍵 id 等資訊,預設表引擎為 ClickHouse 裡最強的 MergeTree,您可按需調整表名、註釋、引擎引數、欄位、壓縮與編碼、索引、排序鍵(key 配置)、投影、約束、分割槽、過期時間等相關資訊。如果您想要在指定邏輯叢集的多個節點同時建立同一個表,也可以選擇配置 on cluster 引數(此處演示選擇 ninedata_cluster);當您選擇 on cluster 引數後,我們提供您一鍵為“本地表”建立“分散式表”的能力(勾選 建立分散式表,您可在下方 SQL 指令碼中實時看到對應的語句);若您暫時不需要建立分散式表,則可取消該勾選項。


NineData 提供一鍵“本地表”建立“分散式表”的能力


另外,如果您的本地表已經建立在每個分片節點上,您想對其再建立一個分散式表,您只需要將表引擎選擇為 Distributed ,我們同樣為您提供高效的建立方案。當您選擇好本地表,我們將為您一鍵帶入本地表的欄位相關定義資訊,只需要補充分散式引數就可以完成建立(一般建議填寫 sharding_key,此處示例為 user_id;預設分散式表的表名為“本地表名稱_all”)。


NineData 選擇本地表


在建表語句確認後,點選頁面的儲存,完成確認即可執行生效到資料庫中。執行完成後您再 SQL 視窗可透過如下 SQL 進行確認:

## 檢視邏輯叢集有哪些分片節點:
## 此處 ninedata_cluster 需要替換為您使用的邏輯叢集名
select *
  from system.clusters
 where cluster='ninedata_cluster';
 
 ## 檢視本地表、分散式表的建立情況:
 ## 此處 order 需要替換為您實際定義的本地表的表名稱
 ## 此處str_test 需要替換為您實際使用的ClickHouse資料庫名稱
 
 SELECT *
  from system.tables
 where name like 'order%'
   and database='str_test';
   
您還可以按需在SQL1查出來的邏輯叢集分片上逐一確認表結構、建表語句等資訊。


當前,我們的「新建表」功能完整支援 ClickHouse 的所有表引擎、引擎引數、欄位屬性等相關的選擇與配置;同時,新建表對叢集與分散式的支援,即可以幫您保障多個本地表在叢集分片上的一致、分散式表與本地表的一致,更可有效幫您提升研發效率,減少重複工作的投入。


03 修改表

當業務發展發生需求變更時,表結構的修改也是極其常見的需求;此時您只需要在 SQL 視窗左側導航樹找到對應目標表,右鍵“編輯表”即可進入修改頁面,欄位等相關資訊您可按需修改(注:為了更好的適配 ClickHouse 的特性,部分資訊如表引擎等是不支援修改的,具體資料庫支援能力參考 ClickHouse 官方文件)。


NineData 修改表


當前,我們的「編輯表」功能也完整支援 ClickHouse 的全部變更操作,叢集多個分片的一致性變更也已支援。


04 總結

關於 ClickHouse 表結構變更的視覺化管理,今天先介紹到這裡。當前 NineData 已經完全適配支援  ClickHouse 所有表引擎的新建及其變更,在叢集與分散式表的新建支援上更是做了聯動最佳化,進一步幫助廣大開發者提升效率,減少不一致現象的出現。未來,我們將繼續迭代最佳化支援本地表與分散式表的一鍵聯動更新,NineData 讓每個人用好資料和雲。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024772/viewspace-2934530/,如需轉載,請註明出處,否則將追究法律責任。

相關文章