Définir la fonction longueur variable() char_length() fonction replace() fonction max()
Définir l'ensemble de variables @nom de la variable=valeur
set @address='中国-山东省-聊城市-莘县';select @address
1.2. Différences entre la fonction length() et la fonction char_length()
select length('a') ,char_length('a') ,length('中') ,char_length('中')
1.3. Combinaison de la fonction replace() et de la fonction 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 cleaning field Comment déterminer combien de champs séparés ajouter à une nouvelle table de données lorsqu'il y a des séparateurs évidents
Calculer le nombre maximum de - caractères dans com_industry pour déterminer le nombre de champs à ajouter ? être divisé en Le nombre de champs dans ce tableau est de 3, il peut donc être divisé en 4 champs d'industrie, c'est-à-dire 4 niveaux d'industrie
select max(length(com_industry)-length(replace(com_industry,'-',''))) as _max_count from etl1_socom_data
1.4 Définir l'utilisation de la fonction d'interception de chaîne 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. Fonction de jugement conditionnel cas quand
cas quand alors quand alors sinon la valeur se termine comme nom de champ
select case when 89>101 then '大于' else '小于' end as betl1_socom_data
2.1.nom du fichier kettle : trans_etl1_socom_data<🎜. >2.2. Inclure les contrôles : entrée de la table>>> sortie de la table
2.5, sortie de table
<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/>
②Problèmes de connexion aux données Sélectionnez la base de données dans laquelle la table dans la sortie de la table est située
③Problèmes de mappage de champs Assurez-vous que les champs dans le flux de données et le nombre de champs dans la table physique sont cohérents
3. Conversion de bouilloire etl2 nettoyage
Effectuez principalement le fractionnement et le nettoyage des champs sur le nouveau com_industry généré par etl1
3.1.kettle nom du fichier : trans_etl2_socom_data
Remarques :
① Ne cochez pas l'option de table coupée lorsque des opérations incrémentielles du robot sont impliquées
②Sélectionnez la table pour les problèmes de connexion de données La base de données où se trouve la table dans la sortie
③Les problèmes de mappage de champ garantissent que le nombre des champs dans le flux de données et la table physique sont cohérents
select a.*,case #行业为''的值 置为空when length(com_industry)=0 then null #其他的取第一个-分隔符之前else substring_index(com_industry,'-',1) end as com_industry1,case when length(com_industry)-length(replace(com_industry,'-',''))=0 then null #'交通运输、仓储和邮政业-' 这种值 行业2 也置为nullwhen length(com_industry)-length(replace(com_industry,'-',''))=1 and length(substring_index(com_industry,'-',-1))=0 then nullwhen length(com_industry)-length(replace(com_industry,'-',''))=1 then substring_index(com_industry,'-',-1)else substring_index(substring_index(com_industry,'-',2),'-',-1)end as com_industry2,case when length(com_industry)-length(replace(com_industry,'-',''))<=1 then nullwhen length(com_industry)-length(replace(com_industry,'-',''))=2 then substring_index(com_industry,'-',-1)else substring_index(substring_index(com_industry,'-',3),'-',-1)end as com_industry3,case when length(com_industry)-length(replace(com_industry,'-',''))<=2 then nullelse substring_index(com_industry,'-',-1)end as com_industry4from etl1_socom_data as a
🎜>
Remarque : le volume de données des trois tables sans filtrage d'agrégation dans le script SQL doit être égal4.2.1 La requête SQL pour la table suivante est dans la même base de données. dans la même base de données, la table doit être suivie de. Le nom de la base de donnéesn'est pas recommandé lorsque la quantité de données est importante
4.2.2 Comparaison de la sortie totale de la table une fois la conversion de la bouilloire terminée.
select count(1) from s_socom_dataunion all select count(1) from etl1_socom_dataunion all select count(1) from etl2_socom_data
là où elles sont écrites comme ceci Il est pratique de vérifier l'état de nettoyage d'un certain champ
Comparaison des données de cette page et des données de nettoyage final de la table etl2_socom_data
select * from etl2_socom_data where com_district is null and length(com_industry)-length(replace(com_industry,'-',''))=3
626062078, apprenons Python ensemble !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!