Реализация архитектуры medallion lakehouse в Microsoft Fabric

В этой статье описывается архитектура озера медальон и описывается, как реализовать lakehouse в Microsoft Fabric. Он предназначен для нескольких аудиторий:

  • Специалисты по обработке и анализу данных: технические специалисты, которые разрабатывают, создают и поддерживают инфраструктуру и системы, которые позволяют организации собирать, хранить, обрабатывать и анализировать большие объемы данных.
  • Центр превосходства, ИТ-отдела и группы бизнес-аналитики: команды, ответственные за надзор за аналитикой по всей организации.
  • Администраторы Структуры: администраторы, ответственные за надзор за Структурой в организации.

Архитектура medallion lakehouse, известная как архитектура медальона, является шаблоном проектирования, который используется организациями для логического упорядочения данных в лейкхаусе. Это рекомендуемый подход к проектированию для Fabric.

Архитектура медальона состоит из трех отдельных слоев или зон. Каждый слой указывает качество данных, хранящихся в озере, с более высоким уровнем, представляющим более высокое качество. Этот многоуровневый подход помогает создать единый источник истины для корпоративных продуктов данных.

Важно, что архитектура медальона гарантирует набор свойств ACID (атомарность, согласованность, изоляция и устойчивость) по мере выполнения данных по слоям. Начиная с необработанных данных, ряд проверок и преобразований подготавливает данные, оптимизированные для эффективной аналитики. Существует три этапа медальона: бронза (сырая), серебро (проверено) и золото (обогащено).

Дополнительные сведения см. в разделе "Что такое архитектура medallion lakehouse?".

OneLake и lakehouse в Fabric

Основой современного хранилища данных является озеро данных. Microsoft OneLake, который является единым, унифицированным, логическим озером данных для всей организации. Он подготавливается автоматически для каждого клиента Fabric, и он предназначен для единого расположения для всех данных аналитики.

Вы можете использовать OneLake для:

  • Удалите силосы и уменьшите усилия по управлению. Все данные организации хранятся, управляются и защищены в одном ресурсе озера данных. Так как OneLake подготовлен в клиенте Fabric, для подготовки или управления ими больше ресурсов нет.
  • Уменьшение перемещения и дублирования данных. Цель OneLake — хранить только одну копию данных. Меньше копий данных приводит к уменьшению числа процессов перемещения данных, что приводит к повышению эффективности и снижению сложности. При необходимости можно создать ярлык для ссылки на данные, хранящиеся в других местах, а не копировать их в OneLake.
  • Используется с несколькими аналитическими подсистемами. Данные в OneLake хранятся в открытом формате. Таким образом, данные можно запрашивать различными аналитическими подсистемами, включая службы Analysis Services (используемые Power BI), T-SQL и Spark. Другие приложения, отличные от Fabric, также могут использовать API и пакеты SDK для доступа к OneLake .

Дополнительные сведения см . в разделе OneLake, OneDrive для данных.

Чтобы хранить данные в OneLake, создайте lakehouse в Fabric. Lakehouse — это платформа архитектуры данных для хранения, управления и анализа структурированных и неструктурированных данных в одном расположении. Он может легко масштабироваться до больших объемов данных всех типов файлов и размеров, и так как он хранится в одном расположении, он легко предоставляет общий доступ и повторно используется в организации.

Каждый lakehouse имеет встроенную конечную точку аналитики SQL, которая разблокирует возможности хранилища данных без необходимости перемещать данные. Это означает, что вы можете запрашивать данные в lakehouse с помощью запросов SQL и без каких-либо специальных настроек.

Дополнительные сведения см. в статье "Что такое lakehouse в Microsoft Fabric?".

Таблицы и файлы

При создании lakehouse в Fabric два расположения физического хранилища подготавливаются автоматически для таблиц и файлов.

  • Таблицы — это управляемая область для размещения таблиц всех форматов в Spark (CSV, Parquet или Delta). Все таблицы, созданные автоматически или явным образом, распознаются как таблицы в lakehouse. Кроме того, все таблицы Delta, которые являются файлами данных Parquet с журналом транзакций на основе файлов, также распознаются как таблицы.
  • Файлы — это неуправляемая область для хранения данных в любом формате файла. Все разностные файлы, хранящиеся в этой области, не распознают как таблицы автоматически. Если вы хотите создать таблицу по папке Delta Lake в неуправляемой области, необходимо явно создать ярлык или внешнюю таблицу с расположением, которое указывает на неуправляемую папку, содержащую файлы Delta Lake в Spark.

Основное различие между управляемой областью (таблицами) и неуправляемой областью (файлами) является автоматическим процессом обнаружения и регистрации таблиц. Этот процесс выполняется по любой папке, созданной только в управляемой области, но не в неуправляемой области.

