カテゴリ:

システム関数 (システム情報)

SYSTEM$CLUSTERING_DEPTH

指定された列(またはテーブルに定義されたクラスタリングキー)に従ってテーブルの平均深度を計算します。データが含まれるテーブル(データを含むテーブル)の平均深度は、常に 1 以上です。平均深度が小さいほど、指定された列に関するテーブルがよりクラスタ化されます。

マイクロパーティションとクラスタリングキーの詳細については、 Snowflakeテーブル構造について をご参照ください。

こちらもご参照ください:

SYSTEM$CLUSTERING_INFORMATION

構文

SYSTEM$CLUSTERING_DEPTH( '<table_name>' , '( <col1> [ , <col2> ... ] )' [ , '<predicate>' ] )

引数

テーブル名

クラスタリングの深度を計算するテーブルです。

列1 [ , 列2 ... ]

クラスタリングの深度を計算するために使用されるテーブルの列です。

  • クラスタリングキーのないテーブルの場合、この引数は必須です。この引数を省略すると、エラーが返されます。

  • クラスタリングキーを持つテーブルの場合、この引数はオプションです。引数を省略すると、Snowflakeは定義されたクラスタリングキーを使用して深度を計算します。

注釈

この引数を使用して、テーブルに定義されたクラスタリングキーに関係なく、テーブル内の列の深度を計算できます。

述語

クラスタリングの深度を計算する列の値の範囲をフィルタリングする句です。 述語 は、句の先頭で WHERE キーワードを使用しません。

使用上の注意

  • すべての引数は文字列です(一重引用符で囲む必要あり)。

  • 述語 に文字列が含まれる場合、文字列を一重引用符で囲む必要があります。その後、一重引用符を使用してエスケープする必要があります。例:

    SYSTEM$CLUSTERING_DEPTH( ... , 'col1 = 100 and col2 = ''A''' )

テーブルに定義されたクラスタリングキーを使用して、テーブルのクラスタリングの深度を計算します。

SELECT SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS');

+----------------------------------------+
| SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS') |
|----------------------------------------+
| 2.4865                                 |
+----------------------------------------+

テーブルの2つの列を使用して、テーブルのクラスタリングの深度を計算します。

SELECT SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)');

+----------------------------------------------------+
| SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)') |
+----------------------------------------------------+
| 23.1351                                            |
+----------------------------------------------------+

前の例と同じですが、いずれかの列に述語があります。

SELECT SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)', 'C2 = 25');

+----------------------------------------------------+
| SYSTEM$CLUSTERING_DEPTH('TPCH_ORDERS', '(C2, C9)') |
+----------------------------------------------------+
| 11.2452                                            |
+----------------------------------------------------+