本文概述可管理的解決方案,讓大量的地理空間數據可供分析使用。
架構
圖表包含數個灰色方塊,每個方塊都有不同的標籤。 從左至右,標籤是內嵌、準備、載入、服務,以及可視化和探索。 其他方塊下方的最後一個方塊具有 [監視] 和 [安全] 標籤。 每個方塊都包含代表各種 Azure 服務的圖示。 編號的箭號會以圖表說明中所述的步驟連接方塊。
工作流程
IoT 資料會進入系統:
- Azure 事件中樞 擷取 IoT 資料的數據流。 數據包含可識別裝置位置的座標或其他資訊。
- 事件中樞會使用 Azure Databricks 進行初始串流處理。
- 事件中樞會將數據儲存在 Azure Data Lake 儲存體。
GIS 資料會進入系統:
Azure Data Factory 會擷取任何格式的點陣 GIS 數據和向量 GIS 數據。
- 點陣數據是由值的方格所組成。 每個像素值都代表特性,例如地理區域的溫度或高度。
- 向量數據代表特定的地理特徵。 頂點或離散幾何位置組成向量,並定義每個空間物件的圖形。
Data Factory 會將數據儲存在 Data Lake 儲存體。
Azure Databricks 中的 Spark 叢集會使用地理空間程式代碼連結庫來轉換和正規化數據。
Data Factory 會將備妥的向量和點陣數據載入 適用於 PostgreSQL 的 Azure 資料庫。 此解決方案會使用此資料庫的PostGIS擴充功能。
Data Factory 會將備妥的向量和點陣數據 載入 Azure 數據總管。
適用於 PostgreSQL 的 Azure 資料庫 儲存 GIS 數據。 API 可讓此資料以標準化格式提供:
- GeoJSON 是以 JavaScript 物件表示法為基礎(JSON)。 GeoJSON 代表簡單的地理特徵及其非空間屬性。
- 已知文字 (WKT) 是代表向量幾何物件的文字標記語言。
- 向量磚 是地理數據的封包。 其輕量型格式可改善對應效能。
Redis 快取藉由提供數據的快速存取來改善效能。
Azure App 服務 的 Web Apps 功能可與 Azure 地圖服務 搭配使用,以建立數據的視覺效果。
使用者使用 Azure 數據總管分析數據。 此工具的 GIS 功能會建立深入的視覺效果。 範例包括從地理空間數據建立散佈圖。
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 資源上的數據。 這項診斷資訊有助於維護可用性和效能。 兩個數據平臺組成監視:
- 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 的考慮適用於此解決方案。
可用性
-
- 使用已開啟可用性區域的命名空間,將風險分散到三個實體分隔的設施。
- 請考慮使用事件中樞的異地災害復原功能。 這項功能會將命名空間的整個組態從主要命名空間複寫到次要命名空間。
請參閱 適用於 PostgreSQL 的 Azure 資料庫 供應專案的商務持續性功能。 這些功能涵蓋一系列復原目標。
App Service 診斷會將 您警示到應用程式中的問題,例如停機時間。 使用此服務來識別、疑難解答及解決中斷等問題。
請考慮使用 App Service 來備份應用程式檔。 但請小心備份的檔案,其中包含純文本中的應用程式設定。 這些設定可以包含秘密,例如 連接字串。
延展性
此解決方案的實作符合下列條件:
- 每天處理最多 1000 萬個數據集。 數據集包含批次或串流事件。
- 將 1 億個數據集儲存在 適用於 PostgreSQL 的 Azure 資料庫 資料庫中。
- 同時查詢1百萬個或更少的數據集。 最多30位使用者執行查詢。
環境會使用此組態:
- 具有四個F8s_V2背景工作節點的 Azure Databricks 叢集。
- 記憶體優化的實例 適用於 PostgreSQL 的 Azure 資料庫。
- 具有兩個標準 S2 實例的 App Service 方案。
請考慮這些因素,以判斷要對您的實作進行哪些調整:
- 您的數據擷取速率。
- 您的數據量。
- 您的查詢量。
- 您需要支援的平行查詢數目。
您可以獨立調整 Azure 元件:
Data Factory 會處理大量數據。 其 無伺服器架構支援不同層級的平行處理原則。
適用於 PostgreSQL 的 Azure 資料庫 提供高效能水平調整。
Azure 數據總管可以在幾分鐘內彈性地調整為數 TB 的數據。
監視的自動調整功能也提供調整功能。 您可以設定這項功能來新增資源來處理負載增加。 它也可以移除資源以節省成本。
安全性
安全性可提供保證,以避免刻意攻擊和濫用您寶貴的資料和系統。 如需詳細資訊,請參閱安全性要素的概觀。
保護向量磚數據。 向量磚會在一個檔案中內嵌多個實體的座標和屬性。 如果您產生向量磚,請在訪問控制系統中針對每個許可權層級使用一組專用的磚。 使用此方法時,只有每個許可權層級內的使用者才能存取該層級的數據檔。
若要改善安全性,請在下列情況下使用 金鑰保存庫:
如需 App Service 如何協助保護 Web 應用程式的資訊,請參閱 Azure App 服務 中的安全性。 也請考慮下列幾點:
- 瞭解如何取得您的應用程式在使用自定義功能變數名稱時所需的憑證。
- 瞭解如何將 應用程式的 HTTP 要求重新導向至 HTTPS 連接埠。
- 瞭解 Web 應用程式中驗證的最佳做法。
成本最佳化
成本最佳化是關於考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱成本最佳化要素的概觀。
- 若要預估實作此解決方案的成本,請參閱範例 成本配置檔。 此配置檔適用於延展性考慮中所述之環境的單一實作。 不包含 Azure 數據總管的成本。
- 若要調整參數,並探索在您的環境中執行此解決方案的成本,請使用 Azure 定價計算機。
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主體作者:
- 理查·布曼 |解決方案架構師
下一步
產品檔案:
若要開始實作此解決方案,請參閱此資訊:
- 連線 WFS Azure 地圖服務
- 使用 Spark 處理 OpenStreetMap 數據 。
- 探索使用 Azure 地圖服務 顯示數據的方式。
處理地理空間數據的相關信息
- 查詢 PostGIS for vector tiles 的函式
- 用於載入 PostGIS 點陣的函式
- Azure 數據總管地理空間函式
- Azure 地圖服務 中向量磚的數據源
- 處理 Databricks 中地理空間數據的方法
相關資源
相關架構
- 使用 Azure 數據總管進行巨量數據分析
- Azure 上的健康情況數據聯盟
- [新式數據倉儲的 DataOps][新式數據倉儲的 DataOps]
- Azure 數據總管互動式分析
- 地理空間參考架構 - Azure Orbital
- 電信的地理空間分析
- 使用 Azure Synapse Analytics 進行太空數據分析
相關指南
- 比較來自 Microsoft 的機器學習產品和技術 - Azure Databricks
- 使用 Azure 機器學習 擴大機器學習生命週期的機器學習作業 (MLOps) 架構
- [適用於最佳工具選取的 Azure 機器學習 決策指南][適用於最佳工具選取的 Azure 機器學習 決策指南]
- 監視 Azure Databricks