Копия красного смещения с использованием конвейера 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', которая может быть любым произвольным ключом ( объявление, документы). Вы не должны определять первичный ключ в таблице с этим.
Но вам все равно нужно будет предоставить ключ для выполнения соединения между поступающими новыми данными и существующими данными в таблице красного смещения.