保存在冷層中的數據的文件路徑和架構 - AWS IoT SiteWise

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

保存在冷層中的數據的文件路徑和架構

AWS IoT SiteWise通過複製時間序列(包括度量、度量、轉換和聚合以及資產和資產模型定義),將數據存儲在冷層中。下面介紹了發送到冷層的數據的文件路徑和架構。

設備數據(測量)

AWS IoT SiteWise每六小時將設備數據(測量值)導出到冷層。原始數據保存在Apache Avro(.avro) 格式。

檔案路徑

要在冷層中生成原始數據的文件路徑,AWS IoT SiteWise使用下列的範本。

{keyPrefix}/raw/startYear={startYear}/startMonth={startMonth}/startDay={startDay}/seriesBucket={seriesBucket}/raw_{timeseriesId}_{startTimestamp}_{quality}.avro

指向 Amazon S3 中原始數據的每個文件路徑都包含以下組件。

路徑組件 Description (描述)

keyPrefix

Amazon S3 在AWS IoT SiteWise儲存組態。Amazon S3 使用前綴作為儲存貯體中的資料夾名稱。

raw

存儲來自設備(測量)的時間序列數據的文件夾。所以此raw文件夾將保存在前綴文件夾中。

seriesBucket

介於 00 和 ff 之間的十六進制數字。這個數字是從timeSeriesId。此分區用於在AWS IoT SiteWise寫入冷層。當您使用 Amazon Athena 運行查詢時,您可以使用分區進行細粒度分區以提高查詢性能。

seriesBuckettimeSeriesBucket在資源元數據中的數字相同。

startYear

與時間序列數據相關聯的獨佔開始時間的年份。

startMonth

與時間序列數據關聯的獨佔開始時間的月份。

startDay

與時間序列數據相關聯的獨佔開始時間的月份中的某一天。

fileName

文件名使用下劃線 (_) 字符作為分隔符來分隔以下內容:

  • 所以此rawprefix.

  • 所以此timeSeriesId值。

  • 與時間序列數據關聯的獨佔開始時間的紀元時間戳。

  • 資料的質量。有效值:GOODBAD,和UNCERTAIN。如需詳細資訊,請參閱「」AssetProperty數值中的AWS IoT SiteWiseAPI 參考

該文件將保存在.avro格式,方法是使用Snappy壓縮。

範例 冷層中原始數據的文件路徑

keyPrefix/raw/startYear=2021/startMonth=1/startDay=2/seriesBucket=a2/raw_7020c8e2-e6db-40fa-9845-ed0dddd4c77d_95e63da7-d34e-43e1-bc6f-1b490154b07a_1609577700_GOOD.avro

欄位

導出到冷層的原始數據的架構包含以下字段。

欄位名稱 支援的類型 預設 類型 Description (描述)

seriesId

string

N/A

標識來自設備的時間序列數據的 ID(測量值)。您可以使用此字段在查詢中連接原始數據和資產元數據。

timeInSeconds

long

N/A

時間戳記日期 (以秒為單位,格式為 Unix Nuch)。分數納秒數據由offsetInNanos

offsetInNanos

long

N/A

timeInSeconds

quality

string

N/A

時間序列值的品質。

doubleValue

doublenull

null

雙精度型的時間序列數據(浮點數)。

stringValue

stringnull

null

字符串類型的時間序列數據(字符序列)。

integerValue

intnull

null

整數類型的時間序列數據(整數)。

booleanValue

booleannull

null

類型為布爾 (true 或 false) 的時間序列數據。

jsonValue

stringnull

null

JSON 類型的時間序列數據(以字符串形式存儲的複雜數據類型)。

recordVersion

longnull

null

記錄的版本編號。您可以使用版本號選擇最新記錄。較新的記錄具有較大的版本號。

範例 冷層中的原始數據