В Microsoft Fabric обозреватель Lakehouse предоставляет единое графическое представление всего Lakehouse для пользователей для навигации, доступа и обновления своих данных.

Дополнительные сведения об автоматическом обнаружении таблиц см. в разделе "Автоматическое обнаружение и регистрация таблиц".

Хранилище Delta Lake

Delta Lake — это оптимизированный уровень хранения, который предоставляет основу для хранения данных и таблиц. Он поддерживает транзакции ACID для рабочих нагрузок больших данных, и по этой причине это формат хранения по умолчанию в Lakehouse Fabric.

Важно, что Delta Lake обеспечивает надежность, безопасность и производительность в lakehouse как для потоковой передачи, так и для пакетных операций. Внутри него хранятся данные в формате файла Parquet, однако она также поддерживает журналы транзакций и статистику, которые обеспечивают функции и повышение производительности по сравнению со стандартным форматом Parquet.

Формат Delta Lake по универсальным форматам файлов обеспечивает следующие основные преимущества.

  • Поддержка свойств ACID и особенно устойчивости для предотвращения повреждения данных.
  • Быстрее считывать запросы.
  • Повышенная свежесть данных.
  • Поддержка рабочих нагрузок пакетной и потоковой передачи.
  • Поддержка отката данных с помощью перемещения по времени Delta Lake.
  • Улучшено соответствие нормативным требованиям и аудит с помощью журнала таблиц Delta Lake.

Структура стандартизирует формат файла хранилища с Delta Lake, и по умолчанию каждый механизм рабочей нагрузки в Fabric создает таблицы Delta при записи данных в новую таблицу. Дополнительные сведения см. в таблицах Lakehouse и Delta Lake.

Архитектура Medallion в Fabric

Цель архитектуры медальона заключается в постепенном и постепенном улучшении структуры и качества данных по мере прогресса на каждом этапе.

Архитектура медальона состоит из трех отдельных слоев (или зон).

  • Бронза: также называется необработанной зоной, этот первый слой сохраняет исходные данные в исходном формате. Данные в этом слое обычно доступны только для добавления и неизменяемы.
  • Silver: также известный как обогащенная зона, этот слой сохраняет данные, полученные из бронзового слоя. Необработанные данные были очищаются и стандартизированы, и теперь она структурирована как таблицы (строки и столбцы). Она также может быть интегрирована с другими данными для предоставления корпоративного представления всех бизнес-сущностей, таких как клиент, продукт и другие.
  • Золото: также известная как курированная зона, этот окончательный слой сохраняет данные, полученные из серебряного слоя. Данные уточнены для удовлетворения конкретных требований к бизнесу и аналитике. Таблицы обычно соответствуют схеме звезд, которая поддерживает разработку моделей данных, оптимизированных для повышения производительности и удобства использования.

Внимание

Так как Lakehouse Fabric представляет одну зону, вы создаете один лейкхаус для каждой из трех зон.

Схема примера архитектуры медальона OneLake, в котором показаны источники данных, подготовка и преобразование с бронзовыми, серебряными и золотыми слоями, а также анализ с помощью конечной точки аналитики SQL и Power BI.

В типичной реализации архитектуры медальона в Fabric бронзовая зона сохраняет данные в том же формате, что и источник данных. Если источник данных является реляционной базой данных, разностные таблицы являются хорошим выбором. Серебряные и золотые зоны содержат таблицы Delta.

Совет

Чтобы узнать, как создать lakehouse, ознакомьтесь с руководством по комплексному сценарию Lakehouse.

Руководство по Fabric Lakehouse

В этом разделе содержатся рекомендации по реализации Fabric lakehouse с помощью архитектуры медальона.

Модель развертывания

Для реализации архитектуры медальона в Fabric можно использовать lakehouses (по одному для каждой зоны), хранилище данных или сочетание обоих. Ваше решение должно быть основано на ваших предпочтениях и опыте вашей команды. Имейте в виду, что Fabric обеспечивает гибкость: вы можете использовать различные аналитические механизмы, работающие на одной копии данных в OneLake.

Ниже приведены два шаблона, которые следует учитывать.

  • Шаблон 1. Создание каждой зоны в виде озера. В этом случае бизнес-пользователи получают доступ к данным с помощью конечной точки аналитики SQL.
  • Шаблон 2. Создание бронзовых и серебряных зон в виде озерных домов и золотой зоны в качестве хранилища данных. В этом случае бизнес-пользователи получают доступ к данным с помощью конечной точки хранилища данных.

Хотя вы можете создать все озера в одной рабочей области Fabric, рекомендуется создать каждое озеро в отдельной рабочей области Fabric. Этот подход обеспечивает больший контроль и улучшение управления на уровне зоны.

Для бронзовой зоны рекомендуется хранить данные в исходном формате или использовать Parquet или Delta Lake. По возможности сохраните данные в исходном формате. Если исходные данные созданы из OneLake, Azure Data Lake Store 2-го поколения (ADLS 2-го поколения), Amazon S3 или Google, создайте ярлык в бронзовой зоне вместо копирования данных по всему.

