Share via


Azure Cosmos DB for PostgreSQL 中建立高輸送量交易應用程式的模型

適用於: Azure Cosmos DB for PostgreSQL (由 PostgreSQL 的超大規模 (Citus) 資料庫延伸模組提供)

以分區金鑰作為一般篩選

若要挑選高輸送量交易式應用程式的分區金鑰,請遵循下列指導方針:

  • 選擇用於點查閱的資料行,且大部分建立、讀取、更新和刪除作業都有該資料行。
  • 選擇資料中自然維度的資料行,或應用程式的重要部分。 例如:
    • 在 IOT 工作負載中,device_id 是良好的散發資料行。

選擇良好的分區金鑰有助於最佳化網路躍點,同時利用記憶體和計算來達成豪秒延遲。

高輸送量應用程式的最佳資料模型

以下是 IoT 應用程式樣本資料模型的範例,其可以自裝置中擷取遙測 (時間序列資料)。 有兩種資料表可供擷取遙測:devicesevents。 可能有其他資料表,但未涵蓋在此範例中。

Diagram of events and devices tables, and partitions of events.

建置高輸送量應用程式時,請記住一些最佳化。

  • 在應用程式重要部分的一般資料行和應用程式最常查詢的資料行上,散發大型資料表。 在上述 IoT 應用程式的範例中,device_id 是該資料行且共置事件和裝置資料表。
  • 其餘的小型資料表可以作為參考資料表。
  • 由於 IOT 應用程式是時間維度,因此請根據時間來分割散發的資料表。 您可以使用原生 Azure Cosmos DB for PostgreSQL 時間序列功能來建立和維護分割區。
    • 資料分割協助您有效率以時間篩選條件來篩選資料以供查詢。
    • 使用 DROP vs DELETE 命令,也可以快速篩選過期的舊資料。
    • 範例中的事件資料表是依月份來進行資料分割。
  • 使用 JSONB 資料類型來儲存半結構化的資料。 裝置遙測資料通常不是結構化的,每個裝置都有所屬的計量。
    • 在範例中,事件資料表有 detail 資料行,也就是 JSONB。
  • 如果 IoT 應用程式需要地理空間功能,您可以使用 Azure Cosmos DB for PostgreSQL 原生支援的 PostGIS 延伸模組。

下一步

現在,我們已完成探索可調整應用程式的資料模型化。 下一步是使用您選擇的程式設計語言來連結和查詢資料庫。