Azure Cosmos DB for PostgreSQL 中建立高輸送量交易應用程式的模型
適用於: Azure Cosmos DB for PostgreSQL (由 PostgreSQL 的超大規模 (Citus) 資料庫延伸模組提供)
以分區金鑰作為一般篩選
若要挑選高輸送量交易式應用程式的分區金鑰,請遵循下列指導方針:
- 選擇用於點查閱的資料行,且大部分建立、讀取、更新和刪除作業都有該資料行。
- 選擇資料中自然維度的資料行,或應用程式的重要部分。 例如:
- 在 IOT 工作負載中,
device_id
是良好的散發資料行。
- 在 IOT 工作負載中,
選擇良好的分區金鑰有助於最佳化網路躍點,同時利用記憶體和計算來達成豪秒延遲。
高輸送量應用程式的最佳資料模型
以下是 IoT 應用程式樣本資料模型的範例,其可以自裝置中擷取遙測 (時間序列資料)。 有兩種資料表可供擷取遙測:devices
和 events
。 可能有其他資料表,但未涵蓋在此範例中。
建置高輸送量應用程式時,請記住一些最佳化。
- 在應用程式重要部分的一般資料行和應用程式最常查詢的資料行上,散發大型資料表。 在上述 IoT 應用程式的範例中,
device_id
是該資料行且共置事件和裝置資料表。 - 其餘的小型資料表可以作為參考資料表。
- 由於 IOT 應用程式是時間維度,因此請根據時間來分割散發的資料表。 您可以使用原生 Azure Cosmos DB for PostgreSQL 時間序列功能來建立和維護分割區。
- 資料分割協助您有效率以時間篩選條件來篩選資料以供查詢。
- 使用 DROP vs DELETE 命令,也可以快速篩選過期的舊資料。
- 範例中的事件資料表是依月份來進行資料分割。
- 使用 JSONB 資料類型來儲存半結構化的資料。 裝置遙測資料通常不是結構化的,每個裝置都有所屬的計量。
- 在範例中,事件資料表有
detail
資料行,也就是 JSONB。
- 在範例中,事件資料表有
- 如果 IoT 應用程式需要地理空間功能,您可以使用 Azure Cosmos DB for PostgreSQL 原生支援的 PostGIS 延伸模組。
下一步
現在,我們已完成探索可調整應用程式的資料模型化。 下一步是使用您選擇的程式設計語言來連結和查詢資料庫。