Обработка и аналитика геопространственных данных

Фабрика данных Azure
Azure Data Lake Storage
База данных Azure для PostgreSQL
Azure Databricks
Центры событий Azure

В этой статье описывается управляемое решение, позволяющее сделать большие объемы геопространственных данных доступными для аналитики.

Архитектура

Схема архитектуры, показывающая, как геопространственные данные передаются через систему Azure. Различные компоненты получают, обрабатывают, хранят, анализируют и публикуют данные.

Скачайте файл Visio этой архитектуры.

Схема содержит несколько серых прямоугольников, каждый из которых имеет свою метку. Слева направо расположены метки "Прием", "Подготовка", "Загрузка", "Обслуживание" и "Визуализация и изучение". В последнем поле под другими находится метка "Мониторинг и безопасность". Каждое поле содержит значки, которые представляют различные службы Azure. Пронумерованные стрелки соединяют прямоугольники так, как в объяснении схемы описаны шаги.

Рабочий процесс

  1. Данные IoT поступают в систему:

    • Центры событий Azure прием потоков данных Интернета вещей. Данные содержат координаты или другую информацию, идентифицирующую расположение устройств.
    • Центры событий используют Azure Databricks для первоначальной обработки потоков.
    • Центры событий хранят данные в Azure Data Lake служба хранилища.
  2. Данные GIS поступают в систему:

    • Фабрика данных Azure приема растровых данных GIS и векторных данных GIS любого формата.

      • Растровые данные состоят из сеток значений. Каждое значение пикселя представляет характеристику, такую как температура или высота географической области.
      • Векторные данные представляют определенные географические функции. Вершины или дискретные геометрические расположения составляют векторы и определяют форму каждого пространственного объекта.
    • Фабрика данных хранит данные в Data Lake Storage.

  3. Кластеры Spark в Azure Databricks используют библиотеки геопространственного кода для преобразования и нормализации данных.

  4. Фабрика данных загружает подготовленный вектор и растровые данные в База данных Azure для PostgreSQL. Решение использует расширение PostGIS с этой базой данных.

  5. Фабрика данных загружает подготовленные векторы и растровые данные в Обозреватель данных Azure.

  6. База данных Azure для PostgreSQL хранит данные GIS. API делают эти данные доступными в стандартизированных форматах:

    • GeoJSON — формат на основе нотации объектов JavaScript (JSON). GeoJSON представляет простые географические объекты и их непространственные свойства.
    • Well-known text (WKT) — язык разметки, который представляет объекты векторной геометрии.
    • Векторные плитки — пакеты географических данных. Этот упрощенный формат повышает производительность сопоставления.

    Кэш Redis повышает производительность, предоставляя быстрый доступ к данным.

  7. Функция веб-приложения службы приложение Azure работает с Azure Карты для создания визуальных элементов данных.

  8. Пользователи анализируют данные с помощью Azure Data Explorer. Функции GIS этого инструмента создают информативные визуализации. Примеры включают создание диаграмм рассеяния на основе геопространственных данных.

  9. Power BI предоставляет настраиваемые отчеты и бизнес-аналитику (BI). Визуальный элемент Azure Maps для Power BI выделяет роль данных о расположении в бизнес-результатах.

На протяжении всего процесса:

  • Azure Monitor собирает сведения о событиях и производительности.
  • Log Analytics выполняет запросы к журналам Monitor и анализирует результаты.
  • Azure Key Vault защищает пароли, строка подключения и секреты.

