Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La limpieza y validación de datos es esencial para garantizar la calidad de los recursos de datos en un almacén de lago. En este artículo se describen las ofertas de productos de Azure Databricks diseñadas para facilitar la calidad de los datos, y se ofrecen recomendaciones para definir la lógica empresarial con el fin de implementar reglas personalizadas.
Aplicación de esquema en Azure Databricks
Delta Lake proporciona semántica para aplicar comprobaciones de esquema y restricciones en la escritura, lo que proporciona garantías en torno a la calidad de los datos de las tablas de un almacén de lago.
La aplicación del esquema garantiza que los datos escritos en una tabla se adhieren a un esquema predefinido. Las reglas de validación de esquema varían según la operación. Consulte Aplicación de esquema.
Para controlar la evolución del esquema, Delta proporciona mecanismos para realizar cambios de esquema y tablas en evolución. Es importante considerar detenidamente cuándo usar la evolución del esquema para evitar que se anulen campos o que se produzcan errores en las canalizaciones. Para obtener más información sobre la actualización manual o automática de esquemas, consulte Actualizar esquema de tabla de Delta Lake.
Restricciones de tabla
Las restricciones pueden adoptar la forma de restricciones de clave principal y clave externa informativas, o restricciones aplicadas. Consulta la cláusula ADD CONSTRAINT.
Las restricciones de tabla en Azure Databricks son obligatorias o informativas.
Las restricciones aplicadas incluyen restricciones NOT NULL y CHECK.
Las restricciones informativas incluyen restricciones de clave principal y clave externa.
Consulte Restricciones en Azure Databricks.
Tratar con valores null o que faltan
NOT NULL se puede aplicar en tablas Delta. Solo se puede habilitar en una tabla existente si no hay registros existentes en la columna null y evita que se inserten nuevos registros con valores null en una tabla.
Aplicación de patrones
Las expresiones regulares (regex) se pueden usar para aplicar patrones esperados en un campo de datos. Esto resulta especialmente útil cuando se trata con datos textuales que deben ajustarse a formatos o patrones específicos.
Para aplicar un patrón mediante regex, puede usar las funciones REGEXP o RLIKE en SQL. Estas funciones permiten hacer coincidir un campo de datos con un patrón regex especificado.
Este es un ejemplo de cómo usar la CHECK restricción con regex para la aplicación de patrones en SQL:
CREATE TABLE table_name (
column_name STRING CHECK (column_name REGEXP '^[A-Za-z0-9]+$')
);
Aplicación de valores
Las restricciones se pueden usar para aplicar intervalos de valores en columnas de una tabla. Esto garantiza que solo se puedan insertar o actualizar valores válidos dentro del intervalo especificado.
Para aplicar una restricción de intervalo de valores, puede usar la restricción CHECK en SQL. La restricción CHECK permite definir una condición que debe ser true para cada fila de la tabla.
Este es un ejemplo de cómo usar la CHECK restricción para aplicar un intervalo de valores en una columna:
CREATE TABLE table_name (
column_name INT CHECK (column_name >= 0 AND column_name <= 100)
);
Defina y configure expectativas utilizando las canalizaciones declarativas de Spark en Lakeflow.
Las canalizaciones declarativas de Spark de Lakeflow permiten definir expectativas al declarar vistas materializadas o tablas de streaming. Puede optar por configurar las expectativas para que le avisen de infracciones, eliminen los registros infractores o suspendan las cargas de trabajo en función de las infracciones. Consulta Administración de la calidad de los datos con las expectativas de canalización.
Supervisión de datos
Azure Databricks proporciona servicios de supervisión de calidad de datos, que permiten supervisar las propiedades estadísticas y la calidad de los datos en todas las tablas de su cuenta. Consulte Generación de perfiles de datos.
Convertir tipos de datos
Al insertar o actualizar datos en una tabla, Azure Databricks convierte tipos de datos cuando puede hacerlo de forma segura sin perder información.
Consulte los artículos siguientes para obtener más información sobre los comportamientos de conversión:
Lógica de negocios personalizada
Puede usar filtros y cláusulas WHERE para definir una lógica personalizada que ponga en cuarentena los registros incorrectos e impida que se propaguen a las tablas posteriores. Las cláusulas CASE WHEN ... OTHERWISE permiten definir una lógica condicional para aplicar correctamente la lógica de negocios a registros que infringen las expectativas de maneras predecibles.
DECLARE current_time = now()
INSERT INTO silver_table
SELECT * FROM bronze_table
WHERE event_timestamp <= current_time AND quantity >= 0;
INSERT INTO quarantine_table
SELECT * FROM bronze_table
WHERE event_timestamp > current_time OR quantity < 0;
Nota:
Databricks recomienda procesar siempre los datos filtrados como una operación de escritura independiente, especialmente cuando se usa Structured Streaming. Usar .foreachBatch para escribir en varias tablas puede provocar resultados incoherentes.
Por ejemplo, es posible que tenga un sistema de origen que no sea capaz de codificar NULL valores, por lo que se usa el valor -1 como marcador de posición para representar los datos que faltan. En lugar de escribir una lógica personalizada para que todas las consultas posteriores en Azure Databricks omitan los registros que contengan -1, podría usar una instrucción case when para reemplazar dinámicamente estos registros como una transformación.
INSERT INTO silver_table
SELECT
* EXCEPT weight,
CASE
WHEN weight = -1 THEN NULL
ELSE weight
END AS weight
FROM bronze_table;