Запуск задания DataProc из уведомления Pub / Sub

У меня есть фоновая служба, которая создает файлы в Google Cloud Storage. Как только это будет сделано, в выходной папке будет создан файл.

В моем потоке мне нужно получить список этих файлов и запустить задание DataProc Spark со списком файлов. Обработка не в режиме реального времени и занимает десятки минут.

В GCS есть система уведомлений. Он может передавать уведомление в службу Pub / Sub.

В GCS будет создан файл .../feature/***/***.done для идентификации завершения служебного задания.

  1. Могу ли я подписаться на новые файлы в GCS по шаблону?

После создания файла уведомление попадает в службу Pub / Sub.

Я считаю, что могу написать облачную функцию, которая будет читать это уведомление, каким-то волшебством получит местоположение измененного файла и сможет перечислить все файлы из этой папки. Затем опубликуйте еще одно сообщение в Pub / Sub со всей необходимой информацией.

  1. Возможно ли запустить задание DataProc с помощью уведомления Pub / Sub?

В идеале было бы здорово использовать Jobs вместо Streaming, чтобы сократить расходы. Это может означать, что PubSub инициирует задание вместо потоковой передачи. Задание извлекает новое сообщение из PubSub.


person deeptowncitizen    schedule 22.06.2020    source источник


Ответы (1)


Вопрос 1. Могу ли я подписаться на новые файлы в GCS с помощью подстановочного знака?

Вы можете настроить уведомления GCS для фильтрации по префиксу пути. См. Параметр -p здесь. Cloud Pub / Sub также имеет в бета-версии API фильтрации по атрибутам. Вы можете использовать его для фильтрации по атрибутам, установленным GCS. язык фильтрации поддерживает точное совпадение и проверку префиксов для атрибутов, установленных GCS.

Сообщение, опубликованное в теме Cloud Pub / Sub, будет иметь атрибуты, дающие вам сегмент и имя объекта, поэтому вы сможете легко читать другие файлы в этом сегменте / подпутье.

Вопрос 2: Можно ли запустить задание DataProc с помощью уведомления Pub / Sub?

Да, вы можете настроить облачную функцию для подписки на тему Cloud Pub / Sub. Затем функция может запустить кластер DataProc с помощью DataProc клиентскую библиотеку или выполните любое другое действие.

person Prad Nelluru    schedule 25.06.2020