Копия красного смещения с использованием конвейера amazon не работает из-за отсутствия первичного ключа

У меня есть набор файлов на S3, которые я пытаюсь загрузить в красное смещение. Я использую конвейер данных Amazon для этого. мастер взял информацию о кластере, БД и формате файла, но я получаю ошибки, что требуется первичный ключ, чтобы сохранить существующие поля в таблице (KEEP_EXISTING) на столе

Моя схема таблицы:

create table public.Bens_Analytics_IP_To_FileName(  
Day date not null encode delta32k,  
IP varchar(30) not null encode text255,  
FileName varchar(300) not null encode text32k,  
Count integer not null)  
distkey(Day)  
sortkey(Day,IP);  

тогда я добавил составной первичный ключ в таблицу, чтобы увидеть, будет ли он работать, но я получаю ту же ошибку.

create table public.Bens_Analytics_IP_To_FileName(  
Day date not null encode delta32k,  
IP varchar(30) not null encode text255,  
FileName varchar(300) not null encode text32k,  
Count integer not null,  
primary key(Day,IP,FileName))  
distkey(Day)  
sortkey(Day,IP);  

Поэтому я решил добавить столбец идентификаторов в качестве последнего столбца и сделал его первичным ключом, но затем операция COPY хочет получить значение во входных файлах для этого столбца идентификаторов, которое не имело особого смысла

в идеале я хочу, чтобы он работал без первичного ключа или составного первичного ключа

есть идеи?

Спасибо

2 ответа

В разделе "Редактировать конвейер" в разделе "Параметры" есть поле с именем: myPrimaryKeys (optional), Введите свой Pk там, вместо того, чтобы добавить его в определение таблицы.

Документация не в отличном состоянии. Они добавили концепцию 'mergeKey', которая может быть любым произвольным ключом ( объявление, документы). Вы не должны определять первичный ключ в таблице с этим.

Но вам все равно нужно будет предоставить ключ для выполнения соединения между поступающими новыми данными и существующими данными в таблице красного смещения.

Другие вопросы по тегам