3

列名が通常より長いハイブ テーブルがあります。テーブル定義については、Hive メタストアを参照しました。これはどのように見えるかです:

DESCRIBE hive.columns_v2;

出力:

Name        ||  Null      ||   Type           
-----------    -------- -------------- 
CD_ID       ||  NOT NULL  || NUMBER         
COMMENT     ||            || VARCHAR2(256)  
COLUMN_NAME || NOT NULL   || VARCHAR2(128)  
TYPE_NAME   || NOT NULL   || VARCHAR2(4000) 
INTEGER_IDX || NOT NULL   || NUMBER(10)   

column_name が 128 バイトの varchar2 として定義されていることがわかります。この値を変更できるハイブ メタストア設定はありますか?

更新: 問題が明確に説明されているこのチケットを参照してください。 https://issues.apache.org/jira/browse/HIVE-9815

アイデアは、データベース自体で MAX_STRING_SIZE を EXTENDED に設定することです。しかし、これはデータベース上の他の多くのものを台無しにします。

これに対する回避策はありますか?

4

1 に答える 1

0

これはうまくいくかもしれません:

ALTER TABLE テーブル名 CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]

例:

CREATE TABLE table_name (a int, b int, c int);

// 列 a の名前を a1 に変更します ALTER TABLE table_name CHANGE a a1 INT;

于 2017-03-06T09:21:57.627 に答える