Cold 階層に保存されたデータのファイルパスとスキーマ - AWS IoT SiteWise

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Cold 階層に保存されたデータのファイルパスとスキーマ

AWS IoT SiteWise は、測定値、メトリクス、変換、集計、アセットモデル定義などの時系列をレプリケートすることで、コールド階層にデータを保存します。次に、Cold 階層に送られるデータのファイルパスとスキーマについて説明します。

機器データ (測定)

AWS IoT SiteWise は、機器データ (測定値) を 6 時間に 1 回コールド階層にエクスポートします。Raw データは Apache AVRO (.avro) 形式でコールド階層に保存されます。

ファイルパス

AWS IoT SiteWise は、次のテンプレートを使用して、コールド階層に機器データ (測定値) を保存します。

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

Amazon S3 におけるraw データのファイルパスは、すべて次の構成要素を含んでいます。

パスコンポーネント。 説明

keyPrefix

AWS IoT SiteWise ストレージ設定で指定した Amazon S3 プレフィックス。Amazon S3 では、プレフィックスをバケット内のフォルダ名として使用します。

raw

機器からの時系列データ (測定値) を格納するフォルダ。raw フォルダーは、プレフィックスフォルダーに保存されます。

seriesBucket

00 から ff の間の 16 進数です。timeSeriesId から導き出される数値です。このパーティションは、コールド階層に AWS IoT SiteWise 書き込むときにスループットを向上させるために使用されます。Amazon Athena を使用してクエリを実行する場合、パーティションを使用して細かい粒度のパーティショニングを行い、クエリパフォーマンスを向上させることができます。

アセットメタデータの seriesBuckettimeSeriesBucket は同じ数字です。

startYear

時系列データに関連する排他的開始時刻の年号。

startMonth

時系列データに関連付けられている排他的開始時刻の月。

startDay

時系列データに関連付けられている排他的開始時刻の月日。

fileName

ファイル名は、アンダースコア (_) をデリミターとして使用し、次のように区切ります。

  • raw プレフィックス。

  • timeSeriesId 値。

  • 時系列データに関連付けられた排他的開始時刻のエポックタイムスタンプ。

  • データの品質。有効な値: GOODBADUNCERTAIN。詳細については、「 AWS IoT SiteWise APIリファレンスAssetPropertyValue」の「」を参照してください。

[Snappy]圧縮を利用して、.avro形式で保存されます。

例 Cold 階層の raw データへのファイルパス

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

フィールド

Cold 階層に書き出しされる raw データのスキーマは、次のフィールドを含んでいる。

フィールド名 サポートされている型 デフォルトの 型 説明

seriesId

string

該当なし

機器からの時系列データ (測定値) を識別するための ID。このフィールドを使用して、クエリで raw データとアセットメタデータを結合することができます。

timeInSeconds

long

該当なし

Unix エポック形式のタイムスタンプの日付 (秒単位)。分数ナノ秒のデータは、offsetInNanos で提供されます。

offsetInNanos

long

該当なし

timeInSeconds からのナノ秒のオフセット。

quality

string

該当なし

時系列値の品質。

doubleValue

double、または null

null

ダブル型 (浮動小数点数) の時系列データ。

stringValue

string、または null

null

文字列型 (文字の並び) の時系列データ。

integerValue

int、または null

null

整数型 (整数) の時系列データ。

booleanValue

boolean、または null

null

ブール型 (true または false) の時系列データ。

jsonValue

string、または null

null

型の時系列データ JSON (文字列として保存される複合データ型)。

recordVersion

long、または null

null

レコードのバージョン番号。バージョン番号を使って、最新のレコードを選択することができます。新しいレコードほどバージョン番号が大きくなっています。

