Как сгенерировать много таблиц из SQL? - PullRequest
0 голосов
/ 08 июня 2018

У меня есть следующие таблицы:

Имена таблиц: штаты США - 50 таблиц в следующем формате

  1. столбцы: штат, почтовый индекс, адрес
  2. почтовый индекскод не является уникальным

Я хочу сделать следующее с одним запросом SQL:

  1. создать список уникальных почтовых индексов ~ 40 000
  2. создать таблицыс именами почтового индекса ~ 40000
  3. в каждой таблице - только записи с соответствующим почтовым индексом
  4. столбцы: штат, почтовый индекс, адрес

Каксоздать такой запрос SQL, чтобы наиболее эффективный и дешевый способ создания всех этих таблиц?

1 Ответ

0 голосов
/ 08 июня 2018

С текущими функциями вы можете сделать пару «читов»:

  • Определить линейное преобразование из почтового индекса в даты.Например, DATE_ADD ('1980-01-01', ИНТЕРВАЛ ДНЕЙ почтового индекса)
  • Создать многораздельную таблицу - использовать эту искусственную дату в качестве раздела.
  • Напишите запрос, который вставит все ваши данные вэта таблица SELECT *, synthetic_date(zipcode) FROM ``tables*``.
  • Теперь у вас есть многораздельная таблица, где каждый раздел содержит данные только для каждого почтового индекса!Стоимость линейная, всего один просмотр всех ваших данных.
  • И если вы хотите, теперь вы можете скопировать каждый раздел в новую таблицу - бесплатно (но помните о ежедневных квотах).См https://cloud.google.com/bigquery/docs/managing-partitioned-tables#copying_a_single_partition.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...