Я создаю копию базы данных красного смещения производства на уровне разработки. Я знаю, как выгружать данные из моего производственного экземпляра/кластера в s3, а затем копировать эти данные в мой экземпляр/кластер разработки, но только если я сразу выгружу все данные. Вместо этого я хотел бы скопировать только 1000 строк из каждой из моих таблиц, чтобы сократить пространство и время передачи между моими красными смещениями.Как выгрузить только 1000 строк из таблиц красного смещения
например.
UNLOAD ('SELECT * FROM myschema.mytable LIMIT 1000') TO 's3://my-bucket' CREDENTIALS etcetcetc
Есть ли способ сделать это LIMIT
с UNLOAD
, или я буду иметь, чтобы перейти к парадигме объемной вставки стиля?
EDIT: Я программно разгрузка и копирование кучи таблиц, так что я не хочу жесткий код в любых ключевых на основе ограничений в случае добавления новых таблиц или изменение структуры таблиц и т.д.
Ах. Я должен был упомянуть, что я ничего не знаю о таблицах, которые я копирую раньше времени, я создаю список выгружающих операторов из запроса, содержащегося в утилитах Redshift Amazon (https://github.com/awslabs/ амазонка-красное смещение-Utils). Это хорошее начало, хотя, позвольте мне посмотреть, смогу ли я это сделать ... – adavea
Мне удалось выполнить то, что я делал, создав временные таблицы с только 1000 строками в них, а затем выгружая эти таблицы вместо полных таблиц. , например. CREATE TEMPORARY TABLE temp_table_for_loading_things AS SELECT * FROM schema.table_to_copy LIMIT 1000; UNLOAD ('SELECT * FROM temp_table_for_loading_things') TO 's3: // tmp_bucket' CREDENTIALS 'aws_access_key_id = KEY; aws_secret_access_key = PASS' GZIP DELIMITER '\ t'; – adavea
В качестве альтернативы вы также можете «выгрузить» (выберите «temp. * From» (выберите col1, col2 из места проведения мероприятия по адресу siteid desc limit 10 as temp ') в' s3: // '... ' –