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

Compaction(Beta)

當離線導入大量數據或大量執行deleteupdate操作后,可能會由于數據文件的碎片化導致讀寫性能下降,此時需要執行壓縮(Compaction)操作。Compaction操作將多個數據文件合并成一個更大的數據文件,執行Compaction操作有助于重新組織數據存儲結構,提高讀寫效率。本文介紹在Hologres中如何進行Compaction操作。

背景信息

Hologres的數據寫入模型使用了與LSM-Tree類似的數據結構,數據都是以Append Only的方式寫入存儲的。這種數據結構可以將隨機寫變為順序寫,這是一種面向寫優化的數據結構,能夠有效提升寫入的吞吐量。寫入的數據文件需要通過Compaction合并成一個更大的數據文件。

Hologres中存在兩類Compaction操作:

  • Auto Compaction

    Hologres的Auto Compaction是分層的。最多有五層,當單層文件超過五個時,會自動觸發Compaction,Compaction完成后的文件會放到下一層。例如Level 0的文件達到五個后,會自動觸發Compaction,將五個文件合并,合并后的文件默認最大為64 MB,如果文件大小超過64 MB后,會生成多個文件,合并后的文件會放到Level 1,示意圖如下所示:

    image.png

  • Full Compaction

    Auto Compaction只會發生在某層內部,不會跨層合并文件。Full Compaction會將所有層的所有文件進行合并,合并后每個文件默認的最大的大小為64 MB,合并后的文件會放到最后一層。

使用限制

  • 僅Hologres V2.1及以上版本支持手動觸發Full Compaction,如果您的實例是V2.1以下版本,請您使用自助升級或加入實時數倉Hologres交流群申請升級實例,詳情請參見如何獲取更多的在線支持?

  • 僅列存表和行列共存表可以主動觸發Full Compaction。

  • 行列共存表執行Full Compaction之后,僅列存部分會執行Full Compaction。

使用說明

  • 使用場景:

    對于如下場景可以主動觸發Full Compaction,合并小文件,提升查詢效率:

    • 離線導入大量數據后。

    • 大量執行delete或者update操作之后。

    說明

    Full Compaction時會占用大量IO和CPU資源,請在寫入低峰期執行。一般執行會持續10分鐘以上。

  • 命令語法:

    SELECT hologres.hg_full_compact_table(
      '<schema_name.table_name>'
      [,'max_file_size_mb=<value>']
    );
  • 參數說明:

    參數名稱

    說明

    是否必填

    默認值

    schema_name.table_name

    需要執行Full Compaction操作的表名稱。

    max_file_size_mb

    (不推薦隨意更改)指定需要執行Full Compaction后生成文件的最大大小,取值必須是正整數,單位為MB

    若調小此參數值,會導致數據文件變多,文件過多會導致查詢變慢。

    64

  • 使用示例:

    • 對表public.lineitem執行Full Compaction操作:

      SELECT hologres.hg_full_compact_table( 'public.lineitem');
    • 對表public.lineitem執行Full Compaction操作,指定合并后輸出的文件大小最大為256 MB:

      SELECT hologres.hg_full_compact_table(
       'public.lineitem',
       'max_file_size_mb=256'
      );