¿Cómo garantizar la calidad de los datos del almacén de datos?

El centro de informes de datos de Youzan proporciona a los comerciantes indicadores de datos enriquecidos, que incluyen más de 30 páginas, más de 100 informes de datos y más de 400 tipos diferentes de indicadores de datos, que ayudan a los comerciantes a operar las tiendas de manera más racional y científica, y también proporcionan directamente análisis y métodos de toma de decisiones para uso para negocios. Además, las tareas de bajo nivel y las tablas de datos involucradas en la ejecución diaria han alcanzado miles de niveles.

Frente a un sistema de datos tan enorme, ¿cómo formular una estrategia de aseguramiento de la calidad como prueba? Este artículo comenzará a partir de cuatro aspectos: 1. Enlace de datos de Youzan, 2. Prueba de capa de datos, 3. Prueba de capa de aplicación y 4. Planificación de seguimiento.

1. Enlace de datos Youzan

1. Introducción al enlace de datos

En primer lugar, presentaré el diagrama de estructura de datos general de Youzan:

De arriba a abajo, se puede dividir aproximadamente en capa de servicio de aplicaciones, capa de puerta de enlace de datos, capa de almacenamiento de aplicaciones y almacén de datos.Las plataformas como el desarrollo de trabajos y la gestión de metadatos brindan capacidades básicas para la computación de datos, la programación de tareas y la consulta de datos.

Lo anterior ha hecho una introducción preliminar a la arquitectura general.Para el control de calidad, las dos partes principales son: el almacén de datos y la parte de aplicación de datos . Debido a que estas dos partes pertenecen a los enlaces centrales en el enlace de datos, en comparación con otros niveles, los cambios diarios son más frecuentes y el riesgo de problemas también es relativamente grande.

En segundo lugar, la prueba de la capa de datos

1. Visión general

En primer lugar, la garantía de calidad de la capa de datos se puede dividir en tres aspectos: puntualidad, integridad y precisión de los datos.

2. Puntualidad de los datos

La puntualidad de los datos, como sugiere su nombre, significa que los datos de prueba deben producirse a tiempo. Los tres elementos clave de la puntualidad son: tiempo de programación, prioridad y fecha límite de datos . La prioridad de la tarea determina cuántos recursos informáticos de datos obtiene y afecta el tiempo de ejecución de la tarea. La fecha límite de datos es un estándar unificado para el último tiempo de salida de datos, que debe seguirse estrictamente.

Entre estos tres elementos, el que pertenece a la " regla universal " y necesita ser enfocado en la etapa de aseguramiento de la calidad es la fecha límite de datos. Entonces, en función del plazo de los datos, las estrategias de garantía de la puntualidad se pueden dividir en dos tipos:

  • Supervisa si la tarea de datos sin conexión se ha completado. Este método se basa en el monitoreo y alarmas de la plataforma de desarrollo de trabajo Youzan.Si la tarea de datos no se completa en la fecha límite, habrá alarmas en forma de correo electrónico, microempresa, teléfono, etc. para notificar al personal correspondiente.

  • Verifique el número de entradas de tabla completa o verifique el número de entradas de partición. Este método se basa en la plataforma de automatización de la interfaz.Al llamar a la interfaz dubbo, se juzga si el índice de datos devuelto por la interfaz es 0 y si se emiten los datos de monitoreo.

En segundo lugar, podemos prestar atención a la cantidad de fallas y reintentos, cuando la situación anormal de múltiples fallas y reintentos ocurre durante la ejecución de la tarea, se puede lanzar una alarma para que el personal correspondiente la perciba. Esta parte de la alarma es un complemento de la alarma de fecha límite, y también hay una integración de funciones en la plataforma de desarrollo de trabajos de Youzan.

3. Integridad de los datos

