Создание таблицы с именем переменной в Amazon Redshift

#amazon-web-services #amazon-redshift

#amazon-веб-сервисы #amazon-redshift

Вопрос:

Попытка автоматизировать задание и получить динамическое имя таблицы в следующем формате:

sales_yyyymm где yyyymm находится дата за последний месяц.

Кто-нибудь это делал?

Комментарии:

1. Вы хотите сказать, что хотите отправить CREATE TABLE команду и заставить Redshift «вычислить» имя таблицы? Нет, это невозможно. Однако вы, вероятно, могли бы сделать это в рамках хранимой процедуры .

2. Я хочу иметь команду с надписью create table sales_yyyymm, где yyyymm вычисляется с использованием current_date

Ответ №1:

Вы не можете сделать это в SQL в Redshift AFAIK. Когда мне понадобилась автоматизация такого рода, внешний инструмент автоматизации Redshift должен предоставлять имена таблиц, если они являются переменными. Redshift запускает SQL, внешний инструмент генерирует SQL.

Предупреждение — Redshift очень хорошо работает с большими таблицами и хорошо работает с маленькими таблицами. Процесс, который вы создаете, позволяет создавать множество очень маленьких таблиц и обрабатывать их так, как если бы они были большой таблицей. При этом может возникнуть ряд проблем (при условии, что это так). Поскольку минимальный размер хранилища в Redshift (block) составляет 1 МБ и они умножаются на столбцы и фрагменты, таблица из нескольких тысяч строк может занимать много места. Это влияет на дисковое хранилище, дисковый ввод-вывод и общую сложность плана запроса. Если вы планируете создать 10 000 таблиц по 10 000 строк в каждой, я обещаю, что у вас будут плохие времена.