2014-11-20 5 views
0

Я пытаюсь автоматизировать копирование файлов с S3 на Redshift. Стоя на моем пути, мое незнание того, как сделать дату (выделено жирным шрифтом), всегда будет сегодняшней датой.Динамически вставить дату в имя файла команды Redshift Copy из S3

COPY cid_localytics_export 
FROM 's3://exports.localytics.t-z/<redacted>/**2014/11/19**/eb0ecf515724b3ef5a6d8cb-a8a0fa68-3551-11e4-4b45-00a426b17dd8/00.log.gz' 
CREDENTIALS 'aws_access_key_id=<redacted>;aws_secret_access_key=<redacted>' 
JSON 's3://exports.localytics.t-z/<redacted>/redshift_example.json' 
GZIP 
TRUNCATECOLUMNS; 

Когда я пытаюсь выполнить следующее, я получаю синтаксическую ошибку. Будем очень благодарны за любые идеи или предложения.

COPY cid_localytics_export_test 
FROM (select ''''||'s3://exports.localytics.t-z/<redacted>/'||(select ltrim(rtrim(replace(replace(cast(date_trunc('day', now()) - interval '1 day' as varchar),'-','/'),' 00:00:00+00',''))))||'/eb0ecf515724b3ef5a6d8cb-a8a0fa68-3551-11e4-4b45-00a426b17dd8/00.log.gz'||'''') 
CREDENTIALS 'aws_access_key_id=<redacted>;aws_secret_access_key=<redacted>' 
JSON 's3://exports.localytics.t-z/whitepages/redshift_example.json' 
GZIP 
TRUNCATECOLUMNS; 

ответ

0

Redshift команда копирование ожидает точный путь s3 для папки или файла (s3: // а/Защита или s3: //abc/def/ijk.csv)

Вы должны дать правильный путь файл.

Вы можете написать простой сценарий java/php или shell для (postgres drivers) создания пути s3, используя дату, динамически создающую запрос и затем огонь. Чтобы вы заменили его фактическим значением даты.

Так что будут ошибки синтаксиса.

Смежные вопросы