La integridad de los datos, como su nombre indica, depende de si los datos están completos o no, y se centra en dos puntos: pocos datos y pocos datos.

  • No hay muchos datos: generalmente verifique los datos de la tabla completa y los valores de enumeración importantes para ver si los datos son redundantes, duplicados o si la clave principal de los datos es única.

  • Hay muchos datos: generalmente verifique los datos de la tabla completa, los campos importantes (como los campos de clave principal, los valores de enumeración, las fechas, etc.) para ver si el valor del campo está vacío, nulo, etc.

Se puede ver que la correlación entre la integridad de los datos y el negocio en sí no es tan estrecha, y más lo es la verificación general del contenido de la tabla del almacén de datos. Entonces, a partir de algunas dimensiones básicas, podemos dividir el enfoque de la prueba en dos direcciones: nivel de tabla y nivel de campo.

Integridad a nivel de tabla:

  • Para la dimensión de tabla completa, al verificar el número total de filas/tamaño de tabla de toda la tabla, si el número total de filas/tamaño total de la tabla permanece sin cambios o disminuye, indica que puede haber un problema con los datos de la tabla .

  • Para la dimensión de la partición, puede verificar el número/tamaño de las filas de datos en la tabla particionada en el día actual. Si la diferencia es demasiado grande (mayor o menor) en comparación con la partición anterior, puede haber un problema con los datos de la tabla. .

En la actualidad, la plataforma de gestión de metadatos Youzan ha integrado vistas de datos relacionados:

Integridad a nivel de campo:

  • Juicio de unicidad: para garantizar la unicidad de la clave principal o algunos campos, para evitar la duplicación de datos y la duplicación de datos después de unirlos con otras tablas, lo que da como resultado grandes estadísticas finales.

Por ejemplo, para determinar si el número de orden en la tabla de orden de capas de ods es único, escriba sql:

select 
count(order_no)
,count(distinct order_no) 
from ods.xx_order

Si los dos son iguales, significa que el valor de order_no es único en la tabla; de lo contrario, significa que el valor de order_no no es único en la tabla y hay un problema con los datos de la tabla.

  • Juicio no vacío: asegúrese de que los campos importantes no estén vacíos para evitar la pérdida de datos después de la unión de datos y tablas vacíos, lo que resulta en menos estadísticas finales.

Por ejemplo, para determinar si el número de pedido en la tabla de pedidos de la capa ods es nulo, escriba sql:

select 
count(*) 
from ods.xx_order 
where order_no is null

Si el resultado es igual a 0, significa que no hay ningún valor nulo en order_no; si el resultado es mayor que 0, significa que hay un valor nulo en order_no y hay un problema con los datos de la tabla.

  • Juicio del tipo de enumeración: asegúrese de que los valores del campo de enumeración estén dentro del rango esperado para evitar datos comerciales sucios, lo que resulta en tipos de datos faltantes/superfluos en los resultados estadísticos finales.

Por ejemplo, para juzgar si todos los valores de enumeración en el campo shop_type en la tabla de pedidos de la capa ods cumplen con las expectativas, escriba sql:

select shop_type from ods.xx_order group by shop_type

Analice si los resultados de la consulta cumplen con las expectativas para asegurarse de que no falten tipos de enumeración o sean redundantes.

  • Juicio de la validez de los datos: juzgar si el formato de los datos cumple con las expectativas y evitar que el formato de datos incorrecto del campo cause errores y estadísticas de datos faltantes. Los más comunes son los formatos de fecha yyyymmdd.

Una vez que ocurre un problema de integridad de datos, tiene un gran impacto en la calidad de los datos. Por lo tanto, la estrategia de integridad es más adecuada para la capa ods, porque esperamos encontrar y resolver el problema de los datos irrazonables de la fuente, detener la pérdida a tiempo y evitar la expansión de la contaminación de datos después de que los datos sucios ingresen aguas abajo.

