Мне удалось воспроизвести ваш случай с предоставленным вами примером данных. Я использовал фиктивные таблицы, сгенерированные из приведенных ниже запросов, чтобы подтвердить случаи:
Таблица 1: billing_bigquery
SELECT * FROM `data-analytics-pocs.public.gcp_billing_export_v1_EXAMPL_E0XD3A_DB33F1`
where service.description ='BigQuery' limit 1000
Таблица 2: billing_pubsub
SELECT * FROM `data-analytics-pocs.public.gcp_billing_export_v1_EXAMPL_E0XD3A_DB33F1`
where service.description ='Cloud Pub/Sub' limit 1000
Я предложу два метода для выполнения этой задачи. Однако я должен указать, что у целевой таблицы и исходной таблицы должны быть одинаковые имена столбцов, по крайней мере те, которые вы собираетесь вставить.
Сначала я использовал INSERT TO метод. Однако я хотел бы подчеркнуть, что согласно документации , если ваша таблица секционирована, вы должны включить имена столбцов, которые будут использоваться для вставки новых строк. Поэтому, используя уже показанные фиктивные данные, это будет выглядеть следующим образом:
INSERT INTO `billing_bigquery` ( billing_account_id, service, sku, usage_start_time, usage_end_time, project, labels, system_labels, location, export_time, cost, currency, currency_conversion_rate, usage, credits )#invoice, cost_type
SELECT billing_account_id, service, sku, usage_start_time, usage_end_time, project, labels, system_labels, location, export_time, cost, currency, currency_conversion_rate, usage, credits
FROM `billing_pubsub`
Обратите внимание, что для вложенных полей я просто записываю имя поля, например: service , а не service.description , поскольку они уже будут использованы. Кроме того, я не выбрал все столбцы в наборе данных назначения, но все столбцы, которые я выбрал в таблицах назначения, также должны быть включены в выбор таблицы источника.
Второй метод, вы можете просто использовать Настройки запроса кнопка для добавления small_billing_table к big_billing_table . В консоли BigQuery нажмите Еще >> Настройки запроса . Затем появится окно настроек, и вы go до Таблица назначения , отметьте Установите таблицу назначения для результатов запроса , заполните поля: Имя проекта, Набор данных имя и имя таблицы - это информация таблицы назначения - . Впоследствии в Таблица назначения предпочтения записи проверить Добавить в таблицу , которая согласно документации :
Добавить в таблицу - добавляет результаты запроса в существующую таблицу.
Затем вы запускаете следующий запрос:
Select * from <project.dataset.source_table>
Затем, после его выполнения, необходимо добавить данные таблицы источника в таблице цели.