You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kylin.apache.org by 付成龙 <ch...@mljr.com> on 2017/11/07 07:39:14 UTC
Re: kylin导入hive字段类型变化问题
when I use beelin in kylin ,I found the Hive Table dataType was changed after Load to kylin.
so I see the source code
org.apache.kylin.source.hive.BeelineHiveClient
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();
}so i change the code to Solve my problem ,bu it is not Apply to all dataType in hive .
allColumns.add(new HiveTableMeta.HiveTableColumnMeta(columns.getString(4), columns.getString(6) + "(" + columns.getString(7) + ")", columns.getString(12)));i think the code here Need to modify.
thanks
------------------ Original ------------------
From: "付成龙"<ch...@mljr.com>;
Date: Wed, Oct 18, 2017 04:45 PM
To: "dev"<de...@kylin.apache.org>;
Subject: Re: kylin导入hive字段类型变化问题
hello Shuangyin:
The Following is the table Desc information
col_name data_type comment
app_code varchar(30) 申请单编号
proppser_id varchar(255) 申请人标识号
car_id varchar(10) 车辆标识号
dealer_code int 经销商门店编码
dealer_name varchar(100) 经销商门店名称
company_code int 经销商单位编码
company_name varchar(100) 经销商单位名称
product_code int 所选贷款产品标识号
product_name varchar(100) 所选贷款产品名称
flow_seq int 审批流程标识号
flow_seq_name varchar(20) 审批流程名称
extend_id varchar(10) 延保ID
is_old char(1) 是否二手车
is_lcv char(1) 是否LCV
is_gps char(1) 是否安装GPS
status varchar(3) 审批流程阶段
cancel_type varchar(20) 取消/拒绝/退回类型
cancel_reason varchar(200) 取消/拒绝/退回原因
loan_remarks varchar(1000) 信贷员审批备注
remarks varchar(100) 补充说明
is_pre_interest char(1) 是否前置总利息
gps_fee decimal(10,2) GPS费用(元)
is_gps_loan char(1) GPS费用是否贷款
a_secure_fee decimal(10,2) 申请保险贷款金额
a_carloan_amount decimal(10,2) 车贷贷款金额(元)
a_loan_amount decimal(10,2) 申请总贷款金额(元)
a_init_payment decimal(10,2) 申请首付款
a_init_scale decimal(5,2) 申请首付款比例
a_loan_periods tinyint 申请还款期限(月)
a_account_fee decimal(10,2) 申请账户管理费
a_com_rate decimal(5,2) 申请融手续费率
a_yanbao_fee decimal(10,2) 申请第二年保险费
a_com_fee decimal(10,2) 申请平台费
a_yanbao_tc int 延保费套餐
a_yanbao_tc_name varchar(100) 延保费套餐中文名
disa_rate decimal(5,2) 贴息后利率
discount_e decimal(10,2) 规则贴息金额
a_discount_true_e decimal(10,2) 申请实际贴息金额
a_loan_rate decimal(5,2) 申请贷款年利率(%)
a_rate_level varchar(100) 申请利率档位
a_gross_interest decimal(10,2) 申请前置总利息
a_extend_cost decimal(10,2) 申请延保金额
r_loan_amount decimal(10,2) 批复总贷款金额(元)
r_init_payment decimal(10,2) 批复首付款
r_init_scale decimal(5,2) 批复首付款比例
r_loan_periods tinyint 批复还款期限(月)
r_loan_rate decimal(5,2) 批复贷款年利率(%)
pre_loan_rate decimal(5,2) 批复原始利率
r_rate_level varchar(100) 批复利率档位
r_gps_fee decimal(10,2) 批复GPS费用
r_secure_fee decimal(10,2) 批复保险贷款金额
r_discount_true_e decimal(10,2) 批复实际贴息金额
r_account_fee decimal(10,2) 批复账户管理费
r_carloan_amount decimal(10,2) 批复车辆贷款金额
r_gross_interest decimal(10,2) 批复前置总利息
r_extend_cost decimal(10,2) 批复延保费
r_yanbao_fee decimal(10,2) 批复第二年保险费
r_com_fee decimal(10,2) 批复平台费
rep_account_bank varchar(100) 还款借记卡开户行
rep_account_no varchar(50) 还款借记卡卡号
rep_account_mobile varchar(50) 还款借记卡留手机号
rep_account_name varchar(50) 还款借记卡户名
rep_account_idno varchar(50) 还款卡证件号码
is_check_account char(1) 还款卡是否已验证
aloan_arrive varchar(20) 贷后原件收到状态
is_defer_mortgage char(1) 是否延后抵押
sysa_date timestamp 系统审批日期
sysa_status char(1) 系统审批状态
sysa_result char(1) 系统审批结果类型
ch_approval_status char(1) 渠道审批状态
post_loan_status char(2) 贷后资料上传状态
loan_file_status char(2) 放款文件状态
yy_risk_remarks varchar(1000) 有用风控结果
yy_pre_risk_remarks varchar(1000) 有用前置秒拒备注
yy_workflow_queue varchar(30) 有用审批流程
yy_send_appr varchar(2) 复审是否发送有用
is_credit_report char(1) 是否有信贷报告
is_credit char(1) 是否自带征信
is_print_w char(1) 是否打印配偶
is_house char(1) 是否提供房产证明
loan_record char(2) 有无信贷记录
app_score decimal(5,2) 申请评分
notarization_fee decimal(10,2) 公证费
is_company_license char(1) 是否公牌
is_end_contract char(1) 电子签约状态
ht_source char(1) 活体来源
is_end_ht char(1) 是否结束活体检验
assign char(1) 是否指派
quick_audit_sign char(1) 普通订单转快审标记
is_quick_audit char(1) 是否快速审批订单
is_vip_contract char(1) 是否VIP合同
is_auth_yh char(1) 是否授权央行征信查询
batch_pay_flag varchar(10) 批次放款处理结果
belong_dealer_id int 所属车商ID
belong_dealer varchar(100) 所属车商
belong_sale_id int 所属销售ID
belong_sale varchar(30) 所属销售
belong_sale_idno varchar(30) 所属销售_身份证
belong_sale_manager_id int 所属销售主管ID
belong_sale_manager varchar(30) 所属销售主管
belong_sale_manager_idno varchar(30) 所属销售主管_身份证
belong_market_id int 所属市场ID
belong_market varchar(100) 所属市场
belong_operation_id int 所属运营ID
belong_operation varchar(30) 所属运营
belong_operation_idno varchar(30) 所属运营_身份证
belong_sale_tel varchar(30) 所属销售电话
app_time timestamp 申请提交日期
manage_approval_time timestamp 信贷经理审批日期
first_app_time timestamp 第一次提交时间
first_loan_time timestamp 第一次放款时间 仅多次放款申请单有值
loan_time timestamp 放款日期
is_prepay char(1) 是否垫资
prepay_date timestamp 垫资回款日期
auth_ch varchar(100) 客户鉴权渠道
model_ids varchar(100) 已签合同模板
pled_model_id varchar(100) 抵押合同模板
date_ch timestamp 渠道时间
payment_ch_zn varchar(30) 放款渠道中文名
payment_ch_en varchar(30) 渠道英文名
payment_ch varchar(20) 放款渠道
file_number varchar(20) 档案编号
ip_addr varchar(50) IP地址
lat varchar(50) 维度
lng varchar(50) 经度
imei varchar(50) 国际移动设备身份码
imsi varchar(50) 国际移动用户识别码
uuid varchar(50) iphone的uuid
user_id int 创建用户编码
user_name varchar(20) 创建用户名称
data_idn char(1) 数据标示 C-渠道,D-直销
source_type varchar(20) 源系统
lst_up_time timestamp 上一次更新日期
data_date date 数据日期
NULL NULL
# Partition Information NULL NULL
# col_name data_type comment
NULL NULL
data_date date 数据日期
thanks
------------------ Original ------------------
From: "Shuangyin Ge"<go...@gmail.com>;
Date: Wed, Oct 18, 2017 04:24 PM
To: "dev"<de...@kylin.apache.org>;
Subject: Re: kylin导入hive字段类型变化问题
Hi Chenglong,
I feel that something went wrong during the table creation before Kylin
imports it because more than 1 columns' types were changed. Can you "desc"
the table you created in Hive to verify the schema?
在 2017年10月18日 下午2:22,付成龙 <ch...@mljr.com>写道:
> Hello Shuangyin
>
>
> I use apache-kylin-2.0.0-bin before .
> when I upgrade apache-kylin-2.0.0-bin to apache-kylin-2.1.0-bin-cdh57
> then this problem was Appeared.
>
>
> so I rollback to apache-kylin-2.0.0-bin :
>
>
> 1.delete hbase table :
> kylin_metadata
> kylin_metadata_acl
> kylin_metadata_user
>
>
> 2.delete hive database of kylin
>
>
> 3.delete hdfs workpath of kylin
>
>
> 4.restart kylin of apache-kylin-2.0.0-bin
>
>
> but The problem was still there.
>
>
> the Following is create sql of NSL_FACT_APP_INFO
>
>
> CREATE TABLE `BDWH_NSL.NSL_FACT_APP_INFO`(
> `app_code` varchar(30) COMMENT '申请单编号 ',
> `proppser_id` varchar(255) COMMENT '申请人标识号 ',
> `car_id` varchar(10) COMMENT '车辆标识号 ',
> `dealer_code` int COMMENT '经销商门店编码 ',
> `dealer_name` varchar(100) COMMENT '经销商门店名称',
> `company_code` int COMMENT '经销商单位编码 ',
> `company_name` varchar(100) COMMENT '经销商单位名称',
> `product_code` int COMMENT '所选贷款产品标识号 ',
> `product_name` varchar(100) COMMENT '所选贷款产品名称 ',
> `flow_seq` int COMMENT '审批流程标识号 ',
> `flow_seq_name` varchar(20) COMMENT '审批流程名称',
> `extend_id` varchar(10) COMMENT '延保ID ',
> `is_old` char(1) COMMENT '是否二手车 ',
> `is_lcv` char(1) COMMENT '是否LCV',
> `is_gps` char(1) COMMENT '是否安装GPS',
> `status` varchar(3) COMMENT '审批流程阶段',
> `cancel_type` varchar(20) COMMENT '取消/拒绝/退回类型',
> `cancel_reason` varchar(200) COMMENT '取消/拒绝/退回原因 ',
> `loan_remarks` varchar(1000) COMMENT '信贷员审批备注',
> `remarks` varchar(100) COMMENT '补充说明',
> `is_pre_interest` char(1) COMMENT '是否前置总利息',
> `gps_fee` decimal(10,2) COMMENT 'GPS费用(元) ',
> `is_gps_loan` char(1) COMMENT 'GPS费用是否贷款 ',
> `a_secure_fee` decimal(10,2) COMMENT '申请保险贷款金额 ',
> `a_carloan_amount` decimal(10,2) COMMENT '车贷贷款金额(元) ',
> `a_loan_amount` decimal(10,2) COMMENT '申请总贷款金额(元) ',
> `a_init_payment` decimal(10,2) COMMENT '申请首付款 ',
> `a_init_scale` decimal(5,2) COMMENT '申请首付款比例 ',
> `a_loan_periods` tinyint COMMENT '申请还款期限(月) ',
> `a_account_fee` decimal(10,2) COMMENT '申请账户管理费 ',
> `a_com_rate` decimal(5,2) COMMENT '申请融手续费率 ',
> `a_yanbao_fee` decimal(10,2) COMMENT '申请第二年保险费 ',
> `a_com_fee` decimal(10,2) COMMENT '申请平台费 ',
> `a_yanbao_tc` int COMMENT '延保费套餐 ',
> `a_yanbao_tc_name` varchar(100) COMMENT '延保费套餐中文名 ',
> `disa_rate` decimal(5,2) COMMENT '贴息后利率 ',
> `discount_e` decimal(10,2) COMMENT '规则贴息金额 ',
> `a_discount_true_e` decimal(10,2) COMMENT '申请实际贴息金额 ',
> `a_loan_rate` decimal(5,2) COMMENT '申请贷款年利率(%) ',
> `a_rate_level` varchar(100) COMMENT '申请利率档位 ',
> `a_gross_interest` decimal(10,2) COMMENT '申请前置总利息 ',
> `a_extend_cost` decimal(10,2) COMMENT '申请延保金额 ',
> `r_loan_amount` decimal(10,2) COMMENT '批复总贷款金额(元) ',
> `r_init_payment` decimal(10,2) COMMENT '批复首付款 ',
> `r_init_scale` decimal(5,2) COMMENT '批复首付款比例 ',
> `r_loan_periods` tinyint COMMENT '批复还款期限(月) ',
> `r_loan_rate` decimal(5,2) COMMENT '批复贷款年利率(%) ',
> `pre_loan_rate` decimal(5,2) COMMENT '批复原始利率 ',
> `r_rate_level` varchar(100) COMMENT '批复利率档位 ',
> `r_gps_fee` decimal(10,2) COMMENT '批复GPS费用 ',
> `r_secure_fee` decimal(10,2) COMMENT '批复保险贷款金额 ',
> `r_discount_true_e` decimal(10,2) COMMENT '批复实际贴息金额 ',
> `r_account_fee` decimal(10,2) COMMENT '批复账户管理费 ',
> `r_carloan_amount` decimal(10,2) COMMENT '批复车辆贷款金额 ',
> `r_gross_interest` decimal(10,2) COMMENT '批复前置总利息 ',
> `r_extend_cost` decimal(10,2) COMMENT '批复延保费 ',
> `r_yanbao_fee` decimal(10,2) COMMENT '批复第二年保险费 ',
> `r_com_fee` decimal(10,2) COMMENT '批复平台费 ',
> `rep_account_bank` varchar(100) COMMENT '还款借记卡开户行 ',
> `rep_account_no` varchar(50) COMMENT '还款借记卡卡号 ',
> `rep_account_mobile` varchar(50) COMMENT '还款借记卡留手机号 ',
> `rep_account_name` varchar(50) COMMENT '还款借记卡户名 ',
> `rep_account_idno` varchar(50) COMMENT '还款卡证件号码 ',
> `is_check_account` char(1) COMMENT '还款卡是否已验证 ',
> `aloan_arrive` varchar(20) COMMENT '贷后原件收到状态 ',
> `is_defer_mortgage` char(1) COMMENT '是否延后抵押',
> `sysa_date` timestamp COMMENT '系统审批日期 ',
> `sysa_status` char(1) COMMENT '系统审批状态 ',
> `sysa_result` char(1) COMMENT '系统审批结果类型 ',
> `ch_approval_status` char(1) COMMENT '渠道审批状态',
> `post_loan_status` char(2) COMMENT '贷后资料上传状态',
> `loan_file_status` char(2) COMMENT '放款文件状态 ',
> `yy_risk_remarks` varchar(1000) COMMENT '有用风控结果 ',
> `yy_pre_risk_remarks` varchar(1000) COMMENT '有用前置秒拒备注 ',
> `yy_workflow_queue` varchar(30) COMMENT '有用审批流程',
> `yy_send_appr` varchar(2) COMMENT '复审是否发送有用',
> `is_credit_report` char(1) COMMENT '是否有信贷报告 ',
> `is_credit` char(1) COMMENT '是否自带征信 ',
> `is_print_w` char(1) COMMENT '是否打印配偶 ',
> `is_house` char(1) COMMENT '是否提供房产证明 ',
> `loan_record` char(2) COMMENT '有无信贷记录 ',
> `app_score` decimal(5,2) COMMENT '申请评分 ',
> `notarization_fee` decimal(10,2) COMMENT '公证费',
> `is_company_license` char(1) COMMENT '是否公牌',
> `is_end_contract` char(1) COMMENT '电子签约状态',
> `ht_source` char(1) COMMENT '活体来源',
> `is_end_ht` char(1) COMMENT '是否结束活体检验',
> `assign` char(1) COMMENT '是否指派',
> `quick_audit_sign` char(1) COMMENT '普通订单转快审标记',
> `is_quick_audit` char(1) COMMENT '是否快速审批订单',
> `is_vip_contract` char(1) COMMENT '是否VIP合同',
> `is_auth_yh` char(1) COMMENT '是否授权央行征信查询',
> `batch_pay_flag` varchar(10) COMMENT '批次放款处理结果',
> `belong_dealer_id` int COMMENT '所属车商ID',
> `belong_dealer` varchar(100) COMMENT '所属车商',
> `belong_sale_id` int COMMENT '所属销售ID',
> `belong_sale` varchar(30) COMMENT '所属销售',
> `belong_sale_idno` varchar(30) COMMENT '所属销售_身份证',
> `belong_sale_manager_id` int COMMENT '所属销售主管ID',
> `belong_sale_manager` varchar(30) COMMENT '所属销售主管',
> `belong_sale_manager_idno` varchar(30) COMMENT '所属销售主管_身份证',
> `belong_market_id` int COMMENT '所属市场ID',
> `belong_market` varchar(100) COMMENT '所属市场',
> `belong_operation_id` int COMMENT '所属运营ID',
> `belong_operation` varchar(30) COMMENT '所属运营',
> `belong_operation_idno` varchar(30) COMMENT '所属运营_身份证',
> `belong_sale_tel` varchar(30) COMMENT '所属销售电话 ',
> `app_time` timestamp COMMENT '申请提交日期 ',
> `manage_approval_time` timestamp COMMENT '信贷经理审批日期 ',
> `first_app_time` timestamp COMMENT '第一次提交时间 ',
> `first_loan_time` timestamp COMMENT '第一次放款时间 仅多次放款申请单有值',
> `loan_time` timestamp COMMENT '放款日期 ',
> `is_prepay` char(1) COMMENT '是否垫资',
> `prepay_date` timestamp COMMENT '垫资回款日期 ',
> `auth_ch` varchar(100) COMMENT '客户鉴权渠道',
> `model_ids` varchar(100) COMMENT '已签合同模板 ',
> `pled_model_id` varchar(100) COMMENT '抵押合同模板 ',
> `date_ch` timestamp COMMENT '渠道时间 ',
> `payment_ch_zn` varchar(30) COMMENT '放款渠道中文名 ',
> `payment_ch_en` varchar(30) COMMENT '渠道英文名 ',
> `payment_ch` varchar(20) COMMENT '放款渠道 ',
> `file_number` varchar(20) COMMENT '档案编号 ',
> `ip_addr` varchar(50) COMMENT 'IP地址 ',
> `lat` varchar(50) COMMENT '维度 ',
> `lng` varchar(50) COMMENT '经度 ',
> `imei` varchar(50) COMMENT '国际移动设备身份码 ',
> `imsi` varchar(50) COMMENT '国际移动用户识别码 ',
> `uuid` varchar(50) COMMENT 'iphone的uuid ',
> `user_id` int COMMENT '创建用户编码 ',
> `user_name` varchar(20) COMMENT '创建用户名称 ',
> `data_idn` char(1) COMMENT '数据标示 C-渠道,D-直销',
> `source_type` varchar(20) COMMENT '源系统 ',
> `lst_up_time` timestamp COMMENT '上一次更新日期 ')
> COMMENT '车贷申请单信息'
> PARTITIONED BY (
> `data_date` date COMMENT '数据日期 ')
> ROW FORMAT SERDE
> 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
> WITH SERDEPROPERTIES (
> 'field.delim'='\u0007',
> 'serialization.format'='\u0007')
> STORED AS INPUTFORMAT
> 'org.apache.hadoop.mapred.TextInputFormat'
> OUTPUTFORMAT
> 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
> LOCATION
> 'hdfs://nameservice1/user/dmp/prod/v2/NSL/NSL_FACT_APP_INFO'
> TBLPROPERTIES (
> 'transient_lastDdlTime'='1507710993')
>
>
> thanks
>
>
>
>
>
>
>
>
>
>
>
> ------------------ Original ------------------
> From: "Shuangyin Ge"<go...@gmail.com>;
> Date: Wed, Oct 18, 2017 01:43 PM
> To: "dev"<de...@kylin.apache.org>;
>
> Subject: Re: kylin导入hive字段类型变化问题
>
>
> Hello Chenglong,
>
> I tried to reproduce this CHAR type length change after importing from Hive
> issue on Kylin 2.1 but I cannot reproduce it. Can you please let me know
> your Kylin version and the complete DDL you used to create these tables?
>
> 在 2017年10月18日 上午11:34,chenglong.fu <ch...@mljr.com>写道:
>
> >
> >
> > hello everyone:
> >
> >
> >
> > 因为之前附件没有转发和图片太大显示不全,我重新发送一封邮件,打扰见谅。
> >
> > 我在使用kylin的时候遇到了字段类型变化导致的问题,所有想寻求一下大家的帮助。
> >
> > 问题的描述:
> >
> > 1. hive表导入kylin后字段类型发生变化
> >
> >
> >
> > hive 中NSL_DIM_PROPPSER_INFO原表类型(截取部分):、
> >
> > 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
> >
> > 数据日期
> >
> >
> >
> > 导入kylin后显示的类型:Table Schema:NSL_DIM_PROPPSER_INFO
> >
> >
> >
> > 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
> >
> > 数据日期
> >
> >
> >
> >
> >
> > Hive中NSL_FACT_APP_INFO 类型(部分)
> >
> >
> >
> > 124
> >
> > lat
> >
> > varchar(50)
> >
> > 维度
> >
> > 125
> >
> > lng
> >
> > varchar(50)
> >
> > 经度
> >
> > 126
> >
> > imei
> >
> > varchar(50)
> >
> > 国际移动设备身份码
> >
> > 127
> >
> > imsi
> >
> > varchar(50)
> >
> > 国际移动用户识别码
> >
> > 128
> >
> > uuid
> >
> > varchar(50)
> >
> > iphone的uuid
> >
> > 129
> >
> > user_id
> >
> > int
> >
> > 创建用户编码
> >
> > 130
> >
> > user_name
> >
> > varchar(20)
> >
> > 创建用户名称
> >
> > 131
> >
> > data_idn
> >
> > char(1)
> >
> > 数据标示 C-渠道,D-直销
> >
> > 132
> >
> > source_type
> >
> > varchar(20)
> >
> > 源系统
> >
> > 133
> >
> > lst_up_time
> >
> > timestamp
> >
> > 上一次更新日期
> >
> > 134
> >
> > data_date
> >
> > date
> >
> > 数据日期
> >
> >
> >
> >
> >
> > Kylin中 Table Schema:NSL_FACT_APP_INFO
> >
> >
> >
> > 124
> >
> > LAT
> >
> > varchar(256)
> >
> > 69144
> >
> > 维度
> >
> > 125
> >
> > LNG
> >
> > varchar(256)
> >
> > 76679
> >
> > 经度
> >
> > 126
> >
> > IMEI
> >
> > varchar(256)
> >
> > 3918
> >
> > 国际移动设备身份码
> >
> > 127
> >
> > IMSI
> >
> > varchar(256)
> >
> > 2
> >
> > 国际移动用户识别码
> >
> > 128
> >
> > UUID
> >
> > varchar(256)
> >
> > 2
> >
> > iphone的uuid
> >
> > 129
> >
> > USER_ID
> >
> > integer
> >
> > 1473
> >
> > 创建用户编码
> >
> > 130
> >
> > USER_NAME
> >
> > varchar(256)
> >
> > 1667
> >
> > 创建用户名称
> >
> > 131
> >
> > DATA_IDN
> >
> > char(256)
> >
> > 2
> >
> > 数据标示 C-渠道,D-直销
> >
> > 132
> >
> > SOURCE_TYPE
> >
> > varchar(256)
> >
> > 3
> >
> > 源系统
> >
> > 133
> >
> > LST_UP_TIME
> >
> > timestamp
> >
> > 1
> >
> > 上一次更新日期
> >
> > 134
> >
> > DATA_DATE
> >
> > date
> >
> > 1
> >
> > 数据日期
> >
> >
> >
> > 2. 因为字段发生变化导致 Create Intermediate Flat Hive Table 失败
> >
> > 上面的2张表在model中关联关系
> >
> > NSL_FACT_APP_INFO.DATA_IDN = NSL_DIM_PROPPSER_INFO.DATA_IDN
> >
> > NSL_FACT_APP_INFO.PROPPSER_ID = NSL_DIM_PROPPSER_INFO.PROPPSER_ID
> >
> >
> >
> > 构建cube的时候,在Create Intermediate Flat Hive Table 时候报
> >
> >
> >
> > INFO : OK
> >
> > No rows affected (0.137 seconds)
> >
> > 0: jdbc:hive2://10.8.49.171:10000> CREATE EXTERNAL TABLE IF NOT EXISTS
> kylin_intermediate_nsl_cube_cd1448f2_0b32_48bc_a4fb_3be505b5c135
> >
> > . . . . . . . . . . . . . . . . .> (
> >
> > . . . . . . . . . . . . . . . . .> NSL_FACT_APP_INFO_DATA_IDN char(256)
> >
> > . . . . . . . . . . . . . . . . .> ,NSL_FACT_APP_INFO_PROPPSER_ID string
> >
> > . . . . . . . . . . . . . . . . .> ,NSL_FACT_APP_INFO_A_SECURE_FEE
> decimal(19,4)
> >
> > . . . . . . . . . . . . . . . . .> ,NSL_FACT_APP_INFO_A_INIT_PAYMENT
> decimal(19,
> >
> > 4)
> >
> > . . . . . . . . . . . . . . . . .> )
> >
> > . . . . . . . . . . . . . . . . .> STORED AS SEQUENCEFILE
> >
> > . . . . . . . . . . . . . . . . .> LOCATION
> 'hdfs:///user/dmp/kylin/kylin_metada
> >
> > ta/kylin-c5e7ed64-d408-4804-b4a0-2efb1192b099/kylin_
> intermediate_nsl_cube_cd1448
> >
> > f2_0b32_48bc_a4fb_3be505b5c135';
> >
> > Error: Error while compiling statement: FAILED: RuntimeException Char
> length 256 out of allowed range [1, 255] (state=42000,code=40000)
> >
> >
> >
> > Hive 表中的DATA_IDN是char(1) 导入kylin 显示char(256) 报错 Char length 256 out of
> > allowed range [1, 255]
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > 3. 选择度量的时候因为字段类型导致 mapreduce 构建cubid 任务失败
> >
> > 在创建Measure的时候 Return Type的时候是自动根据前面kylin中表的字段类型自动生成
> 的,又不能修改,所以在后面跑mapreduce
> > 的时候当这个 度量列聚合量很大的时候就超出这个字段类型长度。任务就会失败。
> >
> >
> >
> > 谢谢
> >
> >
> >
Re: kylin导入hive字段类型变化问题
Posted by Li Yang <li...@apache.org>.
Good analysis! I created a JIRA to capture this issue:
https://issues.apache.org/jira/browse/KYLIN-3047
You are more than welcome to contribute a fix.
Thanks
Yang
On Tue, Nov 7, 2017 at 3:39 PM, 付成龙 <ch...@mljr.com> wrote:
> when I use beelin in kylin ,I found the Hive Table dataType was
> changed after Load to kylin.
>
> so I see the source code
>
> org.apache.kylin.source.hive.BeelineHiveClient
> 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();
> }so i change the code to Solve my problem ,bu it is not Apply to all
> dataType in hive .
> allColumns.add(new HiveTableMeta.HiveTableColumnMeta(columns.getString(4),
> columns.getString(6) + "(" + columns.getString(7) + ")",
> columns.getString(12)));i think the code here Need to modify.
>
> thanks
>
>
>
>
>
> ------------------ Original ------------------
> From: "付成龙"<ch...@mljr.com>;
> Date: Wed, Oct 18, 2017 04:45 PM
> To: "dev"<de...@kylin.apache.org>;
>
> Subject: Re: kylin导入hive字段类型变化问题
>
>
> hello Shuangyin:
>
> The Following is the table Desc information
>
> col_name data_type comment
> app_code varchar(30) 申请单编号
> proppser_id varchar(255) 申请人标识号
> car_id varchar(10) 车辆标识号
> dealer_code int 经销商门店编码
> dealer_name varchar(100) 经销商门店名称
> company_code int 经销商单位编码
> company_name varchar(100) 经销商单位名称
> product_code int 所选贷款产品标识号
> product_name varchar(100) 所选贷款产品名称
> flow_seq int 审批流程标识号
> flow_seq_name varchar(20) 审批流程名称
> extend_id varchar(10) 延保ID
> is_old char(1) 是否二手车
> is_lcv char(1) 是否LCV
> is_gps char(1) 是否安装GPS
> status varchar(3) 审批流程阶段
> cancel_type varchar(20) 取消/拒绝/退回类型
> cancel_reason varchar(200) 取消/拒绝/退回原因
> loan_remarks varchar(1000) 信贷员审批备注
> remarks varchar(100) 补充说明
> is_pre_interest char(1) 是否前置总利息
> gps_fee decimal(10,2) GPS费用(元)
> is_gps_loan char(1) GPS费用是否贷款
> a_secure_fee decimal(10,2) 申请保险贷款金额
> a_carloan_amount decimal(10,2) 车贷贷款金额(元)
> a_loan_amount decimal(10,2) 申请总贷款金额(元)
> a_init_payment decimal(10,2) 申请首付款
> a_init_scale decimal(5,2) 申请首付款比例
> a_loan_periods tinyint 申请还款期限(月)
> a_account_fee decimal(10,2) 申请账户管理费
> a_com_rate decimal(5,2) 申请融手续费率
> a_yanbao_fee decimal(10,2) 申请第二年保险费
> a_com_fee decimal(10,2) 申请平台费
> a_yanbao_tc int 延保费套餐
> a_yanbao_tc_name varchar(100) 延保费套餐中文名
> disa_rate decimal(5,2) 贴息后利率
> discount_e decimal(10,2) 规则贴息金额
> a_discount_true_e decimal(10,2) 申请实际贴息金额
> a_loan_rate decimal(5,2) 申请贷款年利率(%)
> a_rate_level varchar(100) 申请利率档位
> a_gross_interest decimal(10,2) 申请前置总利息
> a_extend_cost decimal(10,2) 申请延保金额
> r_loan_amount decimal(10,2) 批复总贷款金额(元)
> r_init_payment decimal(10,2) 批复首付款
> r_init_scale decimal(5,2) 批复首付款比例
> r_loan_periods tinyint 批复还款期限(月)
> r_loan_rate decimal(5,2) 批复贷款年利率(%)
> pre_loan_rate decimal(5,2) 批复原始利率
> r_rate_level varchar(100) 批复利率档位
> r_gps_fee decimal(10,2) 批复GPS费用
> r_secure_fee decimal(10,2) 批复保险贷款金额
> r_discount_true_e decimal(10,2) 批复实际贴息金额
> r_account_fee decimal(10,2) 批复账户管理费
> r_carloan_amount decimal(10,2) 批复车辆贷款金额
> r_gross_interest decimal(10,2) 批复前置总利息
> r_extend_cost decimal(10,2) 批复延保费
> r_yanbao_fee decimal(10,2) 批复第二年保险费
> r_com_fee decimal(10,2) 批复平台费
> rep_account_bank varchar(100) 还款借记卡开户行
> rep_account_no varchar(50) 还款借记卡卡号
> rep_account_mobile varchar(50) 还款借记卡留手机号
> rep_account_name varchar(50) 还款借记卡户名
> rep_account_idno varchar(50) 还款卡证件号码
> is_check_account char(1) 还款卡是否已验证
> aloan_arrive varchar(20) 贷后原件收到状态
> is_defer_mortgage char(1) 是否延后抵押
> sysa_date timestamp 系统审批日期
> sysa_status char(1) 系统审批状态
> sysa_result char(1) 系统审批结果类型
> ch_approval_status char(1) 渠道审批状态
> post_loan_status char(2) 贷后资料上传状态
> loan_file_status char(2) 放款文件状态
> yy_risk_remarks varchar(1000) 有用风控结果
> yy_pre_risk_remarks varchar(1000) 有用前置秒拒备注
> yy_workflow_queue varchar(30) 有用审批流程
> yy_send_appr varchar(2) 复审是否发送有用
> is_credit_report char(1) 是否有信贷报告
> is_credit char(1) 是否自带征信
> is_print_w char(1) 是否打印配偶
> is_house char(1) 是否提供房产证明
> loan_record char(2) 有无信贷记录
> app_score decimal(5,2) 申请评分
> notarization_fee decimal(10,2) 公证费
> is_company_license char(1) 是否公牌
> is_end_contract char(1) 电子签约状态
> ht_source char(1) 活体来源
> is_end_ht char(1) 是否结束活体检验
> assign char(1) 是否指派
> quick_audit_sign char(1) 普通订单转快审标记
> is_quick_audit char(1) 是否快速审批订单
> is_vip_contract char(1) 是否VIP合同
> is_auth_yh char(1) 是否授权央行征信查询
> batch_pay_flag varchar(10) 批次放款处理结果
> belong_dealer_id int 所属车商ID
> belong_dealer varchar(100) 所属车商
> belong_sale_id int 所属销售ID
> belong_sale varchar(30) 所属销售
> belong_sale_idno varchar(30) 所属销售_身份证
> belong_sale_manager_id int 所属销售主管ID
> belong_sale_manager varchar(30) 所属销售主管
> belong_sale_manager_idno varchar(30) 所属销售主管_身份证
> belong_market_id int 所属市场ID
> belong_market varchar(100) 所属市场
> belong_operation_id int 所属运营ID
> belong_operation varchar(30) 所属运营
> belong_operation_idno varchar(30) 所属运营_身份证
> belong_sale_tel varchar(30) 所属销售电话
> app_time timestamp 申请提交日期
> manage_approval_time timestamp 信贷经理审批日期
> first_app_time timestamp 第一次提交时间
> first_loan_time timestamp 第一次放款时间 仅多次放款申请单有值
> loan_time timestamp 放款日期
> is_prepay char(1) 是否垫资
> prepay_date timestamp 垫资回款日期
> auth_ch varchar(100) 客户鉴权渠道
> model_ids varchar(100) 已签合同模板
> pled_model_id varchar(100) 抵押合同模板
> date_ch timestamp 渠道时间
> payment_ch_zn varchar(30) 放款渠道中文名
> payment_ch_en varchar(30) 渠道英文名
> payment_ch varchar(20) 放款渠道
> file_number varchar(20) 档案编号
> ip_addr varchar(50) IP地址
> lat varchar(50) 维度
> lng varchar(50) 经度
> imei varchar(50) 国际移动设备身份码
> imsi varchar(50) 国际移动用户识别码
> uuid varchar(50) iphone的uuid
> user_id int 创建用户编码
> user_name varchar(20) 创建用户名称
> data_idn char(1) 数据标示 C-渠道,D-直销
> source_type varchar(20) 源系统
> lst_up_time timestamp 上一次更新日期
> data_date date 数据日期
>
> NULL NULL
> # Partition Information NULL NULL
> # col_name data_type comment
>
> NULL NULL
> data_date date 数据日期
>
>
>
> thanks
>
>
> ------------------ Original ------------------
> From: "Shuangyin Ge"<go...@gmail.com>;
> Date: Wed, Oct 18, 2017 04:24 PM
> To: "dev"<de...@kylin.apache.org>;
>
> Subject: Re: kylin导入hive字段类型变化问题
>
>
> Hi Chenglong,
>
> I feel that something went wrong during the table creation before Kylin
> imports it because more than 1 columns' types were changed. Can you "desc"
> the table you created in Hive to verify the schema?
>
> 在 2017年10月18日 下午2:22,付成龙 <ch...@mljr.com>写道:
>
> > Hello Shuangyin
> >
> >
> > I use apache-kylin-2.0.0-bin before .
> > when I upgrade apache-kylin-2.0.0-bin to apache-kylin-2.1.0-bin-cdh57
> > then this problem was Appeared.
> >
> >
> > so I rollback to apache-kylin-2.0.0-bin :
> >
> >
> > 1.delete hbase table :
> > kylin_metadata
> > kylin_metadata_acl
> > kylin_metadata_user
> >
> >
> > 2.delete hive database of kylin
> >
> >
> > 3.delete hdfs workpath of kylin
> >
> >
> > 4.restart kylin of apache-kylin-2.0.0-bin
> >
> >
> > but The problem was still there.
> >
> >
> > the Following is create sql of NSL_FACT_APP_INFO
> >
> >
> > CREATE TABLE `BDWH_NSL.NSL_FACT_APP_INFO`(
> > `app_code` varchar(30) COMMENT '申请单编号 ',
> > `proppser_id` varchar(255) COMMENT '申请人标识号 ',
> > `car_id` varchar(10) COMMENT '车辆标识号 ',
> > `dealer_code` int COMMENT '经销商门店编码 ',
> > `dealer_name` varchar(100) COMMENT '经销商门店名称',
> > `company_code` int COMMENT '经销商单位编码 ',
> > `company_name` varchar(100) COMMENT '经销商单位名称',
> > `product_code` int COMMENT '所选贷款产品标识号 ',
> > `product_name` varchar(100) COMMENT '所选贷款产品名称 ',
> > `flow_seq` int COMMENT '审批流程标识号 ',
> > `flow_seq_name` varchar(20) COMMENT '审批流程名称',
> > `extend_id` varchar(10) COMMENT '延保ID ',
> > `is_old` char(1) COMMENT '是否二手车 ',
> > `is_lcv` char(1) COMMENT '是否LCV',
> > `is_gps` char(1) COMMENT '是否安装GPS',
> > `status` varchar(3) COMMENT '审批流程阶段',
> > `cancel_type` varchar(20) COMMENT '取消/拒绝/退回类型',
> > `cancel_reason` varchar(200) COMMENT '取消/拒绝/退回原因 ',
> > `loan_remarks` varchar(1000) COMMENT '信贷员审批备注',
> > `remarks` varchar(100) COMMENT '补充说明',
> > `is_pre_interest` char(1) COMMENT '是否前置总利息',
> > `gps_fee` decimal(10,2) COMMENT 'GPS费用(元) ',
> > `is_gps_loan` char(1) COMMENT 'GPS费用是否贷款 ',
> > `a_secure_fee` decimal(10,2) COMMENT '申请保险贷款金额 ',
> > `a_carloan_amount` decimal(10,2) COMMENT '车贷贷款金额(元) ',
> > `a_loan_amount` decimal(10,2) COMMENT '申请总贷款金额(元) ',
> > `a_init_payment` decimal(10,2) COMMENT '申请首付款 ',
> > `a_init_scale` decimal(5,2) COMMENT '申请首付款比例 ',
> > `a_loan_periods` tinyint COMMENT '申请还款期限(月) ',
> > `a_account_fee` decimal(10,2) COMMENT '申请账户管理费 ',
> > `a_com_rate` decimal(5,2) COMMENT '申请融手续费率 ',
> > `a_yanbao_fee` decimal(10,2) COMMENT '申请第二年保险费 ',
> > `a_com_fee` decimal(10,2) COMMENT '申请平台费 ',
> > `a_yanbao_tc` int COMMENT '延保费套餐 ',
> > `a_yanbao_tc_name` varchar(100) COMMENT '延保费套餐中文名 ',
> > `disa_rate` decimal(5,2) COMMENT '贴息后利率 ',
> > `discount_e` decimal(10,2) COMMENT '规则贴息金额 ',
> > `a_discount_true_e` decimal(10,2) COMMENT '申请实际贴息金额 ',
> > `a_loan_rate` decimal(5,2) COMMENT '申请贷款年利率(%) ',
> > `a_rate_level` varchar(100) COMMENT '申请利率档位 ',
> > `a_gross_interest` decimal(10,2) COMMENT '申请前置总利息 ',
> > `a_extend_cost` decimal(10,2) COMMENT '申请延保金额 ',
> > `r_loan_amount` decimal(10,2) COMMENT '批复总贷款金额(元) ',
> > `r_init_payment` decimal(10,2) COMMENT '批复首付款 ',
> > `r_init_scale` decimal(5,2) COMMENT '批复首付款比例 ',
> > `r_loan_periods` tinyint COMMENT '批复还款期限(月) ',
> > `r_loan_rate` decimal(5,2) COMMENT '批复贷款年利率(%) ',
> > `pre_loan_rate` decimal(5,2) COMMENT '批复原始利率 ',
> > `r_rate_level` varchar(100) COMMENT '批复利率档位 ',
> > `r_gps_fee` decimal(10,2) COMMENT '批复GPS费用 ',
> > `r_secure_fee` decimal(10,2) COMMENT '批复保险贷款金额 ',
> > `r_discount_true_e` decimal(10,2) COMMENT '批复实际贴息金额 ',
> > `r_account_fee` decimal(10,2) COMMENT '批复账户管理费 ',
> > `r_carloan_amount` decimal(10,2) COMMENT '批复车辆贷款金额 ',
> > `r_gross_interest` decimal(10,2) COMMENT '批复前置总利息 ',
> > `r_extend_cost` decimal(10,2) COMMENT '批复延保费 ',
> > `r_yanbao_fee` decimal(10,2) COMMENT '批复第二年保险费 ',
> > `r_com_fee` decimal(10,2) COMMENT '批复平台费 ',
> > `rep_account_bank` varchar(100) COMMENT '还款借记卡开户行 ',
> > `rep_account_no` varchar(50) COMMENT '还款借记卡卡号 ',
> > `rep_account_mobile` varchar(50) COMMENT '还款借记卡留手机号 ',
> > `rep_account_name` varchar(50) COMMENT '还款借记卡户名 ',
> > `rep_account_idno` varchar(50) COMMENT '还款卡证件号码 ',
> > `is_check_account` char(1) COMMENT '还款卡是否已验证 ',
> > `aloan_arrive` varchar(20) COMMENT '贷后原件收到状态 ',
> > `is_defer_mortgage` char(1) COMMENT '是否延后抵押',
> > `sysa_date` timestamp COMMENT '系统审批日期 ',
> > `sysa_status` char(1) COMMENT '系统审批状态 ',
> > `sysa_result` char(1) COMMENT '系统审批结果类型 ',
> > `ch_approval_status` char(1) COMMENT '渠道审批状态',
> > `post_loan_status` char(2) COMMENT '贷后资料上传状态',
> > `loan_file_status` char(2) COMMENT '放款文件状态 ',
> > `yy_risk_remarks` varchar(1000) COMMENT '有用风控结果 ',
> > `yy_pre_risk_remarks` varchar(1000) COMMENT '有用前置秒拒备注 ',
> > `yy_workflow_queue` varchar(30) COMMENT '有用审批流程',
> > `yy_send_appr` varchar(2) COMMENT '复审是否发送有用',
> > `is_credit_report` char(1) COMMENT '是否有信贷报告 ',
> > `is_credit` char(1) COMMENT '是否自带征信 ',
> > `is_print_w` char(1) COMMENT '是否打印配偶 ',
> > `is_house` char(1) COMMENT '是否提供房产证明 ',
> > `loan_record` char(2) COMMENT '有无信贷记录 ',
> > `app_score` decimal(5,2) COMMENT '申请评分 ',
> > `notarization_fee` decimal(10,2) COMMENT '公证费',
> > `is_company_license` char(1) COMMENT '是否公牌',
> > `is_end_contract` char(1) COMMENT '电子签约状态',
> > `ht_source` char(1) COMMENT '活体来源',
> > `is_end_ht` char(1) COMMENT '是否结束活体检验',
> > `assign` char(1) COMMENT '是否指派',
> > `quick_audit_sign` char(1) COMMENT '普通订单转快审标记',
> > `is_quick_audit` char(1) COMMENT '是否快速审批订单',
> > `is_vip_contract` char(1) COMMENT '是否VIP合同',
> > `is_auth_yh` char(1) COMMENT '是否授权央行征信查询',
> > `batch_pay_flag` varchar(10) COMMENT '批次放款处理结果',
> > `belong_dealer_id` int COMMENT '所属车商ID',
> > `belong_dealer` varchar(100) COMMENT '所属车商',
> > `belong_sale_id` int COMMENT '所属销售ID',
> > `belong_sale` varchar(30) COMMENT '所属销售',
> > `belong_sale_idno` varchar(30) COMMENT '所属销售_身份证',
> > `belong_sale_manager_id` int COMMENT '所属销售主管ID',
> > `belong_sale_manager` varchar(30) COMMENT '所属销售主管',
> > `belong_sale_manager_idno` varchar(30) COMMENT '所属销售主管_身份证',
> > `belong_market_id` int COMMENT '所属市场ID',
> > `belong_market` varchar(100) COMMENT '所属市场',
> > `belong_operation_id` int COMMENT '所属运营ID',
> > `belong_operation` varchar(30) COMMENT '所属运营',
> > `belong_operation_idno` varchar(30) COMMENT '所属运营_身份证',
> > `belong_sale_tel` varchar(30) COMMENT '所属销售电话 ',
> > `app_time` timestamp COMMENT '申请提交日期 ',
> > `manage_approval_time` timestamp COMMENT '信贷经理审批日期 ',
> > `first_app_time` timestamp COMMENT '第一次提交时间 ',
> > `first_loan_time` timestamp COMMENT '第一次放款时间 仅多次放款申请单有值',
> > `loan_time` timestamp COMMENT '放款日期 ',
> > `is_prepay` char(1) COMMENT '是否垫资',
> > `prepay_date` timestamp COMMENT '垫资回款日期 ',
> > `auth_ch` varchar(100) COMMENT '客户鉴权渠道',
> > `model_ids` varchar(100) COMMENT '已签合同模板 ',
> > `pled_model_id` varchar(100) COMMENT '抵押合同模板 ',
> > `date_ch` timestamp COMMENT '渠道时间 ',
> > `payment_ch_zn` varchar(30) COMMENT '放款渠道中文名 ',
> > `payment_ch_en` varchar(30) COMMENT '渠道英文名 ',
> > `payment_ch` varchar(20) COMMENT '放款渠道 ',
> > `file_number` varchar(20) COMMENT '档案编号 ',
> > `ip_addr` varchar(50) COMMENT 'IP地址 ',
> > `lat` varchar(50) COMMENT '维度 ',
> > `lng` varchar(50) COMMENT '经度 ',
> > `imei` varchar(50) COMMENT '国际移动设备身份码 ',
> > `imsi` varchar(50) COMMENT '国际移动用户识别码 ',
> > `uuid` varchar(50) COMMENT 'iphone的uuid ',
> > `user_id` int COMMENT '创建用户编码 ',
> > `user_name` varchar(20) COMMENT '创建用户名称 ',
> > `data_idn` char(1) COMMENT '数据标示 C-渠道,D-直销',
> > `source_type` varchar(20) COMMENT '源系统 ',
> > `lst_up_time` timestamp COMMENT '上一次更新日期 ')
> > COMMENT '车贷申请单信息'
> > PARTITIONED BY (
> > `data_date` date COMMENT '数据日期 ')
> > ROW FORMAT SERDE
> > 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
> > WITH SERDEPROPERTIES (
> > 'field.delim'='\u0007',
> > 'serialization.format'='\u0007')
> > STORED AS INPUTFORMAT
> > 'org.apache.hadoop.mapred.TextInputFormat'
> > OUTPUTFORMAT
> > 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
> > LOCATION
> > 'hdfs://nameservice1/user/dmp/prod/v2/NSL/NSL_FACT_APP_INFO'
> > TBLPROPERTIES (
> > 'transient_lastDdlTime'='1507710993')
> >
> >
> > thanks
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > ------------------ Original ------------------
> > From: "Shuangyin Ge"<go...@gmail.com>;
> > Date: Wed, Oct 18, 2017 01:43 PM
> > To: "dev"<de...@kylin.apache.org>;
> >
> > Subject: Re: kylin导入hive字段类型变化问题
> >
> >
> > Hello Chenglong,
> >
> > I tried to reproduce this CHAR type length change after importing from
> Hive
> > issue on Kylin 2.1 but I cannot reproduce it. Can you please let me know
> > your Kylin version and the complete DDL you used to create these tables?
> >
> > 在 2017年10月18日 上午11:34,chenglong.fu <ch...@mljr.com>写道:
> >
> > >
> > >
> > > hello everyone:
> > >
> > >
> > >
> > > 因为之前附件没有转发和图片太大显示不全,我重新发送一封邮件,打扰见谅。
> > >
> > > 我在使用kylin的时候遇到了字段类型变化导致的问题,所有想寻求一下大家的帮助。
> > >
> > > 问题的描述:
> > >
> > > 1. hive表导入kylin后字段类型发生变化
> > >
> > >
> > >
> > > hive 中NSL_DIM_PROPPSER_INFO原表类型(截取部分):、
> > >
> > > 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
> > >
> > > 数据日期
> > >
> > >
> > >
> > > 导入kylin后显示的类型:Table Schema:NSL_DIM_PROPPSER_INFO
> > >
> > >
> > >
> > > 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
> > >
> > > 数据日期
> > >
> > >
> > >
> > >
> > >
> > > Hive中NSL_FACT_APP_INFO 类型(部分)
> > >
> > >
> > >
> > > 124
> > >
> > > lat
> > >
> > > varchar(50)
> > >
> > > 维度
> > >
> > > 125
> > >
> > > lng
> > >
> > > varchar(50)
> > >
> > > 经度
> > >
> > > 126
> > >
> > > imei
> > >
> > > varchar(50)
> > >
> > > 国际移动设备身份码
> > >
> > > 127
> > >
> > > imsi
> > >
> > > varchar(50)
> > >
> > > 国际移动用户识别码
> > >
> > > 128
> > >
> > > uuid
> > >
> > > varchar(50)
> > >
> > > iphone的uuid
> > >
> > > 129
> > >
> > > user_id
> > >
> > > int
> > >
> > > 创建用户编码
> > >
> > > 130
> > >
> > > user_name
> > >
> > > varchar(20)
> > >
> > > 创建用户名称
> > >
> > > 131
> > >
> > > data_idn
> > >
> > > char(1)
> > >
> > > 数据标示 C-渠道,D-直销
> > >
> > > 132
> > >
> > > source_type
> > >
> > > varchar(20)
> > >
> > > 源系统
> > >
> > > 133
> > >
> > > lst_up_time
> > >
> > > timestamp
> > >
> > > 上一次更新日期
> > >
> > > 134
> > >
> > > data_date
> > >
> > > date
> > >
> > > 数据日期
> > >
> > >
> > >
> > >
> > >
> > > Kylin中 Table Schema:NSL_FACT_APP_INFO
> > >
> > >
> > >
> > > 124
> > >
> > > LAT
> > >
> > > varchar(256)
> > >
> > > 69144
> > >
> > > 维度
> > >
> > > 125
> > >
> > > LNG
> > >
> > > varchar(256)
> > >
> > > 76679
> > >
> > > 经度
> > >
> > > 126
> > >
> > > IMEI
> > >
> > > varchar(256)
> > >
> > > 3918
> > >
> > > 国际移动设备身份码
> > >
> > > 127
> > >
> > > IMSI
> > >
> > > varchar(256)
> > >
> > > 2
> > >
> > > 国际移动用户识别码
> > >
> > > 128
> > >
> > > UUID
> > >
> > > varchar(256)
> > >
> > > 2
> > >
> > > iphone的uuid
> > >
> > > 129
> > >
> > > USER_ID
> > >
> > > integer
> > >
> > > 1473
> > >
> > > 创建用户编码
> > >
> > > 130
> > >
> > > USER_NAME
> > >
> > > varchar(256)
> > >
> > > 1667
> > >
> > > 创建用户名称
> > >
> > > 131
> > >
> > > DATA_IDN
> > >
> > > char(256)
> > >
> > > 2
> > >
> > > 数据标示 C-渠道,D-直销
> > >
> > > 132
> > >
> > > SOURCE_TYPE
> > >
> > > varchar(256)
> > >
> > > 3
> > >
> > > 源系统
> > >
> > > 133
> > >
> > > LST_UP_TIME
> > >
> > > timestamp
> > >
> > > 1
> > >
> > > 上一次更新日期
> > >
> > > 134
> > >
> > > DATA_DATE
> > >
> > > date
> > >
> > > 1
> > >
> > > 数据日期
> > >
> > >
> > >
> > > 2. 因为字段发生变化导致 Create Intermediate Flat Hive Table 失败
> > >
> > > 上面的2张表在model中关联关系
> > >
> > > NSL_FACT_APP_INFO.DATA_IDN = NSL_DIM_PROPPSER_INFO.DATA_IDN
> > >
> > > NSL_FACT_APP_INFO.PROPPSER_ID = NSL_DIM_PROPPSER_INFO.PROPPSER_ID
> > >
> > >
> > >
> > > 构建cube的时候,在Create Intermediate Flat Hive Table 时候报
> > >
> > >
> > >
> > > INFO : OK
> > >
> > > No rows affected (0.137 seconds)
> > >
> > > 0: jdbc:hive2://10.8.49.171:10000> CREATE EXTERNAL TABLE IF NOT EXISTS
> > kylin_intermediate_nsl_cube_cd1448f2_0b32_48bc_a4fb_3be505b5c135
> > >
> > > . . . . . . . . . . . . . . . . .> (
> > >
> > > . . . . . . . . . . . . . . . . .> NSL_FACT_APP_INFO_DATA_IDN char(256)
> > >
> > > . . . . . . . . . . . . . . . . .> ,NSL_FACT_APP_INFO_PROPPSER_ID
> string
> > >
> > > . . . . . . . . . . . . . . . . .> ,NSL_FACT_APP_INFO_A_SECURE_FEE
> > decimal(19,4)
> > >
> > > . . . . . . . . . . . . . . . . .> ,NSL_FACT_APP_INFO_A_INIT_PAYMENT
> > decimal(19,
> > >
> > > 4)
> > >
> > > . . . . . . . . . . . . . . . . .> )
> > >
> > > . . . . . . . . . . . . . . . . .> STORED AS SEQUENCEFILE
> > >
> > > . . . . . . . . . . . . . . . . .> LOCATION
> > 'hdfs:///user/dmp/kylin/kylin_metada
> > >
> > > ta/kylin-c5e7ed64-d408-4804-b4a0-2efb1192b099/kylin_
> > intermediate_nsl_cube_cd1448
> > >
> > > f2_0b32_48bc_a4fb_3be505b5c135';
> > >
> > > Error: Error while compiling statement: FAILED: RuntimeException Char
> > length 256 out of allowed range [1, 255] (state=42000,code=40000)
> > >
> > >
> > >
> > > Hive 表中的DATA_IDN是char(1) 导入kylin 显示char(256) 报错 Char length 256 out
> of
> > > allowed range [1, 255]
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > 3. 选择度量的时候因为字段类型导致 mapreduce 构建cubid 任务失败
> > >
> > > 在创建Measure的时候 Return Type的时候是自动根据前面kylin中表的字段类型自动生成
> > 的,又不能修改,所以在后面跑mapreduce
> > > 的时候当这个 度量列聚合量很大的时候就超出这个字段类型长度。任务就会失败。
> > >
> > >
> > >
> > > 谢谢
> > >
> > >
> > >