변수 길이 설정() 함수 char_length() 대체() 함수 max() 함수
1.1 변수 설정 @variable name=value
set @address='中国-山东省-聊城市-莘县';select @address
1.2, length() 함수 char_length ( ) 함수 차이
select length('a') ,char_length('a') ,length('中') ,char_length('中')
1.3, replacement() 함수와 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은 분할할 수 있는 필드 수이므로 4개의 산업 필드를 분할할 수 있습니다. level
select max(length(com_industry)-length(replace(com_industry,'-',''))) as _max_count from 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. 조건부 판단 함수 케이스 when then when else 값은 필드 이름으로 종료됩니다
select case when 89>101 then '大于' else '小于' end as betl1_socom_data
2.1.kettle 파일 이름: trans_etl1_socom_data
2.2 포함 컨트롤: 테이블 입력>>> ; 테이블 출력
<code class="sql"><span class="hljs-keyword">select a.*,<span class="hljs-keyword">case <span class="hljs-keyword">when com_district <span class="hljs-keyword">like <span class="hljs-string">'%业' <span class="hljs-keyword">or com_district <span class="hljs-keyword">like <span class="hljs-string">'%织' <span class="hljs-keyword">or com_district <span class="hljs-keyword">like <span class="hljs-string">'%育' <span class="hljs-keyword">then <span class="hljs-literal">null <span class="hljs-keyword">else com_district <span class="hljs-keyword">end <span class="hljs-keyword">as com_district1 ,<span class="hljs-keyword">case <span class="hljs-keyword">when com_district <span class="hljs-keyword">like <span class="hljs-string">'%业' <span class="hljs-keyword">or com_district <span class="hljs-keyword">like <span class="hljs-string">'%织' <span class="hljs-keyword">or com_district <span class="hljs-keyword">like <span class="hljs-string">'%育' <span class="hljs-keyword">then <span class="hljs-keyword">concat(com_district,<span class="hljs-string">'-',com_industry) <span class="hljs-keyword">else com_industry <span class="hljs-keyword">end <span class="hljs-keyword">as com_industry_total ,<span class="hljs-keyword">replace(com_addr,<span class="hljs-string">'地 址:',<span class="hljs-string">'') <span class="hljs-keyword">as com_addr1 ,<span class="hljs-keyword">replace(com_phone,<span class="hljs-string">'电 话:',<span class="hljs-string">'') <span class="hljs-keyword">as com_phone1 ,<span class="hljs-keyword">replace(com_fax,<span class="hljs-string">'传 真:',<span class="hljs-string">'') <span class="hljs-keyword">as com_fax1 ,<span class="hljs-keyword">replace(com_mobile,<span class="hljs-string">'手机:',<span class="hljs-string">'') <span class="hljs-keyword">as com_mobile1 ,<span class="hljs-keyword">replace(com_url,<span class="hljs-string">'网址:',<span class="hljs-string">'') <span class="hljs-keyword">as com_url1 ,<span class="hljs-keyword">replace(com_email,<span class="hljs-string">'邮箱:',<span class="hljs-string">'') <span class="hljs-keyword">as com_email1 ,<span class="hljs-keyword">replace(com_contactor,<span class="hljs-string">'联系人:',<span class="hljs-string">'') <span class="hljs-keyword">as com_contactor1 ,<span class="hljs-keyword">replace(com_emploies_nums,<span class="hljs-string">'公司人数:',<span class="hljs-string">'') <span class="hljs-keyword">as com_emploies_nums1 ,<span class="hljs-keyword">replace(com_reg_capital,<span class="hljs-string">'注册资金:万',<span class="hljs-string">'') <span class="hljs-keyword">as com_reg_capital1 ,<span class="hljs-keyword">replace(com_type,<span class="hljs-string">'经济类型:',<span class="hljs-string">'') <span class="hljs-keyword">as com_type1 ,<span class="hljs-keyword">replace(com_product,<span class="hljs-string">'公司产品:',<span class="hljs-string">'') <span class="hljs-keyword">as com_product1 ,<span class="hljs-keyword">replace(com_desc,<span class="hljs-string">'公司简介:',<span class="hljs-string">'') <span class="hljs-keyword">as com_desc1<span class="hljs-keyword">from s_socom_data <span class="hljs-keyword">as a</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code><br/><br/><br/>
② 데이터 연결 문제 테이블 출력의 테이블이 있는 데이터베이스를 선택하세요.
③ 필드 매핑 문제 데이터 스트림의 필드 수가 물리적 테이블의 필드 수와 일치하는지 확인하세요
3. Kettle을 etl2 cleaning으로 변환
주로 etl1
3.1.kettle에서 생성된 새 com_industry에서 필드 분할 및 정리를 수행합니다. 파일 이름: trans_etl2_socom_data
3.3. 데이터 흐름 방향: etl1_socom_data>>>etl2_socom_data
참고:
1 크롤러 증분과 관련됨 작업 중에는 테이블 잘라내기 옵션을 확인하지 마세요. 연결 문제 테이블 출력의 테이블이 위치한 데이터베이스 선택
③필드 매핑 문제 데이터 흐름과 물리적 테이블의 필드 수가 일치하는지 확인
4.1 크롤러 데이터 소스 데이터가 웹 사이트 데이터와 일치하는지 여부
4.2.1, sql 쿼리 아래 테이블은 동일한 데이터베이스에 있는 경우 동일한 데이터베이스에 있습니다. 테이블이 위치한 데이터베이스는 데이터 양이 많은 경우에는 사용하지 않는 것이 좋습니다. 4.2.2 주전자 변환이 완료된 후 테이블의 전체 출력 비교
select count(1) from s_socom_dataunion all select count(1) from etl1_socom_dataunion all select count(1) from etl2_socom_data
etl2_socom_data 테이블 data
위 내용은 Python 크롤러 데이터는 어떻게 처리되어야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!