{"seriesId":"e9687d2a-0dbe-4f65-9ed6-6f443cba41f7_95e63da7-d34e-43e1-bc6f-1b490154b07a","timeInSeconds":1625675887,"offsetInNanos":0,"quality":"GOOD","doubleValue":{"double":0.75},"stringValue":null,"integerValue":null,"booleanValue":null,"jsonValue":null,"recordVersion":null} {"seriesId":"e9687d2a-0dbe-4f65-9ed6-6f443cba41f7_95e63da7-d34e-43e1-bc6f-1b490154b07a","timeInSeconds":1625675889,"offsetInNanos":0,"quality":"GOOD","doubleValue":{"double":0.69},"stringValue":null,"integerValue":null,"booleanValue":null,"jsonValue":null,"recordVersion":null} {"seriesId":"e9687d2a-0dbe-4f65-9ed6-6f443cba41f7_95e63da7-d34e-43e1-bc6f-1b490154b07a","timeInSeconds":1625675890,"offsetInNanos":0,"quality":"GOOD","doubleValue":{"double":0.66},"stringValue":null,"integerValue":null,"booleanValue":null,"jsonValue":null,"recordVersion":null} {"seriesId":"e9687d2a-0dbe-4f65-9ed6-6f443cba41f7_95e63da7-d34e-43e1-bc6f-1b490154b07a","timeInSeconds":1625675891,"offsetInNanos":0,"quality":"GOOD","doubleValue":{"double":0.92},"stringValue":null,"integerValue":null,"booleanValue":null,"jsonValue":null,"recordVersion":null} {"seriesId":"e9687d2a-0dbe-4f65-9ed6-6f443cba41f7_95e63da7-d34e-43e1-bc6f-1b490154b07a","timeInSeconds":1625675892,"offsetInNanos":0,"quality":"GOOD","doubleValue":{"double":0.73},"stringValue":null,"integerValue":null,"booleanValue":null,"jsonValue":null,"recordVersion":null}

衡量指標、轉換和聚合

AWS IoT SiteWise每六小時將指標、轉換和聚合導出到冷層。指標、轉換和聚合保存在Apache Avro(.avro) 格式。

檔案路徑

要在冷層中生成指標、轉換和聚合的文件路徑,AWS IoT SiteWise使用下列的範本。

{keyPrefix}/agg/startYear={startYear}/startMonth={startMonth}/startDay={startDay}/seriesBucket={seriesBucket}/agg_{timeseriesId}_{startTimestamp}_{quality}.avro

Amazon S3 中指向指標、轉換和聚合的每個文件路徑都包含以下組件。

路徑組件 Description (描述)

keyPrefix

Amazon S3 在AWS IoT SiteWise儲存組態。Amazon S3 使用前綴作為儲存貯體中的資料夾名稱。

agg

存儲量度中的時間序列數據的文件夾。所以此agg文件夾將保存在前綴文件夾中。

seriesBucket

介於 00 和 ff 之間的十六進制數字。這個數字是從timeSeriesId。此分區用於在AWS IoT SiteWise寫入冷層。當您使用 Amazon Athena 運行查詢時,您可以使用分區進行細粒度分區以提高查詢性能。

seriesBuckettimeSeriesBucket在資源元數據中的數字相同。

startYear

與時間序列數據相關聯的獨佔開始時間的年份。

startMonth

與時間序列數據關聯的獨佔開始時間的月份。

startDay

與時間序列數據相關聯的獨佔開始時間的月份中的某一天。

fileName

文件名使用下劃線 (_) 字符作為分隔符來分隔以下內容:

  • 所以此rawprefix.

  • 所以此timeSeriesId值。

  • 與時間序列數據關聯的獨佔開始時間的紀元時間戳。

  • 資料的質量。有效值:GOODBAD,和UNCERTAIN。如需詳細資訊,請參閱「」AssetProperty數值中的AWS IoT SiteWiseAPI 參考

該文件將保存在.avro格式,方法是使用Snappy壓縮。

範例 冷層中指標的文件路徑

keyPrefix/agg/startYear=2021/startMonth=1/startDay=2/seriesBucket=a2/agg_7020c8e2-e6db-40fa-9845-ed0dddd4c77d_95e63da7-d34e-43e1-bc6f-1b490154b07a_1609577700_GOOD.avro

