#google-cloud-platform #google-workflows
# #google-облачная платформа #google-рабочие процессы
Вопрос:
Как выполнить простую манипуляцию или обогащение данных?
Обычно в конвейере вы выполняете работу с потоком данных, но есть ли в облачных рабочих процессах возможности для выполнения подобных действий?
Ответ №1:
Вы можете реализовать эту функциональность, объявив a Dictionary
и повторно используя для сбора данных на ходу.
Предостережение заключается в том, что вам нужно повторно вводить все ключи при добавлении нового значения, поскольку ссылки на переменные, ключи слияния или привязки YAML еще не реализованы.
Итак, если вы начнете с:
- initDictionary:
assign:
- myDictionary:
name: John
lastName: Smith
dayOfTheWeek: ${currentTime.body.dayOfTheWeek}
позже вы могли бы добавить ключ из другого результата, например, из Википедии следующим образом:
- enrichStep:
assign:
- myDictionary:
name: ${myDictionary.name}
lastName: ${myDictionary.lastName}
dayOfTheWeek: ${currentTime.body.dayOfTheWeek}
wikiResult: ${wikiResult.body[1]}
вот полная wikipedia_enrichment.yaml
последовательность для вас.
- getCurrentTime:
call: http.get
args:
url: https://us-central1-workflowsample.cloudfunctions.net/datetime
result: currentTime
- initDictionary:
assign:
- myDictionary:
name: John
lastName: Smith
dayOfTheWeek: ${currentTime.body.dayOfTheWeek}
- readWikipedia:
call: http.get
args:
url: https://en.wikipedia.org/w/api.php
query:
action: opensearch
search: ${currentTime.body.dayOfTheWeek}
result: wikiResult
- enrichStep:
assign:
- myDictionary:
name: ${myDictionary.name}
lastName: ${myDictionary.lastName}
dayOfTheWeek: ${currentTime.body.dayOfTheWeek}
wikiResult: ${wikiResult.body[1]}
- returnResult:
return: ${myDictionary}