地理空間數據處理和分析

Azure Data Factory
Azure Data Lake 儲存體
適用於 PostgreSQL 的 Azure 資料庫
Azure Databricks
Azure 事件中樞

本文概述可管理的解決方案,讓大量的地理空間數據可供分析使用。

架構

顯示地理空間數據如何流經 Azure 系統的架構圖表。各種元件會接收、處理、儲存、分析及發佈數據。

下載此架構的 Visio 檔案

圖表包含數個灰色方塊,每個方塊都有不同的標籤。 從左至右,標籤是內嵌、準備、載入、服務,以及可視化和探索。 其他方塊下方的最後一個方塊具有 [監視] 和 [安全] 標籤。 每個方塊都包含代表各種 Azure 服務的圖示。 編號的箭號會以圖表說明中所述的步驟連接方塊。

工作流程

  1. IoT 資料會進入系統:

    • Azure 事件中樞 擷取 IoT 資料的數據流。 數據包含可識別裝置位置的座標或其他資訊。
    • 事件中樞會使用 Azure Databricks 進行初始串流處理。
    • 事件中樞會將數據儲存在 Azure Data Lake 儲存體
  2. GIS 資料會進入系統:

    • Azure Data Factory 會擷取任何格式的點陣 GIS 數據和向量 GIS 數據。

      • 點陣數據是由值的方格所組成。 每個像素值都代表特性,例如地理區域的溫度或高度。
      • 向量數據代表特定的地理特徵。 頂點或離散幾何位置組成向量,並定義每個空間物件的圖形。
    • Data Factory 會將數據儲存在 Data Lake 儲存體。

  3. Azure Databricks 中的 Spark 叢集會使用地理空間程式代碼連結庫來轉換和正規化數據。

  4. Data Factory 會將備妥的向量和點陣數據載入 適用於 PostgreSQL 的 Azure 資料庫。 此解決方案會使用此資料庫的PostGIS擴充功能。

  5. Data Factory 會將備妥的向量和點陣數據 載入 Azure 數據總管。

  6. 適用於 PostgreSQL 的 Azure 資料庫 儲存 GIS 數據。 API 可讓此資料以標準化格式提供:

    • GeoJSON 是以 JavaScript 物件表示法為基礎(JSON)。 GeoJSON 代表簡單的地理特徵及其非空間屬性。
    • 已知文字 (WKT) 是代表向量幾何物件的文字標記語言。
    • 向量磚 是地理數據的封包。 其輕量型格式可改善對應效能。

    Redis 快取藉由提供數據的快速存取來改善效能。

  7. Azure App 服務 的 Web Apps 功能可與 Azure 地圖服務 搭配使用,以建立數據的視覺效果。

  8. 使用者使用 Azure 數據總管分析數據。 此工具的 GIS 功能會建立深入的視覺效果。 範例包括從地理空間數據建立散佈圖。

  9. Power BI 提供自訂報表和商業智慧 (BI)。 Power BI 的 Azure 地圖服務 視覺效果會醒目提示位置數據在商務結果中的角色。

在整個過程中:

  • Azure 監視器 會收集事件和效能的相關信息。
  • Log Analytics 會在監視記錄上執行查詢,並分析結果。
  • Azure 金鑰保存庫 保護密碼、連接字串 和秘密。

元件

  • Azure 事件中樞 是完全受控的巨量數據串流平臺。 此平臺即服務 (PaaS) 提供分割取用者模型。 多個應用程式可以使用此模型同時處理數據流。

  • Azure Data Factory 是一項整合服務,可與不同數據存放區中的數據搭配運作。 您可以使用這個完全受控、無伺服器的平臺來建立、排程及協調數據轉換工作流程。

  • Azure Databricks 是數據分析平臺。 其完全受控的 Spark 叢集會處理來自多個來源的大型數據流。 Azure Databricks 可以大規模轉換地理空間數據,以用於分析和數據視覺效果。

  • Data Lake 儲存體 是一個可調整且安全的 Data Lake,適用於高效能分析工作負載。 此服務可以管理數 PB 的資訊,同時維持數百 GB 的輸送量。 數據通常來自多個異質來源,而且可以結構化、半結構化或非結構化。

  • 適用於 PostgreSQL 的 Azure 資料庫 是以開放原始碼 PostgreSQL 資料庫引擎社群版本為基礎的完全受控關係資料庫服務。

  • PostGIS 是 PostgreSQL 資料庫的延伸模組,可與 GIS 伺服器整合。 PostGIS 可以執行涉及地理物件的 SQL 位置查詢。

  • Redis 是開放原始碼的記憶體內部數據存放區。 Redis 快取會將經常存取的數據保留在伺服器記憶體中。 快取接著可以快速處理大量使用數據的應用程式要求。

  • Power BI 是軟體服務和應用程式的集合。 您可以使用Power BI來連接不相關的數據源,並建立其視覺效果。

  • Power BI 的 Azure 地圖服務 視覺效果提供增強空間數據地圖的方式。 您可以使用此視覺效果來顯示位置資料如何影響商務計量。

  • Azure App 服務 及其 Web Apps 功能提供建置、部署及調整 Web 應用程式的架構。 App Service 平臺提供內建基礎結構維護、安全性修補和調整。

  • Azure 地圖服務 中的GIS 數據 API 會以 GeoJSON 和向量圖格等格式儲存和擷取地圖數據。

  • Azure 數據總管是一項快速且完全受控的數據分析服務,可搭配大量數據使用。 此服務原本著重於時間序列和記錄分析。 它現在也會處理來自應用程式、網站、IoT 裝置和其他來源的各種數據流。 Azure 數據總管中的地理空間功能 提供轉譯地圖數據的選項。

  • Azure 監視器 會收集環境和 Azure 資源上的數據。 這項診斷資訊有助於維護可用性和效能。 兩個數據平臺組成監視:

  • Log Analytics 是 Azure 入口網站 工具,可在監視記錄數據上執行查詢。 Log Analytics 也提供圖表和統計分析查詢結果的功能。

  • 金鑰保存庫 儲存和控制對令牌、密碼和 API 金鑰等秘密的存取。 金鑰保存庫 也會建立和控制加密密鑰,並管理安全性憑證。

