3

我有一个配置单元表,其中列名比平时长。我提到了表定义的配置单元元存储。这是它的外观:

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 table_name 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 回答