Además, vemos que la lógica del contenido de verificación de integridad es simple y relativamente fija, y se puede crear una plantilla con un poco de abstracción simple. Entonces, como prueba, estamos más inclinados a hacer herramientas de verificación de integridad de datos. En la actualidad, se ha implementado la "Herramienta de forma de datos" de Youzan. Estas son algunas de mis ideas:

  1. Para todas las tablas, reglas universales, como la unicidad de la clave principal de la tabla.

  2. Para diferentes tipos, como los tipos de formato numérico, de cadena, de enumeración y de fecha, se enumeran las reglas comunes de evaluación de datos.

  3. Clasifique cada regla. Por ejemplo, si la clave principal de una tabla no es única, regístrela como crítica. La proporción de valores nulos en campos de tipo String es superior al 70%, lo que se registra como advertencia.

  4. Según si los datos de la tabla cumplen con las reglas anteriores, finalmente se implementa un informe visual y los evaluadores pueden evaluar la calidad de los datos de acuerdo con el contenido del informe.

4. Precisión de los datos

Precisión de los datos, como su nombre lo indica, los datos deben ser "exactos". El concepto de "exactitud" es relativamente abstracto, porque es difícil para nosotros usar un juicio lógico sólido para explicar qué tan precisos son los datos, y la mayor parte existe en la cognición perceptual. Por lo tanto, las pruebas de precisión también son una dirección en la que el pensamiento es relativamente divergente en el proceso de garantía de la calidad de los datos.

Después de resumir, podemos controlar la precisión de los datos desde los aspectos de autocomprobación de campo, comparación horizontal de datos, comparación vertical, revisión de código, etc. Estos puntos de prueba también están estrechamente relacionados con el negocio.

4.1 Autocomprobación

La autoverificación de datos se refiere a verificar la precisión de los datos con sus propios datos sin compararlos con otros datos, que es el tipo de verificación más básico. Las autoverificaciones comunes incluyen: verificar que el índice numérico sea mayor que 0 y que el índice de relación esté en el rango de 0-1. Estas reglas básicas, como la integridad de los datos, también se pueden combinar con "herramientas de forma de datos" para ayudar en las pruebas.

Por ejemplo, para la tabla de pedidos, el monto del pago debe ser mayor o igual a 0, y no habrá números negativos. Escriba sql:

select 
count(pay_price) 
from 
dw.dws_xx_order 
where par = 20211025 and pay_price<0

Si el resultado es 0, significa que el monto del pago es mayor a 0, lo que cumple con las expectativas; de lo contrario, si el resultado del conteo es mayor a 0, significa que hay un problema con los datos.

4.2 Comparación de datos horizontales en la tabla

La comparación horizontal dentro de una tabla se puede entender como dos o más campos en la misma tabla que están relacionados con el negocio y tienen una cierta relación lógica, por lo que pueden usarse para la comparación de datos.

Por ejemplo, para la tabla de pedidos, de acuerdo con el análisis comercial real, es fácil de obtener: para cualquier producto en cualquier tienda, el número de pedidos >= el número de personas que realizan pedidos, escriba sql:

select 
kdt_id
,goods_id
,count(order_no)
,count(distinct buyer_id) 
from dw.dws_xx_order
where par = '20211025'
group by kdt_id,goods_id
having count(order_no)<count(distinct buyer_id)

Si no hay registro en el resultado de la consulta, significa que no hay número de pedidos<número de pedidos realizados, y al revés significa que el número de pedidos>=número de pedidos realizados, lo cual está en línea con las expectativas; de lo contrario, si el registro en el resultado de la consulta es mayor que 0, no está en línea con las expectativas.

4.3 Comparación horizontal de datos entre tablas

