Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Архитектура medallion lakehouse, известная как архитектура медальона, является шаблоном дизайна, который используется для организации данных в лейкхаусе. Это рекомендуемый подход к проектированию для Fabric. Поскольку OneLake является озером данных для Fabric, архитектура медальона реализуется путем создания озер-хранилищ данных в OneLake.
Архитектура Medallion состоит из трех отдельных слоев. Три уровня медальона: бронза (необработанные данные), серебро (обогащенные данные) и золото (курированные данные). Каждый слой указывает качество данных, хранящихся в озере, с более высоким уровнем, представляющим более высокое качество.
Архитектура медальона помогает вашим данным оставаться точными и надежными в соответствии с принципами атомарности, согласованности, изоляции и устойчивости (ACID). Данные начинаются в необработанной форме, а исходные копии сохраняются в качестве источника истины, пока конвейеры проверок и преобразований подготавливают данные для аналитики.
Дополнительные сведения см. в разделе "Что такое архитектура medallion lakehouse?".
Аудитория
В этой статье представлена архитектура «озера медальона» и описывается, как вы можете реализовать шаблон проектирования в Microsoft Fabric. Он предназначен для нескольких аудиторий:
- Специалисты по обработке и анализу данных: технические специалисты, которые разрабатывают, создают и поддерживают инфраструктуру и системы, которые позволяют организации собирать, хранить, обрабатывать и анализировать большие объемы данных.
- Центр знаний, ИТ-специалистов и команд бизнес-аналитики: Команды, ответственные за надзор за аналитикой по всей организации.
- Администраторы Fabric: администраторы, ответственные за управление Fabric в организации.
Что такое архитектура медальона?
Цель архитектуры медальона заключается в постепенном улучшении структуры и качества данных. Подумайте об медальонной архитектуре как о трехэтапном процессе очистки и организации ваших данных. Каждый слой делает данные более надежными и удобными для использования.
- Бронза (сырье): Храните все точно так же, как оно поступает. Изменения не допускаются.
- Silver (Обогащено): исправление ошибок, стандартизация форматов и удаление дубликатов.
- Gold (Curated): упорядочение отчетов и панелей мониторинга.
Держите каждый слой отдельно в собственном озерном доме данных или хранилище данных OneLake, перемещая данные между слоями по мере их преобразования и усовершенствования.
В типичной реализации архитектуры медальона в Fabric бронзовый слой сохраняет данные в том же формате, что и источник данных. Если источник данных является реляционной базой данных, разностные таблицы являются хорошим выбором. Серебряные и золотые слои должны содержать Delta таблицы.
Совет
Чтобы узнать, как создать lakehouse, пройдите через пошаговое руководство по полному сценарию Lakehouse.
Пример реального мира
Рассмотрим следующий пример компании электронной коммерции, которая применяет архитектуру медальона к своим данным:
Бронзовый слой:
- Хранение необработанных данных о продажах с веб-сайта (JSON)
- Хранение необработанных данных инвентаризации из хранилища (CSV)
- Хранение необработанных данных клиента из CRM (экспорт SQL)
Серебряный слой:
- Стандартизация форматов дат во всех источниках
- Преобразование всей валюты в USD
- Удаление тестовых транзакций
- Сопоставление записей клиентов в системах
Золотой слой:
- Создание таблицы панели мониторинга ежедневных продаж
- Создание таблицы значений времени существования клиента
- Создание таблицы прогнозирования инвентаризации
Архитектура «Медальон» в OneLake
Основой современного хранилища данных является озеро данных. Microsoft OneLake — это единое, единое, логическое озеро данных для всей организации. Он предоставляется автоматически для каждого клиента Fabric и является единственным местом для всех данных аналитики.
Чтобы хранить данные в OneLake, создайте lakehouse в Fabric. Lakehouse — это платформа архитектуры данных для хранения, управления и анализа структурированных и неструктурированных данных в одном расположении. Он может масштабироваться до больших объемов данных всех типов файлов и размеров, и так как данные хранятся в одном расположении, их можно совместно использовать и повторно использовать в организации.
Дополнительные сведения см. в статье "Что такое lakehouse в Microsoft Fabric?".
Таблицы и файлы
При создании озерного дома в OneLake автоматически предоставляются два физических места хранения.
- Таблицы хранят таблицы всех форматов в Apache Spark (CSV, Parquet или Delta).
- Файлы хранят данные в любом формате файла. Если вы хотите создать таблицу на основе данных в области файлов, можно создать ярлык , указывающий на папку, содержащую файлы таблиц.
В бронзовом слое данные хранятся в исходном формате, которые могут быть таблицами или файлами. Если исходные данные находятся в OneLake, Azure Data Lake Store второго поколения (ADLS Gen2), Amazon S3 или Google Cloud Storage, создайте ярлык в бронзовом слое вместо копирования данных целиком.
В слоях серебра и золота обычно хранятся данные в таблицах Delta. Однако вы также можете хранить данные в файлах Parquet или CSV. При этом необходимо явно создать ярлык или внешнюю таблицу с расположением, которое указывает на неуправляемую папку, содержащую файлы Delta Lake в Apache Spark.
В Microsoft Fabric Lakehouse Explorer предоставляет единое графическое представление всего Lakehouse, позволяя пользователям легко находить, получать доступ и обновлять свои данные.
Хранилище Delta Lake
Delta Lake — это оптимизированный уровень хранения, который предоставляет основу для хранения данных и таблиц. Он поддерживает транзакции ACID для рабочих нагрузок больших данных, и по этой причине это формат хранения по умолчанию в Fabric Lakehouse.
Delta Lake обеспечивает надежность, безопасность и производительность в озерном хранилище как при потоковой обработке данных, так и при пакетных операциях. Внутри него хранятся данные в формате файла Parquet, однако она также поддерживает журналы транзакций и статистику, которые обеспечивают функции и повышение производительности по сравнению со стандартным форматом Parquet.
Формат Delta Lake обеспечивает следующие преимущества по сравнению с универсальными форматами файлов:
- Поддержка свойств ACID, особенно устойчивость для предотвращения повреждения данных.
- Быстрее считывать запросы.
- Повышенная свежесть данных.
- Поддержка пакетных и потоковых рабочих нагрузок.
- Поддержка отката данных с помощью перемещения по времени Delta Lake.
- Повышено соответствие нормативным требованиям и улучшен аудит с помощью истории таблиц Delta Lake.
Фреймворк стандартизирует формат файлов хранения данных с использованием технологии Delta Lake. По умолчанию каждый механизм рабочей нагрузки в Fabric создает таблицы Delta при записи данных в новую таблицу. Дополнительные сведения см. в таблицах Lakehouse и Delta Lake.
Модель развертывания
Чтобы реализовать архитектуру медальона в Fabric, можно использовать "lakehouses" (по одному для каждого слоя), хранилище данных или сочетание того и другого. Ваше решение должно быть основано на ваших предпочтениях и опыте вашей команды. С помощью Fabric можно использовать различные аналитические механизмы, работающие на одной копии данных в OneLake.
Ниже приведены два шаблона, которые следует учитывать:
- Шаблон 1. Создайте каждый слой в виде озера. В этом случае бизнес-пользователи получают доступ к данным с помощью конечной точки аналитики SQL.
- Шаблон 2. Создайте бронзовые и серебряные слои в виде озерных домов и золотого слоя в качестве хранилища данных. В этом случае бизнес-пользователи получают доступ к данным с помощью конечной точки хранилища данных.
Хотя вы можете создать все дата-озера в одной рабочей области Fabric, рекомендуется создать каждое дата-озеро в отдельной рабочей области. Этот подход обеспечивает больший контроль и более эффективное управление на уровне слоя.
Для бронзового слоя рекомендуется хранить данные в исходном формате или использовать Parquet или Delta Lake. По возможности сохраните данные в исходном формате. Если исходные данные поступают из OneLake, Azure Data Lake Store второго поколения (ADLS Gen2), Amazon S3 или Google, создайте ярлык в бронзовом слое вместо копирования данных в него.
Для серебряных и золотых слоев мы рекомендуем использовать таблицы Delta благодаря дополнительным возможностям и улучшению производительности, которые они обеспечивают. Fabric стандартизирует формат Delta Lake, и по умолчанию каждый движок в Fabric записывает данные в этом формате. Кроме того, эти подсистемы используют оптимизацию времени записи V-Order в формате файла Parquet. Эта оптимизация позволяет вычислительным подсистемам Fabric, таким как Power BI, SQL, Apache Spark и другие, быстро считывать данные. Дополнительные сведения см. в разделе "Оптимизация таблицы Delta Lake" и "V-Order".
Наконец, сегодня многие организации сталкиваются с массовым ростом объемов данных, а также с увеличением необходимости упорядочивать и управлять данными логическим способом, обеспечивая более целевое и эффективное использование и управление ими. Это может привести к созданию и управлению децентрализованной или федеративной организацией данных с помощью управления. Для удовлетворения этой цели рекомендуется реализовать архитектуру сетки данных. Сетка данных — это архитектурный шаблон, ориентированный на создание доменов данных, которые предлагают данные в качестве продукта.
Вы можете создать архитектуру сетки данных для своего пространства данных в Fabric, создав домены данных. Вы можете создавать домены, которые сопоставляют ваши бизнес-домены, например маркетинг, продажи, инвентаризацию, персонал и другие. Затем вы можете реализовать архитектуру медальона, настроив слои данных в каждом из доменов. Дополнительные сведения о доменах см. в разделе "Домены".
Использование материализованных представлений озера для архитектуры медальона
Материализованные представления данных в Microsoft Fabric помогают реализовать архитектуру медальона в лейкхаусе. Вместо создания сложных конвейеров для преобразования данных между бронзовыми, серебряными и золотыми слоями можно определить материализованные представления озера, которые автоматически управляют преобразованиями.
Ключевыми преимуществами использования материализованных представлений озера для архитектуры медальона являются:
- Декларативные конвейеры: определение преобразований данных с помощью инструкций SQL, а не создание конвейеров вручную между слоями.
- Автоматическое управление зависимостями. Структура автоматически определяет правильный порядок выполнения на основе зависимостей представления.
- Правила качества данных: встроенная поддержка определения и применения ограничений качества данных при перемещении данных через слои.
- Оптимальное обновление: система автоматически определяет, следует ли выполнять добавочное, полное или без обновления для каждого представления.
- Визуализация и мониторинг: Просмотр взаимосвязей во всех слоях и отслеживание хода выполнения.
Например, можно создать представление серебряного слоя, которое очищает и объединяет данные из бронзовых таблиц, а затем создать представления золотого слоя, которые агрегируют данные серебряного слоя для отчетов. Система автоматически управляет обновлением.
Дополнительные сведения см. в разделе "Реализация архитектуры медальона" с материализованными представлениями озера.
Общие сведения о хранилище данных таблицы Delta
В этом разделе описаны другие рекомендации, связанные с реализацией архитектуры medallion lakehouse в Fabric.
Размер файла
Как правило, платформа больших данных лучше работает, если она содержит несколько больших файлов, а не многие небольшие файлы. Снижение производительности происходит, когда подсистема вычислений имеет множество метаданных и операций с файлами для управления. Для повышения производительности запросов рекомендуется стремиться к файлам данных, размер которых составляет около 1 ГБ.
Различные слои архитектуры медальона имеют разные требования к размеру файла в зависимости от того, какой модуль потребления будет использоваться. В бронзовом слое можно иметь небольшие файлы из-за необработанных данных, если вы будете сосредоточиться на изменении и подготовке данных с помощью Spark. На серебряном и золотом уровнях следует оптимизировать файлы большего размера и группы строк для повышения производительности запросов в системах потребления. Дополнительные сведения об оптимизации размеров файлов для разных слоев см. в статье об обслуживании и оптимизации таблиц для различных рабочих нагрузок.
Историческое хранение
По умолчанию Delta Lake сохраняет журнал всех внесенных изменений, поэтому размер исторических метаданных растет со временем. На основе бизнес-требований сохраняйте исторические данные только в течение определенного периода времени, чтобы сократить затраты на хранение. Попробуйте сохранить исторические данные только за последний месяц или другой подходящий период времени.
Вы можете удалить старые исторические данные из таблицы Delta с помощью команды VACUUM. Однако по умолчанию вы не можете удалить исторические данные за последние семь дней. Это ограничение поддерживает согласованность данных. Настройте число дней по умолчанию, используя свойство delta.deletedFileRetentionDuration = "interval <interval>" таблицы. Это свойство определяет период времени удаления файла, прежде чем его можно считать кандидатом для операции вакуума.
Разделы таблиц и кластеризация
При хранении данных на каждом уровне рекомендуется использовать секционированную структуру папок везде, где это применимо. Этот метод повышает удобство управления данными и производительность запросов. Как правило, секционированные данные в структуре папок приводят к более быстрому поиску определенных записей данных из-за очистки и ликвидации секций. Секционирование обычно является хорошей стратегией для высокочастотного приема в слое Bronze, так как это соответствует нескольким инструментам приема. Тем не менее, для слоев Silver и Gold рекомендуется использовать Liquid Clustering вместо секционирования для оптимизации производительности запросов. Дополнительные сведения об оптимизации различных слоёв см. в статье Обслуживание и оптимизация таблиц для различных нагрузок.
Как правило, данные добавляются в целевую таблицу по мере поступления новых данных. Однако в некоторых случаях данные могут объединяться, так как необходимо одновременно обновлять существующие данные. В этом случае можно выполнить операцию upsert с помощью команды MERGE. Если целевая таблица секционирована, обязательно используйте фильтр секционирования для ускорения операции. Таким образом, модуль может исключить секции, которые не требуют обновления.
Доступ к данным
Вы должны планировать и контролировать, кто нуждается в доступе к определенным данным в хранилище данных (lakehouse). Вы также должны понимать различные шаблоны транзакций, которые они будут использовать при доступе к этим данным для каждого слоя.
Совет
Каждый уровень медальона имеет разные требования к оптимизации. Полное руководство по стратегиям обслуживания таблиц для бронзовых, серебряных и золотых слоев, включая сведения о включении V-Order и оптимальных размерах файлов, см. в разделе "Обслуживание и оптимизация таблиц между рабочими нагрузками".
Связанный контент
Дополнительную информацию о реализации архитектуры Medallion Lakehouse можно найти в следующих ресурсах.
- Обслуживание и оптимизация таблиц для различных рабочих нагрузок
- Оптимизация таблицы Delta Lake и V-Order
- Руководство по комплексному сценарию Lakehouse
- Руководство. Реализация архитектуры медальона с материализованными представлениями озера
- Таблицы Lakehouse и Delta Lake
- Руководство по принятию решений Microsoft Fabric: выбор хранилища данных
- Потребность в оптимизации записи в Apache Spark
- Вопросы? Попробуйте спросить сообщество Fabric.
- Есть предложения? Предлагайте идеи по улучшению Fabric.