У меня есть таблица в базе данных postgres (собственно, красное смещение AWS), данные из этой таблицы необходимо экспортировать в CSV после некоторых операций.
В качестве примера,
Рассмотрим таблицу Test, с колонками A, B, C, D.
Column A, Column B, Column C, Column D
ValueA1 , ValueB1 , ValueC1 , 1
ValueA1 , ValueB2 , ValueC2 , 2
где A, B, C - строки, а D - целое число.
Запись в этой таблице означает, что для значения столбца A, столбца B, столбца C, D является счетчиком.
Отношение между A, B, C является иерархическим A> B> C.
Мое требование заключается в том, что CSV должен иметь данные, соответствующие операции накопления postgres.
то есть,
Пример CSV:
Column A, Column B, Column C, Sum(D)
ValueA1 , , , 3
, ValueB1 , , 1
, , ValueC1 , 1
, ValueB2 , , 2
, , ValueC2 , 2
В настоящее время мой подход состоит в том, чтобы группировать по A, B, C и получать сумму из столбца D. Иерархическая агрегация выполняется в приложении.
Я не могу получить весь набор результатов (70 миллионов или около того) за один раз, но если бы я использовал лимит и смещение в postgres, чтобы получить данные в разбивке по страницам, есть вероятность, что я мог бы в конечном итоге разделить иерархические данные, ведущие к ValueA был замечен дважды (или больше) в CSV.
Приложение построено с использованием Java и JOOQ. Данные отправляются во внешний интерфейс (построенный с использованием реагирования), и там записывается CSV.
Любая помощь относительно того, как сделать это CSV, приветствуется.