Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Процесс извлечения, преобразования и загрузки используется для получения данных из разных источников. Он позволяет собрать данные в стандартном расположении, очистить их и обработать. В результате готовые данные помещаются в хранилище данных и становятся пригодны для выполнения запросов по ним. Прежние ETL-процессы дают возможность импортировать данные, очищать их на месте, а затем сохранять в реляционный обработчик данных. Компоненты среды Apache Hadoop для Azure HDInsight, представленные в широком ассортименте, поддерживают ETL-процессы в большом масштабе.
Использование HDInsight в процессах ETL можно кратко описать таким конвейером:
В разделах ниже рассматриваются все этапы ETL и их связанные компоненты.
Оркестрация
Оркестрация охватывает все этапы конвейера ETL. Задания ETL в HDInsight часто включают в себя несколько совместно функционирующих различных продуктов. Например:
- Так, можно применить Apache Hive, чтобы очистить одну часть данных, и Apache Pig для очистки другой части.
- Фабрику данных Azure можно использовать для загрузки данных в базу данных SQL Azure из Azure Data Lake Store.
Оркестрация необходима для выполнения нужной задачи в нужное время.
Apache Oozie
Apache Oozie — это система координации рабочих процессов, которая управляет заданиями Hadoop. Oozie работает в кластере HDInsight и интегрирована со стеком Hadoop. Oozie поддерживает задания Apache Hadoop MapReduce, Pig, Hive и Sqoop. Вы можете использовать Oozie для планирования заданий для конкретной системы, например программ Java или сценариев оболочки.
Дополнительные сведения см. в статье Использование Apache Oozie с Apache Hadoop для определения и запуска рабочего процесса в HDInsight. Также изучите статью Ввод в эксплуатацию конвейера аналитики данных.
Azure Data Factory
Фабрика данных Azure предоставляет возможности оркестрации в формате PaaS (платформа как услуга). Фабрика данных Azure — это облачная служба интеграции данных. Она позволяет создавать управляемые данными рабочие процессы для оркестрации и автоматизации перемещения и преобразования данных.
Применение Фабрики данных Azure:
- Создание и планирование рабочих процессов на основе данных. Эти конвейеры могут принимать данные из разрозненных хранилищ данных.
- Обработка и преобразование данных с помощью вычислительных служб, как например HDInsight и Hadoop. Для этого шага можно также использовать Spark, Azure Data Lake Analytics, пакетную службу Azure или Машинное обучение Azure.
- Публикация выходных данных в хранилища данных (например, Azure Synapse Analytics) для использования приложениями бизнес-аналитики.
Дополнительные сведения о фабрике данных Azure см. в этой статье.
Хранилище приема файлов и хранилище хранения результатов
Исходные файлы данных обычно загружаются в место хранения в Azure Storage или Azure Data Lake Storage. Обычно это файлы в неструктурированном формате, например CSV. Но они могут быть в любом формате.
Хранилище Azure
Служба хранилища Azure имеет определенные целевые показатели адаптируемости. Дополнительные сведения см. в статье Целевые показатели масштабируемости и производительности для хранилища BLOB-объектов. Для большинства аналитических узлов Azure Storage лучше всего масштабируется при использовании множества небольших файлов. Служба хранилища Azure гарантирует одинаковую производительность независимо от количества файлов и их размера, пока соблюдаются ограничения для учетной записи. Вы можете хранить терабайты данных и получать все ту же стабильную производительность. Это справедливо как при работе с некоторым подмножеством, так и для всего объема данных.
Служба хранилища Azure использует несколько типов блобов. Блоб дополнений — отличный вариант для хранения веб-журналов или данных датчиков.
Несколько блобов можно распределить по множеству серверов для масштабирования доступа к ним. Но каждый большой двоичный объект (BLOB) обслуживается только одним сервером. Хотя блобы могут быть логически сгруппированы в контейнеры, такая группировка не влияет на их разделение на части.
Служба хранения Azure включает слой API WebHDFS для блочного хранилища. Все службы HDInsight могут обращаться к файлам в хранилище BLOB-объектов Azure для очистки и обработки данных. Это похоже на то, как эти службы используют распределенную файловую систему Hadoop (HDFS).
Как правило, данные поступают в службу хранилища Azure через PowerShell, пакет SDK службы хранилища Azure или AzCopy.
Azure Data Lake Storage
Azure Data Lake Storage — это управляемый и гипермасштабируемый репозиторий для данных аналитики. Он совместим с HDFS и использует сходную концепцию архитектуры. Data Lake Storage предоставляет неограниченную адаптируемость емкости и поддержку любого размера отдельных файлов. Это хороший выбор для работы с большими файлами, так как это хранилище позволяет сохранить такие файлы на нескольких узлах. Секционирование данных в Data Lake Storage выполняется в фоновом режиме. Это хранилище обеспечивает огромную пропускную способность: тысячи исполнителей могут одновременно запускать аналитические задания, которые эффективно считывают и записывают сотни терабайтов данных.
Данные обычно передаются в Data Lake Storage через Фабрику данных Azure. Вы также можете использовать пакеты SDK для Data Lake Storage, службу AdlCopy, Apache DistCp или Apache Sqoop. Выбор службы зависит от того, где находятся данные. Если это существующий кластер Hadoop, можно использовать Apache DistCp, службу AdlCopy или Фабрику данных Azure. Для данных в хранилище больших двоичных объектов Azure можно применить пакет средств разработки .NET для Azure Data Lake Storage, Azure PowerShell или Фабрику данных Azure.
Data Lake Storage оптимизирован для ингерирования событий через Azure Event Hub.
Рекомендации для двух вариантов хранения
Для отправки наборов данных, размер которых измеряется терабайтами, задержки сети могут стать серьезной проблемой. Это особенно важно, если данные поступают из локальной среды. В таких ситуациях будут уместны следующие варианты.
Azure ExpressRoute: создание частных подключений между центрами обработки данных Azure и локальной инфраструктурой. Такое подключение обеспечивает надежный вариант передачи больших объемов данных. Дополнительные сведения см. в документации Azure ExpressRoute.
Передача данных с жестких дисков. Службу импорта и экспорта Azure можно использовать для отправки жестких дисков с данными в центр обработки данных Azure. Ваши данные сначала отправляются в хранилище Blob Azure. Затем с помощью Фабрики данных Azure или инструмента AdlCopy их можно скопировать из хранилища BLOB-объектов Azure в Data Lake Storage.
Azure Synapse Analytics
Azure Synapse Analytics будет хорошим выбором для хранения подготовленных результатов. Можете использовать Azure HDInsight для выполнения этих служб Azure Synapse Analytics.
Azure Synapse Analytics представляет собой хранилище реляционной базы данных, оптимизированное для аналитических рабочих нагрузок. Масштабирование выполняется на основе секционированных таблиц. Таблицы можно разделять между несколькими узлами. Узлы выбираются во время создания. Затем их можно масштабировать, но для такого активного процесса может потребоваться перемещение данных. Дополнительные сведения см. в разделе Управление вычислительными ресурсами в Azure Synapse Analytics.
Apache HBase
Apache HBase представляет собой хранилище данных типа "ключ — значение", доступное в Azure HDInsight. Это база данных NoSQL с открытым кодом, созданная на основе Hadoop по типу Google BigTable. HBase обеспечивает производительный быстрый доступ и строгую согласованность для больших объемов неструктурированных и полуструктурированных данных.
Поскольку HBase является бессхемной базой данных, вам не придется определять столбцы и типы данных для ее использования. Данные хранятся в строках таблицы и группируются по семействам столбцов.
Открытый код линейно масштабируется, чтобы обрабатывать петабайты данных на тысячах узлов. HBase полагается на избыточность данных, пакетную обработку и другие возможности, предоставляемые распределенными приложениями в среде Hadoop.
HBase является хорошим хранилищем для данных с датчиков и журналов для последующего анализа.
Адаптируемость HBase определяется количеством узлов в кластере HDInsight.
Базы данных SQL Azure
В Azure предлагаются три реляционных базы данных в формате PaaS:
- База данных SQL Azure представляет собой реализацию Microsoft SQL Server. Дополнительные сведения о производительности см. в статье Настройка производительности в Базе данных SQL Azure.
- База данных Azure для MySQL представляет собой реализацию Oracle MySQL.
- База данных Azure для PostgreSQL представляет собой реализацию PostgreSQL.
Добавьте больше ресурсов ЦП и памяти, чтобы увеличить масштаб этих продуктов. Вы также можете выбрать использование дисков категории "Премиум" с продуктами для повышения производительности ввода-вывода.
Azure Analysis Services
Azure Analysis Services — это подсистема аналитических данных, которая используется для поддержки принятия решений и бизнес-аналитики. Она предоставляет аналитические данные для бизнес-отчетов и клиентских приложений, таких как Power BI. Аналитические данные также используются с Excel, отчетами SQL Server Reporting Services и другими средствами визуализации данных.
Масштабируйте кубы анализа, изменяя уровни для каждого отдельного куба. Дополнительные сведения см. на странице цен на службы Azure Analysis Services.
Извлечение и загрузка
Поместив данные в Azure, вы сможете использовать несколько служб для их извлечения и загрузки в другие продукты. HDInsight поддерживает средства Sqoop и Flume.
Apache Sqoop
Apache Sqoop — это средство для эффективной передачи данных между структурированными, полуструктурированными и неструктурированными источниками данных.
Sqoop использует MapReduce для импорта и экспорта данных, чтобы обеспечить параллельное выполнение операций и отказоустойчивость.
Apache Flume
Apache Flume — это распределенная, надежная и доступная служба для эффективного сбора, статистической обработки и перемещения больших объемов данных журнала. Ее гибкая архитектура основана на передаче потоков данных. Flume — это надежная отказоустойчивая система с настраиваемыми механизмами надежности. Она имеет много механизмов резервирования и восстановления. Flume использует простую модель данных с возможностью расширения, позволяющую применять интерактивное приложение аналитики.
Apache Flume нельзя использовать с Azure HDInsight. Локальная установка Hadoop может использовать Flume для отправки данных в хранилище Azure Blob или Azure Data Lake Storage. Дополнительные сведения см. в разделе Использование Apache Flume с HDInsight.
Преобразование
После того как данные окажутся в выбранном расположении, необходимо их очистить, объединить или подготовить для конкретного сценария использования. Hive, Pig и Spark SQL — оптимальные варианты для такой работы. В HDInsight они все поддерживаются.