Стандартизация данных
Данные поступают в учетные записи озера данных в различных форматах. К этим форматам относятся удобочитаемые человеческие форматы, такие как JSON, . CSV-файлы или XML-файлы и сжатые двоичные форматы, такие как TAR или GZ. Поступающие данные также имеют множество размеров из нескольких измененных файлов в экспорт всей таблицы SQL. Данные также могут поступать как большое количество небольших файлов, которые являются несколькими кб за штуку, например события в режиме реального времени из решения Интернета вещей.
Хотя Azure Data Lake Storage 2-го поколения поддерживает хранение для всех видов данных без ограничений, следует тщательно рассмотреть форматы данных, чтобы обеспечить эффективность обработки конвейера и оптимизировать затраты.
Многие организации теперь стандартизуют формат приема и отделяют вычислительные ресурсы от хранилища. Из-за этого формат Delta Lake стал предпочтительным стандартом приема данных через слой обогащения. На уровне обогащения команда приложений данных может обслуживать данные в формате, который отражает их вариант использования.
Примечание.
Используйте Delta Lake для поддержки вариантов использования пакетной и потоковой передачи для первоначального приема данных через слой обогащения.
В этой статье представлен обзор Delta Lake, его производительности и того, как вы сможете обеспечить поддержку соответствия требованиям, а также как стандартизировать данные по мере того, как он передается из источника в слой обогащения.
Delta Lake
Delta Lake — это слой хранения с открытым исходным кодом, который приносит транзакции ACID (атомарность, согласованность, изоляция и устойчивость) к рабочим нагрузкам больших данных и Apache Spark. Azure Synapse Analytics и Azure Databricks совместимы с Linux Foundation Delta Lake.
Основные функции Delta Lake
Функция | Description |
---|---|
Транзакции ACID | Озера данных обычно заполняются несколькими процессами и конвейерами, некоторые из которых записывают данные одновременно с чтением. Инженеры данных, используемые для выполнения ручного процесса, подверженного ошибкам, чтобы обеспечить целостность данных до того, как Delta Lake и транзакции вступили в использование. Delta Lake позволяет использовать привычные транзакции ACID в озерах данных. Он обеспечивает самый сильный уровень изоляции, сериализуемость. Дополнительные сведения см. в разделе "Погружение в Delta Lake": распаковка журнала транзакций. |
Работа с масштабируемыми метаданными | В больших данных даже метаданные могут быть "большими данными". Delta Lake обрабатывает метаданные так же, как и другие данные. Она использует распределенную мощность обработки Spark для обработки всех метаданных. Из-за этого Delta Lake может легко обрабатывать таблицы с петабайтами масштабирования с миллиардами секций и файлов. |
Путешествие во времени (управление версиями данных) | Возможность "отменить" изменение или вернуться к предыдущей версии является ключевой функцией транзакций. Delta Lake предоставляет моментальные снимки данных, позволяющие вернуться к более ранним версиям данных для аудита, отката или повторных экспериментов. Дополнительные сведения см. в статье О путешествии во времени с Delta Lake при работе с крупными озерами данных. |
Открытый формат | Apache Parquet, базовый формат Delta Lake, позволяет применять эффективные схемы сжатия и кодирования. |
Объединение пакетной службы, источника потоковой передачи и приемника | Таблица в Delta Lake одновременно является пакетной таблицей и источником потоковой передачи и приемником. Прием потоковой передачи данных, пакетная историческая обратная заполнение и интерактивные запросы все работают вне поля. |
Принудительное применение схемы | Применение схемы помогает обеспечить правильные типы данных и обязательные столбцы, что предотвращает несоответствие данных плохим данным. Дополнительные сведения см. в статье Погружение в Delta Lake: применение и эволюция схемы |
Эволюция схемы | Delta Lake позволяет автоматически применять изменения к схеме таблицы без необходимости записи DDL миграции. Дополнительные сведения см. в статье Погружение в Delta Lake: применение и эволюция схемы |
Журнал аудита | Журнал транзакций Delta Lake записывает сведения о каждом изменении, внесенных в данные. Эти записи предоставляют полный журнал аудита всех изменений. |
Обновление и удаление данных | Delta Lake поддерживает API Scala, Java, Python и SQL для различных функций. Поддержка операций слияния, обновления и удаления помогает соответствовать требованиям соответствия требованиям. Дополнительные сведения см. в статье Объявление о выпуске Delta Lake 0.6.1, объявление о выпуске Delta Lake 0.7 и простом, надежном upserts и deletes on Delta Lake Tables с помощью API Python (который включает фрагменты кода для слияния, обновления и удаления команд DML). |
100%-ная совместимость с программным интерфейсом Apache Spark API | Разработчики могут использовать Delta Lake с минимальным изменением существующих конвейеров данных, так как он полностью совместим с существующими реализациями Spark. |
Дополнительные сведения см. на странице проекта Delta Lake.
Полная документация см. на странице документации Delta Lake
Производительность
Использование большого количества небольших файлов часто приводит к неоптимальной производительности и более высокой стоимости операций чтения и списка. Azure Data Lake Storage 2-го поколения оптимизировано для более крупных файлов, позволяющих выполнять задания аналитики быстрее и с более низкой стоимостью.
Delta Lake включает множество функций, которые помогут оптимизировать производительность с помощью управления файлами.
Вот некоторые примеры.
- Журнал транзакций минимизирует дорогостоящие операции LIST.
- Z-Упорядочение (многомерные кластеризация) обеспечивает оптимизированную отправку предиката для фильтров запросов.
- Оптимизация кэширования и запросов сокращает объем необходимого объема сканирования хранилища. Дополнительные сведения см. в статье "Оптимизация производительности с помощью кэширования".
- ОПТИМИЗАЦИЯ объединяет небольшие файлы в более крупные.
Сделайте эти оптимизации частью процесса загрузки данных для поддержания свежести и производительности данных.
Секционирование озера данных
Секционирование данных включает организацию данных в хранилище данных, чтобы управлять крупномасштабными данными и управлять доступом к данным. Секционирование помогает улучшить масштабируемость, уменьшить количество конфликтов и оптимизировать производительность.
При секционирования озера данных убедитесь, что настроена настройка:
- Не компрометация безопасности
- Имеет четкую изоляцию и соответствует модели авторизации данных
- Хорошо подходит для процесса приема данных
- Имеет четко определенный путь для оптимального доступа к данным
- Поддерживает задачи управления и обслуживания
Общие рекомендации
Общие рекомендации по проектированию секционирования данных:
- Сосредоточьтесь на начале вашего влияния на безопасность и создайте секции данных вместе с авторизацией.
- Возможно, вы хотите разрешить избыточность данных в обмен на безопасность. Определите соглашение об именовании и придерживайтесь его.
- Вы можете вложить несколько папок, но всегда поддерживать их согласованность.
- Включите элемент time в структуры папок и имена файлов.
- Не запускайте структуру папок с разделами даты. Даты лучше размещать на нижнем уровне папки.
- Не сочетайте смешанные форматы файлов или разные продукты данных в одной структуре папок.
Совет
Структуры папок должны иметь стратегии секционирования, которые могут оптимизировать шаблоны доступа и соответствующие размеры файлов. В курированных зонах планируйте структуру на основе оптимального извлечения, внимательно выбирайте ключ секции с большой кратностью, чтобы не допустить избыточного секционирования, которое в свою очередь может привести к неоптимальным размерам файлов.
Дополнительные сведения о зонах озера данных см. в разделе "Зоны озера данных" и "Контейнеры"
Поддержка соответствия требованиям
Delta Lake добавляет уровень транзакций для предоставления структурированного управления данными на вершине озера данных. Это дополнение может значительно упростить и ускорить поиск и удаление персональных данных (также известных как "персональные данные") по запросу потребителя. Уровень транзакций поддерживает такие операции, как DELETE, UPDATE и MERGE. Дополнительные сведения см. в рекомендациях : соответствие GDPR с помощью Delta Lake.
Итоги
Примените стандартизации данных, перечисленные в этой статье, к вашей платформе. Начните с формата Delta Lake, а затем начните добавлять процессы для оптимизации и соответствия требованиям. Вы можете создать службу, которая выполняет некоторые маршруты оптимизации по расписанию или создать службу соответствия требованиям, которая удаляет личную информацию.