다음을 통해 공유


Azure Storage에서 델타 외부 테이블 만들기 및 변경

적용 대상: ✅Microsoft Fabric✅Azure Data Explorer

이 문서의 명령은 명령이 실행되는 데이터베이스에서 델타 외부 테이블을 만들거나 변경하는 데 사용할 수 있습니다. 델타 외부 테이블은 Azure Blob Storage, Azure Data Lake Store Gen1 또는 Azure Data Lake Store Gen2에 있는 Delta Lake 테이블 데이터를 참조합니다.

참고 항목

테이블이 있는 .create 경우 오류와 함께 명령이 실패합니다. 기존 테이블을 사용 .create-or-alter 하거나 .alter 수정합니다.

외부 델타 테이블에 대한 쿼리를 가속화하려면 쿼리 가속 정책을 참조하세요.

사용 권한

.create 데이터베이스 사용자 이상의 권한이 필요하고 .alter 테이블 관리자 이상의 권한이 필요합니다.

관리 ID 인증을 사용하는 외부 테이블에는 .create-or-alter AllDatabasesAdmin 권한이 필요합니다.

구문

(.create.create-or-alter | .alter | ) external table TableName [(Schema)] kind delta =(StorageConnectionString ) [with (Property [, ...]])

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 Type 필수 설명
TableName string ✔️ 엔터티 이름 규칙을 준수하는 외부 테이블 이름 입니다. 외부 테이블은 동일한 데이터베이스의 일반 테이블과 같은 이름을 가질 수 없습니다.
스키마 string 선택적 외부 데이터 스키마는 하나 이상의 열 이름과 데이터 형식의 쉼표로 구분된 목록이며, 각 항목은 ColumnName : ColumnType 형식을 따릅니다. 지정하지 않으면 최신 델타 테이블 버전에 따라 델타 로그에서 자동으로 유추됩니다.
StorageConnectionString string ✔️ 자격 증명을 포함한 델타 테이블 루트 폴더 경로입니다. Azure Blob Storage Blob 컨테이너, Azure Data Lake Gen 2 파일 시스템 또는 Azure Data Lake Gen 1 컨테이너를 가리킬 수 있습니다. 외부 테이블 스토리지 유형은 제공된 연결 문자열 따라 결정됩니다. 스토리지 연결 문자열 참조하세요.
속성 string PropertyName PropertyValue= 형식의 키-값 속성 쌍입니다. 선택적 속성을 참조하세요.

참고 항목

  • 사용자 지정 스키마가 제공되면 호환되지 않는 형식의 기존 열 또는 열이 null 값으로 채워집니다.
  • 파티션에 대한 정보는 델타 로그에서 자동으로 유추됩니다. 파티션 열은 테이블 스키마에 가상 열로 추가됩니다. 자세한 내용은 가상 열을 참조 하세요.
  • 경로 형식은 분할 정보에서 자동으로 유추됩니다. 자세한 내용은 경로 형식을 참조하세요 .

사용자 지정 스키마의 경우 infer_storage_schema 플러그 인을 사용하여 외부 파일 콘텐츠를 기반으로 스키마를 유추할 수 있습니다.

인증 및 권한 부여

외부 테이블에 액세스하는 인증 방법은 만드는 동안 제공된 연결 문자열 기반으로 하며 테이블에 액세스하는 데 필요한 권한은 인증 방법에 따라 달라집니다.

지원되는 인증 방법은 Azure Storage 외부 테이블에서 지원하는 인증 방법과 동일합니다.

선택적 속성

속성 Type 설명
folder string 테이블의 폴더
docString string 테이블을 문서화하는 문자열
namePrefix string 설정된 경우 파일의 접두사를 나타냅니다. 쓰기 작업 시 모든 파일은 이 접두사를 사용하여 작성됩니다. 읽기 작업에서는 이 접두사를 가진 파일만 읽습니다.
fileExtension string 설정된 경우 파일의 파일 확장자를 나타냅니다. 쓰기 시 파일 이름은 이 접미사로 끝납니다. 읽기 시 이 파일 확장자를 가진 파일만 읽습니다.
encoding string 텍스트가 인코딩되는 UTF8NoBOM 방법(기본값) 또는 UTF8BOM.
dryRun bool 설정하면 외부 테이블 정의가 유지되지 않습니다. 이 옵션은 특히 또는 sampleUris 매개 변수와 함께 외부 테이블 정의의 유효성을 검사하는 filesPreview 데 유용합니다.

참고 항목

외부 델타 테이블은 분할 정보 및 선택적으로 스키마를 유추하기 위해 만드는 동안 액세스됩니다. 테이블 정의가 유효하고 스토리지에 액세스할 수 있는지 확인합니다.

예제

유추된 스키마를 사용하여 델타 외부 테이블 만들기 또는 변경

다음 외부 테이블에서 스키마는 최신 델타 테이블 버전에서 자동으로 유추됩니다.

.create-or-alter external table ExternalTable  
kind=delta 
( 
   h@'https://storageaccount.blob.core.windows.net/container1;secretKey'
) 

사용자 지정 스키마를 사용하여 델타 외부 테이블 만들기

다음 외부 테이블에서 사용자 지정 스키마가 지정되고 델타 테이블의 스키마를 재정의합니다. 나중에 사용자 지정 스키마를 최신 델타 테이블 버전에 따라 스키마로 바꿔야 하는 경우 이전 예제와 같이 스키마를 지정하지 않고 명령을 실행 .alter | .create-or-alter 합니다.

.create external table ExternalTable (Timestamp:datetime, x:long, s:string) 
kind=delta
( 
   h@'abfss://filesystem@storageaccount.dfs.core.windows.net/path;secretKey'
)

제한 사항

  • 시간 이동은 지원되지 않습니다. 최신 델타 테이블 버전만 사용됩니다.