冷層中儲存之資料的檔案路徑和結構描述 - 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 中原始資料的每個檔案路徑都包含下列元件。

路徑元件 描述

keyPrefix

您在儲存組態中指定的 Amazon S3 前 AWS IoT SiteWise 置詞。Amazon S3 使用前置詞做為儲存貯體中的資料夾名稱。

raw

儲存來自設備(測量)的時間序列資料的資料夾。資raw料夾會儲存在首碼資料夾中。

seriesBucket

介於 00 和 ff 之間的十六進制數字。這個數字是從中衍生出來的timeSeriesId。此分割區用於在 AWS IoT SiteWise 寫入冷層時增加輸送量。當您使用 Amazon Athena 執行查詢時,可以使用分割區進行精細分割,以提升查詢效能。

seriesBucket和資產timeSeriesBucket中繼資料中的數字相同。

startYear

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

startMonth

與時間序列資料相關聯的獨佔開始時間月份。

startDay

與時間序列資料相關聯的獨佔開始時間當月的日期。

fileName

檔案名稱使用底線 (_) 字元作為分隔符號來分隔下列項目:

  • raw綴。

  • timeSeriesId值。

  • 與時間序列資料相關聯的獨佔開始時間的紀元時間戳記。

  • 數據的質量。有效值:GOODBAD、和UNCERTAIN。如需詳細資訊,請參閱 AWS IoT SiteWise API 參考中的 AssetPropertyValue

該文件被保存在.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

欄位

匯出至冷層的原始資料結構描述包含下列欄位。

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

seriesId

string

N/A

識別來自設備(測量)的時間序列資料的 ID。您可以使用此欄位在查詢中聯結原始資料和資產中繼資料。

timeInSeconds

long

N/A

時間戳記日期,以秒為單位,採用 Unix 紀元格式。小數納秒資料由提供。offsetInNanos

offsetInNanos

long

N/A

timeInSeconds的納秒偏移量。

quality

string

N/A

時間序列值的品質。

doubleValue

doublenull

null

double(浮點數)類型的時間序列數據。

stringValue

stringnull

null

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

integerValue

intnull

null

類型為整數 (整數) 的時間序列資料。

booleanValue

booleannull

null

布林類型的時間序列資料 (真或假)。

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 中指標、轉換和彙總的每個檔案路徑都包含下列元件。

路徑元件 描述

keyPrefix

您在儲存組態中指定的 Amazon S3 前 AWS IoT SiteWise 置詞。Amazon S3 使用前置詞做為儲存貯體中的資料夾名稱。

agg

儲存量度中時間序列資料的資料夾。資agg料夾會儲存在首碼資料夾中。

seriesBucket

介於 00 和 ff 之間的十六進制數字。這個數字是從中衍生出來的timeSeriesId。此分割區用於在 AWS IoT SiteWise 寫入冷層時增加輸送量。當您使用 Amazon Athena 執行查詢時,可以使用分割區進行精細分割,以提升查詢效能。

seriesBucket和資產timeSeriesBucket中繼資料中的數字相同。

startYear

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

startMonth

與時間序列資料相關聯的獨佔開始時間月份。

startDay

與時間序列資料相關聯的獨佔開始時間當月的日期。

fileName

檔案名稱使用底線 (_) 字元作為分隔符號來分隔下列項目:

  • raw綴。

  • timeSeriesId值。

  • 與時間序列資料相關聯的獨佔開始時間的紀元時間戳記。

  • 數據的質量。有效值:GOODBAD、和UNCERTAIN。如需詳細資訊,請參閱 AWS IoT SiteWise API 參考中的 AssetPropertyValue

該文件被保存在.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

欄位

匯出至冷層的測量結果、轉換和彙總結構描述包含下列欄位。

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

seriesId

string

N/A

識別來自設備、指標或轉換的時間序列資料的 ID。您可以使用此欄位在查詢中聯結原始資料和資產中繼資料。

timeInSeconds

long

N/A

時間戳記日期,以秒為單位,採用 Unix 紀元格式。小數納秒資料由提供。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

冷層中資產中繼資料的每個檔案路徑都包含下列元件。

路徑元件 描述

keyPrefix

您在 s 儲存組態中指定的 Amazon S3 前置 AWS IoT SiteWise詞。Amazon S3 使用前置詞做為儲存貯體中的資料夾名稱。

asset_metadata

儲存資產中繼資料的資料夾。資asset_metadata料夾會儲存在首碼資料夾中。

fileName

檔案名稱使用底線 (_) 字元作為分隔符號來分隔下列項目:

  • asset綴。

  • assetId值。

檔案會以.ndjson格式儲存。

範例 較冷層中資產中繼資料的檔案路徑

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

欄位

匯出至冷層的資產中繼資料結構描述包含下列欄位。

欄位名稱 描述

assetId

資產的 ID。

assetName

資產的名稱。

assetExternalId

資產的外部 ID。

assetModelId

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

assetModelName

資產模型的名稱。

assetModelExternalId

資產模型的外部 ID。

assetPropertyId

資產屬性的 ID。

assetPropertyName

資產性質的名稱。

assetPropertyExternalId

資產屬性的外部 ID。

assetPropertyDataType

資產屬性的資料類型。

assetPropertyUnit

資產性質的單位 (例如NewtonsRPM)。

assetPropertyAlias

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

timeSeriesId

識別來自設備、指標或轉換的時間序列資料的 ID。您可以使用此欄位在查詢中聯結原始資料和資產中繼資料。

timeSeriesBucket

介於 00 和 ff 之間的十六進制數字。這個數字是從中衍生出來的timeSeriesId。此分割區用於在 AWS IoT SiteWise 寫入冷層時增加輸送量。當您使用 Amazon Athena 執行查詢時,可以使用分割區進行精細分割,以提升查詢效能。

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

assetCompositeModelId

複合模型的 ID。

assetCompositeModelExternalId

複合模型的外部 ID。

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

冷層中資產階層中繼資料的每個檔案路徑都包含下列元件。

路徑元件 描述

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

欄位

匯出至冷層的資產階層中繼資料結構描述包含下列欄位。

欄位名稱 描述

sourceAssetId

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

targetAssetId

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

hierarchyId

階層的識別碼。

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. 選取檔案,然後從 [動作] 中選擇 [下載]。

存儲數據索引文件

AWS IoT SiteWise 使用這些檔案來最佳化資料查詢效能。它們出現在您的 Amazon S3 存儲桶中,但您不需要使用它們。

檔案路徑

AWS IoT SiteWise 使用下列範本將資料索引檔案儲存在冷層中。

keyPrefix/index/series=timeseriesId/startYear=startYear/startMonth=startMonth/startDay=startDay/index_timeseriesId_startTimestamp_quality
範例 資料儲存索引檔案的檔案路徑

keyPrefix/index/series=7020c8e2-e6db-40fa-9845-ed0dddd4c77d_95e63da7-d34e-43e1-bc6f-1b490154b07a/startYear=2022/startMonth=02/startDay=03/index_7020c8e2-e6db-40fa-9845-ed0dddd4c77d_95e63da7-d34e-43e1-bc6f-1b490154b07a_1643846400_GOOD