

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

# 管理 的資料串流 AWS IoT SiteWise
<a name="manage-data-streams"></a>

 資料串流是包含歷史時間序列資料的資源。每個資料串流都是由唯一的別名識別，可讓您更輕鬆地追蹤每個資料片段的原始伺服器。收到第一次序列資料 AWS IoT SiteWise 時，資料串流會自動在 中建立。如果第一次使用別名識別序列資料，則 AWS IoT SiteWise 會使用該別名建立新的資料串流，前提是尚未指派該別名的資產屬性。或者，如果第一次使用資產 ID 和屬性 ID 識別序列資料， 會 AWS IoT SiteWise 建立新的資料串流，並將該資料串流與資產屬性建立關聯。

 有兩種方式可將別名指派給資產屬性。使用的 方法取決於資料是 AWS IoT SiteWise 先傳送到 ，還是先建立資產。
+  如果資料 AWS IoT SiteWise 先傳送到 ，這會自動使用指派的別名建立資料串流。稍後建立資產時，請使用 [ AssociateTimeSeriesToAssetProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssociateTimeSeriesToAssetProperty.html) API 將資料串流及其別名與資產屬性建立關聯。
+  如果先建立資產，請使用 [ UpdateAssetProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html) API 將別名指派給資產屬性。稍後將資料傳送至 時 AWS IoT SiteWise，會自動建立資料串流並與資產屬性建立關聯。

目前，您只能將資料串流與測量建立關聯。*測量*是一種資產屬性類型，代表裝置的原始感應器資料串流，例如時間戳記溫度值或每分鐘時間戳記輪換 (RPM) 值。

當這些測量定義指標或轉換時，傳入的資料會觸發特定的計算。請務必注意，資產屬性一次只能連結到一個資料串流。

AWS IoT SiteWise 會將 `TimeSeries`用於 Amazon Resource Name (ARN) 資源，以判斷您的儲存費用。如需詳細資訊，請參閱[AWS IoT SiteWise 定價](https://aws.amazon.com/iot-sitewise/pricing/)。

下列各節說明如何使用 AWS IoT SiteWise 主控台或 API 來管理資料串流。

**Topics**
+ [設定許可和設定](manage-data-streams-configuration.md)
+ [將資料串流與資產屬性建立關聯](manage-data-streams-method.md)
+ [取消資料串流與資產屬性的關聯](disassociate-data-streams-method.md)
+ [刪除資料串流](delete-data-streams-method.md)
+ [更新資產屬性別名](update-data-streams-method.md)
+ [常用案例](data-ingestion-scenarios.md)

# 設定許可和設定
<a name="manage-data-streams-configuration"></a>

 收到第一次序列資料 AWS IoT SiteWise 時，資料串流會自動在 中建立。如果擷取的資料未與資產屬性相關聯， AWS IoT SiteWise 會建立新的取消關聯資料串流，可設定為與資產屬性相關聯。使用 IAM 政策指定要擷取的資料類型 AWS IoT SiteWise，設定閘道傳送資料的存取控制。

 下列 IAM 政策會停用與閘道取消關聯的資料擷取，同時仍然允許資料擷取至與資產屬性相關聯的資料串流：

**Example IAM 使用者政策，可停用與閘道的取消關聯資料擷取**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
      "Sid": "AllowPutAssetPropertyValuesUsingAssetIdAndPropertyId",
      "Effect": "Allow",
      "Action": "iotsitewise:BatchPutAssetPropertyValue",
      "Resource": "arn:aws:iotsitewise:*:*:asset/*"
    },
    {
      "Sid": "AllowPutAssetPropertyValuesUsingAliasWithAssociatedAssetProperty",
      "Effect": "Allow",
      "Action": "iotsitewise:BatchPutAssetPropertyValue",
      "Resource": "arn:aws:iotsitewise:*:*:time-series/*",
      "Condition": {
        "StringLikeIfExists": {
          "iotsitewise:isAssociatedWithAssetProperty": "true"
        }
      }
    },
    {
      "Sid": "DenyPutAssetPropertyValuesUsingAliasWithNoAssociatedAssetProperty",
      "Effect": "Deny",
      "Action": "iotsitewise:BatchPutAssetPropertyValue",
      "Resource": "arn:aws:iotsitewise:*:*:time-series/*",
      "Condition": {
        "StringLikeIfExists": {
          "iotsitewise:isAssociatedWithAssetProperty": "false"
        }
      }
    }
  ]
}
```

**Example 從閘道停用所有資料擷取的 IAM 使用者政策**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyPutAssetPropertyValues",
            "Effect": "Deny",
            "Action": "iotsitewise:BatchPutAssetPropertyValue",
            "Resource": [
                "arn:aws:iotsitewise:*:*:asset/*",
                "arn:aws:iotsitewise:*:*:time-series/*"
            ]
        }
    ]
}
```

