Таблицы подстановочных знаков BigQuery - каковы пределы? - PullRequest
0 голосов
/ 30 января 2020

Я думаю об организации набора данных BigQuery с несколькими таблицами, к которым я могу обращаться с использованием подстановочных знаков.

В этом случае будет потенциально более 1000 таблиц, каждая из которых представляет своего клиента. Мне нужно иметь возможность запрашивать их по отдельности, а также запрашивать их все одновременно.

Я имею в виду использование нескольких таблиц, а не одной таблицы с кластеризацией, потому что при выполнении запросов только для определенных c клиентов, я хотел бы иметь возможность сканировать только те данные, которые мне нужны.

На странице Квоты и ограничения перечислены следующие ограничения, которые выглядят применимыми:

  • Максимальное количество таблиц, на которые ссылается запрос, - 1000
  • Максимально разрешенное устаревшее и стандартное SQL длина запроса - 12 МБ
  • Ограничение разрешенной длины запроса включает длину всех представлений и таблиц подстановочных знаков, на которые ссылается запрос.

Мои вопросы:

1) При выполнении запроса с подстановочными знаками (например, SELECT * FROM `project_id.dataset_id.table_*`) выполните все отдельные действия. Таблицы, соответствующие шаблону, подсчитываются с этим пределом в 1000 таблиц?

2) Что именно считается с пределом в 12 МБ? Например, предположим, у меня есть следующие таблицы project_id.dataset_id.table_1, project_id.dataset_id.table_2, project_id.dataset_id.table_3.

  • Если я выполню SELECT на table_*, что будет составлять разрешенную длину запроса? Включает ли оно полное имя всех таблиц (project_id.dataset_id.table_1, project_id.dataset_id.table_2, project_id.dataset_id.table_3)?
  • Если я использую подстановочный знак table_*, но включаю фильтр для _TABLE_SUFFIX (например, WHERE _TABLE_SUFFIX = "1"), исключает ли это таблицы, которые не соответствуют фильтру из разрешенного запроса?

3) Есть ли другие ограничения, о которых мне следует знать?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 31 января 2020

При выполнении запроса с символом подстановки все ли отдельные таблицы, которые соответствуют символу подстановки, учитываются с этим пределом в 1000 таблиц?

Все таблицы, которые совпадают с подстановочными знаками и фильтром _TABLE_SUFFIX, будут учитываться при ограничении 1000

Что именно засчитывается в ограничение 12 МБ?

Длина полностью определенных имен всех таблиц, которые учитываются в соответствии с объясненным выше пределом в 1000 таблиц, будет учитываться при ограничении в 12 МБ

Существуют ли какие-либо другие ограничения, о которых мне следует знать? из?

Предложение - комбинация разбиения и кластеризации поможет вам намного лучше в случае использования, который вы описываете в своем вопросе. Тем более, что теперь вы можете разделить на целочисленный диапазон
Это даст вам превосходную гибкость в обслуживании и обработке данных для сравнения с подходом с разделенными таблицами таблицы для рассмотрения

2 голосов
/ 30 января 2020

Мой совет против. Вы быстро достигнете 1000 таблиц, а затем не сможете запросить их все. Другое состоит в том, что, имея каждую таблицу отдельно, это будет невозможно.

Вы можете использовать кластеризацию для вашей помощи. Если один из ваших столбцов - tenant_id, вы можете использовать его в кластеризации.

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