La comparación horizontal entre tablas se puede entender como dos o más tablas con campos con asociaciones comerciales o el mismo significado comercial, que se pueden utilizar para la comparación de datos:

  • Comparación entre tablas del mismo tipo: para la tabla de pago A y la tabla de pago B en la colmena, hay campos de monto de pago en ellos, luego la tabla A. monto de pago bajo la misma dimensión = tabla B. monto de pago.

  • Comparación entre múltiples conjuntos de almacenamiento: por ejemplo, el centro de informes de datos de Youzan usa mysql y kylin para la tabla de pagos, y el almacenamiento de la capa de aplicación usa mysql y kylin respectivamente, que se usan para el interruptor maestro-espera, luego la tabla A de kylin .monto de pago bajo la misma dimensión = mysql-table B .monto de pago.

  • Comparación entre múltiples sistemas: entre sistemas, como el centro de informes de datos y el sistema crm, ambos sistemas tienen datos de indicadores de clientes, luego el centro de informes de datos bajo la misma dimensión - tabla A. indicadores de clientes = crm - tabla B. Métricas de clientes.

Analizamos profundamente la lógica subyacente de la comparación horizontal de datos. La esencia es comparar los diferentes campos de las dos tablas y comparar los operadores lógicos, que también es más fácil de abstraer en una herramienta. En la actualidad, se ha implementado la "Herramienta de comparación de datos" de Youzan. Estas son algunas de mis ideas:

  • Ingrese dos tablas y establezca las claves principales de las dos tablas respectivamente.

  • Ingrese los campos a comparar en las dos tablas y establezca los operadores de comparación, como >, =, <.

  • De acuerdo con las reglas establecidas, los datos finales se comparan con los registros de aprobación y reprobación, se implementa un informe visual y el evaluador puede evaluar la calidad de los datos de acuerdo con el contenido del informe.

4.4 Comparación de datos longitudinales

La comparación longitudinal es la comparación de datos ascendentes y descendentes, el propósito es garantizar que no haya problemas en el procesamiento ascendente y descendente de campos importantes.

Por ejemplo, la capa dw del almacén de datos tiene una lista detallada de pedidos y la capa dm de productos de datos tiene una tabla agregada del número de pedidos, por lo que los resultados estadísticos de los dos datos bajo la misma dimensión deben ser consistentes.

Revisión de código 4.5

En primer lugar, en la etapa de revisión de requisitos antes de la revisión del código, primero debemos aclarar el calibre detallado de las estadísticas de datos. Aquí hay dos ejemplos de requisitos reales.

  • Requisito 1: (Ejemplo de error) El monto del pago de todos los usuarios en la tienda durante el tiempo estadístico. El problema es: la descripción del requisito es demasiado sucinta y la dimensión temporal y las condiciones de filtrado de las estadísticas de datos no se explican claramente, lo que da como resultado un calibre estadístico poco claro, lo que requiere que los productos tengan un calibre claro.

  • Requisito 2: (Ejemplo correcto) Hay un monto de pago fuera de línea en la dimensión de la tienda de dominio comercial de toda la red de Zan. Admite días naturales, semanas naturales y meses naturales. Durante el período estadístico, la suma de todas las órdenes de pago (excluyendo sorteos, tarjetas de regalo y órdenes de suministro de distribución).

Después de aclarar los requisitos, a continuación se describen en detalle algunas preocupaciones comunes de la revisión del código:

1) Relación de asociación y condiciones de filtrado

  • Si la tabla asociada usa combinación externa o combinación depende de si es necesario filtrar los datos.

  • En la cláusula on de la relación de asociación, si los tipos de valor izquierdo y derecho son consistentes.

  • Si la relación de asociación es 1:1, entonces si las claves de asociación de las dos tablas son únicas. Si no es único, entonces la asociación producirá datos cartesianos que darán como resultado una sobreinflación de datos.

  • Si la condición where se filtra correctamente, tomando los requisitos anteriores como ejemplo, preste atención a si el grupo de lotería, la tarjeta de regalo y la orden de suministro de distribución se excluyen correctamente en SQL.

2) Procesamiento de indicadores de calibre estadístico

