2016-05-05 3 views
0

Не уверен, что это подходящее место для запроса, но в настоящее время я пытаюсь запустить задание потока данных, которое будет разбивать источник данных на несколько кусков в нескольких местах. Тем не менее, я чувствую, что если я попытаюсь написать слишком много таблицы сразу в одном задании, скорее всего, если задача потока данных завершится с ошибкой исключения HTTP-транспорта, и я предполагаю, что существует некоторое ограничение на количество операций ввода-вывода в условия источника и раковины, которые я мог бы обернуть в одну работу?Множественный экспорт с использованием потока данных Google

Чтобы избежать этого сценария, лучшим решением, которое я могу придумать, является разделить это одно задание на несколько заданий потока данных, однако для него это будет означать, что мне нужно будет обрабатывать один и тот же источник данных несколько раз (один раз, для которого задание потока данных). Пока все в порядке, но в идеале я хочу избежать этого, если позже, если мой источник данных станет огромным.

Поэтому я задаюсь вопросом, существует ли какое-либо эмпирическое правило о том, сколько источников данных и раковины я могу объединить в одну устойчивую работу? И есть ли другое лучшее решение для моего варианта использования?

ответ

0

От the Dataflow service description of structuring user code:

поток данных услуг является отказоустойчивой и может повторить ваш код несколько раз в случае проблем рабочих. Служба Dataflow может создавать резервные копии вашего кода и может иметь проблемы с ручными побочными эффектами (например, если ваш код использует или создает временные файлы с неповторимыми именами).

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

Если местоположение, в которое вы хотите написать, еще не поддерживается, вы можете посмотреть writing a custom sink. В документах описывается, как это сделать, что является отказоустойчивым.

Существует ограничение на количество источников и стоков, которые вы можете иметь в одной работе. У вас есть какие-либо подробности о том, сколько вы ожидаете использовать? Если он превышает лимит, есть также способы использовать единый пользовательский приемник вместо нескольких приемников, в зависимости от ваших потребностей.

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

+0

спасибо ben, я мог бы ожидать примерно 4 источника, но около 60 ~ 200 выходного потока в одном задании потока данных, для которого я не уверен, может ли быть слишком много или нет. Местоположение поддерживается, поскольку я ожидаю, что я либо использую gcs, либо bq. источник данных все статично (так что задание пакетного ввода данных), но в будущем может быть возможно подключить источник потоковой передачи, но это просто необязательный –

Смежные вопросы