Компоненты

  • Центры событий Azure — это полностью управляемая платформа потоковой передачи для больших данных. Это решение PaaS (платформа как услуга) предлагает модель секционированных потребителей. Несколько приложений могут использовать эту модель для одновременной обработки потока данных.

  • Фабрика данных Azure — это служба интеграции, которая работает с данными из разных хранилищ данных. Вы можете использовать эту полностью управляемую бессерверную платформу для создания, планирования и координации рабочих процессов преобразования данных.

  • Azure Databricks — это платформа аналитики данных. Полностью управляемые кластеры Spark обрабатывают большие потоки данных из нескольких источников. Azure Databricks может преобразовывать геопространственные данные в большом масштабе для использования в аналитике и визуализации данных.

  • Data Lake Storage — это масштабируемое и защищенное озеро данных для рабочих нагрузок аналитических данных с высокой производительностью. Эта служба может управлять несколькими петабайтами информации, поддерживая при этом сотни гигабит пропускной способности. Данные обычно берутся из нескольких разнородных источников и могут быть структурированы, полуструктурированными или неструктурированными.

  • База данных Azure для PostgreSQL — это полностью управляемая служба реляционных баз данных на основе СУБД PostgreSQL с открытым кодом (Community Edition).

  • PostGIS — это расширение для базы данных PostgreSQL, которое интегрируется с серверами GIS. PostGIS может выполнять запросы расположения SQL, в которых задействованы географические объекты.

  • Redis — это хранилище данных в памяти с открытым кодом. Кэши Redis хранят часто запрашиваемые данные в памяти сервера. Затем кэши могут быстро обрабатывать большие объемы запросов приложений, использующих эти данные.

  • Power BI — это коллекция программных служб и приложений. Power BI можно использовать для подключения несвязанных источников данных и создания визуальных элементов.

  • Визуальный элемент Azure Maps для Power BI позволяет улучшить карты с помощью пространственных данных. С помощью этого визуального элемента можно продемонстрировать, как данные о расположении влияют на бизнес-метрики.

  • служба приложение Azure и ее веб-приложения предоставляют платформу для создания, развертывания и масштабирования веб-приложений. Платформа Службы приложений предлагает встроенное обслуживание инфраструктуры, установку исправлений безопасности и масштабирование.

  • API данных GIS в Azure Maps хранят и извлекают данные карты в таких форматах, как GeoJSON и векторные плитки.

  • Azure Data Explorer — это быстрая и полностью управляемая служба аналитики управляемых данных, которая может работать с большими объемами данных. Первоначально эта служба была ориентирована на анализ временных рядов и журналов. Теперь она также обрабатывает разнообразные потоки данных из приложений, веб-сайтов, устройств Интернета вещей и других источников. Геопространственные функции в Azure Data Explorer предоставляют возможности для отображения данных карты.

  • Azure Monitor собирает данные о средах и ресурсах Azure. Эти диагностические сведения полезны для обеспечения доступности и поддержания производительности. Monitor состоит из двух платформ данных:

    • Журналы Azure Monitor записывают и хранят журналы и данные о производительности.
    • Метрики Azure Monitor собирают числовые значения через регулярные промежутки времени.
  • Log Analytics — это средство портала Azure, выполняющее запросы к данным журнала Monitor. Log Analytics также предоставляет функции для построения диаграмм и статистического анализа результатов запросов.

  • Key Vault хранит секреты, такие как токены, пароли и ключи API, а также управляет доступом к ним. Key Vault также создает и контролирует ключи шифрования и управляет сертификатами безопасности.

Альтернативные варианты

  • Вместо разработки собственных API рекомендуется использовать Martin. Этот сервер плиток с открытым кодом делает векторные плитки доступными для веб-приложений. Написанное на Rust, это решение подключается к таблицам PostgreSQL. Его можно развернуть как контейнер.

  • Если ваша цель — предоставить стандартизированный интерфейс для данных GIS, рассмотрите возможность использования GeoServer. Эта открытая платформа реализует стандартные для отрасли протоколы Open Geospatial Consortium (OGC), такие как Web Feature Service (WFS). Она также интегрируется с популярными источниками пространственных данных. Вы можете развернуть GeoServer в качестве контейнера на виртуальной машине. Когда настраиваемые веб-приложения и исследовательские запросы являются второстепенными, GeoServer предоставляет простой способ публикации геопространственных данных.

  • Доступны различные библиотеки Spark для работы с геопространственными данными в Azure Databricks. Это решение использует следующие библиотеки:

    Но существуют и другие решения для обработки и масштабирования геопространственных рабочих нагрузок с помощью Azure Databricks.

  • Векторные плитки обеспечивают эффективный способ просмотра данных GIS на картах. Это решение использует PostGIS для динамического запрашивания векторных плиток. Этот подход хорошо работает для простых запросов и наборов результатов, содержащих менее 1 миллиона записей. Но в следующих случаях может быть лучше использовать другой подход:

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

    В таких ситуациях рекомендуется использовать Tippecanoe для создания векторных плиток. Tippecanoe можно запустить как часть потока обработки данных в виде контейнера или с помощью Функций Azure. Можно сделать результирующие плитки доступными через API.

  • Как и Центры событий, Центр Интернета вещей Azure может получать большие объемы данных. Но Центр Интернета вещей также предлагает возможности двунаправленного обмена данными с устройствами. Если вы получаете данные непосредственно с устройств, а также отправляете команды и политики обратно на устройства, рассмотрите возможность использования Центра Интернета вещей вместо Центров событий.

  • Чтобы оптимизировать решение, не используйте следующие компоненты:

    • Azure Data Explorer
    • Power BI

