Как автоматически запускать задания Google Dataprep? - PullRequest
2 голосов
/ 18 февраля 2020

Есть ли способ запустить поток Google Dataprep через API?

Мне нужно запускать как 30 различных потоков каждый день. Каждый день исходный набор данных меняется, и результат должен добавляться в таблицу Google BigQuery. Есть ли способ автоматизировать этот процесс? Исходные файлы - это файлы .xls. Я могу загрузить их в облачное хранилище и написать облачную функцию, которая будет загружать ее там, где это необходимо Dataprep. Проблема в том, что кажется невозможным заменить исходный набор данных в потоке Dataprep. Если да, то в чем смысл запланированных запусков и нового API выполнения заданий?

Ответы [ 2 ]

5 голосов
/ 19 февраля 2020

Есть несколько способов сделать это. Вы, вероятно, в конечном итоге объедините функции параметризации и функции планирования для запуска запланированных заданий, которые будут каждый раз выбирать новые файлы.

В зависимости от вашего варианта использования вы можете, например, сделать:

Импорт каталога

Если вы настроили каталог, который содержит только один файл Excel (см. Рисунок ниже), Вы можете использовать кнопку + , чтобы использовать каталог в качестве входного набора данных. Каждый раз, когда вы будете запускать задание, будут обрабатываться файлы, присутствующие в этом каталоге.

Import directory

Теперь вы можете запланировать задание, создать выходное назначение и Вы должны быть все готово.

Использование параметров даты и времени

Предположим, вы находитесь в ситуации, когда вы добавляете новый файл каждый день с датой в имени файла. Например, в облачном хранилище это будет выглядеть так:

GCS UI

Вы можете использовать кнопку Parameterize в браузере файлов Dataprep и настройте следующий параметр:

date time parameter

Этот файл должен выбрать файл предыдущего дня:

Preview of parameterization

Вы можете импортировать набор данных и запланировать поток. Если ваше расписание запускается каждый день, оно будет каждый раз получать новый файл.

Использование переменных

Кроме того, вы можете определить переменную в пути к файлу вашего набора данных.

variable for the folder name

Затем можно использовать API-интерфейс JobGroup для переопределения этой переменной.

POST /v4/jobGroups

{
  "wrangledDataset": {
    "id": datasetId
  },
  "runParameters": {
    "overrides": {
      "data": [
        {
          "key": "folder-name",
          "value": "new folder name"
        }
      ]
    }
  }
}

Обратите внимание, что для этой работы ваш файл нужно иметь одинаковую структуру. См. https://cloud.google.com/dataprep/docs/html/Create-Dataset-with-Parameters_118228628#structuring -your-data для получения более подробной информации.

Использование параметра с подстановочными знаками также должно быть возможным, так как возможна альтернатива первому методу.

0 голосов
/ 18 февраля 2020

Вы задаете две разные вещи.

Как запускать задания через API: https://cloud.google.com/dataprep/docs/html/API-JobGroups-Create-v4_145281446

Как эффективно заменить наборы данных динамически: https://cloud.google.com/dataprep/docs/html/Overview-of-Parameterization_118228665

...