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"<[email protected]>;
Date: Wed, Oct 18, 2017 01:43 PM
To: "dev"<[email protected]>;
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 <[email protected]>写道:
>
>
> 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
> 的时候当这个 度量列聚合量很大的时候就超出这个字段类型长度。任务就会失败。
>
>
>
> 谢谢
>
>
>