обработка или обогащение данных в облачных рабочих процессах

#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}