Улей Изменить размер столбца таблицы в VARCHAR - PullRequest
1 голос
/ 20 апреля 2020

Я довольно новичок в Hive, и я создал таблицу за несколько месяцев: go

create table TableName 
(
    EntityRelationship varchar(20), 
    EntityID varchar(50), 
    EntityName varchar(50), 

    CLUSTERED BY (EntityID) INTO 60 BUCKETS STORED AS ORC
)

Однако теперь я понял, что EntityName Varchar(50) недостаточно, оно должно быть Varchar(250) , Я нашел измененные коды таблиц, но все они не меняют размер столбца, а меняют типы и имена.

Также я не могу УДАЛИТЬ таблицу, так как в ней уже есть много данных, и это означает, что мне нужно перезагрузить последние месяцы ежедневно.

Что я хочу, чтобы описать конечную таблицу, как показано ниже

create table TableName 
( 
    EntityRelationship varchar(20), 
    EntityID varchar(50), 
    EntityName varchar(250), 
    CLUSTERED BY (EntityID) INTO 60 BUCKETS STORED AS ORC
)

Есть ли где-нибудь еще, я могу изменить эту существующую таблицу, перейдя к EntityName varchar(250), не опуская таблицу? Цените свое время. Спасибо

Ответы [ 3 ]

1 голос
/ 20 апреля 2020
ALTER TABLE TableName CHANGE COLUMN EntityName EntityName  varchar(250);

Подробнее: Изменить имя столбца / Тип / Положение / Комментарий

1 голос
/ 20 апреля 2020

ALTER TABLE table_name ALTER COLUMN имя_ столбца TYPE varchar (250);

может это помочь

0 голосов
/ 20 апреля 2020

@ YJG, если ваш оператор alter не влияет на размер столбца, у вас может не быть другого шанса, кроме как создать новую таблицу нужного вам формата, INSERT INTO newTable SELECT * FROM oldTable. Затем переименуйте oldTable в backupTable и переименуйте newTable в oldTable. Этот метод перемещения данных через промежуточную таблицу иногда необходим, когда изменение исходной схемы таблицы не работает.

...