Изменить таблицу в Impala: сделать столбец первичным ключом - PullRequest
1 голос
/ 06 июня 2019

Используя Hue, как я могу изменить таблицу, чтобы сделать существующий столбец первичным ключом?

Я проверяю и такие вещи, как:

ALTER TABLE table_name ADD CONSTRAINT colname PRIMARY KEY (cs_id);

не является синтаксически правильным.

Примечание: данные хранятся в файловой системе Kudu.

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Когда вы сохраняете как Kudu, вы должны учитывать, что все столбцы PK должны быть созданы при создании таблицы. Impala не поддерживает изменение первичных ключей. Боюсь, вам нужно снова удалить и создать таблицу.

1 голос
/ 06 июня 2019

Во-первых, Impala не поддерживает alter contraint в качестве опции в alter table.

Во-вторых, первичные ключи очень ограничены :

Столбцы первичного ключа должны быть первыми, указанными в операторе CREATE TABLE.

Я не думаю, что вы можете изменить первичный ключ после того, как он был определен.В Impala данные кластеризуются (то есть сортируются) по первичному ключу, поэтому любое изменение будет довольно дорогим.

Возможно, вам потребуется заново создать таблицу и перезагрузить ее с данными.

...