0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Z-Orderについて調べてみた

0
Posted at

背景・目的

Z-Orderについて、あまり理解できてないので整理します。

まとめ

下記に特徴をまとめます。

特徴 説明
Z-Order 関連する情報を同じファイルセット内に共存させる手法
読み取る必要があるデータ量が削減される
有効な場合 カーディナリティが高い場合(カラムの一意な値の種類が多い場合)
注意点 列が増えるごとにローカリティの効果は低下する
データをスキップするには、min,max,countなどの列ローカルの統計が必要なため、統計が収集されてない列のZ-Orderは効果がない
仕組み space-filling curve (SFC)を使用する。空間充填曲線
SFC 多次元空間を一次元空間にマッピングする方法

概要

Z-Ordering関連する情報を同じファイル セット内に共存させる手法です。 Databricks のデータ スキッピング アルゴリズムは、この共局所性を自動的に使用します。この動作により、読み取る必要があるデータの量が削減されます。データをZ-Orderするには、 ZORDER BY句で順序付けする列を指定します。

  • 関連する情報を同じファイルセット内に共存させる手法
  • 読み取る必要があるデータ量が削減される

列がクエリ述語で一般的に使用されることが予想され、その列のカーディナリティが高い(つまり、多数の個別の値がある)場合は、ZORDER BYを使用します。

  • クエリが頻繁に利用される
  • カーディナリティが高い場合(カラムの一意な値の種類が多い場合)に、ZORDERを使用する

ZORDER BYにはカンマ区切りで複数の列を指定できます。しかし、列が増えるごとにローカリティの効果は低下します。統計が収集されていない列の Z-ordering は効果がなく、リソースの無駄遣いです。データをスキップするには、min、max、countといった列ローカルの統計が必要だからです。スキーマの列の順序を変更することで、特定の列に対する統計情報収集を設定したり、統計情報を収集する列の数を増やしたりすることができます。

  • 列が増えるごとにローカリティの効果は低下する
  • データをスキップするには、min,max,countなどの列ローカルの統計が必要なため、統計が収集されてない列のZ-Orderは効果がない

Z-order は、複数の列を同時にクエリするときにクエリパフォーマンスを向上させるソートされたデータセットを作成します。

  • 複数列を同時にクエリする際に、クエリパフォーマンスを向上させるソートされたデータセットを作成する

A space-filling curve (SFC) is a way of mapping a multidimensional space into a one-dimensional space. It acts like a thread that passes through every cell element (or pixel) in the multidimensional space so that every cell is visited exactly once.

  • 空間充填曲線(SFC)は、多次元空間を一次元空間にマッピングする方法
  • SFCは、多次元空間内のすべてのセル要素(またはピクセル)を通過する糸のように機能し、すべてのセルを正確に一度だけ通過する

2次元を1次元に変換してみる

下記のパターンの入力値で考える。

入力1 入力2 ビット1 ビット2 インターリーブ処理(ビット) 最終結果(値)
4 3 0100 0011 1010 1010 26
4 4 0100 0100 0011 0000 48
5 6 0101 0110 0011 1001 57
6 5 0110 0101 0011 0110 54
7 12 0111 1100 1011 0101 181
  • (5,6)と(6,5)は近いが、(4,3)_と(4,4)は一見近そうだが、実際は遠くになる

考察

今回、Z-Orderについて調べてみました。頻繁に使用されるクエリ、カーディナリティが多い、2〜3程度のカラムの場合に有効と理解しました。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?