Можно ли использовать управляемые таблицы U-SQL в качестве выходных наборов данных в фабрике данных Azure?

У меня есть небольшой конвейер ADF, который копирует серию файлов из учетной записи хранения Azure в учетную запись Azure Data Lake. В качестве последнего действия в конвейере я хочу запустить сценарий U-SQL, который использует скопированные файлы в качестве входных данных и выводит результат в управляемую таблицу U-SQL.

Сценарий U-SQL в основном извлекает данные из скопированных файлов, применяет некоторые преобразования, а затем ВСТАВЛЯЕТ их в существующую управляемую таблицу U-SQL.

Как (если возможно) добавить таблицу U-SQL в качестве набора выходных данных в фабрике данных Azure?


person soderstromOlov    schedule 05.01.2017    source источник
comment
Мне интересно, почему вы используете ADF для копирования данных. Вы можете напрямую читать данные из большого двоичного объекта Azure, обрабатывать их и напрямую записывать в управляемую таблицу с помощью U-SQL.   -  person Jamil    schedule 05.01.2017
comment
Да, это можно сделать, но в этом случае в таблицу добавляется только часть данных из скопированных файлов. Но мне все еще нужно сохранить полный файл JSON в DataLake. Мы храним файлы в учетной записи хранения только в течение 30 дней. В любом случае вопрос все еще актуален.   -  person soderstromOlov    schedule 06.01.2017


Ответы (1)


В настоящее время вы не можете добавить внутреннюю таблицу U-SQL в качестве набора выходных данных в фабрике данных Azure (ADF). Аналогичный вопрос недавно возник здесь и ответ Майкла Риса («отца» U-SQL) был: «Я знаю, что у команды ADF есть рабочий элемент, который сделает это за вас».

Вы можете использовать фабрику данных Azure, чтобы запустить параметризованный сценарий U-SQL, где входным параметром является путь к файлу. Это будет иметь аналогичный результат.

Пример конвейера из недавнего вопроса :

{
    "name": "ComputeEventsByRegionPipeline",
    "properties": {
        "description": "This is a pipeline to compute events for en-gb locale and date less than 2012/02/19.",
        "activities": [
            {
                "type": "DataLakeAnalyticsU-SQL",
                "typeProperties": {
                    "scriptPath": "adlascripts\\SearchLogProcessing.txt",
                    "scriptLinkedService": "StorageLinkedService",
                    "degreeOfParallelism": 3,
                    "priority": 100,
                    "parameters": {
                        "in": "/input/SearchLog.tsv",
                        "out": "/output/Result.tsv"
                    }
                },
...

В основном сценарий U-SQL идет от:

@searchlog =
    EXTRACT ...
    FROM @in
    USING Extractors.Tsv();

to:

@searchlog =
    EXTRACT ...
    FROM "/input/SearchLog.tsv"
    USING Extractors.Tsv();

что, я думаю, дает то же самое, что и вы.

person wBob    schedule 05.01.2017
comment
Я уже реализовал динамические параметры, но после прочтения вашего ответа я просто добавил ВЫВОД CSV-файла в хранилище озера данных с одной строкой и столбцом в конце сценария U-SQL. Это решило проблему. - person soderstromOlov; 05.01.2017
comment
Большой! Вы бы отметили это как ответ, или вы думаете, что это не совсем ответ на вопрос? - person wBob; 05.01.2017
comment
Он частично отвечает на вопрос, но не является важной частью того, как обойти тот факт, что вам необходимо предоставить ADF правильный набор выходных данных. - person soderstromOlov; 06.01.2017