數據不與z順序索引三角洲湖
數據時自動跳過信息收集到三角洲表中寫入數據。三角洲湖上磚利用這些信息(最大和最小值)在查詢時提供更快的查詢。你不需要配置數據跳過;這個功能被激活時適用。然而,其有效性取決於數據的布局。為達到最佳效果,適用z值。
請注意
在磚運行時的13.2及以上,磚建議使用集群為三角洲表布局。集群與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通過
日期和你最近的記錄都是更廣泛(例如長數組或字符串值)的過去,預計優化
工作的任務持續時間會傾斜,以及由此產生的文件大小。然而,這是隻有一個問題優化
命令本身;它不應該有任何的負麵影響在隨後的查詢。