Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo procesar los datos del rastreador de Python

Cómo procesar los datos del rastreador de Python

1. Primero comprenda las siguientes funciones:

establecer la función de longitud variable() char_length() función de reemplazo() función max()

1.1, establecer la variable establecer @variable nombre=valor

set @address='China-Provincia de Shandong-Ciudad de Liaocheng-Condado de Xinxian'; seleccione @address

1.2, la diferencia entre la función length() y la función char_length()

Seleccione longitud('a')

,char_length('a')

,longitud('in')

,char_length('in ')

1.3 Combinación de la función reemplazar() y la función length()

Establecer @address='China-Shandong Province-Liaocheng-Xinxian' select @address

,reemplazar(@dirección,'-',' ') como dirección_1

,longitud(@dirección) como len_add1

,longitud(reemplazar(@dirección,' -', '')) as len_add2

,length(@address)-length( replace(@address,'-','')) as _count

etl Borrar divisores con obvio Cómo determinar cuántos campos divididos agregar a una nueva tabla

Calcule cuántos símbolos hay en com_industry para determinar cuántos campos agregar. El valor máximo + 1 es el número de campos que. se puede dividir.

Hay 3 campos en esta tabla, por lo que se puede dividir en 4 campos industriales, es decir, 4 categorías industriales

select max(length(com_industry)-length(replace(com_industry,'-',' ' )) como _max_count

de etl1_ socom_data

1.4 Establecer la variable substring_index() Uso de la función de interceptación de cadenas

set @address='China-Shandong. Provincia -Liaocheng-Xinxian';

seleccione

substring_index(@dirección dirección,'-',1) como china,

substring_index(substring_index(@ dirección ,'-',2),'-',-1) como provincia,

substring_index(substring_index(@ dirección,'-',3),'-',-1) como ciudad,

substring_index(@address,'-',-1) como distrito

1.5 Función de juicio condicional caso cuando

caso cuando entonces cuando entonces el valor termina como. nombre del campo

seleccione caso cuando 89> 1. Nombre del archivo Kettle: trans_etl1_socom_data

2.2 Incluir controles: entrada de tabla >>> salida de tabla

2.3. dirección del flujo: s_socom_data >>>etl1_socom_data

Captura de pantalla de la transformación de la caldera 1

2.4. Entrada de tabla 2.4. Inicialización del script SQL Limpieza de campos com_district y com_industry

Elija una .

*, caso cuando com_district es como '%Industry' o com_district como '%Weaving' o com_district como '%Yukon', entonces null, de lo contrario, com_district termina como com_district1

、caso cuando com_ District es como '%industry' o com_district como '%weaving' o com_district como '%yuk' y luego concat(com_district,'-',com_industry) de lo contrario, com_industry termina como com_ Industry_total

, reemplaza (com_addr,'Address:','') como com_addr1

,reemplazar(com_phone,'Teléfono:','') como com_phone1

,reemplazar(com_fax,'Fax:','') como com_fax,'Fax:' ,'') como com_fax,'Fax:','') como com_fax,'Fax:','') como com_phone1

