다음을 통해 공유


infer_storage_schema_with_suggestions 플러그 인

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

infer_storage_schema_with_suggestions 플러그 인은 외부 데이터의 스키마를 유추하고 JSON 개체를 반환합니다. 각 열에 대해 개체는 유추된 형식, 권장 형식 및 권장 매핑 변환을 제공합니다. 권장되는 형식 및 매핑은 다음 논리를 사용하여 최적의 형식을 결정하는 제안 논리에 의해 제공됩니다.

  • ID 열: 열에 대해 유추된 형식이 long 있고 열 이름이 끝나는 id경우 제안된 형식은 같음 필터가 string 공통인 ID 열에 최적화된 인덱싱을 제공하기 때문에 발생합니다.
  • Unix datetime 열: 열에 대해 유추된 형식이 long 있고 unix-time to datetime 매핑 변환 중 하나가 유효한 datetime 값을 생성하는 경우 제안된 형식이며 제안된 ApplicableTransformationMapping 매핑은 유효한 datetime 값을 생성한 형식입니다datetime.

플러그 인은 연산자를 사용하여 호출됩니다 evaluate . 제안 없이 Azure Storage 외부 테이블 만들기 및 변경에 유추된 스키마를 사용하는 테이블 스키마를 가져오려면 infer_storage_schema 플러그 인을 사용합니다.

인증 및 권한 부여

요청속성에서 액세스할 스토리지 연결 문자열 지정합니다. 각 스토리지 연결 문자열 스토리지에 액세스하는 데 사용할 권한 부여 방법을 지정합니다. 권한 부여 방법에 따라 스키마 유추를 수행하려면 보안 주체에게 외부 스토리지에 대한 권한을 부여해야 할 수 있습니다.

다음 표에서는 지원되는 인증 방법 및 스토리지 유형별 필요한 사용 권한을 나열합니다.

인증 방법 Azure Blob Storage/Data Lake Storage Gen2 Data Lake Storage Gen1
가장 Storage Blob 데이터 읽기 권한자 판독기
공유 액세스 (SAS) 토큰 목록 + 읽기 이 인증 방법은 Gen1에서 지원되지 않습니다.
Microsoft Entra 액세스 토큰
스토리지 계정 액세스 키 이 인증 방법은 Gen1에서 지원되지 않습니다.

구문

evaluateinfer_storage_schema_with_suggestions( 옵션 )

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

매개 변수

이름 Type 필수 설명
옵션 dynamic ✔️ 요청의 속성을 지정하는 속성 모음입니다.

요청의 지원되는 속성

속성 Type 필수 설명
StorageContainers dynamic ✔️ 저장된 데이터 아티팩트용 접두사 URI를 나타내는 스토리지 연결 문자열 배열입니다.
DataFormat string ✔️ 수집에 지원되는 데이터 형식 중 하나
FileExtension string 지정된 경우 함수는 이 파일 확장으로 끝나는 파일만 검색합니다. 확장을 지정하면 프로세스 속도가 빨라지거나 데이터 읽기 문제가 제거됩니다.
FileNamePrefix string 지정된 경우 함수는 이 접두사로 시작하는 파일만 검색합니다. 접두사를 지정하면 프로세스 속도가 빨라질 수 있습니다.
모드 string 스키마 유추 전략입니다. 값: any, . lastall 이 함수는 처음 찾은 파일, 마지막으로 쓴 파일 또는 모든 파일에서 각각 데이터 스키마를 유추합니다. 기본값은 last입니다.
InferenceOptions dynamic 더 많은 유추 옵션. 유효한 옵션: UseFirstRowAsHeader 구분된 파일 형식의 경우. 예: 'InferenceOptions': {'UseFirstRowAsHeader': true}.

반품

플러그 인은 infer_storage_schema_with_suggestions JSON 문자열을 포함하는 단일 행/열을 포함하는 단일 결과 테이블을 반환합니다.

참고 항목

  • 스토리지 컨테이너 URI 비밀 키에는 읽기 외에도 목록에 대한 권한이 있어야 합니다.
  • 스키마 유추 전략 'all'은 찾은 모든 아티팩트를 읽고 스키마를 병합하는 것을 의미하므로 매우 "비용이 많이 드는" 작업입니다.
  • 일부 반환된 형식은 잘못된 형식 추측(또는 스키마 병합 프로세스의 결과로)의 결과로 실제 형식이 아닐 수 있습니다. 따라서 결과를 사용하기 전에 신중하게 검토해야 합니다.

예시

let options = dynamic({
  'StorageContainers': [
    h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
  ],
  'FileExtension': '.json',
  'FileNamePrefix': 'js-',
  'DataFormat': 'json'
});
evaluate infer_storage_schema_with_suggestions(options)

입력 데이터 예제

    {
        "source": "DataExplorer",
        "created_at": "2022-04-10 15:47:57",
        "author_id": 739144091473215488,
        "time_millisec":1547083647000
    }

출력

{
  "Columns": [
    {
      "OriginalColumn": {
        "Name": "source",
        "CslType": {
          "type": "string",
          "IsNumeric": false,
          "IsSummable": false
        }
      },
      "RecommendedColumn": {
        "Name": "source",
        "CslType": {
          "type": "string",
          "IsNumeric": false,
          "IsSummable": false
        }
      },
      "ApplicableTransformationMapping": "None"
    },
    {
      "OriginalColumn": {
        "Name": "created_at",
        "CslType": {
          "type": "datetime",
          "IsNumeric": false,
          "IsSummable": true
        }
      },
      "RecommendedColumn": {
        "Name": "created_at",
        "CslType": {
          "type": "datetime",
          "IsNumeric": false,
          "IsSummable": true
        }
      },
      "ApplicableTransformationMapping": "None"
    },
    {
      "OriginalColumn": {
        "Name": "author_id",
        "CslType": {
          "type": "long",
          "IsNumeric": true,
          "IsSummable": true
        }
      },
      "RecommendedColumn": {
        "Name": "author_id",
        "CslType": {
          "type": "string",
          "IsNumeric": false,
          "IsSummable": false
        }
      },
      "ApplicableTransformationMapping": "None"
    },
    {
      "OriginalColumn": {
        "Name": "time_millisec",
        "CslType": {
          "type": "long",
          "IsNumeric": true,
          "IsSummable": true
        }
      },
      "RecommendedColumn": {
        "Name": "time_millisec",
        "CslType": {
          "type": "datetime",
          "IsNumeric": false,
          "IsSummable": true
        }
      },
      "ApplicableTransformationMapping": "DateTimeFromUnixMilliseconds"
    }
  ]
}