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