You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kylin.apache.org by "liyang (JIRA)" <ji...@apache.org> on 2017/11/19 08:14:00 UTC

[jira] [Created] (KYLIN-3047) Wrong column type when sync hive table via beeline

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 <ch...@mljr.com> 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)