日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

SharedMergeTree表引擎

本文主要介紹云數據庫ClickHouse企業版中的SharedMergeTree表引擎。

SharedMergeTree簡介

SharedMergeTree表引擎僅在云數據庫ClickHouse企業版中提供。

SharedMergeTree表引擎系列是ReplicatedMergeTree引擎的云原生替代方案,適配共享對象存儲OSS,每個特定的MergeTree引擎類型都有對應的SharedMergeTree引擎,例如ReplacingSharedMergeTree替代ReplacingReplicatedMergeTree。

SharedMergeTree表引擎提高了云數據庫ClickHouse企業版的性能。對于終端用戶來說,無需做任何改變即可使用SharedMergeTree引擎系列,而不是基于ReplicatedMergeTree的引擎。它的優點如下:

  • 插入吞吐量提高。

  • 后臺合并的吞吐量提高。

  • Mutation操作的吞吐量提高。

  • 更快的擴容和縮容操作。

  • 支持SELECT查詢更輕量的數據強一致性。

SharedMergeTree帶來的一個重要改進是與ReplicatedMergeTree相比,它提供了更徹底的計算和存儲分離。下圖展示了ReplicatedMergeTree如何分離計算和存儲:image.png

正如您所見,盡管存儲在ReplicatedMergeTree中的數據位于對象存儲中,但元數據仍存儲在每個clickhouse-server上。這意味著對于每個復制操作,元數據也需要在所有副本上進行復制。

image.png與ReplicatedMergeTree不同,SharedMergeTree不需要副本之間進行通信。相反,所有通信都通過共享存儲和ClickHouse Keeper進行。SharedMergeTree實現了異步無主復制,并使用ClickHouse Keeper進行協調和元數據存儲。這意味著隨著服務的擴展,不需要復制元數據。這可以加快復制、變更、合并和擴展操作。SharedMergeTree允許每個表有數百個副本,使得無需分片即可進行動態擴展。這也意味著在云數據庫ClickHouse企業版中,使用分布式查詢執行方法可以利用更多的計算資源來執行查詢。

系統監控

用于系統監控的ReplicatedMergeTree的大部分系統表(system table)在SharedMergeTree中也存在,唯獨沒有system.replication_queuesystem.replicated_fetches,因為沒有數據和元數據的復制。然而,SharedMergeTree對這兩個表有相應的替代表。

  • system.virtual_parts:這個表作為SharedMergeTree對system.replication_queue的替代,它存儲有關最新一組data parts以及正在進行的合并、變更和刪除分區操作的未來分區信息。

  • system.shared_merge_tree_fetches:這個表是SharedMergeTree對system.replicated_fetches的替代。它包含關于正在加載入內存的主鍵和校驗碼信息。

使用SharedMergeTree

SharedMergeTree已經是企業版(development tier)中默認的表引擎,對于支持SharedMergeTree表引擎的實例,您不需要做任何額外變更。您可以像以前一樣創建表,它會自動使用基于SharedMergeTree的表引擎,該引擎與您在CREATE TABLE查詢中指定的引擎相對應。

  • 您可以通過使用SharedMergeTree表引擎可以創建my_table表。

    CREATE TABLE my_table(
     key UInt64,
     value String
    )
    ENGINE = MergeTree
    ORDER BY key 
  • 由于default_table_engine=MergeTree您不必再特別設置ENGINE=MergeTree。下面的查詢語句和上面的完全一樣。

    CREATE TABLE my_table(
     key UInt64,
     value String
    )
    ORDER BY key 
  • 如果您使用Replacing、Collapsing、Aggregating、Summing、VersionedCollapsing、Graphite MergeTree表,它們將自動轉換為相應的基于SharedMergeTree的表引擎。

    CREATE TABLE myFirstReplacingMT
    (
        `key` Int64,
        `someCol` String,
        `eventTime` DateTime
    )
    ENGINE = ReplacingMergeTree
    ORDER BY key;
  • 您可以使用SHOW CREATE TABLE查看用于創建表的語句。

    SHOW CREATE TABLE myFirstReplacingMT;
    CREATE TABLE default.myFirstReplacingMT 
    ( `key` Int64, `someCol` String, `eventTime` DateTime ) 
    ENGINE = SharedReplacingMergeTree('/clickhouse/tables/{uuid}/{shard}', '{replica}') 
    ORDER BY key 
    SETTINGS index_granularity = 8192

引擎配置

您需要關注以下引擎配置發生的變化:

  • insert_quorum:所有對SharedMergeTree的insert都是quorum insert(寫入共享對象存儲),因此在使用SharedMergeTree表引擎時不需要此設置。

  • insert_quorum_parallel:所有對SharedMergeTree的insert都是quorum insert(寫入共享對象存儲)。

  • select_sequential_consistency:不需要quorum inserts,會引起在SELECT查詢中向ClickHouse Keeper增加附加的請求。