Azure Synapse Analytics의 전용 SQL 풀(이전 SQL DW)에 대한 테이블 데이터 형식

이 문서에는 전용 SQL 풀에서 테이블 데이터 형식을 정의하기 위한 권장 사항이 포함되어 있습니다.

지원되는 데이터 형식

전용 SQL 풀(이전 SQL DW)은 가장 일반적으로 사용되는 데이터 형식을 지원합니다. 지원되는 데이터 형식의 목록은 CREATE TABLE 문에서 데이터 형식을 참조하세요.

행 길이 최소화

데이터 형식의 크기를 최소화하면 쿼리 성능을 향상시키는 행 길이를 줄입니다. 데이터에 적합한 가장 작은 데이터 형식을 사용하세요.

  • 문자 열을 큰 기본 길이로 정의하지 마세요. 예를 들어 가장 긴 값이 25자인 경우 열을 VARCHAR(25)로 정의합니다.
  • VARCHAR만 필요한 경우 NVARCHAR를 사용하지 마세요.
  • 가능한 경우 NVARCHAR(MAX) 또는 VARCHAR(MAX) 대신 NVARCHAR(4000) 또는 VARCHAR(8000)를 사용합니다.

PolyBase 외부 테이블을 사용하여 테이블을 로드하는 경우 테이블 행의 정의된 길이는 1MB를 초과할 수 없습니다. 가변 길이 데이터가 있는 행이 1MB를 초과하는 경우 행을 PolyBase가 아닌 BCP로 로드할 수 있습니다.

지원되지 않는 데이터 형식 식별

다른 SQL 데이터베이스에서 데이터베이스를 마이그레이션하는 경우 전용 SQL 풀에서 지원되지 않는 데이터 형식을 찾을 수 있습니다. 다음 쿼리를 사용하여 기존 SQL 스키마에서 지원되지 않는 데이터 형식을 검색합니다.

SELECT  t.[name], c.[name], c.[system_type_id], c.[user_type_id], y.[is_user_defined], y.[name]
FROM sys.tables  t
JOIN sys.columns c on t.[object_id]    = c.[object_id]
JOIN sys.types   y on c.[user_type_id] = y.[user_type_id]
WHERE y.[name] IN ('geography','geometry','hierarchyid','image','text','ntext','sql_variant','xml')
 AND  y.[is_user_defined] = 1;

지원되지 않는 데이터 형식에 대한 해결 방법

다음 목록에서는 전용 SQL 풀(이전 SQL DW)이 지원하지 않는 데이터 형식을 보여 주고 지원되지 않는 데이터 형식에 대한 유용한 대안을 제공합니다.

지원되지 않는 데이터 형식 해결 방법
geometry varbinary
geography varbinary
hierarchyid nvarchar(4000)
image varbinary
text varchar
ntext nvarchar
sql_variant 열을 강력한 형식의 열로 분할합니다.
table 임시 테이블로 변환합니다.
timestamp datetime2CURRENT_TIMESTAMP 함수를 사용하도록 코드 재작업을 수행합니다. 상수만 기본값으로 지원되므로 current_timestamp는 기본 제약 조건으로 정의할 수 없습니다. 행 버전 값을 타임스탬프 형식의 열에서 마이그레이션해야 하는 경우, NOT NULL 또는 NULL 행 버전 값으로 BINARY(8) 또는 VARBINARY(8)를 사용합니다.
xml varchar
사용자 정의 형식 가능하면 네이티브 데이터 형식으로 다시 변환합니다.
기본값 기본값은 리터럴 및 상수만 지원합니다.

다음 단계

테이블 개발에 대한 자세한 내용은 테이블 개요를 참조하세요.