Запрос по-прежнему стоит нам, даже если источник пуст - PullRequest
0 голосов
/ 28 апреля 2020

У меня вопрос по моему запросу, я делаю запрос, у которого есть один источник, который запланирован, и этот источник иногда пуст. Тем не менее, когда он пуст, он все еще стоит нам некоторую сумму денег.

Запрос будет выглядеть следующим образом, так как schedule_source_a иногда представляет собой пустую таблицу (schedule - truncate)

WITH scheduled_source_a AS

(SELECT *
FROM project.dataset.abc),

source_b AS

(SELECT
      date_key,
      search_id
FROM project.dataset_def)

-- Final Query

SELECT *
FROM source_b
WHERE date_key BETWEEN (SELECT (start_date) FROM table) AND (SELECT (end_date) FROM table)

Is Есть ли обходной путь, чтобы при пустом источнике мой последний запрос вообще не стоил нам?

1 Ответ

2 голосов
/ 28 апреля 2020

Я думаю, что счет, который вы видите, должен быть не менее 10 МБ независимо от размера таблицы.

Вы можете использовать сценарии плюс metatable, чтобы избежать запроса, если таблица пуста:

declare isEmpty default (select row_count > 0 from yourDataset.__TABLES__ where <table_name_filter>);
IF isEmpty 
  THEN <do somthing>
END IF;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...