欄位

導出到冷層的度量、轉換和聚合的架構包含以下字段。

欄位名稱 支援的類型 預設 類型 Description (描述)

seriesId

string

N/A

標識來自設備、度量或變換的時間序列數據的 ID。您可以使用此字段在查詢中連接原始數據和資產元數據。

timeInSeconds

long

N/A

時間戳記日期 (以秒為單位,格式為 Unix Nuch)。分數納秒數據由offsetInNanos

offsetInNanos

long

N/A

timeInSeconds

quality

string

N/A

篩選資產數據所依據的質量。

resolution

string

N/A

聚合數據的時間間隔。

count

doublenull

null

目前時間間隔指定變數的資料點總數。

average

doublenull

null

目前時間間隔指定變數值的平均數。

min

doublenull

null

目前時間間隔指定變數值的最小值。

max

booleannull

null

目前時間間隔指定變數值的最大值。

sum

stringnull

null

目前時間間隔指定變數值的總和。

recordVersion

longnull

null

記錄的版本編號。您可以使用版本號選擇最新記錄。較新的記錄具有較大的版本號。

範例 冷層中的度量數據

{"seriesId":"f74c2828-5317-4df3-ba16-6d41b5bcb531","timeInSeconds":1637334060,"offsetInNanos":0,"quality":"GOOD","resolution":"PT1M","count":31.0,"average":{"double":16.0},"min":{"double":1.0},"max":{"double":31.0},"sum":{"double":496.0},"recordVersion":null} {"seriesId":"f74c2828-5317-4df3-ba16-6d41b5bcb531","timeInSeconds":1637334120,"offsetInNanos":0,"quality":"GOOD","resolution":"PT1M","count":29.0,"average":{"double":46.0},"min":{"double":32.0},"max":{"double":60.0},"sum":{"double":1334.0},"recordVersion":null} {"seriesId":"f74c2828-5317-4df3-ba16-6d41b5bcb531","timeInSeconds":1637334540,"offsetInNanos":0,"quality":"GOOD","resolution":"PT1M","count":31.0,"average":{"double":16.0},"min":{"double":1.0},"max":{"double":31.0},"sum":{"double":496.0},"recordVersion":null} {"seriesId":"f74c2828-5317-4df3-ba16-6d41b5bcb531","timeInSeconds":1637334600,"offsetInNanos":0,"quality":"GOOD","resolution":"PT1M","count":29.0,"average":{"double":46.0},"min":{"double":32.0},"max":{"double":60.0},"sum":{"double":1334.0},"recordVersion":null} {"seriesId":"f74c2828-5317-4df3-ba16-6d41b5bcb531","timeInSeconds":1637335020,"offsetInNanos":0,"quality":"GOOD","resolution":"PT1M","count":31.0,"average":{"double":16.0},"min":{"double":1.0},"max":{"double":31.0},"sum":{"double":496.0},"recordVersion":null}

資產元數據

當您啟用AWS IoT SiteWise將數據首次導出到冷層,則資產元數據會導出到冷層。在初始配置之後,AWS IoT SiteWise僅當您更改資產模型定義或資產定義時,才會將資產元數據導出到層。資產元數據保存在換行符分隔 JSON(.ndjson) 格式。

檔案路徑

要在冷層中生成資產元數據的文件路徑,AWS IoT SiteWise使用下列的範本。

{keyPrefix}/asset_metadata/asset_{assetId}.ndjson

冷層中資源元數據的每個文件路徑都包含以下組件。

路徑組件 Description (描述)

keyPrefix

Amazon S3 在AWS IoT SiteWise的儲存組態。Amazon S3 使用前綴作為儲存貯體中的資料夾名稱。

asset_metadata

存儲資源元數據的文件夾。所以此asset_metadata文件夾將保存在前綴文件夾中。

fileName

文件名使用下劃線 (_) 字符作為分隔符來分隔以下內容:

  • 所以此assetprefix.

  • 所以此assetId值。

