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)