Ссылка на файлы хранилища ADL gen2 из U- SQL - PullRequest
1 голос
/ 24 апреля 2020

У меня есть учетная запись 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/

Запрос работает локально при использовании локального хранилища с относительными путями.

1 Ответ

1 голос
/ 24 апреля 2020

Согласно комментарию, U- SQL не работает с Azure Data Lake Gen 2, и вряд ли когда-либо будет. Есть элемент обратной связи, который вы должны прочитать:

https://feedback.azure.com/forums/327234-data-lake/suggestions/36445702-add-support-for-adls-gen2-to-adla

В 2020 году рассмотрите возможность запуска новых аналитических проектов Azure с Azure Databricks.

...