infer_storage_schema 플러그 인
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer
이 플러그 인은 외부 데이터의 스키마를 유추하고 CSL 스키마 문자열로 반환합니다. 외부 테이블을 만들 때 문자열을 사용할 수 있습니다. 플러그 인은 연산자를 사용하여 호출됩니다 evaluate
.
인증 및 권한 부여
요청의 속성에서 액세스할 스토리지 연결 문자열 지정합니다. 각 스토리지 연결 문자열 스토리지에 액세스하는 데 사용할 권한 부여 방법을 지정합니다. 권한 부여 방법에 따라 스키마 유추를 수행하려면 보안 주체에게 외부 스토리지에 대한 권한을 부여해야 할 수 있습니다.
다음 표에서는 지원되는 인증 방법 및 스토리지 유형별 필요한 사용 권한을 나열합니다.
인증 방법 | Azure Blob Storage/Data Lake Storage Gen2 | Data Lake Storage Gen1 |
---|---|---|
가장 | Storage Blob 데이터 읽기 권한자 | 판독기 |
공유 액세스 (SAS) 토큰 | 목록 + 읽기 | 이 인증 방법은 Gen1에서 지원되지 않습니다. |
Microsoft Entra 액세스 토큰 | ||
스토리지 계정 액세스 키 | 이 인증 방법은 Gen1에서 지원되지 않습니다. |
구문
evaluate
infer_storage_schema(
옵션 )
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | 설명 |
---|---|---|---|
옵션 | dynamic |
✔️ | 요청의 속성을 지정하는 속성 모음입니다. |
요청의 지원되는 속성
속성 | Type | 필수 | 설명 |
---|---|---|---|
StorageContainers | dynamic |
✔️ | 저장된 데이터 아티팩트용 접두사 URI를 나타내는 스토리지 연결 문자열 배열입니다. |
DataFormat | string |
✔️ | 지원되는 데이터 형식 중 하나입니다. |
FileExtension | string |
지정된 경우 함수는 이 파일 확장으로 끝나는 파일만 검색합니다. 확장을 지정하면 프로세스 속도가 빨라지거나 데이터 읽기 문제가 제거됩니다. | |
FileNamePrefix | string |
지정된 경우 함수는 이 접두사로 시작하는 파일만 검색합니다. 접두사를 지정하면 프로세스 속도가 빨라질 수 있습니다. | |
모드 | string |
스키마 유추 전략입니다. 값: any , . last all 이 함수는 처음 찾은 파일, 마지막으로 쓴 파일 또는 모든 파일에서 각각 데이터 스키마를 유추합니다. 기본값은 last 입니다. |
|
InferenceOptions | dynamic |
더 많은 유추 옵션. 유효한 옵션: UseFirstRowAsHeader 구분된 파일 형식의 경우. 예: 'InferenceOptions': {'UseFirstRowAsHeader': true} . |
반품
플러그 인은 infer_storage_schema
CSL 스키마 문자열을 포함하는 단일 행/열을 포함하는 단일 결과 테이블을 반환합니다.
참고 항목
- 스토리지 컨테이너 URI 비밀 키에는 읽기 외에도 목록에 대한 권한이 있어야 합니다.
- 스키마 유추 전략 'all'은 찾은 모든 아티팩트를 읽고 스키마를 병합하는 것을 의미하므로 매우 "비용이 많이 드는" 작업입니다.
- 일부 반환된 형식은 잘못된 형식 추측(또는 스키마 병합 프로세스의 결과로)의 결과로 실제 형식이 아닐 수 있습니다. 따라서 외부 테이블을 만들기 전에 결과를 신중하게 검토해야 합니다.
예시
let options = dynamic({
'StorageContainers': [
h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
],
'FileExtension': '.parquet',
'FileNamePrefix': 'part-',
'DataFormat': 'parquet'
});
evaluate infer_storage_schema(options)
출력
CslSchema |
---|
app_id:string, user_id:long, event_time:datetime, country:string, city:string, device_type:string, device_vendor:string, ad_network:string, campaign:string, site_id:string, event_type:string, event_name:string, organic:string, days_from_install:int, revenue:real |
외부 테이블 정의에서 반환된 스키마를 사용합니다.
.create external table MobileEvents(
app_id:string, user_id:long, event_time:datetime, country:string, city:string, device_type:string, device_vendor:string, ad_network:string, campaign:string, site_id:string, event_type:string, event_name:string, organic:string, days_from_install:int, revenue:real
)
kind=blob
partition by (dt:datetime = bin(event_time, 1d), app:string = app_id)
pathformat = ('app=' app '/dt=' datetime_pattern('yyyyMMdd', dt))
dataformat = parquet
(
h@'https://storageaccount.blob.core.windows.net/MovileEvents;secretKey'
)