You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "Billy Liu (JIRA)" <ji...@apache.org> on 2018/01/24 09:28:00 UTC

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

     [ https://issues.apache.org/jira/browse/KYLIN-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Billy Liu reassigned KYLIN-3047:
--------------------------------

    Assignee: Wang Cheng

> 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
>            Assignee: Wang Cheng
>            Priority: Major
>              Labels: scope
>
> 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
(v7.6.3#76005)