カテゴリ:

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

SYSTEM$CLUSTERING_INFORMATION

テーブルの1つ以上の列に基づいて、テーブルの平均クラスタリング深度を含むクラスタリング情報を返します。

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

SYSTEM$CLUSTERING_DEPTH

構文

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

引数

テーブル名

クラスタリング情報を返すテーブルです。

列1 [ , 列2 ... ]

クラスタリング情報が返されるテーブルの列です。

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

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

注釈

この引数を使用して、テーブルにクラスタリングキーが定義されているかどうかに関係なく、テーブル内の任意の列のクラスタリング情報を返すことができます。

つまり、これを使用して、将来使用するクラスタリングを決定できます。

使用上の注意

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

出力

この関数は、次の名前/値のペアを含む JSON オブジェクトを返します。

cluster_by_keys

クラスタリング情報を返すために使用されるテーブルの列です。テーブル内の任意の列にすることができます。

notes

この列には、クラスタリングをより効率的にするための提案を含めることができます。例えば、クラスタリング列のカーディナリティが非常に高い場合、このフィールドには警告が含まれる場合があります。

この列は空にすることができます。

効率的にクラスター化する方法の詳細については、 クラスタリングキーを選択するための戦略 をご参照ください。

total_partition_count

テーブルを構成するマイクロパーティションの総数です。

total_constant_partition_count

指定された列の値が一定の状態に達したマイクロパーティションの合計数です(マイクロパーティションは再クラスタリングの恩恵を受けない)。テーブル内の一定のマイクロパーティションの数は、クエリのプルーニングに影響を与えます。数値が大きいほど、テーブルで実行されるクエリからより多くのマイクロパーティションをプルーニングできます。これは、パフォーマンスに対応する影響があります。

average_overlaps

テーブル内の各マイクロパーティションでの、重複するマイクロパーティションの平均数です。数値が大きい場合、テーブルが適切にクラスター化されていないことを示します。

average_depth

テーブル内の各マイクロパーティションの平均重複深度です。数値が大きい場合、テーブルが適切にクラスター化されていないことを示します。

この値は、 SYSTEM$CLUSTERING_DEPTH によっても返されます。

partition_depth_histogram

テーブル内の各マイクロパーティションの重複深度の分布を示すヒストグラムです。ヒストグラムには幅のあるバケットが含まれます。

  • 1 の増分で 0 から 16

  • 16 より大きいバケットの場合、前のバケットの幅の2倍の増分(例: 3264128、...)。

マイクロパーティションの重複と深度、およびクエリプルーニングへの影響の詳細については、 Snowflakeテーブル構造について をご参照ください。

テーブルの2つの列を使用して、テーブルのクラスタリング情報を返します。

SELECT SYSTEM$CLUSTERING_INFORMATION('test2', '(col1, col3)');

+--------------------------------------------------------------+
| SYSTEM$CLUSTERING_INFORMATION('TEST2', '(COL1, COL3)')       |
|--------------------------------------------------------------|
| {                                                            |
|   "cluster_by_keys" : "(COL1, COL3)",                        |
|   "total_partition_count" : 1156,                            |
|   "total_constant_partition_count" : 0,                      |
|   "average_overlaps" : 117.5484,                             |
|   "average_depth" : 64.0701,                                 |
|   "partition_depth_histogram" : {                            |
|     "00000" : 0,                                             |
|     "00001" : 0,                                             |
|     "00002" : 3,                                             |
|     "00003" : 3,                                             |
|     "00004" : 4,                                             |
|     "00005" : 6,                                             |
|     "00006" : 3,                                             |
|     "00007" : 5,                                             |
|     "00008" : 10,                                            |
|     "00009" : 5,                                             |
|     "00010" : 7,                                             |
|     "00011" : 6,                                             |
|     "00012" : 8,                                             |
|     "00013" : 8,                                             |
|     "00014" : 9,                                             |
|     "00015" : 8,                                             |
|     "00016" : 6,                                             |
|     "00032" : 98,                                            |
|     "00064" : 269,                                           |
|     "00128" : 698                                            |
|   }                                                          |
| }                                                            |
+--------------------------------------------------------------+

この例は、次の理由により、 test2 テーブルがクラスター化されて いない ことを示しています。

  • 合計 1156 個のマイクロパーティションのうち、ゼロ(0)の一定のマイクロパーティション。

  • 重複するマイクロパーティションの平均が高い。

  • マイクロパーティション全体の重複深度の平均が高い。

  • ほとんどのマイクロパーティションはヒストグラムの下端でグループ化されており、大半のマイクロパーティションが 64128 の間の重複深度である。