Уменьшить размер запроса: добавить новые данные в таблицу Big Query на основе последней даты - PullRequest
0 голосов
/ 18 июня 2020

Я хочу добавлять новые данные из table_a в table_b каждый день с помощью запланированного запроса в Google Big Query. См. Пример ниже.

Однако, когда я пишу инструкцию SELECT, которая добавляется к table_b, размер запроса становится очень большим.

Если я сравниваю запрос Dynami c с запросом тот, где я использую фиксированную дату (здесь: 30.05.2020), размер запроса десятикратный:

SELECT
date_a as date_b,
col1,
col2,
col3 
FROM `project.dataset.table_a`
WHERE
  date_a > (select max(date_b) from `project.dataset.table_b`)
ORDER by date_b

table_a (разделен на date_a; общий размер более 200 ГБ) (этот пример упрощается, поскольку я делаю другие JOINs и UNIONs et c. в запросе)

+------------+---------+---------+------+--------------+--------------+
|    date_a  |  col1   |  col2   | col3 |    others    |    others    |
+------------+---------+---------+------+--------------+--------------+
| 27.05.2020 | henry   | muller  | 100$ | not relevant | not relevant |
| 28.05.2020 | jamie   | fox     | 200$ | not relevant | not relevant |
| 29.05.2020 | richard | branson | 20$  | not relevant | not relevant |
| 30.05.2020 | jannet  | jackson | 50$  | not relevant | not relevant |
| 31.05.2020 | michael | jackson | 90$  | not relevant | not relevant |
+------------+---------+---------+------+--------------+--------------+

table_b (не разбит на части, общий размер менее 50 МБ)

+------------+---------+---------+------+
|    date_b  |  col1   |  col2   | col3 |
+------------+---------+---------+------+
| 27.05.2020 | henry   | muller  | 100$ |
| 28.05.2020 | jamie   | fox     | 200$ |
| 29.05.2020 | richard | branson | 20$  |
| 30.05.2020 | jannet  | jackson | 50$  |
+------------+---------+---------+------+

Вопрос:

У вас есть совет, как я могу прочитать MAX (date_b) до или другое предложение по сокращению количества запросов?

1 Ответ

1 голос
/ 19 июня 2020

Моя проблема была рассмотрена и дан ответ в другом потоке, которого я раньше не видел.

Вот другой вопрос: Как выбрать последний раздел в таблице BigQuery?

Вот «официальный» ответ / помощь от Google по этому поводу: https://cloud.google.com/bigquery/docs/querying-partitioned-tables#pseudo_column_queries_that_scan_all_partitions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...