Подключаемый модуль infer_storage_schema
Область применения: ✅Microsoft Fabric✅Azure Data Explorer
Этот подключаемый модуль определяет схему внешних данных и возвращает ее в виде строки схемы CSL. Строку можно использовать при создании внешних таблиц. Подключаемый модуль вызывается оператором evaluate
.
Проверка подлинности и авторизация
В свойствах запроса необходимо указать строка подключения хранилища для доступа. Каждый строка подключения хранилища задает метод авторизации, используемый для доступа к хранилищу. В зависимости от метода авторизации субъекту может потребоваться предоставить разрешения на внешнее хранилище для выполнения вывода схемы.
В следующей таблице перечислены поддерживаемые методы проверки подлинности и все необходимые разрешения по типу хранилища.
Authentication method | Хранилище BLOB-объектов Azure / Data Lake Storage 2-го поколения | Azure Data Lake Storage 1-го поколения |
---|---|---|
Олицетворение | Читатель данных больших двоичных объектов хранилища | Читатель |
Маркер общего доступа (SAS) | Список и чтение | Этот метод проверки подлинности не поддерживается в 1-м поколениях. |
Маркер доступа Microsoft Entra | ||
Ключ доступа к учетной записи хранения | Этот метод проверки подлинности не поддерживается в 1-м поколениях. |
Синтаксис
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.
Примечание.
- Ключи секрета контейнера хранилища должны иметь разрешения для списка в дополнение к 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'
)