一、首先理解下面几个函数
设置变量 length()函数 char_length() replace() 函数 max() 函数
1.1、设置变量 set @变量名=值
set @address='中国-山东省-聊城市-莘县';select @address
1.2 、length()函数 char_length()函数区别
select length('a'),char_length('a'),length('中'),char_length('中')
1.3、 replace() 函数 和length()函数组合
set @address='中国-山东省-聊城市-莘县';select @address,replace(@address,'-','') as address_1,length(@address) as len_add1,length(replace(@address,'-','')) as len_add2,length(@address)-length(replace(@address,'-','')) as _count
etl清洗字段时候有明显分割符的如何确定新的数据表增加几个分割出的字段
计算出com_industry中最多有几个 - 符 以便确定增加几个字段 最大值+1 为可以拆分成的字段数 此表为3 因此可以拆分出4个行业字段 也就是4个行业等级
select max(length(com_industry)-length(replace(com_industry,'-',''))) as _max_countfrom etl1_socom_data
1.4、设置变量 substring_index()字符串截取函数用法
set @address='中国-山东省-聊城市-莘县';select substring_index(@address,'-',1) as china,substring_index(substring_index(@address,'-',2),'-',-1) as province,substring_index(substring_index(@address,'-',3),'-',-1) as city,substring_index(@address,'-',-1) as district
1.5、条件判断函数 case when
case when then when then else 值 end as 字段名select case when 89>101 then '大于' else '小于' end as betl1_socom_data
二、kettle转换etl1清洗
首先建表 步骤在视频里
字段索引 没有提 索引算法建议用BTREE算法增强查询效率
2.1.kettle文件名:trans_etl1_socom_data
2.2.包括控件:表输入>>>表输出
2.3.数据流方向:s_socom_data>>>>etl1_socom_data
kettle转换1截图
2.4、表输入2.4、SQL脚本 初步清洗com_district和com_industry字段
select a.*,case when com_district like '%业' or com_district like '%织' or com_district like '%育' then null else com_district end as com_district1,case when com_district like '%业' or com_district like '%织' or com_district like '%育' then concat(com_district,'-',com_industry) else com_industry end as com_industry_total,replace(com_addr,'地 址:','') as com_addr1,replace(com_phone,'电 话:','') as com_phone1,replace(com_fax,'传 真:','') as com_fax1,replace(com_mobile,'手机:','') as com_mobile1,replace(com_url,'网址:','') as com_url1,replace(com_email,'邮箱:','') as com_email1,replace(com_contactor,'联系人:','') as com_contactor1,replace(com_emploies_nums,'公司人数:','') as com_emploies_nums1,replace(com_reg_capital,'注册资金:万','') as com_reg_capital1,replace(com_type,'经济类型:','') as com_type1,replace(com_product,'公司产品:','') as com_product1,replace(com_desc,'公司简介:','') as com_desc1from s_socom_data as a
新闻热点
疑难解答