# 將資料串流與資產屬性建立關聯
<a name="manage-data-streams-method"></a>

使用 AWS IoT SiteWise 主控台 或 管理您的資料串流 AWS CLI。

------
#### [ Console ]

使用 AWS IoT SiteWise 主控台管理您的資料串流。

**管理資料串流 （主控台）**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在導覽窗格中，選擇**資料串流**。

1. 透過篩選資料串流別名來選擇資料串流，或在篩選條件下拉式選單中選取**取消關聯資料串流**。

1. 選取要更新的資料串流。您可以選取多個資料串流。按一下右上角**的管理資料串流**。

1. 從**更新資料串流關聯選取要關聯的資料串流**，然後按一下**選擇測量**按鈕。

1.  在**選擇測量**區段中，尋找對應的資產測量屬性。選取測量，然後按一下**選擇**。

1.  針對步驟 3 中選取的其他資料串流執行步驟 4 和 5。將資產屬性指派給所有資料串流。

1.  選擇**更新**以遞交變更。隨即顯示成功的確認橫幅以確認更新。

------
#### [ AWS CLI ]

 若要將資料串流 （透過其別名識別） 與資產屬性 （透過其 IDs識別） 建立關聯，請執行下列命令：

```
aws iotsitewise associate-time-series-to-asset-property \ 
    --alias <data-stream-alias> \
    --assetId <asset-ID> \
    --propertyId <property-ID>
```

------

# 取消資料串流與資產屬性的關聯
<a name="disassociate-data-streams-method"></a>

------
#### [ Console ]

使用 AWS IoT SiteWise 主控台取消資料串流與資產屬性的關聯。

**取消資料串流與資產屬性的關聯 （主控台）**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在導覽窗格中，選擇**資料串流**。

1. 透過篩選資料串流別名來選擇資料串流，或在篩選條件下拉式選單中選取**相關聯的資料串流**。

1. 選取要取消關聯的資料串流。**資料串流別名**欄必須包含別名。**資產名稱**和**資產屬性名稱**資料欄必須包含與資料串流相關聯之資產屬性的值。您可以選取多個資料串流。

1.  按一下右上角**的管理資料串流**。

1.  在**更新資料串流關聯**區段中，按一下**測量名稱**欄中的 **X**。`submitted` 狀態應該會出現在**狀態**欄中。

1.  選擇**更新**以遞交變更。資料串流現在與資產屬性取消關聯，且別名現在用於識別資料串流。

------
#### [ AWS CLI ]

若要取消資料串流與資產屬性的關聯 （由其 `ID`及其別名識別），請執行下列命令：

```
    aws iotsitewise disassociate-time-series-from-asset-property \ 
        --alias <asset-property-alias> \
        --assetId <asset-ID> \
        --propertyId <property-ID>
```

 資料串流現在會與資產屬性取消關聯，並使用別名來識別資料串流。別名不再與資產屬性相關聯，因為它現在與資料串流相關聯。

------

# 刪除資料串流
<a name="delete-data-streams-method"></a>

 從資產模型移除屬性時， 會從資產模型管理的所有資產 AWS IoT SiteWise 中刪除屬性及其資料串流。它也會在刪除資產時刪除資產的所有屬性及其資料串流。如果必須保留資料串流資料，必須先將其與資產屬性取消關聯，才能將其刪除。

**警告**  
 從資產刪除屬性時，也會刪除相關聯的資料串流。若要保留資料串流，請先將其與資產屬性取消關聯，然後再從資產模型刪除屬性，或刪除資產。

------
#### [ Console ]

使用 AWS IoT SiteWise 主控台取消資料串流與資產屬性的關聯。

**刪除資料串流 （主控台）**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1.  在導覽窗格中，選擇**資料串流**。

1.  透過篩選資料串流別名來選擇資料串流。

1.  選取要刪除的資料串流。您可以選取多個資料串流。

1.  選擇**刪除**按鈕以刪除資料串流。

------
#### [ AWS CLI ]

 使用 [ DeleteTimeSeries](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DeleteTimeSeries.html) API 依其別名刪除特定資料串流。

```
    aws iotsitewise delete-time-series \ 
        --alias <data-stream-alias>
```

------

