У меня разные версии сценариев Bigquery Standard, т. е. я использую стандартный API здесь. Я пытаюсь выяснить время в стиле Matlab или время разогрева для сравнения различных скриптов:
Версия A: очень читаемый код с модульным кодом
WITH a AS
(
SELECT * FROM SOURCE
),
a_ AS
(
SELECT ... FROM a
)
SELECT * FROM a_
Версия B: очень нечитаемый код с подзапросами, но заявлено, что он эффективен
SELECT * FROM (SELECT * FROM (SELECT * FROM SOURCE))
Как определить время и сравнить различные стандартные SQL-запросы в Google Bigquery?
Возможные перспективы
Нужно ли мне разогревать стандартные SQL-запросы BQ, как в Matlab?
Каковы общие различия в производительности между версиями A и B? Есть плюсы и минусы? Как вы можете продемонстрировать это в Bigquery?
Любая документация или рекомендации, доступные для двух разных подходов (чрезмерное использование подзапросов по сравнению с модульным кодированием)?
query plan explanation
помогает понять, что происходит под капотом в BigQuery — независимо от того, насколько причудливым и [не]читаемым мы иногда пишем запрос. - person Mikhail Berlyant   schedule 18.01.2018IF(..., Val1, NULL)
вместо того, где в подзапросах? Актуальны?"Cloud Bigtable tables are sparse. Empty columns don't take up any space. As a result, it often makes sense to create a very large number of columns, even if most columns are empty in most rows"
? cloud.google.com/bigtable/docs/schema-design - person hhh   schedule 18.01.2018