,reemplazar(com_fax,'fax:'') como com_fax,' fax:'','') as com_fax,'fax:'',''') as com_fax 'fax:',''') as com_fax1

,replace(com_mobile,'teléfono:' ,'') como com_mobile1

,reemplazar(com_url,'url:','') como com_url1

,reemplazar(com _email,'Email:','') como com_email1

,replace(com_contactor,'Contacto:','') as com_contactor1

,replace(com_emploies_nums,'Número de personas en la empresa:','') as com_emploies_nums1

,reemplazar(com_reg_capital,'Capital registrado: 10,000','') como com_reg_capital1

,reemplazar(com_type,'Tipo económico:','') como com_type1

,reemplazar(com_product,'Producto de la empresa:','') como com_product1

,reemplazar(com_desc,'Perfil de la empresa:','') como com_desc1de s_socom_data como

2.5. Salida de tabla

Notas sobre la configuración de salida de tabla

Nota:

① No marque la opción de tabla de recorte cuando se trata de operaciones incrementales del rastreador

②Problema de conexión de datos: seleccione la base de datos donde se encuentra la tabla en la salida de la tabla

③Problema de asignación de campos Asegúrese de que el número de campos en el flujo de datos sea el mismo que el número de campos en la tabla física

p>

3. Limpieza etl2 de conversión de hervidor

Primero cree una tabla y agregue cuatro pasos de demostración en el video

El índice del campo no menciona el algoritmo de índice. Se recomienda utilizar el algoritmo BTREE para mejorar la eficiencia de la consulta.

Realice principalmente división y limpieza de campos en el nuevo com_industry generado por etl1

3 Problemas de mapeo de campos

1.1.Nombre de archivo de Kettle: trans_etl2_socom_data

3.2 Incluye controles: entrada de formulario >>> salida de formulario

3.3 Dirección del flujo de datos: etl1_socom_data >>> etl2_socom_data

Notas:

①. Para operaciones incrementales que involucran rastreadores, no marque la opción para cortar la tabla

②Problemas de conexión de datos Seleccione la base de datos donde se encuentra la tabla en la salida de la tabla

③Problemas de asignación de campos Asegúrese de que los campos en el flujo de datos El número de campos es el mismo que el número de campos en la tabla física El número de campos correspondientes es el mismo

Tomando el fondo del bote y convirtiéndolo en 2

.

3.4. Secuencia de comandos SQL dividida com_industry Complete la limpieza de todos los campos La relación de tiempo del campo de capital registrado no es cuidadosa Simplemente desmonte y ajuste el código

seleccione a.*,case

# El valor de la industria se establece en nulo cuando longitud(com_industry)=0 y luego nulo

#Otro toma primero - separador antes de lo contrario substring_index(com_industry,'-',1) ?finaliza como com_industry1,case

cuando length(com_industry)-length(replace( com_industry,'-','' ))=0 entonces null

#'Transporte, almacenamiento y post-' Este valor Industry2 es también se establece en nulo cuando length(com_industry)-length(replace( com_industry,'-',''))= 1 y length(substring_index(com_industry,'-',-1))=0 y luego null cuando length(com_industry)-length (reemplazar (com_industry,'-',''))=1? Luego substring_index(com_industry,'-',-1)de lo contrario substring_index(substring_index(com_industry,'-',2),'-',-1)end como com_industry2,case

Cuando length(com_industry)-length(replace(com_industry,' -',''))<=1 entonces null cuando length(com_industry)-length(replace(com_industry,'- ','')=2) termina como com_industry2,case

.',' '))=2 y luego ?substring_index(com_industry,'-',-1)else substring_index(substring_index(com_industry,' -',3),'-',-1)end as com_industry3 ,case

cuando length(com_industry)-length(replace(com_industry,'-',''))<=2 entonces null además substring_index(com_industr

y,'-',-1)termina como com_industry4de etl1_socom_data como

4. Efecto de limpieza de la inspección de calidad

4.1 Si los datos de la fuente de datos del rastreador son consistentes con los datos del sitio web

Si el trabajo en sí se maneja mediante el rastreo y el procesamiento de datos juntos, ya se ha juzgado durante el rastreo, por lo que este paso se puede omitir. Si se trata de conectarse con colegas rastreadores ascendentes, este paso debe juzgarse primero. De lo contrario, la limpieza será inútil. Generalmente, los colegas del rastreador deben almacenar la URL de solicitud para facilitar el procesamiento de datos posterior y verificar la calidad de los datos.

4.2 Calcule la fuente de datos del rastreador y el volumen de datos de cada etl para limpiar los datos. table

Nota: El script SQL no El volumen de datos resumidos de las tres tablas filtradas debe ser igual

4.2.1. Consulta SQL si la siguiente tabla está en la misma base de datos. De lo contrario, se debe agregar el nombre de la base de datos donde se encuentra la tabla después de

No recomendado para grandes cantidades de datos

select count(1) from s_socom_dataunion all

p>

seleccione el recuento (1) de etl1_socom_dataunion all

seleccione el recuento(1) de etl2_socom_data

4.2 Comparación de tablas 2.2 Comparación de la producción total de la tabla después de la conversión de la caldera

Salida total de la mesa de hervidor

4.3 Verificar limpieza etl La calidad de la limpieza se lleva a cabo y otros campos se reemplazan con campos redundantes, por lo que es necesario usar un script para verificar

Buscar page_url y los datos del sitio para verificar

Buscar page_url y los datos del sitio están verificados

dónde está escrito así, por lo que es fácil ver cómo está un campo limpio

seleccione *

de etl2_socom_data

donde com_district está vacío y longitud(com_industry )-length(replace(com_industry,'-','')) =3

Compare los datos de esta página con los datos finales limpios de la tabla etl2_socom_data

Datos de la página web

Datos de la tabla etl2_socom_data

Limpieza completada.