Поделиться через


подключаемый модуль infer_storage_schema_with_suggestions

Область применения: ✅Microsoft Fabric✅Azure Data Explorer

Этот infer_storage_schema_with_suggestions подключаемый модуль определяет схему внешних данных и возвращает объект JSON. Для каждого столбца объект предоставляет выводимый тип, рекомендуемый тип и рекомендуемое преобразование сопоставления. Рекомендуемый тип и сопоставление предоставляются логикой предложения, которая определяет оптимальный тип с помощью следующей логики:

  • Столбцы удостоверений: если выводимый тип столбца имеет long значение, а имя столбца заканчивается id, рекомендуемый тип заключается string в том, что он обеспечивает оптимизированное индексирование для столбцов удостоверений, где фильтры равенства являются общими.
  • Столбцы даты и времени Unix: если выводимый тип столбца является long одним из преобразований сопоставления даты и времени unix, создается допустимое значение datetime, предлагаемый тип — datetime ApplicableTransformationMapping это тот, который создал допустимое значение datetime.

Подключаемый модуль вызывается оператором evaluate . Чтобы получить схему таблицы, которая использует выводную схему для создания и изменения служба хранилища Azure внешних таблиц без предложений, используйте подключаемый модуль infer_storage_schema.

Проверка подлинности и авторизация

В свойствах запроса необходимо указать строка подключения хранилища для доступа. Каждый строка подключения хранилища задает метод авторизации, используемый для доступа к хранилищу. В зависимости от метода авторизации субъекту может потребоваться предоставить разрешения на внешнее хранилище для выполнения вывода схемы.

В следующей таблице перечислены поддерживаемые методы проверки подлинности и все необходимые разрешения по типу хранилища.

Authentication method Хранилище BLOB-объектов Azure / Data Lake Storage 2-го поколения Azure Data Lake Storage 1-го поколения
Олицетворение Читатель данных больших двоичных объектов хранилища Читатель
Маркер общего доступа (SAS) Список и чтение Этот метод проверки подлинности не поддерживается в 1-м поколениях.
Маркер доступа Microsoft Entra
Ключ доступа к учетной записи хранения Этот метод проверки подлинности не поддерживается в 1-м поколениях.

Синтаксис

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.

Примечание.

  • Ключи секрета контейнера хранилища должны иметь разрешения для списка в дополнение к read.
  • Стратегия вывода схемы "все" является очень "дорогой" операцией, так как она подразумевает чтение всех найденных артефактов и слияние их схемы.
  • Некоторые возвращаемые типы могут не быть фактическими в результате неправильного предположения типа (или в результате процесса слияния схемы). Именно поэтому перед их использованием следует тщательно просмотреть результат.

Пример

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"
    }
  ]
}