SYSTEM$CLUSTERING_INFORMATION

SYSTEM$CLUSTERING_INFORMATION

SYSTEM$CLUSTERING_INFORMATION() 함수는 테이블의 하나 이상의 컬럼을 기반으로, 평균 클러스터링 깊이와 Automatic Clustering 버전을 포함한 클러스터링 정보를 반환해요.

출처: Snowflake SQL Reference

본문

문법

SYSTEM$CLUSTERING_INFORMATION( '<table_name>'
    [ , { '( <expr1> [ , <expr2> ... ] )' | <number_of_errors> } ] )

사용 메모

  • 함수의 두 번째 인자는 컬럼 이름/표현식 또는 오류 수를 지정해요. 단일 함수 호출에 두 인자를 모두 포함할 수 없어요.
  • 테이블 이름, 컬럼 이름, 표현식은 문자열이므로 작은따옴표로 감싸야 해요.
  • Optima Clustering을 사용하는 테이블에서는 다음 필드를 사용할 수 없어요. Optima Clustering에 대한 자세한 내용은 Optima Clustering을 참고하세요.

반환

이 함수는 VARCHAR 타입 값을 반환해요.

반환된 문자열은 JSON 형식이며 다음 이름/값 쌍을 포함해요.

마이크로 파티션 겹침과 깊이, 그리고 이들이 쿼리 프루닝(pruning)에 미치는 영향에 대한 자세한 내용은 Snowflake 테이블 구조 이해를 참고하세요.

예제

가장 최근 클러스터링 오류 5개를 반환해요.

SELECT SYSTEM$CLUSTERING_INFORMATION('t1', 5);

테이블의 두 컬럼을 사용해 테이블의 클러스터링 정보를 반환해요.

SELECT SYSTEM$CLUSTERING_INFORMATION('test2', '(col1, col3)');
+--------------------------------------------------------------------+
| SYSTEM$CLUSTERING_INFORMATION('TEST2', '(COL1, COL3)')             |
|--------------------------------------------------------------------|
| {                                                                  |
|   "cluster_by_keys" : "LINEAR(COL1, COL3)",                       |
|   "version" : "CLASSIC",                                          |
|   "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                                                |
|   },                                                              |
|   "clustering_errors" : [ {                                      |
|     "timestamp" : "2023-04-03 17:50:42 +0000",                  |
|     "error" : "(003325) Clustering service has been disabled.\n" |
|   }                                                              |
|   ]                                                              |
| }                                                                |
+--------------------------------------------------------------------+

이 예제는 다음과 같은 이유로 test2 테이블이 잘 클러스터링되지 않았음을 나타내요.

제한 사항

테이블에 파티션이 2백만 개보다 많으면:

  • 함수의 결과는 테이블 파티션의 일부를 기반으로 해요.
  • 출력의 total_partition_count 필드 값은 2백만이에요.

더 알아보기