У меня есть учетная запись ADL, настроенная с двумя хранилищами: обычное хранилище ADLS gen1, настроенное по умолчанию, и хранилище больших двоичных объектов с включенным «Иерархическим пространством имен», которое подключается к ADLS с использованием ключа хранилища, если это имеет значение (без управляемых идентификаторов в эта точка). Первый не имеет отношения к вопросу, просто есть, второй ради этого вопроса зарегистрирован под именем testdlsg2
. Я вижу оба в проводнике данных на портале Azure.
Теперь у меня есть контейнер в этом хранилище больших двоичных объектов, называемый logs
, и в root этого контейнера есть файлы журналов, которые я хочу обработать.
Как мне сослаться на эти файлы в этом конкретном хранилище и конкретном контейнере из U- SQL?
Я прочитал документацию ADLS Gen2 URI и пришел со следующим U- SQL:
@data =
EXTRACT
Timestamp long,
// skip, skip, skip
LogDate DateTime,
LogOrder int
FROM "abfss://logs@testdlsg2.dfs.core.windows.net/log_{LogDate:yyyy}{LogDate:MM}{LogDate:dd}_{LogOrder}.log.gz"
USING Extractors.Text(delimiter: ' ', quoting: true, skipFirstNRows: 1);
// the rest is irrelevant
К сожалению, когда я отправляю это в ADL, задание не выполняется со следующей ошибкой:
CsEnumerateDirectoryWithPaging завершается с ошибкой 0x83090A1A (Операция не поддерживается для указанного типа URL). Cosmos Path: abfss: // logs@testdlsg2.dfs.core.windows.net/
Запрос работает локально при использовании локального хранилища с относительными путями.