
Приведенное выше изображение представляет собой схему таблицы для большой таблицы запросов, которая является входом в задание потока данных Apache Beam, которое выполняется в scito spotify.Если вы не знакомы с scio, то это оболочка Scala для Apache Beam Java SDK.В частности, «SCollection оборачивает PCollection».Моя входная таблица на диске BigQuery составляет 136 гигабайт, но если посмотреть на размер моей коллекции SCollection в пользовательском интерфейсе потока данных, то она составляет 504,91 ГБ.
Я понимаю, что BigQuery, вероятно, намного лучше при сжатии и представлении данных, но увеличение в> 3 раза кажется довольно высоким.Чтобы быть очень ясным, я использую тип Класса Big Query Case Class (назовем его Clazz), поэтому мой SCollection имеет тип SCollection [Clazz] вместо SCollection [TableRow].TableRow является нативным представлением в Java JDK.Любые советы о том, как сохранить распределение памяти?Это связано с определенным типом столбца в моих входных данных: байты, строки, записи, числа с плавающей запятой и т. Д.?