Для зон серебра и золота рекомендуется использовать таблицы Delta из-за дополнительных возможностей и улучшений производительности, которые они предоставляют. Структура стандартизирует формат Delta Lake и по умолчанию каждый механизм в Fabric записывает данные в этом формате. Кроме того, эти подсистемы используют оптимизацию времени записи V-Order в формате файла Parquet. Эта оптимизация обеспечивает чрезвычайно быстрое чтение вычислительных подсистем Fabric, таких как Power BI, SQL, Spark и другие. Дополнительные сведения см. в разделе "Оптимизация таблицы Delta Lake" и "V-Order".

Наконец, сегодня многие организации сталкиваются с массовым ростом объемов данных, а также с увеличением необходимости упорядочивать и управлять данными логическим способом, обеспечивая более целевое и эффективное использование и управление ими. Это может привести к созданию и управлению децентрализованной или федеративной организацией данных с помощью управления.

Для удовлетворения этой цели рекомендуется реализовать архитектуру сетки данных. Сетка данных — это архитектурный шаблон, ориентированный на создание доменов данных, которые предлагают данные в качестве продукта.

Вы можете создать архитектуру сетки данных для своего пространства данных в Fabric, создав домены данных. Вы можете создавать домены, которые сопоставляют ваши бизнес-домены, например маркетинг, продажи, инвентаризацию, персонал и другие. Затем можно реализовать архитектуру медальона, настроив зоны данных в каждом из доменов.

Дополнительные сведения о доменах см. в разделе "Домены".

Общие сведения о хранилище данных таблицы Delta

В этом разделе описаны другие разделы руководства, связанные с реализацией архитектуры medallion lakehouse в Fabric.

Размер файла

Как правило, платформа больших данных лучше работает, если она имеет небольшое количество больших файлов, а не большое количество небольших файлов. Это связано с тем, что снижение производительности происходит, когда подсистема вычислений должна управлять многими метаданными и операциями с файлами. Для повышения производительности запросов рекомендуется стремиться к файлам данных, размер которых составляет около 1 ГБ.

Delta Lake имеет функцию, называемую прогнозной оптимизацией. Прогнозная оптимизация удаляет необходимость вручную управлять операциями обслуживания для таблиц Delta. Если эта функция включена, Delta Lake автоматически определяет таблицы, которые будут использовать операции обслуживания, а затем оптимизирует их хранилище. Он может прозрачно объединиться с большими файлами и без каких-либо последствий для других читателей и записи данных. Хотя эта функция должна быть частью операционного превосходства и работы по подготовке данных, Fabric также может оптимизировать эти файлы данных во время записи данных. Дополнительные сведения см. в разделе "Прогнозная оптимизация" для Delta Lake.

Историческое хранение

По умолчанию Delta Lake сохраняет историю всех изменений, внесенных, что означает, что размер исторических метаданных растет со временем. В соответствии с бизнес-требованиями необходимо сохранить исторические данные только в течение определенного периода времени, чтобы сократить затраты на хранение. Попробуйте сохранить исторические данные только за последний месяц или другой подходящий период времени.

Вы можете удалить старые исторические данные из таблицы Delta с помощью команды VACUUM. Тем не менее, помните, что по умолчанию вы не можете удалять исторические данные за последние семь дней— это для поддержания согласованности в данных. Количество дней по умолчанию управляется свойством delta.deletedFileRetentionDuration = "interval <interval>"таблицы. Он определяет период времени удаления файла, прежде чем его можно будет считать кандидатом на операцию вакуума.

Разделы таблиц

При хранении данных в каждой зоне рекомендуется использовать секционированную структуру папок везде, где это применимо. Этот метод помогает улучшить управление данными и производительность запросов. Как правило, секционированные данные в структуре папок приводят к более быстрому поиску определенных записей данных благодаря очистке и ликвидации секций.

Как правило, данные добавляются в целевую таблицу по мере поступления новых данных. Однако в некоторых случаях данные могут объединяться, так как необходимо одновременно обновлять существующие данные. В этом случае можно выполнить операцию upsert с помощью команды MERGE. Если целевая таблица секционирована, обязательно используйте фильтр секционирования для ускорения операции. Таким образом, модуль может исключить секции, которые не требуют обновления.

Доступ к данным

Наконец, вы должны планировать и контролировать, кто нуждается в доступе к определенным данным в lakehouse. Вы также должны понимать различные шаблоны транзакций, которые они будут использовать при доступе к этим данным. Затем можно определить правильную схему секционирования таблиц и совместное размещение данных с помощью индексов порядка Delta Lake Z.

Дополнительные сведения о реализации Lakehouse Fabric см. в следующих ресурсах.