У меня большая таблица с целочисленными разделами (~ 1 ТБ). Мне нужно регулярно делать несколько небольших подмножеств этой таблицы. Это стоило дорого, но с помощью целочисленных разделов я могу снизить стоимость примерно на 95%. Это выглядит примерно так:
tbl_a: partition_index IN (1, 2, 5, 6, 7, 10, 11, 15, 104, 106, 111)
tbl_b: partition_index IN (3, 4, 5, 20, 21, 25, 16, 84, 201, 301, 302, 303)
и т. Д. И т. Д., С разными подтаблицами, использующими разные подмножества индекса , Это безобразно, как весь ад, но это работает. Я обеспокоен тем, что это будет трудно поддерживать, если мне нужно будет создать новую подтаблицу, и потенциальные перестановки изменятся, и мне придется отредактировать все файлы. sql для новых наборов значений индекса. У меня есть небольшая таблица, в которой есть все различные варианты критериев, которые я хочу, вместе со связанным значением индекса. запрос 5Kb для этой таблицы поиска индекса с фактическими критериями выбора субтаблицы дает список значений индекса, который при копировании и вставке прямо в файлы. sql сохраняет все работоспособным.
Однако для архитектурных По этой причине я не могу извлечь значения индекса из подзапроса и вставить их в виде строки в файлы. sql перед выполнением. Я имею в виду, я мог бы, и это сработало бы. Но это хакерское и плохое и не разумное решение. Тем не менее, я не могу найти способ, чтобы результаты маленького запроса к таблице поиска были использованы правильно. Это всегда приводит к полному сканированию таблицы. Есть идеи?
Я думаю, что эквивалентная проблема была бы, если бы у меня была большая таблица данных, разделенная на customerID, но у меня было только имя клиента. BQ, кажется, хочет, чтобы я запросил таблицу поиска имен, чтобы получить идентификатор, а затем отправил второй запрос с customerID в виде строкового литерала. Я хотел бы иметь возможность сделать это в одном запросе. Но я в тупике.