Подробности сценария

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

В этой статье описывается управляемое решение, позволяющее сделать большие объемы геопространственных данных доступными для аналитики. Подход основан на эталонной архитектуре углубленной аналитики и использует следующие службы Azure:

  • Azure Databricks с библиотеками GIS Spark обрабатывает данные.
  • База данных Azure для PostgreSQL запрашивает данные, которые пользователи запрашивают через API-интерфейсы.
  • Azure Data Explorer выполняет быстрые исследовательские запросы.
  • Azure Maps создает визуальные элементы геопространственных данных в веб-приложениях.
  • Визуальный компонент Power BI в Azure Карты Power BI предоставляет настраиваемые отчеты

Потенциальные варианты использования

Это решение можно применять в разных областях:

  • обработка, хранение и предоставление доступа к большим объемам растровых данных, таких как карты или климатические данные;
  • определение географического положения сущностей системы планирования ресурсов предприятия (ERP);
  • объединение данных о расположении объекта со справочными данными GIS;
  • хранение данных телеметрии Интернет вещей (IoT) с учетом перемещения устройств;
  • выполнение аналитических геопространственных запросов;
  • внедрение отобранных и контекстуализированных геопространственных данных в веб-приложения.

Рекомендации

Следующие рекомендации, основанные на платформе Microsoft Azure Well-Architected Framework, применяются к этому решению.

Availability

Масштабируемость

Реализация этого решения соответствует следующим условиям:

  • Обработка до 10 миллионов наборов данных в день. Наборы данных включают в себя пакетные или потоковые события.
  • Хранение 100 миллионов наборов данных в Базе данных Azure для PostgreSQL.
  • Одновременное запрашивание до 1 миллиона наборов данных. Не более 30 пользователей выполняют запросы.

Среда использует эту конфигурацию:

  • Кластер Azure Databricks с четырьмя рабочими узлами F8s_V2.
  • Оптимизированный для памяти экземпляр Базы данных Azure для PostgreSQL.
  • План службы приложений с двумя экземплярами S2 уровня "Стандартный".

Рассмотрите эти факторы, чтобы определить, какие корректировки необходимо выполнить для реализации:

  • Скорость приема данных.
  • Объем данных.
  • Объем запросов.
  • Количество параллельных запросов, которые необходимо поддерживать.

Вы можете масштабировать компоненты Azure независимо:

Функция автомасштабирования Monitor также предоставляет функцию масштабирования. Вы можете настроить эту функцию, чтобы добавлять ресурсы для обработки увеличения нагрузки. Она также может удалять ресурсы для экономии денег.

Безопасность

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

Оптимизация затрат

Оптимизация затрат заключается в поиске способов уменьшения ненужных расходов и повышения эффективности работы. Дополнительные сведения см. в разделе Обзор критерия "Оптимизация затрат".

  • Чтобы оценить стоимость реализации этого решения, см. пример профиля затрат. Этот профиль предназначен для одной реализации среды, описанной в разделе Вопросы масштабируемости. Сюда не входят затраты на Azure Data Explorer.
  • Чтобы настроить параметры и изучить стоимость запуска этого решения в своей среде, воспользуйтесь калькулятором цен Azure.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участник.

Автор субъекта:

Следующие шаги

Документация по продукту:

Чтобы приступить к реализации этого решения, см. следующие материалы:

Сведения об обработке геопространственных данных