2015-08-18 3 views
0

Есть ли способ сделать копию Redshift и одновременно генерировать row_number() в таблице назначения?Функция Redshift Copy и row_number

Я в основном ищу эквивалент ниже, за исключением, что группа строк не приходит из избранных, но из команды копирования для файла на S3

insert into aTable 
     (id,x,y,z) 
    select 
     #{startIncrement}+row_number() over(order by x) as id, 
     x,y,z, 
    from anotherTable; 

Thx

ответ

0

Я понимаю из вашего вопроса, что вам нужно вставить дополнительный идентификатор столбца в таблицу, и этот идентификатор отсутствовал в файле csv. Если мое понимание верное, следуйте приведенному ниже подходу:

Скопируйте данные из файла csv в временную таблицу, скажем, «aTableTemp», которая имеет схему без столбца «id». Затем вставить данные из «aTableTemp» в «ATable» следующим

Insert into aTable 
Select #{startIncrement}+row_number() over(order by x) as id, * from aTableTemp 

Я надеюсь, что это должно решить вашу проблему

+0

Это то, что я сделал, и это не эффективно. Я ищу что-то, что делает это во время первой вставки в команде COPY. –

+0

Вы не можете вставить дополнительный столбец, выполнив команду копирования – Viki888