최종 수정: 에
SHOW DATA SKEW
설명
SHOW DATA SKEW 문은 테이블 또는 파티션의 데이터 편향을 확인하는 데 사용됩니다. 이 문은 다음 기능을 제공합니다:
- 전체 테이블의 데이터 분포를 표시할 수 있습니다.
- 지정한 파티션의 데이터 분포를 표시할 수 있습니다.
- 각 버킷의 행 수, 데이터 용량 및 백분율을 표시합니다.
- 파티션이 있는 테이블과 파티션이 없는 테이블을 모두 지원합니다.
구문
SHOW DATA SKEW FROM [<db_name>.]<table_name> [ PARTITION (<partition_name> [, ...]) ];
필수 매개변수
1. FROM [<db_name>.]<table_name>
확인할 테이블의 이름을 지정합니다. 데이터베이스 이름을 포함할 수 있습니다.
테이블 이름은 해당 데이터베이스 내에서 고유해야 합니다.
선택적 매개변수
1. PARTITION (<partition_name> [, ...])
확인할 파티션 이름 목록을 지정합니다.
이 매개변수를 지정하지 않으면 테이블의 모든 파티션에 대한 데이터 분포를 표시합니다.
파티션이 없는 테이블의 경우 파티션 이름은 테이블 이름과 같습니다.
반환 값
| 열 이름 | 설명 |
|---|---|
| PartitionName | 파티션 이름 |
| BucketIdx | 버킷 인덱스 번호 |
| AvgRowCount | 평균 행 수 |
| AvgDataSize | 평균 데이터 크기(바이트 단위) |
| Graph | 데이터 분포 시각화 차트 |
| Percent | 전체 데이터 용량 대비 해당 버킷의 데이터 용량 비율 |
액세스 제어 요구 사항
이 SQL 명령을 실행하는 사용자는 최소한 다음 권한이 있어야 합니다:
| 권한 | 객체 | 비고 |
|---|---|---|
| SELECT | 테이블 | 테이블을 조회하려면 SELECT 권한이 필요합니다. |
사용 참고 사항
- 데이터 분포는 파티션과 버킷이라는 두 차원으로 표시됩니다.
- Graph 열은
>문자를 사용하여 데이터 분포 비율을 시각적으로 나타냅니다. - 백분율은 소수점 둘째 자리까지 정확하게 표시됩니다.
- 파티션이 없는 테이블의 경우 쿼리 결과의 파티션 이름은 테이블 이름과 같습니다.
예제
-
파티션이 있는 테이블을 생성하고 데이터 분포를 확인합니다:
CREATE TABLE test_show_data_skew
(
id int,
name string,
pdate date
)
PARTITION BY RANGE(pdate)
(
FROM ("2023-04-16") TO ("2023-04-20") INTERVAL 1 DAY
)
DISTRIBUTED BY HASH(id) BUCKETS 5
PROPERTIES (
"replication_num" = "1"
); -
전체 테이블의 데이터 분포를 확인합니다:
SHOW DATA SKEW FROM test_show_data_skew;+---------------+-----------+-------------+-------------+------------------------------------------------------------------------------------------------------+---------+
| PartitionName | BucketIdx | AvgRowCount | AvgDataSize | Graph | Percent |
+---------------+-----------+-------------+-------------+------------------------------------------------------------------------------------------------------+---------+
| p_20230416 | 0 | 1 | 648 | >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 49.77 % |
| p_20230416 | 1 | 2 | 654 | >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 50.23 % |
| p_20230416 | 2 | 0 | 0 | | 00.00 % |
| p_20230416 | 3 | 0 | 0 | | 00.00 % |
| p_20230416 | 4 | 0 | 0 | | 00.00 % |
| p_20230417 | 0 | 0 | 0 | | 00.00 % |
| p_20230417 | 1 | 0 | 0 | | 00.00 % |
| p_20230417 | 2 | 0 | 0 | | 00.00 % |
| p_20230417 | 3 | 0 | 0 | | 00.00 % |
| p_20230417 | 4 | 2 | 656 | >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 100.00% |
| p_20230418 | 0 | 0 | 0 | | 00.00 % |
| p_20230418 | 1 | 1 | 648 | >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 100.00% |
| p_20230418 | 2 | 0 | 0 | | 00.00 % |
| p_20230418 | 3 | 0 | 0 | | 00.00 % |
| p_20230418 | 4 | 0 | 0 | | 00.00 % |
| p_20230419 | 0 | 0 | 0 | | 00.00 % |
| p_20230419 | 1 | 1 | 648 | >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 49.96 % |
| p_20230419 | 2 | 0 | 0 | | 00.00 % |
| p_20230419 | 3 | 1 | 649 | >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 50.04 % |
| p_20230419 | 4 | 0 | 0 | | 00.00 % |
+---------------+-----------+-------------+-------------+------------------------------------------------------------------------------------------------------+---------+지정한 파티션의 데이터 분포를 확인합니다:
SHOW DATA SKEW FROM test_show_data_skew PARTITION(p_20230416, p_20230418);+---------------+-----------+-------------+-------------+------------------------------------------------------------------------------------------------------+---------+
| PartitionName | BucketIdx | AvgRowCount | AvgDataSize | Graph | Percent |
+---------------+-----------+-------------+-------------+------------------------------------------------------------------------------------------------------+---------+
| p_20230416 | 0 | 1 | 648 | >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 49.77 % |
| p_20230416 | 1 | 2 | 654 | >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 50.23 % |
| p_20230416 | 2 | 0 | 0 | | 00.00 % |
| p_20230416 | 3 | 0 | 0 | | 00.00 % |
| p_20230416 | 4 | 0 | 0 | | 00.00 % |
| p_20230418 | 0 | 0 | 0 | | 00.00 % |
| p_20230418 | 1 | 1 | 648 | >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 100.00% |
| p_20230418 | 2 | 0 | 0 | | 00.00 % |
| p_20230418 | 3 | 0 | 0 | | 00.00 % |
| p_20230418 | 4 | 0 | 0 | | 00.00 % |
+---------------+-----------+-------------+-------------+------------------------------------------------------------------------------------------------------+---------+ -
파티션이 없는 테이블의 데이터 분포를 확인합니다:
CREATE TABLE test_show_data_skew2
(
id int,
name string,
pdate date
)
DISTRIBUTED BY HASH(id) BUCKETS 5
PROPERTIES (
"replication_num" = "1"
);SHOW DATA SKEW FROM test_show_data_skew2;+----------------------+-----------+-------------+-------------+---------------------------+---------+
| PartitionName | BucketIdx | AvgRowCount | AvgDataSize | Graph | Percent |
+----------------------+-----------+-------------+-------------+---------------------------+---------+
| test_show_data_skew2 | 0 | 1 | 648 | >>>>>>>>>>>>>>>>>>>>>>>> | 24.73 % |
| test_show_data_skew2 | 1 | 4 | 667 | >>>>>>>>>>>>>>>>>>>>>>>>> | 25.46 % |
| test_show_data_skew2 | 2 | 0 | 0 | | 00.00 % |
| test_show_data_skew2 | 3 | 1 | 649 | >>>>>>>>>>>>>>>>>>>>>>>> | 24.77 % |
| test_show_data_skew2 | 4 | 2 | 656 | >>>>>>>>>>>>>>>>>>>>>>>>> | 25.04 % |
+----------------------+-----------+-------------+-------------+---------------------------+---------+