Я ищу лучшее решение Google Cloud для потоковой передачи и пакетной обработки файлов в чистую базу данных на BigQuery. Я мог бы использовать функции Dataflow или Cloud для достижения этого результата. Тем не менее, я немного борюсь с архитектурой / дизайном и поиском подходящего решения для моих нужд, поскольку оно имеет одну особую сложность.
Проблема в том, что исходные файлы доставляются асинхронно, но я могу только Разбор отдельного файла, если у меня также есть предыдущий файл.
Поэтому, если доставка одного файла запускает механизм синтаксического анализа, мне нужно сначала найти предыдущий файл, прежде чем я смогу на самом деле проанализировать и сохранить результаты на BigQuery. Чтобы проиллюстрировать это:
| t | file delivery | file parsing | comment | |
|---|---------------|---------------------------|-------------------------------------------------------------------|---|
| 1 | date3 | date3+date2 & date4+date3 | date2 and date4 are not there yet, so I cannot parse these combos | |
| 2 | date2 | date2+date1 & date3+date2 | date1 is not there yet, so I cannot parse this combo | |
| 3 | date6 | date6+date5 & | date5 and date7 are not there yet, so I cannot parse these combos | |
Другое решение состоит в том, чтобы направлять необработанные файлы в BigQuery, а затем периодически проверять, есть ли у меня отдельные даты, и обрабатывать их в чистой таблице. Однако это означает, что я не могу создать триггер для таблицы BigQuery как ее мультикомплекса.
Какие-либо предложения по архитектуре и / или решениям для этого?