Кусто: получение из запроса - PullRequest
0 голосов
/ 08 мая 2020

Привет всем,

В настоящее время я пытаюсь загрузить данные с помощью пакетной операции. Мой запрос написан следующим образом:

.set-or-append tableName with (folder = "rocky")<|
let _Scope = () {
    let N = 4;
    range p from 0 to N-1 step 1
    | partition by p
    {
        functionName((list_of_ids()
        | where hash(something, N) == toscalar(p)), datetime(2020-05-03))
        | extend
            batch_num = toscalar(p)
    }
};
union (_Scope())

Я хочу понять, будет ли он выполняться параллельно для каждого раздела или запускаться последовательно?. Если параллельно, как я могу это лучше оптимизировать? . Любая помощь приветствуется.

1 Ответ

1 голос
/ 08 мая 2020

Оператор partition (который вы используете в своей функции) позволяет вам предоставить hint s для управления параллелизмом:

https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/partitionoperator

enter image description here

В любом случае, в зависимости от того, что делает functionName() (это не упоминается в исходном вопросе), вы можете рассмотреть возможность использования опции distributed:

https://docs.microsoft.com/en-us/azure/data-explorer/kusto/management/data-ingestion/ingest-from-query

Установка флага distributed на истину полезна, когда объем данных, производимых запросом, велик (превышает 1 ГБ данных), а запрос не выполняет t требуют сериализации (чтобы несколько узлов могли производить вывод параллельно). Когда результаты запроса малы, не рекомендуется использовать этот флаг, так как он может без нужды генерировать множество небольших фрагментов данных.

...