將 InfluxDB 用作持續性提供者
概觀
如果您的系統集中處理時間序列資料,而且您的實行重度依賴於值串流或串流以實現資料持續性/擷取,我們建議在 ThingWorx 中使用 InfluxDB 作為
持續性提供者。InfluxDB 是專門針對時間序列資料所撰寫的一個高效能資料存放區。其允許對該相同資料執行高輸送量的內嵌、壓縮與即時查詢。對於牽涉大量加上時間戳記之資料的使用案例而言,可將 InfluxDB 作為資料存放區使用,這些資料包括 DevOps 監視、記錄資料、應用程式指標、IoT 感應器資料以及即時分析。此外,它還提供包括「資料保留原則」(RP) 等在內的其他功能。InfluxDB Enterprise 針對時間序列資料需求提供了具有高可用性且可高度調整的叢集解決方案。
InfluxDB 資料持續性儲存提供者可作為用於內容提供者之 PostgreSQL、MSSQL 或 Azure SQL 預設安裝的一部份使用:
• InfluxPersistenceProviderPackage
• Influx2PersistenceProviderPackage
ThingWorx 支援 OSS、Enterprise 和 Cloud 版本。
• 透過 InfluxPersistenceProviderPackage 支援 InfluxDB OSS 1.x 和 InfluxDB Enterprise 1.x。僅 INfluxDB 1.x 支援 InfluxDB Enterprise
• 透過 Influx2PersistenceProviderPackage 支援 InfluxDB OSS 2.x。
• 僅透過 Influx2PersistenceProviderPackage 支援 InfluxDB Cloud
有關特定的受支援版本,請參閱
Release Advisor。
|
InfluxDB 資料提供者目前僅支援值串流與串流。目前不提供對於資料表、wiki 及部落格的支援。
|
|
Influx2PersistenceProviderPackage 與 InfluxPersistenceProviderPackage 支援「資料匯出」。
|
|
想要升級至 ThingWorx 9.3.9 及更高版本、ThingWorx 9.4.0 及更高版本,以及使用 InfluxDB OSS 2.0 以利用 Influx2PersistenceProviderPackage 的客戶,首先需要升級至 ThingWorx 9.3.8 以便移至 InfluxDB OSS v2.6,因為必須先進行匯出,才能升級至 InfluxDB v2.6。對於 InfluxDB Cloud,無需先匯出再進行升級,因此,在升級至 ThingWorx 9.3.9 及最高版本以及 ThingWorx 9.4.0 及更高版本前,無需先移至 ThingWorx 9.3.8。
|
InfluxDB Enterprise 與 ThingWorx 初期規劃
| 上圖包含 InfluxDB Enterprise。對於 InfluxDB 開放原始碼,架構圖表將會相同,不過它只使用一個節點。對於 InfluxDB Cloud,資料庫於 ThingWorx 環境外部託管,並由 InfluxData 公司負責管理。 |
在本文件集中,當提及 InfluxDB Enterprise 的組態時,會使用下列術語:
• 負載平衡器 - InfluxDB Enterprise 不會像負載平衡器一樣運作。管理員需要對其進行配置。
• 叢集 - InfluxDB Enterprise 叢集由兩種類型的節點組成:中繼節點與資料節點。
• 資料節點 - 所有原始時間序列資料都位於此處。如需獲得高可用性,您需要複寫因數至少為二。
• 中繼節點 - 這些節點都有簡單的工作,可保持狀態的一致性。它們只包含關於狀態的基本資訊,例如保留原則、使用者與資料庫。在高可用性環境下,至少需要三個中繼節點。
選擇正確的 Influx 資料庫選項
以下是目前可供 PTC 內部客戶使用的兩個 InfluxDB 選項的高層級概述。當選擇 Influx 產品時,應仔細考慮資料庫軟體選項與基礎支援選項。如需有關選擇正確資料庫選項的任何問題,請聯絡 Influx 支援:
https://www.influxdata.com/contact-sales。PTC 客戶應將自己識別為 PTC ThingWorx 使用者。
• InfluxDB 開放原始碼 (單一節點)
◦ 僅限單一節點,不可擴充。
◦ 自由
◦ 由於 Influx 技術支援存在限制 (不能針對緊急狀況提供即時 Influx 支援),因此不建議將其用於生產實例。
◦ PTC 客戶負責資料庫維護與監測。
◦ PTC 將提供最佳 Influx 建議,但某些情況可能需要上報 Influx 技術資源。
• InfluxDB Enterprise
如果您要在資料存放區中尋找相對於目前可用於其他資料庫的資料而言資料量更大且速度更快的資料,InfluxDB Enterprise 具有下列優點:
◦ 擷取資料的速度更快。
◦ 您可以使用多個資料存放庫存放執行時間資料。例如,您可將關聯式資料存放在 PostgreSQL 中,同時使用 InfluxDB 來存放大量串流與值串流資料。您在定義串流或值串流時,ThingWorx 會使用預設執行時間資料存放區提供者,不過您可將其配置為使用任何定義的持續性提供者。您仍可從其他資料提供者匯出資料並將資料匯入至 InfluxDB。ThingWorx 會處理資料提取。
◦ 適合雲端的架構 (水平調整,僅適用於 InfluxDB Enterprise)。
◦ 提供高可用性。
◦ Influx 合約包含 Influx 技術支援,將使用 Influx 支援網站提供,位於
InfluxData。
◦ PTC 客戶可以根據需要針對 PTC/Influx 協同合作開啟 Influx 的工單。
◦ PTC 客戶負責資料庫維護與監測。
• InfluxDB Cloud (於 ThingWorx 環境外部託管並由 InfluxData 公司負責管理)
InfluxDB Cloud 具有以下優點:
◦ InfluxDB Cloud 建構為雲端原生、多用戶、彈性擴充、無伺服器平台。
◦ 在 AWS、Google 和 Azure 上跨多個區域提供可用性、耐久性和可擴充性。
◦ 安裝並配置了所有最新的安全功能和修補程式,安全性得到了進一步強化。
◦ InfluxDB Cloud 可自動重新平衡叢集、處理分片,並利用內建複製係數。
最佳實務
序列限制
序列是記錄到 InfluxDB 中所有物件之內容的總數。如果將較大的資料量導向至少量物件與物件內容,例如 10K 或 100K,InfluxDB 的執行效能會比較高。在 InfluxDB 中,序列總數預設限制為 100 萬。您可增加此限制,但 InfluxDB 的效能會隨著序列數超出此限制而降低。
如果您有大量物件與內容,可選擇資料量最大的那些物件與內容,並僅將其指向 InfluxDB,以減輕 PostgreSQL 或 MSSQL 的壓力。
或者,如果您要將序列分散到多個伺服器,也可以將 InfluxDB 資料提供者的多個實例指向不同的 InfluxDB 伺服器實例。
寫入限制
60 gb 記憶體的 32 核心 VM 每秒寫入 100K。超出此限制可能會導致 ThingWorx 發生問題,而且可能會用盡資源來處理任何請求或工作,例如寫入至資料庫。此時,ThingWorx 會變為停止,而 InfluxDB 仍然會寫入至資料庫。PostgreSQL 不會發生此問題,因為 PostgreSQL 會變為瓶頸,而 ThingWorx 永遠不會落到耗盡資源以致無法處理內部任務的境地。
SSL/安全連線
InfluxDB 支援 SSL 與 HTTPS 連線。如果不支援 ThingWorx 與 InfluxDB 之間的網路,您可以啟用 SSL 與 HTTPS 連線以增加安全性。如果簽署的私密金鑰保持安全,自我簽署的憑證即已足夠。
內容基礎類型的已知 InfluxDB 限制
清除內容
PurgeAllPropertyHistory、PurgeSelectedPropertyHistory 與 PurgePropertyHistory 服務可用來從 InfluxDB 清除內容。使用 startDate 與 endDate 參數可指定範圍。
| 使用 Influx2PersistenceProviderPackage 提供者時,不支援清除。PurgePropertyHistory、PurgeAllPropertyHistory 和 PurgeSelectedPropertyHistory 服務無效。 |