Подключаемый модуль infer_storage_schema

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

Аутентификация и авторизация

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

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

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

Синтаксис

evaluateinfer_storage_schema(Параметры)

Дополнительные сведения о соглашениях о синтаксисе.

Параметры

Имя Тип Обязательно Описание
Параметры dynamic ✔️ Контейнер свойств, указывающий свойства запроса.

Поддерживаемые свойства запроса

Имя Тип Обязательно Описание
StorageContainers dynamic ✔️ Массив строк подключения к хранилищу , представляющих URI префикса для артефактов сохраненных данных.
DataFormat string ✔️ Один из поддерживаемых форматов данных.
FileExtension string Если этот параметр указан, функция будет сканировать только файлы, заканчивающиеся этим расширением. Указание расширения может ускорить процесс или устранить проблемы с чтением данных.
FileNamePrefix string Если этот параметр указан, функция будет проверять только файлы, начиная с этого префикса. Указание префикса может ускорить процесс.
Режим string Стратегия вывода схемы. Значение: any, last, all. Функция выводит схему данных из первого найденного файла, из последнего записанного файла или из всех файлов соответственно. Значение по умолчанию — last.

Возвращаемое значение

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

Примечание

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

Пример

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'
)