

# Babelfish의 파티셔닝 이해
<a name="babelfish-partition"></a>

버전 4.3.0부터 Babelfish는 제한된 지원으로 테이블 및 인덱스 파티셔닝을 도입합니다. 다음 섹션에서는 Babelfish에서 파티션 함수 생성, 파티션 체계 정의, 파티션된 테이블 및 인덱스 구현에 대한 세부 정보를 제공합니다.

**Topics**
+ [

## Babelfish 파티셔닝 소개
](#babelfish-partition-function-views)
+ [

## 제한 사항 및 해결 방법
](#babelfish-partition-limitations)

## Babelfish 파티셔닝 소개
<a name="babelfish-partition-function-views"></a>
+ **파티션 함수:**
  + `CREATE PARTITION FUNCTION:` 분할 열 유형과 각 파티션의 값 범위를 지정하여 테이블 또는 인덱스를 파티셔닝하는 방법을 정의합니다.
  + `DROP PARTITION FUNCTION:` 기존 파티션 함수를 제거합니다.
+ **파티셔닝 체계:**
  + `CREATE PARTITION SCHEME:` 파티션과 파일 그룹 간의 매핑을 정의합니다.
**참고**  
Babelfish에서 파일 그룹은 더미 객체로 취급되며 물리적 스토리지 위치를 나타내지 않습니다.
  + `DROP PARTITION SCHEME:` 기존 파티션 체계를 제거합니다.
+ **시스템 함수:**
  + `$PARTITION:` 이 시스템 함수는 파티셔닝 열의 지정된 값이 지정된 파티셔닝된 테이블에 속하는 파티션 번호를 반환합니다.
+ **파티셔닝된 테이블 및 인덱스:**
  + `CREATE TABLE ... ON partition_scheme_name (partition_column_name):` 지정된 파티션 체계 및 파티셔닝 열을 기반으로 파티셔닝된 테이블을 생성합니다.
  + `CREATE INDEX ... ON partition_scheme_name (partition_column_name):` 지정된 파티션 체계 및 파티셔닝 열을 기반으로 파티셔닝된 인덱스를 생성합니다.
+ **메타데이터 파티셔닝을 위한 시스템 뷰:**

  파티셔닝과 관련된 메타데이터를 제공하기 위해 다음 시스템 뷰가 추가됩니다.
  + `sys.destination_data_spaces`
  + `sys.partitions`
  + `sys.partition_functions`
  + `sys.partition_parameters`
  + `sys.partition_range_values`
  + `sys.partition_schemes`

## 제한 사항 및 해결 방법
<a name="babelfish-partition-limitations"></a>

다음 SQL Server 파티셔닝 기능은 Babelfish에서 아직 지원되지 않습니다.
+ `ALTER PARTITION FUNCTION` 및 `ALTER PARTITION SCHEME`.
**참고**  
Babelfish는 분할 및 병합 작업을 지원하지 않습니다. 나중에 파티션을 추가하거나 제거할 수 없으므로 만드는 중에 파티션 함수의 모든 파티션을 정의합니다.
+ 파티셔닝 열로 계산된 열.
+ 파티셔닝된 테이블에 대한 `INSERT BULK` 및 `BCP` 유틸리티.
+ 파티션 함수의 `LEFT` 경계 옵션.
+ 파티션 함수의 `SQL_VARIANT` 데이터 유형.
+ `TRUNCATE TABLE ... WITH PARTITION`.
+ `ALTER TABLE ... SWITCH PARTITION`.
+ 파티션 체계 및 파티션 테이블과 다른 파티션 열과 같이 정렬되지 않은 파티셔닝된 인덱스.
+ Babelfish 소스에서의 DMS 마이그레이션은 파티셔닝된 테이블의 전체 로드 작업에만 지원됩니다.
+ 파티션 함수의 데이터 정렬 사용.
+ 기본 데이터베이스 데이터 정렬 이외의 데이터 정렬과 함께 파티셔닝 열 사용.
+ Babelfish는 이러한 구문 옵션을 지원하지 않지만 다음의 해결 방법을 제공합니다.
  + CREATE TABLE 문에 제약 조건 또는 인덱스가 있는 파티션 체계를 사용합니다.
  + ALTER TABLE ... ADD CONSTRAINT ... ON partition\$1scheme\$1name (partition\$1column\$1name).
**참고**  
`babelfishpg_tsql.escape_hatch_storage_on_partition` 이스케이프 해치를 무시하도록 설정할 수 있습니다. 이렇게 하면 파서가 제약 조건 또는 인덱스와 함께 사용되는 파티션 체계 옵션을 무시할 수 있으며 백엔드는 각 파티션에 대해 개별 제약 조건 또는 인덱스를 생성합니다.