數據不與z順序索引三角洲湖

數據時自動跳過信息收集到三角洲表中寫入數據。三角洲湖上磚利用這些信息(最大和最小值)在查詢時提供更快的查詢。你不需要配置數據跳過;這個功能被激活時適用。然而,其有效性取決於數據的布局。為達到最佳效果,適用z值

默認情況下三角洲湖磚收集統計數據的第一個32列上定義在你的表模式。你可以改變這個值使用表屬性delta.dataSkippingNumIndexedCols。添加更多的列收集統計信息將添加更多的開銷你寫文件。

收集統計信息在長字符串是一項昂貴的操作。為了避免在長字符串收集統計信息,您可以配置表屬性delta.dataSkippingNumIndexedCols為了避免列包含長字符串或移動列包含一列大於長字符串delta.dataSkippingNumIndexedCols使用改變改變。看到ALTER TABLE

為了收集統計信息,每個字段在一個嵌套列被認為是一個單獨的列。

z軸次序是什麼?

z值是一個技術把相關信息在同一組文件。這個三角洲湖co-locality自動使用磚data-skipping算法。這種行為大大減少了三角洲湖在磚的數據量需要閱讀。z值數據,在指定的列順序ZORDER通過條款:

優化事件在哪裏日期> =current_timestamp()- - - - - -時間間隔1一天ZORDER通過(eventType)

如果你期望一個列中常用查詢謂詞,如果這一列具有較高的基數(即大量不同值),然後使用ZORDER通過

您可以指定多個列ZORDER通過作為一個以逗號分隔的列表。然而,當地的有效性下降與每個額外的列。z值列上,沒有統計數據是無效和浪費資源。這是因為數據不需要column-local統計如min,馬克斯和計數。您可以配置在某些重新排序的列的列統計信息收集模式,或者你可以增加列的數量收集統計信息。

請注意

  • z值是不是冪等但旨在成為一個增量操作。z值的時間是不能保證減少多個運行。然而,如果沒有新的數據隻是z值添加到一個分區,該分區的另一個Z-ordering不會有任何效果。

  • z值的目標是生產均衡數據文件對元組的數量,但不一定是磁盤上的數據大小。兩種措施通常是相關的,但可以有情況並非如此,導致斜在優化任務的時期。

    例如,如果你ZORDER通過日期和你最近的記錄都是更廣泛(例如長數組或字符串值)的過去,預計優化工作的任務持續時間會傾斜,以及由此產生的文件大小。然而,這是隻有一個問題優化命令本身;它不應該有任何的負麵影響在隨後的查詢。