Redshift Unload с чувствительными к регистру заголовками - PullRequest
0 голосов
/ 10 декабря 2018

Ранее команда unload не создавала строку заголовка.Эта функциональность теперь доступна с опцией «HEADER».Однако это не сохраняет регистр заголовков.

Следующий оператор создает файл с заголовком «заголовок моего столбца 1» ...

UNLOAD ('SELECT col1 "My Column Header 1", col2 "My Column Header 2" FROM mytable;')  
TO 's3://mybucket/filename.csv.'  
CREDENTIALS 'aws_iam_role=mycredentials'  
DELIMITER ','  
HEADER  
ALLOWOVERWRITE 
ADDQUOTES  
PARALLEL OFF;

Есть ли способ сохранитьрегистр в заголовках столбцов?

1 Ответ

0 голосов
/ 11 декабря 2018

Нет, сделать это невозможно при использовании опции HEADER, потому что Redshift не имеет имен столбцов с учетом регистра.Все идентификаторы (имена таблиц, имена столбцов и т. Д.) Всегда хранятся в в нижнем регистре в метаданных Redshift.

Можно дополнительно установить параметр, чтобы все имена столбцов возвращались в верхнем регистре в результатах оператора SELECT .

https://docs.aws.amazon.com/redshift/latest/dg/r_names.html

Буквы ASCII в стандартных и разделенных идентификаторах нечувствительны к регистру и складываются в нижний регистр в базе данных.В результатах запроса имена столбцов по умолчанию возвращаются в нижнем регистре.Чтобы вернуть имена столбцов в верхнем регистре, задайте для параметра конфигурации description_field_name_in_uppercase значение true.

...