例 Cold 階層の raw データ
{"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 は、メトリクス、変換、集計を 6 時間に 1 回コールド階層にエクスポートします。メトリクス、変換、集計は、Apache AVRO (.avro) 形式でコールド階層に保存されます。

ファイルパス

AWS IoT SiteWise は、次のテンプレートを使用して、メトリクス、変換、集計を Cold 階層に保存します。

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

Amazon S3 上のメトリクスへ、変換、集計のファイルパスには、次の要素が含まれます。

パスコンポーネント。 説明

keyPrefix

AWS IoT SiteWise ストレージ設定で指定した Amazon S3 プレフィックス。Amazon S3 では、プレフィックスをバケット内のフォルダ名として使用します。

agg

メトリクスの時系列データを格納するフォルダーです。agg フォルダーは、プレフィックスフォルダーに保存されます。

seriesBucket

00 から ff の間の 16 進数です。timeSeriesId から導き出される数値です。このパーティションは、コールド階層に AWS IoT SiteWise 書き込むときにスループットを向上させるために使用されます。Amazon Athena を使用してクエリを実行する場合、パーティションを使用して細かい粒度のパーティショニングを行い、クエリパフォーマンスを向上させることができます。

アセットメタデータの seriesBuckettimeSeriesBucket は同じ数字です。

startYear

時系列データに関連する排他的開始時刻の年号。

startMonth

時系列データに関連付けられている排他的開始時刻の月。

startDay

時系列データに関連付けられている排他的開始時刻の月日。

fileName

ファイル名は、アンダースコア (_) をデリミターとして使用し、次のように区切ります。

  • raw プレフィックス。

  • timeSeriesId 値。

  • 時系列データに関連付けられた排他的開始時刻のエポックタイムスタンプ。

  • データの品質。有効な値: GOODBADUNCERTAIN。詳細については、「 AWS IoT SiteWise APIリファレンスAssetPropertyValue」の「」を参照してください。

Snappy圧縮を利用して、.avro形式で保存されます。

例 Cold 階層のメトリクスへのファイルパス

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

該当なし

機器、メトリクス、変換から時系列データを識別するための ID です。このフィールドを使用して、クエリで raw データとアセットメタデータを結合することができます。

timeInSeconds

long

該当なし

Unix エポック形式のタイムスタンプの日付 (秒単位)。分数ナノ秒のデータは、offsetInNanos で提供されます。

offsetInNanos

long

該当なし

timeInSeconds からのナノ秒のオフセット。

quality

string

該当なし

アセットデータをフィルタリングするための品質です。

resolution

string

該当なし

データを集計する時間間隔。

count

double、または null

null

現在の時間間隔における、指定された変数のデータポイントの総数。

average

double、または null

null

現在の時間間隔における指定された変数値の平均。

min

double、または null

null

現在の時間間隔における指定された変数の最小値。

max

boolean、または null

null

現在の時間間隔における指定された変数の最大値。

sum

string、または null

null

現在の時間間隔における指定された変数値の合計。

recordVersion

long、または null

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 は、次のテンプレートを使用してアセットメタデータを Cold 階層に保存します。

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

Cold 階層におけるアセットメタデータのファイルパスを生成するために、Nは次のテンプレートを使用する。

パスコンポーネント。 説明

keyPrefix

の AWS IoT SiteWiseストレージ設定で指定した Amazon S3 プレフィックス。 Amazon S3 では、プレフィックスをバケット内のフォルダ名として使用します。

asset_metadata

アセットのメタデータを保存するフォルダです。asset_metadata フォルダーは、プレフィックスフォルダーに保存されます。

fileName

ファイル名は、アンダースコア (_) をデリミターとして使用し、次のように区切ります。

  • asset プレフィックス。

  • assetId 値。

ファイルは .ndjson 形式で保存されます。

例 Cold 階層のアセットメタデータへのファイルパス

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

フィールド

Cold 階層に書き出しされるアセットメタデータのスキーマは、次のフィールドを含んでいます。

フィールド名 説明

assetId

アセットの ID。

assetName

アセットの名前。

assetExternalId

アセットの外部 ID。

assetModelId

このアセットを作成するために使用されたアセットモデルの ID。

assetModelName

アセットモデルの名前。

assetModelExternalId

アセットモデルの外部 ID。

assetPropertyId

アセットプロパティの ID。

assetPropertyName

アセットプロパティの名前。

assetPropertyExternalId

アセットプロパティの外部 ID。

assetPropertyDataType

アセットプロパティのデータ型。

assetPropertyUnit

アセットプロパティの単位 (例:NewtonsそしてRPM)。

assetPropertyAlias

OPC UA サーバーのデータストリームパスなど、アセットプロパティを識別するエイリアス (例: /company/windfarm/3/turbine/7/temperature)。

timeSeriesId

機器、メトリクス、変換から時系列データを識別するための ID です。このフィールドを使用して、クエリで raw データとアセットメタデータを結合することができます。

timeSeriesBucket

00 から ff の間の 16 進数です。timeSeriesId から導き出される数値です。このパーティションは、コールド階層に AWS IoT SiteWise 書き込むときにスループットを向上させるために使用されます。Amazon Athena を使用してクエリを実行する場合、パーティションを使用して細かい粒度のパーティショニングを行い、クエリパフォーマンスを向上させることができます。

raw データのファイルパスの timeSeriesBucketseriesBucket が同じ数字です。

assetCompositeModelId

複合モデルの ID。

assetCompositeModelExternalId

複合モデルの外部 ID。

assetCompositeModelDescription

複合モデルの説明。

assetCompositeModelName

複合モデルの名前。

assetCompositeModelType

複合モデルのタイプ。アラーム複合モデルの場合、この型は AWS/ALARM です。

assetCreationDate

アセットが作成された日付 (Unix エポックタイム)。

assetLastUpdateDate

アセットが最後に更新された日付を Unix エポックタイムで表したもの。

assetStatusErrorCode

エラーコードです。

assetStatusErrorMessage

エラーメッセージです。

assetStatusState

アセットの現在の状態。

例 Cold 階層のアセットメタデータ
{"assetId":"7020c8e2-e6db-40fa-9845-ed0dddd4c77d","assetExternalId":null,"assetName":"Wind Turbine Asset 2","assetModelId":"ec1d924f-f07d-444f-b072-e2994c165d35","assetModelExternalId":null,"assetModelName":"Wind Turbine Asset Model","assetPropertyId":"95e63da7-d34e-43e1-bc6f-1b490154b07a","assetPropertyExternalId":null,"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,"assetCompositeModelId":null,"assetCompositeModelExternalId":null,"assetCreationDate":1619466323,"assetLastUpdateDate":1623859856,"assetStatusErrorCode":null,"assetStatusErrorMessage":null,"assetStatusState":"ACTIVE"} {"assetId":"7020c8e2-e6db-40fa-9845-ed0dddd4c77d","assetExternalId":null,"assetName":"Wind Turbine Asset 2","assetModelId":"ec1d924f-f07d-444f-b072-e2994c165d35","assetModelExternalId":null,"assetModelName":"Wind Turbine Asset Model","assetPropertyId":"c706d54d-4c11-42dc-9a01-63662fc697b4","assetPropertyExternalId":null,"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,"assetCompositeModelId":null,"assetCompositeModelExternalId":null,"assetCreationDate":1619466323,"assetLastUpdateDate":1623859856,"assetStatusErrorCode":null,"assetStatusErrorMessage":null,"assetStatusState":"ACTIVE"} {"assetId":"7020c8e2-e6db-40fa-9845-ed0dddd4c77d","assetExternalId":null,"assetName":"Wind Turbine Asset 2","assetModelId":"ec1d924f-f07d-444f-b072-e2994c165d35","assetModelExternalId":null,"assetModelName":"Wind Turbine Asset Model","assetPropertyId":"8cf1162f-dead-4fbe-b468-c8e24cde9f50","assetPropertyExternalId":null,"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,"assetCompositeModelId":null,"assetCompositeModelExternalId":null,"assetCreationDate":1619466323,"assetLastUpdateDate":1623859856,"assetStatusErrorCode":null,"assetStatusErrorMessage":null,"assetStatusState":"ACTIVE"} {"assetId":"3a5f2a22-3b37-4332-9c1c-404ea1d73fab","assetExternalId":null,"assetName":"BatchAssetDouble1","assetModelId":"814bdfd8-24db-4a33-8d9b-ebc75e75e827","assetModelExternalId":null,"assetModelName":"FlashTestAssetModelDouble","assetPropertyId":"6b7e1532-175b-4c02-b410-ab401a9176ed","assetPropertyExternalId":null,"assetPropertyName":"measurementProperty","assetPropertyDataType":"DOUBLE","assetPropertyUnit":"u","assetPropertyAlias":null,"timeSeriesId":"ab19f4fa-7e7b-4247-ae89-ff316f5ff8aa","timeSeriesBucket":"af","assetArn":null,"assetCompositeModelDescription":null,"assetCompositeModelName":null,"assetCompositeModelType":null,"assetCompositeModelId":null,"assetCompositeModelExternalId":null,"assetCreationDate":1646960106,"assetLastUpdateDate":1646960106,"assetStatusErrorCode":null,"assetStatusErrorMessage":null,"assetStatusState":"ACTIVE"}

アセット階層メタデータ

を有効に AWS IoT SiteWise して をコールド階層に初めてデータを保存すると、アセット階層のメタデータがコールド階層にエクスポートされます。初期設定後、 はアセットモデルまたはアセット定義を変更した場合にのみ、アセット階層メタデータを Cold 階層に AWS IoT SiteWise エクスポートします。アセット階層メタデータは、改行区切り JSON (.ndjson) 形式でコールド階層に保存されます。

階層、ターゲットアセット、またはソースアセットの外部識別子は、 DescribeAsset を呼び出すことで取得されますAPI。

ファイルパス

AWS IoT SiteWise は、次のテンプレートを使用してアセット階層メタデータを Cold 階層に保存します。

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

Cold 階層のアセット階層メタデータの各ファイルパスは、次のコンポーネントを含んでいます。

パスコンポーネント。 説明

keyPrefix

AWS IoT SiteWise ストレージ設定で指定した Amazon S3 プレフィックス。Amazon S3 では、プレフィックスをバケット内のフォルダ名として使用します。

asset_hierarchy_metadata

アセット階層のメタデータを保存するフォルダです。asset_hierarchy_metadata フォルダーは、プレフィックスフォルダーに保存されます。

fileName

ファイル名は、アンダースコア (_) をデリミターとして使用し、次のように区切ります。

  • parentAssetId 値。

  • hierarchyId 値。

ファイルは .ndjson 形式で保存されます。

例 Cold 階層におけるアセット階層メタデータへのファイルパス

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

フィールド

Cold 階層にに書き出しされるアセット階層メタデータのスキーマは、次のフィールドを含んでいます。

フィールド名 説明

sourceAssetId

このアセットリレーションシップのソースアセットの ID。

targetAssetId

このアセットリレーションシップのターゲットアセットの ID。

hierarchyId

階層の ID。

associationType

このアセットリレーションシップの関連付け型。

値は CHILD でなければならない。ターゲットアセットは、ソースアセットのアセットです。

例 Cold 階層におけるアセット階層メタデータ
{"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"}
Cold 階層でデータを表示するには
  1. [Amazon S3 console] (Amazon S3 のコンソール) に移動します。

  2. ナビゲーションペインで、[バケット] を選択し、Amazon S3 バケットを選択します。

  3. raw データ、アセットメタデータ、またはアセット階層メタデータが含まれるフォルダに移動します。

  4. ファイルを選択し、[アクション] から[ダウンロード] を選択します。

ストレージデータインデックスファイル

AWS IoT SiteWise は、これらのファイルを使用してデータクエリのパフォーマンスを最適化します。これらは Amazon S3 バケットに表示されますが、使用する必要はありません。

ファイルパス

AWS IoT SiteWise は、次のテンプレートを使用してデータインデックスファイルを Cold 階層に保存します。

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