Я хранил данные protobuf в кодировке base64 в таблице больших запросов, где столбцы выглядят примерно так:
(timestamp, proto_schema_version, raw_data)
У меня есть потоковое задание, которое выполняет обработку сообщений для каждой строки и может получать определение схемы protobuf на основе определения схемы.на версии, а затем десериализовать raw_data.Но он работает довольно медленно, и одно из решений состоит в том, чтобы раскрутить множество его копий и разбить данные по меткам времени.
Но как можно быстрее выполнить пакетное задание?
Моя мысль состоит в том, чтобы использовать что-то вроде искрового фрейма данных с UDF и выполнять преобразования в этом столбце.Но может быть достаточно приличной настройки для установки файлов protobuf на рабочие узлы искры ...
Данные находятся в BigQuery, и я предпочел бы использовать pySpark.