liyang created KYLIN-3047:
-----------------------------

             Summary: Wrong column type when sync hive table via beeline
                 Key: KYLIN-3047
                 URL: https://issues.apache.org/jira/browse/KYLIN-3047
             Project: Kylin
          Issue Type: Bug
            Reporter: liyang


Thanks chenglong.fu <[email protected]> reporting this issue. Below quotes 
from his email.

The origin table looks like:
{code}
75      is_scene        char(2) 客户是否在现场
76      reference_code  varchar(50)     推荐人代码
77      reference_jgcode        varchar(50)     推荐人机构代码
78      applicationagreementbarcode     varchar(50)     领用合约代码
79      remakes varchar(1000)   备注信息
80      data_idn        char(1) 数据标示C-渠道,D-直销
81      source_type     varchar(20)     源系统
82      lst_up_time     timestamp       上一次更新日期
83      data_date       date    数据日期 
{code}

After import, it becomes in Kylin:
{code}
62      IS_CERT_ALL     char(256)       2       
63      IS_SCENE        char(256)       4       客户是否在现场 
64      REFERENCE_CODE  varchar(256)    33      推荐人代码 
65      REFERENCE_JGCODE        varchar(256)    16      推荐人机构代码 
66      APPLICATIONAGREEMENTBARCODE     varchar(256)    12504   领用合约代码 
67      REMAKES         varchar(256)    2       备注信息 
68      DATA_IDN        char(256)       2       数据标示C-渠道,D-直销 
69      SOURCE_TYPE     varchar(256)    2       源系统 
70      LST_UP_TIME     timestamp       1       上一次更新日期 
71      DATA_DATE       date    1       数据日期
{code}

Code analysis leads to {{org.apache.kylin.source.hive.BeelineHiveClient}}:
{code}
public HiveTableMeta getHiveTableMeta(String database, String tableName) throws 
SQLException {
    ResultSet columns = metaData.getColumns(null, database, tableName, null);
    HiveTableMetaBuilder builder = new HiveTableMetaBuilder();
    builder.setTableName(tableName);

    List<HiveTableMeta.HiveTableColumnMeta> allColumns = Lists.newArrayList();
    while (columns.next()) {

        allColumns.add(new 
HiveTableMeta.HiveTableColumnMeta(columns.getString(4), columns.getString(6), 
columns.getString(12)));

    }
    builder.setAllColumns(allColumns);
    DBUtils.closeQuietly(columns);
    stmt.execute("use " + database);
    ResultSet resultSet = stmt.executeQuery("describe formatted " + tableName);
    extractHiveTableMeta(resultSet, builder);
    DBUtils.closeQuietly(resultSet);
    return builder.createHiveTableMeta();
}
{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to