該文件將保存在.ndjson格式。

範例 較冷層中資源元數據的文件路徑

keyPrefix/asset_metadata/asset_35901915-d476-4dca-8637-d9ed4df939ed.ndjson

欄位

導出到冷層的資產元數據的架構包含以下字段。

欄位名稱 Description (描述)

assetId

資產的 ID。

assetName

資產的名稱。

assetModelId

用於建立此資產的資產模型 ID。

assetModelName

資產模型的名稱。

assetPropertyId

資產屬性的 ID。

assetPropertyName

資產屬性的名稱。

assetPropertyDataType

資產屬性的資料類型。

assetPropertyUnit

資產屬性的單位(例如,NewtonsRPM

assetPropertyAlias

用於識別資產屬性的別名,如 OPC-UA 伺服器資料串流路徑 (例如,/company/windfarm/3/turbine/7/temperature

timeSeriesId

標識來自設備、度量或變換的時間序列數據的 ID。您可以使用此字段在查詢中連接原始數據和資產元數據。

timeSeriesBucket

介於 00 和 ff 之間的十六進制數字。這個數字是從timeSeriesId。此分區用於在AWS IoT SiteWise寫入冷層。當您使用 Amazon Athena 運行查詢時,您可以使用分區進行細粒度分區以提高查詢性能。

timeSeriesBucketseriesBucket在原始數據的文件路徑中是相同的數字。

assetCompositeModelDescription

複合模型的描述。

assetCompositeModelName

複合模型的名稱。

assetCompositeModelType

複合模型的類型。對於警示複合模型,類型是 AWS/ALARM

assetCreationDate

資產建立日期,以 Unix 紀元時間表示。

assetLastUpdateDate

資產最後更新日期,以 Unix 紀元時為單位。

assetStatusErrorCode

錯誤代碼。

assetStatusErrorMessage

錯誤訊息。

assetStatusState

資產目前的狀態。

範例 冷層中的資產元數據

{"assetId":"7020c8e2-e6db-40fa-9845-ed0dddd4c77d","assetName":"Wind Turbine Asset 2","assetModelId":"ec1d924f-f07d-444f-b072-e2994c165d35","assetModelName":"Wind Turbine Asset Model","assetPropertyId":"95e63da7-d34e-43e1-bc6f-1b490154b07a","assetPropertyName":"Temperature","assetPropertyDataType":"DOUBLE","assetPropertyUnit":"Celsius","assetPropertyAlias":"USA/Washington/Seattle/WT2/temp","timeSeriesId":"7020c8e2-e6db-40fa-9845-ed0dddd4c77d_95e63da7-d34e-43e1-bc6f-1b490154b07a","timeSeriesBucket":"f6","assetArn":null,"assetCompositeModelDescription":null,"assetCompositeModelName":null,"assetCompositeModelType":null,"assetCreationDate":1619466323,"assetLastUpdateDate":1623859856,"assetStatusErrorCode":null,"assetStatusErrorMessage":null,"assetStatusState":"ACTIVE"} {"assetId":"7020c8e2-e6db-40fa-9845-ed0dddd4c77d","assetName":"Wind Turbine Asset 2","assetModelId":"ec1d924f-f07d-444f-b072-e2994c165d35","assetModelName":"Wind Turbine Asset Model","assetPropertyId":"c706d54d-4c11-42dc-9a01-63662fc697b4","assetPropertyName":"Pressure","assetPropertyDataType":"DOUBLE","assetPropertyUnit":"KiloPascal","assetPropertyAlias":"USA/Washington/Seattle/WT2/pressure","timeSeriesId":"7020c8e2-e6db-40fa-9845-ed0dddd4c77d_c706d54d-4c11-42dc-9a01-63662fc697b4","timeSeriesBucket":"1e","assetArn":null,"assetCompositeModelDescription":null,"assetCompositeModelName":null,"assetCompositeModelType":null,"assetCreationDate":1619466323,"assetLastUpdateDate":1623859856,"assetStatusErrorCode":null,"assetStatusErrorMessage":null,"assetStatusState":"ACTIVE"} {"assetId":"7020c8e2-e6db-40fa-9845-ed0dddd4c77d","assetName":"Wind Turbine Asset 2","assetModelId":"ec1d924f-f07d-444f-b072-e2994c165d35","assetModelName":"Wind Turbine Asset Model","assetPropertyId":"8cf1162f-dead-4fbe-b468-c8e24cde9f50","assetPropertyName":"Max Temperature","assetPropertyDataType":"DOUBLE","assetPropertyUnit":null,"assetPropertyAlias":null,"timeSeriesId":"7020c8e2-e6db-40fa-9845-ed0dddd4c77d_8cf1162f-dead-4fbe-b468-c8e24cde9f50","timeSeriesBucket":"d7","assetArn":null,"assetCompositeModelDescription":null,"assetCompositeModelName":null,"assetCompositeModelType":null,"assetCreationDate":1619466323,"assetLastUpdateDate":1623859856,"assetStatusErrorCode":null,"assetStatusErrorMessage":null,"assetStatusState":"ACTIVE"}

資產階層

當您啟用AWS IoT SiteWise首次將數據保存在冷層中,則資產層次結構元數據會導出到冷層。在初始配置之後,AWS IoT SiteWise僅當您更改資產模型或資產定義時,才會將資產層次結構元數據導出到冷層。資產層次結構元數據保存在換行符分隔 JSON(.ndjson) 格式。

檔案路徑

要在冷層中生成資產層次結構元數據的文件路徑,AWS IoT SiteWise使用下列的範本。

{keyPrefix}/asset_hierarchy_metadata/{parentAssetId}_{hierarchyId}.ndjson

冷層中資產層次結構元數據的每個文件路徑都包含以下組件。

路徑組件 Description (描述)

keyPrefix

Amazon S3 在AWS IoT SiteWise儲存組態。Amazon S3 使用前綴作為儲存貯體中的資料夾名稱。

asset_hierarchy_metadata

存儲資產層次結構元數據的文件夾。所以此asset_hierarchy_metadata文件夾將保存在前綴文件夾中。

fileName

文件名使用下劃線 (_) 字符作為分隔符來分隔以下內容:

  • 所以此parentAssetId值。

  • 所以此hierarchyId值。

該文件將保存在.ndjson格式。

範例 冷層中資產層次結構元數據的文件路徑

keyPrefix/asset_hierarchy_metadata/35901915-d476-4dca-8637-d9ed4df939ed_c5b3ced8-589a-48c7-9998-cdccfc9747a0.ndjson

欄位

導出到冷層的資產層次結構元數據的架構包含以下字段。

欄位名稱 Description (描述)

sourceAssetId

此資產關係中源資產的 ID。

targetAssetId

此資產關係中目標資產的 ID。

hierarchyId

階層的 ID。

associationType

此資產關係的關聯類型。

值必須為CHILD。目標資產是源資產的子資產。

範例 冷層中的資產層次結構元數據

{"sourceAssetId":"80388e72-2284-44fb-9c89-bfbaf0dfedd2","targetAssetId":"2b866c25-0c74-4750-bdf5-b73683c8a2a2","hierarchyId":"bbed9f59-0412-4585-a61d-6044db526aee","associationType":"CHILD"} {"sourceAssetId":"80388e72-2284-44fb-9c89-bfbaf0dfedd2","targetAssetId":"6b51246e-984d-460d-bc0b-470ea47d1e31","hierarchyId":"bbed9f59-0412-4585-a61d-6044db526aee","associationType":"CHILD"}

在冷層中檢視資料

  1. 導覽至 。Amazon S3 主控台

  2. 在導覽窗格中,選擇儲存貯體,然後選擇 Amazon S3 儲存貯體。

  3. 導航到包含原始數據、資產元數據或資產層次結構元數據的文件夾。

  4. 選擇文件,然後從動作,選擇下載