Позвольте мне начать говорить, что Тайм-аут запроса BigQuery очень длинный (6 часов), поэтому у вас не должно быть проблем на этом фронте, но вы можете столкнуться с другими ошибками.
У нас был внутренняя проблема та же: у нас есть наборы данных с данными, разделенными на таблицы стран, даже если таблицы разделены по меткам времени при выполнении запросов над создателями таблиц, запрос не только занимает много времени, но иногда происходит сбой с ошибкой превышения ресурсов.
Нашим решением было объединить всю эту таблицу в один столбец с добавлением столбца «страна» и использовать его в качестве столбца кластеризации. Это не только сделало наши запросы выполненными, но и сделало их даже быстрее, чем наше временное решение - выполнить тот же запрос для подмножества таблиц стран в качестве промежуточных шагов, а затем объединить результаты вместе. Теперь он стал быстрее, проще и чище.
Возвращаясь к заданному вами c вопросу, я предлагаю создать новую таблицу (в которой вам нужно будет разместить $$$), которая будет сочетать все таблицы внутри набора данных в виде многораздельной таблицы.
Самый быстрый способ, к сожалению, и более дорогой (вы заплатите за проверку запросов), состоит в использовании оператора create table.
create table `project_id.dataset_id.table_id`
partition by date_month
cluster by origin
as (
select
date(PARSE_TIMESTAMP("%Y%m%d", concat(_table_suffix, "01"), "UTC")) as date_month,
*
from `chrome-ux-report.country_cl.*`
);
Если этот запрос не удался, вы можете запустить его для поднабора таблиц, например, where starts_with(_table_suffix, '2018')
, и выполнить следующий запрос с расположением 'write append' для таблицы, которую вы создали ранее.
select
date(PARSE_TIMESTAMP("%Y%m%d", concat(_table_suffix, "01"), "UTC")) as date_month,
*
from `chrome-ux-report.country_cl.*`
where starts_with(_table_suffix, '2019')
Если Вы заметили, что я также использовал столбец кластеризации, что, по-моему, является лучшим методом.
Примечание для тех, кто занимается Google publi c наборов данных .
It было бы неплохо иметь набор данных publi c "chrome_ux_report" с одной таблицей, разбитой по дате и сгруппированной по стране.