Las estadísticas de indicadores de datos involucran dos conceptos básicos:

  • Indicadores acumulativos: como el monto del pago, páginas vistas, etc., indicadores que se pueden contar simplemente agregando valores numéricos. Para tales indicadores, la función utilizada en sql generalmente es sum.

  • Indicadores no acumulativos: por ejemplo, el número de visitantes no se puede agregar simplemente, sino que debe desduplicarse y luego sumarse para las estadísticas. Para tales indicadores, generalmente se usa contar (distinto) en SQL.

3) insertar datos de inserción

  • Ya sea para apoyar la repetición. Es equivalente a ver si hay una palabra clave de sobrescritura al insertar. Si no hay tal palabra clave, los datos sucios no se sobrescribirán cuando los datos se vuelvan a ejecutar (el flujo de trabajo se ejecuta varias veces), pero los datos se insertarán de forma incremental en la mesa, lo que puede conducir al resultado final. Estadísticas duplicadas.

  • Si el orden de los datos insertados es exactamente el mismo que el orden de la estructura de la tabla insertada. Debemos asegurarnos de que no haya ningún error en el orden de escritura de los campos de datos, de lo contrario, los valores insertados serán caóticos.

3. Pruebas de la capa de aplicación

1. Visión general

La prueba básica de la interfaz del lado del servidor y la página de inicio es la misma que la prueba comercial general y no se repetirá aquí. Este artículo se centra en las áreas en las que las pruebas de "aplicación de datos" requieren atención adicional.

2. Estrategia de rebaja

  • Al agregar una nueva hoja de datos en la página, es necesario confirmar si la función de "barra azul" debe admitirse en la etapa de requisitos y revisión técnica, que pertenece a "prueba de desplazamiento a la izquierda".

Introducción a la barra azul: hay una barra azul en la parte superior de la página donde Youzan informa al comerciante que los datos fuera de línea aún no se han producido y el "tiempo de producción" = tiempo de acceso actual + 2 horas, que se calcula dinámicamente.

  • Cuando pruebe indicadores de tipo ratio, concéntrese en el caso especial donde el dividendo = 0. Preste atención a este punto durante la revisión del código back-end y las etapas de función de la página de prueba. En la actualidad, hay elogios por esta situación, y la pantalla unificada frontal es "-".

3. Estrategia activa/en espera

Cuando hay una estrategia de cambio activo/en espera, tenga en cuenta que los datos normalmente se escriben dos veces durante la prueba y, a través de la configuración, puede cambiar entre las fuentes de datos activa y en espera al obtener datos.

4. Seguridad de los datos

Preste atención a la gestión de permisos y el control de la consulta de datos, y concéntrese en probar los escenarios de ultraautoridad horizontal y vertical.

4. Planificación de seguimiento

En la actualidad, en la comparación de precisión de datos de proyectos reales, la herramienta de comparación de datos solo puede reemplazar el 50 % de las pruebas manuales porque, por el momento, no es compatible con las funciones de SQL Algunas comparaciones de datos horizontales y verticales complejas todavía necesitan escribir SQL. El plan de seguimiento admite funciones sql como sum, count, max, min, etc., lo que aumenta la cobertura de las herramientas a más del 75 % y reduce considerablemente el costo de la comparación de datos.

En la actualidad, el "Informe de formulario de datos" y la "Herramienta de comparación de datos" se están utilizando en más pruebas de proyectos. En el plan de seguimiento, la inspección de formularios y la comparación de datos se realizarán en inspecciones en línea, y se combinarán herramientas de automatización y datos. para garantizar continuamente la calidad de la tabla del almacén de datos.

En la actualidad, el método de revisión de código sql se basa principalmente en el trabajo manual. Planeamos realizar algunas comprobaciones básicas de sql, como insertar en la comprobación, comprobación de la unicidad de la condición de combinación, comprobación del orden de inserción de campo, etc., en el análisis estático de sql y integrarlos en el servicio de pruebas de big data y potenciar otras líneas de negocio.

Supongo que te gusta

Origin blog.csdn.net/ytp552200ytp/article/details/126364254
Recomendado
Clasificación