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
> > > 的时候当这个 度量列聚合量很大的时候就超出这个字段类型长度。任务就会失败。
> > >
> > >
> > >
> > > 谢谢
> > >
> > >
> > >