Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Очистка и проверка данных являются важными для обеспечения качества ресурсов данных в лейкхаусе. В этой статье описываются предложения продуктов Azure Databricks, предназначенные для упрощения качества данных, а также рекомендации по определению бизнес-логики для реализации пользовательских правил.
Принудительное применение схемы в Azure Databricks
Delta Lake предоставляет семантику для принудительного применения проверок схемы и ограничений на запись, что обеспечивает гарантии качества данных для таблиц в лейкхаусе.
Применение схемы гарантирует, что данные, записанные в таблицу, соответствуют предопределенной схеме. Правила проверки схемы зависят от операции. См. принудительное применение схемы.
Для обработки эволюции схемы Delta предоставляет механизмы изменения схемы и развития таблиц. Важно тщательно обдумывать, когда следует использовать эволюцию схемы, чтобы избежать утерянных полей или неудачных процессов. Дополнительные сведения о схемах вручную или автоматическом обновлении см. в разделе "Обновление схемы таблицы".
Ограничения таблицы
Ограничения могут принимать форму информационных первичных ключей и ограничений внешнего ключа или принудительных ограничений. См. ADD CONSTRAINT пункт.
Ограничения таблиц в Azure Databricks применяются или информационные.
Принудительные ограничения включают NOT NULL и CHECK ограничения.
Информационные ограничения включают первичный ключ и ограничения внешнего ключа.
Смотрите Ограничения в Azure Databricks.
Обработка значений NULL или отсутствующих значений
NOT NULL ограничение может быть применено к таблицам Delta. Она может быть включена только в существующей таблице, если существующие записи в столбце не имеют значения NULL, и запрещает вставлять новые записи со значениями NULL в таблицу.
Принудительное применение шаблонов
Регулярные выражения (regex) можно использовать для принудительного применения ожидаемых шаблонов в поле данных. Это особенно полезно при работе с текстовыми данными, которые должны соответствовать определенным форматам или шаблонам.
Чтобы применить шаблон с помощью регулярных выражений в SQL, можно использовать функции REGEXP или RLIKE. Эти функции позволяют сопоставить поле данных с указанным шаблоном регулярных выражений.
Ниже приведен пример использования ограничения с regex для принудительного применения шаблонов CHECK в SQL:
CREATE TABLE table_name (
column_name STRING CHECK (column_name REGEXP '^[A-Za-z0-9]+$')
);
Принуждение к соблюдению значений
Ограничения можно использовать для принудительного применения диапазонов значений для столбцов в таблице. Это гарантирует, что в указанный диапазон разрешено вставлять или обновлять только допустимые значения.
Чтобы применить ограничение диапазона значений, можно использовать CHECK ограничение в SQL. Ограничение CHECK позволяет определить условие, которое должно быть true для каждой строки в таблице.
Ниже приведен пример использования CHECK ограничения для принудительного применения диапазона значений в столбце:
CREATE TABLE table_name (
column_name INT CHECK (column_name >= 0 AND column_name <= 100)
);
Определите и настройте ожидания с помощью декларативных конвейеров Lakeflow Spark.
Декларативные конвейеры Lakeflow Spark позволяют задавать ожидания при объявлении материализованных представлений или потоковых таблиц. Вы можете настроить ожидания для предупреждения вас о нарушениях, удаления записей, нарушающих требования, или завершения рабочих нагрузок на основе нарушений. См. Управление качеством данных с ожиданиями для потоков обработки.
Мониторинг данных
Azure Databricks предоставляет службы мониторинга качества данных, которые позволяют отслеживать статистические свойства и качество данных во всех таблицах в вашей учетной записи. См. профилирование данных.
Приведение типов данных
При вставке или обновлении данных в таблицу Azure Databricks приводит типы данных, когда это можно сделать безопасно без потери информации.
Дополнительные сведения о поведении приведения типов см. в следующих статьях:
Настраиваемая бизнес-логика
Фильтры и WHERE предложения можно использовать для определения пользовательской логики, которая изолирует плохие записи и предотвращает их распространение в нижестоящие таблицы.
CASE WHEN ... OTHERWISE предложения позволяют определить условную логику для корректного применения бизнес-логики к записям, которые нарушают ожидания предсказуемыми способами.
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;
Примечание.
Databricks рекомендует всегда обрабатывать отфильтрованные данные как отдельную операцию записи, особенно при использовании структурированной потоковой передачи. Использование .foreachBatch для записи в несколько таблиц может привести к несогласованным результатам.
Например, у вас может быть входящая система, которая не способна кодировать значения NULL, и значение заполнителя -1 используется для представления отсутствующих данных. Вместо написания пользовательской логики для всех зависимых запросов в Azure Databricks, чтобы игнорировать записи, содержащие -1, можно использовать оператор case when, чтобы динамически заменять эти записи в виде преобразования.
INSERT INTO silver_table
SELECT
* EXCEPT weight,
CASE
WHEN weight = -1 THEN NULL
ELSE weight
END AS weight
FROM bronze_table;