替代項目

  • 請考慮使用 Martin,而不是開發您自己的 API。 此開放原始碼磚伺服器可讓 Web 應用程式使用向量磚。 Martin 以 Rust 撰寫,會連線到 PostgreSQL 數據表。 您可以將它部署為容器。

  • 如果您的目標是為 GIS 數據提供標準化介面,請考慮使用 GeoServer。 此開放架構會實作業界標準的 開放式地理空間聯盟 (OGC) 通訊協定,例如 Web 功能服務 (WFS) 。 它也會與常見的空間數據源整合。 您可以將 GeoServer 部署為虛擬機上的容器。 當自定義的 Web 應用程式和探勘查詢為次要時,GeoServer 提供直接的方式發佈地理空間數據。

  • 各種 Spark 連結庫可用於在 Azure Databricks 上使用地理空間數據。 此解決方案會使用這些連結庫:

    其他解決方案也可用於使用 Azure Databricks 處理和調整地理空間工作負載。

  • 向量圖格 提供有效率的方式來顯示地圖上的 GIS 數據。 此解決方案會使用PostGIS動態查詢向量磚。 此方法適用於簡單查詢和結果集,其中包含100萬筆以下的記錄。 但在下列情況下,不同的方法可能更好:

    • 查詢的計算成本很高。
    • 您的數據不會經常變更。
    • 您正在顯示大型資料集。

    在這些情況下,請考慮使用 Tippecanoe 來產生向量磚。 您可以將 Tippecanoe 作為數據處理流程的一部分,以容器或 Azure Functions 來執行。 您可以透過 API 提供產生的磚。

  • 如同事件中樞,Azure IoT 中樞 可以擷取大量數據。 但 IoT 中樞 也提供與裝置的雙向通訊功能。 如果您直接從裝置接收數據,但也會將命令和原則傳送回裝置,請考慮 IoT 中樞 而不是事件中樞。

  • 若要簡化解決方案,請省略這些元件:

    • Azure 資料總管
    • Power BI

案例詳細資料

使用地理空間數據或包含地理元件的資訊有許多可能性。 例如,地理資訊系統(GIS)軟體和標準已廣泛提供。 這些技術可以儲存、處理及提供地理空間數據的存取權。 但通常很難設定和維護使用地理空間數據的系統。 您也需要專家知識,才能將這些系統與其他系統整合。

本文概述可管理的解決方案,讓大量的地理空間數據可供分析使用。 此方法是以進階分析參考架構為基礎,並使用下列 Azure 服務:

  • Azure Databricks 與 GIS Spark 連結庫會處理數據。
  • 適用於 PostgreSQL 的 Azure 資料庫 會查詢使用者透過 API 要求的數據。
  • Azure 數據總管會執行快速探勘查詢。
  • Azure 地圖服務 會在 Web 應用程式中建立地理空間數據的視覺效果。
  • Power BI Azure 地圖服務 Power BI 視覺效果功能提供自定義報表

潛在使用案例

此解決方案適用於許多領域:

  • 處理、儲存和提供大量點陣數據的存取權,例如地圖或氣候數據。
  • 識別企業資源規劃 (ERP) 系統實體的地理位置。
  • 結合實體位置數據與 GIS 參考數據。
  • 從行動裝置儲存物聯網 (IoT) 遙測。
  • 執行分析地理空間查詢。
  • 在 Web 應用程式中內嵌策劃和內容化地理空間數據。

考量

下列基於 Microsoft Azure Well-Architected Framework 的考慮適用於此解決方案。

可用性

延展性

此解決方案的實作符合下列條件:

  • 每天處理最多 1000 萬個數據集。 數據集包含批次或串流事件。
  • 將 1 億個數據集儲存在 適用於 PostgreSQL 的 Azure 資料庫 資料庫中。
  • 同時查詢1百萬個或更少的數據集。 最多30位使用者執行查詢。

環境會使用此組態:

  • 具有四個F8s_V2背景工作節點的 Azure Databricks 叢集。
  • 記憶體優化的實例 適用於 PostgreSQL 的 Azure 資料庫。
  • 具有兩個標準 S2 實例的 App Service 方案。

請考慮這些因素,以判斷要對您的實作進行哪些調整:

  • 您的數據擷取速率。
  • 您的數據量。
  • 您的查詢量。
  • 您需要支援的平行查詢數目。

您可以獨立調整 Azure 元件:

監視的自動調整功能也提供調整功能。 您可以設定這項功能來新增資源來處理負載增加。 它也可以移除資源以節省成本。

安全性

安全性可提供保證,以避免刻意攻擊和濫用您寶貴的資料和系統。 如需詳細資訊,請參閱安全性要素的概觀

成本最佳化

成本最佳化是關於考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱成本最佳化要素的概觀

  • 若要預估實作此解決方案的成本,請參閱範例 成本配置檔。 此配置檔適用於延展性考慮中所述之環境的單一實作。 不包含 Azure 數據總管的成本。
  • 若要調整參數,並探索在您的環境中執行此解決方案的成本,請使用 Azure 定價計算機

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主體作者:

下一步

產品檔案:

若要開始實作此解決方案,請參閱此資訊:

處理地理空間數據的相關信息