在 ThingWorx 中索引執行時間資料
所有關聯式資料庫系統 (如 PostgreSQL、MSSQL 與 H2) 皆能索引表格中的任何欄位或欄位組合。當使用 FindDataTableEntries 服務時,可以利用索引。這樣一來,便可提高針對資料執行查詢與搜尋操作的資料擷取速度。但是,索引需要額外的儲存空間,以及資料擷取期間的其他寫入操作,因為資料庫引擎必須針對擷取的每個資料列維持其他資料結構。ThingWorx 在應用程式層中使用資料形式與基礎類型。因此,用來儲存資料的格式基於資料形式和基礎類型,而不是關聯式表格的資料類型。這允許 ThingWorx 動態變更資料類型,而無須變更資料庫結構描述,並會導致將資料儲存為 JSON 或 Text blob。ThingWorx 中使用的預設索引配置是在考慮上述因素的同時嘗試平衡寫入/讀取效能的結果。
持續物件内容資料
資料會儲存在資料庫的 property_vtq 表格中。每個内容都會儲存在其所在表格的相應列中。換句話說,物件内容對應於表格列,而非欄。此結構會使此表格不適於儲存歷史資料。索引的欄位有:
id - 物件名稱,物件
name - 內容的名稱
值串流中記錄的物件内容資料
資料會儲存在資料庫的 value_stream 表格中。每個内容都會儲存在其所在表格的相應列中,以將物件内容對應到表格列,而非欄。
索引的欄位有:
entity_id - 值串流名稱
source_id - 物件名稱
property_name - 內容名稱
time - 項目的時間戳記
資料表資料
資料會儲存在資料庫的 data_table 表格中。所有欄位值都會儲存在表格的單一列中,從而導致關聯資料形式中定義的欄位作為 JSON 字串對應到每個項目的單一欄。
{"DataShape_Field1": "aaa", "DataShape_Field2": 2}
存在多個索引:
entity_key - 在與資料表相關聯的資料形式中定義的主索引鍵。
entity_keyentity_id - 資料形式鍵、資料表名稱。
field_values - 索引 JSON 字串。
串流資料
資料會儲存在資料庫的 stream 表格中。所有欄位值都會儲存在表格的單一列中。關聯資料形式中定義的欄位會作為 JSON 字串對應到每個項目的單一欄。索引的欄位有:
entity_id - 串流名稱
source_id - 物件名稱
source_type - 來源的實體類型 (使用者、物件等)。
time - 項目的時間戳記