2016-12-01 9 views
1

У меня возникает эта проблема, когда я пытаюсь скопировать в AWS redshift. Это код, который я пытаюсь запустить:psycopg2.ProgrammingError: ошибка синтаксиса при ошибке «stdin» при попытке copy_from redshift

with open('path/to/files, 'rb') as fo: 
    cursor.copy_from(fo, 'schema.table', sep=',') 
    cursor.commit() 

И я встретил ошибку:

psycopg2.ProgrammingError: syntax error at or near "stdin" 
LINE 1: ...Y schema.table FROM stdin WITH... 

Я бегу питона 3.5 с psycopg2. Надеюсь, что вы, ребята, можете помочь! Thx заранее!

ответ

1

AWS Redshift - это не PostgreSQL, хотя он поддерживает подмножество синтаксиса и функциональности PostgreSQL.

У него нет COPY ... FROM STDIN.

См. the manual о том, как использовать COPY на Redshift.

+0

Благодарим за помощь! – Larry

+0

@CraigRinger Я понимаю вашу точку зрения и вижу, как COPY используется из командной строки или инструмента DB (DBeaver и т. Д.), Но как вы делаете копию таблицы из сценария python. Какой модуль и синтаксис вы бы предложили? –

+0

Вместо этого вам, вероятно, придется использовать несколько вставок или сгенерировать данные для загрузки на s3 и 'COPY'. * Пожала плечами *. Я не использую Redshift. Может быть, вы должны опубликовать новый вопрос и ссылку на этот вопрос? –