# 更新資產屬性別名
<a name="update-data-streams-method"></a>

 別名在 AWS 區域內必須是唯一的。這包括資產屬性和資料串流的別名。如果另一個屬性或資料串流使用該別名，請勿將別名指派給資產屬性。

------
#### [ Console ]

使用 AWS IoT SiteWise 主控台更新資產屬性別名。

**更新資產屬性別名 （主控台）**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1.  在導覽窗格中，選擇 **Assets (資產)**。

1.  從資料表中選取資產。

1.  按一下 **Edit (編輯)** 按鈕。

1.  在**屬性資料表中選取屬性類型**。 ****

1.  尋找 屬性，然後在屬性別名文字欄位中輸入新的別名。

1.  按一下**儲存**按鈕以儲存變更。

------
#### [ AWS CLI ]

 若要更新資產屬性上的別名，請執行下列命令：

```
    aws iotsitewise update-asset-property \
        --asset-id <asset-ID> \
        --property-id <property-ID> \
        --property-alias <asset-property-alias> \
        --property-notification-state <ENABLED|DISABLED>
```

**注意**  
 如果屬性通知目前已啟用，則必須再次提供，以確保它繼續啟用。

------

# 常用案例
<a name="data-ingestion-scenarios"></a>

## 移動資料串流
<a name="data-ingestion-scenario-move-data-stream"></a>

 若要變更資料串流與另一個資產屬性的關聯，請先取消資料串流與目前資產屬性的關聯。取消資料串流與資產屬性的關聯時，必須有指派給該資產屬性的別名。

```
    aws iotsitewise disassociate-time-series-from-asset-property \ 
        --alias <asset-property-alias> \
        --assetId <asset-ID> \
        --propertyId <property-ID>
```

 現在將資料串流重新指派給新的資產屬性。

```
    aws iotsitewise associate-time-series-from-asset-property \ 
        --alias <data-stream-alias> \
        --assetId <new-asset-ID> \
        --propertyId <new-property-ID>
```

## 將別名指派給資產屬性時發生錯誤
<a name="data-ingestion-scenario-assetid-contains-data"></a>

 使用 `UpdateAssetProperty` API 將別名指派給屬性時，您可能會看到下列錯誤訊息：

```
Given alias <data-stream-alias> for property <property-name> with ID <property-ID> already in use by another property or data stream
```

 此錯誤訊息表示別名未指派給 屬性，因為它目前由另一個屬性或資料串流使用。

 如果 AWS IoT SiteWise 使用別名將資料擷取到 ，就會發生這種情況。當資料以其他資料串流或資產屬性未使用的別名傳送時，會使用該別名建立新的資料串流。以下兩個選項可解決問題。
+  使用 `AssociateTimeSeriesToAssetProperty` API 將資料串流與其別名與資產屬性建立關聯。
+  暫時停止資料擷取並刪除資料串流。使用 `UpdateAssetProperty` API 將別名指派給資產屬性，然後重新開啟資料擷取。

## 將資料串流與資產屬性建立關聯時發生錯誤
<a name="data-ingestion-scenario-move-data-stream"></a>

 將資料串流與資產屬性建立關聯時，會看到下列錯誤訊息。

```
assetProperty <property-name> with assetId <asset-ID> propertyId <property-ID> contains data
```

 此錯誤訊息表示資產屬性已與包含資料的資料串流相關聯。該資料串流必須先取消關聯或刪除，才能將其他資料串流與該資產屬性建立關聯。

**注意**  
 取消資料串流與資產屬性的關聯時，指派給 屬性的別名會提供給資料串流。若要讓該別名保持指派給 屬性，請先將新的別名指派給該屬性，再取消與資料串流的關聯。

 若要保留儲存在資產屬性中的資料，請執行下列動作：
+  確保資產屬性未擷取任何資料，以防止建立新的資料串流。
+  使用 `UpdateAssetProperty` API 設定提供給目前指派資料串流的新別名。
+  使用 `DisassociateTimeSeriesFromAssetProperty` API 取消目前資料串流與資產屬性的關聯。
+  使用 `AssociateTimeSeriesToAssetProperty` API 將所需的資料串流與資產屬性建立關聯。

 如果必須刪除存放在資產屬性中的資料，請執行下列動作：
+  確保資產屬性未擷取任何資料，以防止建立新的資料串流。
+  使用 `DeleteTimeSeries` API 刪除目前指派的資料串流。
+  使用 `AssociateTimeSeriesToAssetProperty` API 將所需的資料串流與資產屬性建立關聯。