Нам нужно определить причину, по которой мы хотим уменьшить количество столбцов. Я думаю, что вы обеспокоены расходами. Если мы посмотрим на активное хранилище, мы обнаружим, что текущая цена составляет $ 0,02 / ГБ, при этом первые 10 ГБ освобождаются каждый месяц. Если данные не будут затронуты в течение 90 дней, стоимость хранения упадет до 0,01 долл. США / ГБ. Далее мы должны оценить, сколько памяти используется для записи всех столбцов за месяц по сравнению с записью только той памяти, которую вы хотите записать. Если мы сможем сделать некоторые прогнозы, то мы сможем сделать запрос о том, насколько может измениться стоимость , если мы сократили использование хранилища. То, что мы хотим оценить, будет количество записей журнала, которые будут экспортироваться в месяц, и размер средней записи журнала, если она записана как есть сегодня, по сравнению с записью журнала только с минимально необходимыми полями.
Если мы обнаружим, что есть различие, которое значительно экономит средства, еще одной мыслью будет экспортировать записи журнала в Pub / Sub и заставить их запускать облачную функцию. Однако я сомневаюсь, что в конечном итоге мы обнаружим, что экономия на хранилище BQ будет потеряна из-за стоимости функции Pub / Sub и Cloud Function (и, возможно, потоковой вставки BQ).
Другая мысль может заключаться в том, чтобы понять, что записи журнала BQ записываются в таблицы с именем «день». У нас может быть пакетное задание, которое запускается после того, как будут записаны записи за несколько дней, которые копируют только интересующие столбцы в новую таблицу. Опять же, нам нужно будет следить за тем, чтобы в других местах не возникали более высокие затраты в наших попытках сократить расходы на хранение.