

終止支援通知：在 2025 年 12 月 15 日， AWS 將終止對 的支援 AWS IoT Analytics。2025 年 12 月 15 日之後，您將無法再存取 AWS IoT Analytics 主控台或 AWS IoT Analytics 資源。如需詳細資訊，請參閱[AWS IoT Analytics 終止支援](https://docs.aws.amazon.com/iotanalytics/latest/userguide/iotanalytics-end-of-support.html)。

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

# AWS IoT Analytics （主控台） 入門
<a name="quickstart"></a>

使用此教學課程來建立您需要 AWS IoT Analytics 的資源 （也稱為元件），以探索 IoT IoT 裝置資料的實用洞見。

**備註**  
如果您在下列教學課程中輸入大寫字元， AWS IoT Analytics 會自動將它們變更為小寫。
 AWS IoT Analytics 主控台具有一鍵式入門功能，可用來建立頻道、管道、資料存放區和資料集。您可以在登入 AWS IoT Analytics 主控台時找到此功能。  
本教學課程會逐步引導您建立 AWS IoT Analytics 資源的每個步驟。

請依照下列指示建立 AWS IoT Analytics 頻道、管道、資料存放區和資料集。本教學課程也說明如何使用 AWS IoT Core 主控台來傳送要導入的訊息 AWS IoT Analytics。

**Topics**
+ [登入 AWS IoT Analytics 主控台](#quickstart-console-signin)
+ [建立頻道](#quickstart-create-channel)
+ [建立資料存放區](#quickstart-create-datastore)
+ [建立管道](#quickstart-create-pipeline)
+ [建立資料集](#quickstart-create-dataset)
+ [使用 傳送訊息資料 AWS IoT](#send-iotcore-messages)
+ [檢查 AWS IoT 訊息的進度](#check-iotcore-messages)
+ [存取查詢結果](#access-query-results)
+ [探索您的資料](#explore-data)
+ [筆記本範本](#notebook-templates)

## 登入 AWS IoT Analytics 主控台
<a name="quickstart-console-signin"></a>

若要開始使用，您必須擁有 AWS 帳戶。如果您已有 AWS 帳戶，請導覽至 https：//[https://console.aws.amazon.com/iotanalytics/](https://console.aws.amazon.com/iotanalytics/)。

如果您沒有 AWS 帳戶，請依照下列步驟建立帳戶。

**建立 AWS 帳戶**

1. 開啟 [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)。

1. 請遵循線上指示進行。

   部分註冊程序需接收來電或簡訊，並在電話鍵盤輸入驗證碼。

   當您註冊 時 AWS 帳戶，*AWS 帳戶根使用者*會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務，請將管理存取權指派給使用者，並且僅使用根使用者來執行[需要根使用者存取權的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

1. 登入 AWS 管理主控台 並導覽至 https：//[https://console.aws.amazon.com/iotanalytics/](https://console.aws.amazon.com/iotanalytics/)。

## 建立頻道
<a name="quickstart-create-channel"></a>

頻道會收集和封存原始、未處理和非結構化 IoT 裝置資料。請依照下列步驟建立您的頻道。

**建立頻道**

1. 在 [https://console.aws.amazon.com/iotanalytics/](https://console.aws.amazon.com/iotanalytics/) 的**「使用 準備資料」 AWS IoT Analytics**區段中，選擇**檢視頻道**。  
![\[「使用 準備資料的螢幕擷取畫面 AWS IoT Analytics」。\]](http://docs.aws.amazon.com/zh_tw/iotanalytics/latest/userguide/images/prepare-your-data.png)
**提示**  
您也可以從導覽窗格中選擇**頻道**。

1. 在 **Channels** (頻道) 頁面上，選擇 **Create new queue** (建立新頻道)。

1. 在**指定頻道詳細資訊**頁面上，輸入頻道的詳細資訊。

   1. 輸入唯一且您可以輕鬆識別的頻道名稱。

   1. （選用） 針對**標籤**，將一或多個自訂標籤 （索引鍵/值對） 新增至您的頻道。標籤可協助您識別為其建立的資源 AWS IoT Analytics。

   1. 選擇**下一步**。

1. AWS IoT Analytics 會將未處理的原始 IoT 裝置資料存放在 Amazon Simple Storage Service (Amazon S3) 儲存貯體中。您可以選擇自己的 Amazon S3 儲存貯體，您可以存取和管理，也可以為您 AWS IoT Analytics 管理 Amazon S3 儲存貯體。

   1. 在本教學課程中，針對**儲存類型**，選擇**服務受管儲存**。

   1. 針對**選擇儲存原始資料的時間長度**，選擇**無限期**。

   1. 選擇**下一步**。

1. 在**設定來源**頁面上，輸入 的資訊 AWS IoT Analytics 以收集訊息資料 AWS IoT Core。

   1. 輸入 AWS IoT Core 主題篩選條件，例如 `update/environment/dht1`。在本教學課程稍後，您將使用此主題篩選條件將訊息資料傳送到您的頻道。

   1. 在 **IAM 角色**區域中，選擇**建立新**角色。在**建立新角色**視窗中，輸入角色**的名稱**，然後選擇**建立角色**。這會自動建立附加適當政策的角色。

   1. 選擇**下一步**。

1. 檢閱您的選擇，然後選擇**建立頻道**。

1. 確認您的新頻道顯示在**頻道**頁面上。

## 建立資料存放區
<a name="quickstart-create-datastore"></a>

資料存放區會接收和存放您的訊息資料。資料存放區不是資料庫。相反地，資料存放區是 Amazon S3 儲存貯體中可擴展且可查詢的儲存庫。您可以針對來自不同裝置或位置的訊息使用多個資料存放區。或者，您可以根據您的管道組態和需求來篩選訊息資料。

請依照下列步驟來建立資料存放區。

**建立資料存放區**

1. 在 [https://console.aws.amazon.com/iotanalytics/](https://console.aws.amazon.com/iotanalytics/) 的**「使用 準備資料」 AWS IoT Analytics**區段中，選擇**檢視資料存放區**。

1. 在**資料存放**區頁面上，選擇**建立資料存放區**。

1. 在**指定資料存放區詳細資訊**頁面上，輸入資料存放區的基本資訊。

   1. 針對**資料存放區 ID**，輸入唯一的資料存放區 ID。您無法在建立後變更此 ID。

   1. （選用） 針對**標籤**，選擇**新增標籤**，將一或多個自訂標籤 （鍵/值對） 新增至您的資料存放區。標籤可協助您識別為其建立的資源 AWS IoT Analytics。

   1. 選擇**下一步**。

1. 在**設定儲存類型**頁面上，指定如何儲存您的資料。

   1. 針對**儲存類型**，選擇**服務受管儲存**。

   1. 針對**設定您要保留已處理資料的時間長度**，選擇**無限期**。

   1. 選擇**下一步**。

1. AWS IoT Analytics 資料存放區支援 JSON 和 Parquet 檔案格式。針對資料存放區資料格式，選擇 **JSON** 或 **Parquet**。如需 AWS IoT Analytics 支援檔案類型的詳細資訊[檔案格式](iotanalytics-schema.md)，請參閱 。

   選擇**下一步**。

1. （選用） AWS IoT Analytics 支援資料存放區中的自訂分割區，因此您可以查詢已刪除的資料以改善延遲。如需支援的自訂分割區的詳細資訊，請參閱 [自訂分割區](custom-partitioning.md)。

   選擇**下一步**。

1. 檢閱您的選擇，然後選擇**建立資料存放區**。

1. 確認您的新資料存放區顯示在**資料存放**區頁面上。

## 建立管道
<a name="quickstart-create-pipeline"></a>

您必須建立管道，將頻道連線至資料存放區。基本管道只會指定收集資料的頻道，並識別訊息傳送到的資料存放區。如需詳細資訊，請參閱[管道活動](https://docs.aws.amazon.com/iotanalytics/latest/userguide/pipeline-activities.html#aws-iot-analytics-pipeline-activities)。

在本教學課程中，您會建立僅將頻道連線至資料存放區的管道。稍後，您可以新增管道活動來處理此資料。

請依照下列步驟建立管道。

**建立管道**

1. 在 [https://console.aws.amazon.com/iotanalytics/](https://console.aws.amazon.com/iotanalytics/) 的**「使用 準備資料」 AWS IoT Analytics**區段中，選擇**檢視管道**。
**提示**  
您也可以從導覽窗格中選擇**管道**。

1. 在**管道**頁面上，選擇**建立管道**。

1. 輸入管道的詳細資訊。

   1. 在**設定管道 ID 和來源**中，輸入管道名稱。

   1. 選擇管道的來源，這是管道將從中讀取訊息的 AWS IoT Analytics 管道。

   1. 指定管道的輸出，這是存放已處理訊息資料的資料存放區。

   1. （選用） 對於**標籤**，將一或多個自訂標籤 （索引鍵/值對） 新增至管道。

   1. 在**推斷訊息屬性**頁面上，輸入屬性名稱和範例值，從清單中選擇資料類型，然後選擇**新增屬性**。

   1. 視需要對任意數量的屬性重複上述步驟，然後選擇**下一步**。

   1. 您現在不會新增任何管道活動。在**富集、轉換和篩選訊息**頁面上，選擇**下一步**。

1. 檢閱您的選擇，然後選擇**建立管道**。

1. 確認您的新管道顯示在**管道**頁面上。

**注意**  
您已建立 AWS IoT Analytics 資源，以便他們可以執行下列動作：  
使用*頻道*收集原始、未處理的 IoT 裝置訊息資料。
將 IoT 裝置訊息資料儲存在*資料存放*區中。
使用*管道*清理、篩選、轉換和豐富您的資料。
接著，您將建立 AWS IoT Analytics SQL 資料集，以探索有關 IoT 裝置的實用洞見。

## 建立資料集
<a name="quickstart-create-dataset"></a>

**注意**  
 資料集通常是資料集合，不一定會以表格形式組織。相反地， 會透過將 SQL 查詢套用至資料存放區中的資料來 AWS IoT Analytics 建立資料集。

您現在有一個頻道，將原始訊息資料路由到管道，將資料存放在可以查詢的資料存放區中。若要查詢資料，您可以建立資料集。資料集包含您用來查詢資料存放區的 SQL 陳述式和表達式，以及在您指定的日期和時間重複查詢的選用排程。您可以使用類似 [Amazon CloudWatch 排程表達式的表達](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html)式來建立選用的排程。

**建立資料集**

1. 在 [https://console.aws.amazon.com/iotanalytics/](https://console.aws.amazon.com/iotanalytics/) 的**左側導覽窗格中**，選擇**資料集**。

1. 在**建立資料集**頁面上，選擇**建立 SQL**。

1. 在**指定資料集詳細資訊**頁面上，指定資料集的詳細資訊。

   1. 輸入資料集的名稱。

   1. 針對**資料存放區來源**，選擇可識別您先前建立之資料存放區的唯一 ID。

   1. （選用） 對於**標籤**，將一或多個自訂標籤 （索引鍵/值對） 新增至資料集。

1. 使用 SQL 表達式查詢您的資料並回答分析問題。查詢的結果會存放在此資料集。

   1. 在**作者查詢**欄位中，輸入使用萬用字元來顯示最多五列資料的 SQL 查詢。

      ```
      SELECT * FROM my_data_store LIMIT 5
      ```

       如需 中支援之 SQL 功能的詳細資訊 AWS IoT Analytics，請參閱 [中的 SQL 表達式 AWS IoT Analytics](sql-support.md)。

   1. 您可以選擇**測試查詢**來驗證您的輸入是否正確，並在查詢之後的表格中顯示結果。
**注意**  
目前在教學課程中，您的資料存放區可能是空的。在空白資料存放區上執行 SQL 查詢不會傳回結果，因此您可能只會看到 `__dt`。
您必須小心將 SQL 查詢限制在合理的大小，使其不會長時間執行，因為 Athena [會限制執行中查詢的數量上限](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#amazon-athena-limits)。因此，您必須小心將 SQL 查詢限制在合理的大小。  
我們建議在測試期間在查詢中使用 `LIMIT`子句。測試成功後，您可以移除此子句。

1. （選用） 當您使用指定時間範圍的資料建立資料集內容時，某些資料可能無法及時送達進行處理。若要允許延遲，您可以指定位移或差異。如需詳細資訊，請參閱[透過 Amazon CloudWatch Events 取得延遲資料通知](late-data-notification.md)。

   此時，您不會設定資料選擇篩選條件。在**設定資料選擇篩選條件**頁面上，選擇**下一步**。

1. （選用） 您可以排程此查詢定期執行以重新整理資料集。您可以隨時建立和編輯資料集排程。

   此時，您不會排程重複執行查詢，因此在**設定查詢排程**頁面上選擇**下一步**。

1. AWS IoT Analytics 會建立此資料集內容的版本，並在指定的期間內存放您的分析結果。我們建議 90 天，但您可以選擇設定自訂保留政策。您也可以限制資料集內容的儲存版本數量。

   您可以使用預設資料集保留期為**無限期**，並保持停用**版本控制**。在**設定分析結果**頁面上，選擇**下一步**。

1. （選用） 您可以設定資料集結果的交付規則到特定目的地，例如 AWS IoT Events。

   您不會在本教學課程中的其他位置交付結果，因此在**設定資料集內容交付規則**頁面上，選擇**下一步**。

1. 檢閱您的選擇，然後選擇**建立資料集**。

1. 確認您的新資料集顯示在**資料集**頁面上。

## 使用 傳送訊息資料 AWS IoT
<a name="send-iotcore-messages"></a>

如果您有將資料路由到管道的頻道，該管道會將資料存放在可查詢的資料存放區中，您就可以將 IoT 裝置資料傳送到其中 AWS IoT Analytics。您可以使用下列選項 AWS IoT Analytics 將資料傳送至 ：
+ 使用 AWS IoT 訊息中介裝置。
+ 使用 AWS IoT Analytics [BatchPutMessage](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html) API 操作。

在下列步驟中 AWS IoT Core ，您會從 主控台中的 AWS IoT 訊息中介裝置傳送訊息資料，讓 AWS IoT Analytics 可以擷取此資料。

**注意**  
當您為訊息建立主題名稱時，請注意下列事項：  
主題名稱不區分大小寫。相同承載`EXAMPLE`中名為 `example`和 的欄位視為重複。
主題名稱不能以 `$` 字元開頭。開頭為 的主題`$`是預留主題，只能由 使用 AWS IoT。
請勿在主題名稱中包含個人身分識別資訊，因為此資訊可能會出現在未加密的通訊和報告中。
AWS IoT Core 無法在 AWS 帳戶或 AWS 區域之間傳送訊息。

**使用 傳送訊息資料 AWS IoT**

1. 登入 [AWS IoT 主控台](https://console.aws.amazon.com/iot)。

1. 在導覽窗格中，選擇**測試**，然後選擇 **MQTT 測試用戶端**。

1. 在 **MQTT 測試用戶端**頁面上，選擇**發佈至主題**。

1. 針對**主題名稱**，輸入與您在建立頻道時輸入的主題篩選條件相符的名稱。此範例使用 `update/environment/dht1`。

1. 針對**訊息承載**，輸入下列 JSON 內容。

   ```
   {
     "thingid": "dht1",
     "temperature": 26,
     "humidity": 29,
     "datetime": "2018-01-26T07:06:01"
   }
   ```

1. （選用） 選擇**新增組態**以取得其他訊息通訊協定選項。

1. 選擇 **Publish** (發布)。

   這會發佈頻道擷取的訊息。然後，您的管道會將訊息路由到您的資料存放區。

## 檢查 AWS IoT 訊息的進度
<a name="check-iotcore-messages"></a>

您可以依照下列步驟檢查訊息是否正在擷取到您的頻道。

**檢查 AWS IoT 訊息的進度**

1. 登入 https：//[https://console.aws.amazon.com/iotanalytics/](https://console.aws.amazon.com/iotanalytics/)。

1. 在導覽窗格中，選擇**頻道**，然後選擇您先前建立的頻道名稱。

1. 在**頻道的詳細資訊**頁面上，向下捲動至**監控**區段，然後調整顯示的時間範圍 (**1h 3h 12h 1d 3d 1w**)。選擇 **1w** 之類的值，以檢視上週的資料。

您可以使用類似的功能來監控管道活動執行時間和**管道詳細資訊頁面上的**錯誤。在本教學課程中，您尚未將活動指定為管道的一部分，因此不應看到任何執行時間錯誤。

**監控管道活動**

1. 在導覽窗格中，選擇**管道**，然後選擇您先前建立的管道名稱。

1. 在**管道的詳細資訊**頁面上，向下捲動至**監控**區段，然後選擇其中一個時間範圍指標 (**1h 3h 12h 1d 3d 1w) **來調整顯示的時間範圍。

## 存取查詢結果
<a name="access-query-results"></a>

資料集內容是以 CSV 格式包含查詢結果的檔案。

1. 在 [https://console.aws.amazon.com/iotanalytics/](https://console.aws.amazon.com/iotanalytics/) 的左側導覽窗格中，選擇**資料集**。

1. 在**資料集**頁面上，選擇您先前建立的資料集名稱。

1. 在資料集資訊頁面的右上角，選擇**立即執行**。

1. 若要檢查資料集是否已就緒，請查看資料集下是否有**與您已成功啟動資料集查詢**類似的訊息。**資料集內容**索引標籤包含查詢結果，並顯示**成功**。

1. 若要預覽成功查詢的結果，請在**資料集內容**索引標籤上，選取查詢名稱。若要檢視或儲存包含查詢結果的 CSV 檔案，請選擇**下載**。
**注意**  
AWS IoT Analytics 可以在**資料集內容**頁面上嵌入 Jupyter 筆記本的 HTML 部分。如需詳細資訊，請參閱[使用主控台視覺化 AWS IoT Analytics 資料](data-visualization.md#visualization-console)。

## 探索您的資料
<a name="explore-data"></a>

您有多種儲存、分析和視覺化資料的選項。

Amazon Simple Storage Service  
您可以將資料集內容傳送至 [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) 儲存貯體，以便與現有資料湖整合，或從內部應用程式和視覺化工具存取。請參閱 [CreateDataset](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-createdataset) 操作`contentDeliveryRules::destination::s3DestinationConfiguration`中的 欄位。

AWS IoT Events  
您可以傳送資料集內容做為輸入 AWS IoT Events，此服務可讓您監控裝置或程序操作失敗或變更，並在發生此類事件時啟動其他動作。  
若要這樣做，請使用 [CreateDataset](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-createdataset) 操作建立資料集，並在 欄位 中指定 AWS IoT Events 輸入`contentDeliveryRules :: destination :: iotEventsDestinationConfiguration :: inputName`。您也必須指定角色`roleArn`的 ，以授予執行 的 AWS IoT Analytics 許可`iotevents:BatchPutMessage`。每當資料集內容建立時， AWS IoT Analytics 都會將每個資料集內容項目做為訊息傳送至指定的 AWS IoT Events 輸入。例如，如果您的資料集包含下列內容。  

```
"what","who","dt"
"overflow","sensor01","2019-09-16 09:04:00.000"
"overflow","sensor02","2019-09-16 09:07:00.000"
"underflow","sensor01","2019-09-16 11:09:00.000"
...
```
然後 AWS IoT Analytics 傳送包含如下欄位的訊息。  

```
{ "what": "overflow", "who": "sensor01", "dt": "2019-09-16 09:04:00.000" }
```

```
{ "what": "overflow", "who": "sensor02", "dt": "2019-09-16 09:07:00.000" } 
```
您會想要建立可辨識您感興趣的欄位的 AWS IoT Events 輸入 (`what`、、`who`、 的一或多個`dt`)，並建立偵測器 AWS IoT Events 模型，在事件中使用這些輸入欄位來觸發動作或設定內部變數。

Jupyter 筆記本  
[Jupyter Notebook](https://jupyter.org/) 是一種開放原始碼解決方案，可使用指令碼語言來執行臨機操作資料探索和進階分析。您可以深入探索並套用更複雜的分析，並在 IoT 裝置資料上使用機器學習方法，例如用於預測的 k 平均值叢集和迴歸模型。  
AWS IoT Analytics 使用 Amazon SageMaker AI 筆記本執行個體託管其 Jupyter 筆記本。建立筆記本執行個體之前，您必須在 AWS IoT Analytics 和 Amazon SageMaker AI 之間建立關係：  

1. 導覽至 [SageMaker AI 主控台](https://console.aws.amazon.com/sagemaker/)並建立筆記本執行個體：

   1. 填入詳細資訊，然後選擇 **Create a new role (建立新角色)**。請記下角色 ARN。

   1. 建立筆記本執行個體。

1. 前往 [IAM 主控台](https://console.aws.amazon.com/iam/)並修改 SageMaker AI 角色：

   1. 開啟角色。它應該有一個受管政策。

   1. 選擇**新增內嵌政策**，然後在**服務**中選擇 **iotAnalytics**。選擇**選取動作**，然後在**GetDatasetContent**搜尋方塊中輸入 ，然後選擇它。選擇**檢閱政策**。

   1. 檢閱政策的準確性，輸入名稱，然後選擇**建立政策**。
這提供新建立的角色從中讀取資料集的許可 AWS IoT Analytics。  

1. 返回 [https://console.aws.amazon.com/iotanalytics/](https://console.aws.amazon.com/iotanalytics/)，然後在左側導覽窗格中，選擇**筆記本**。在**筆記本**頁面上，選擇**建立筆記本**。

1. 在**選取範本**頁面上，選擇 **IoTA 空白範本**。

1. 在**設定筆記本**頁面上，輸入筆記本的名稱。在**選取資料集來源**中，選擇 ，然後選擇您先前建立的資料集。在**選取筆記本執行個體**中，選擇您在 SageMaker AI 中建立的筆記本執行個體。

1. 檢閱您的選擇後，選擇**建立筆記本**。

1. 在**筆記本**頁面上，您的筆記本執行個體將在 [Amazon SageMaker AI ](SMconsole_link;)主控台中開啟。

## 筆記本範本
<a name="notebook-templates"></a>

 AWS IoT Analytics 筆記本範本包含 AWS 撰寫的機器學習模型和視覺化，可協助您開始使用 AWS IoT Analytics 使用案例。您可以使用這些筆記本範本來進一步了解或重複使用這些範本，以符合您的 IoT 裝置資料並提供立即價值。

您可以在 AWS IoT Analytics 主控台中找到下列筆記本範本：
+ **偵測情境異常** – 使用 Poisson 指數加權移動平均 (PEWMA) 模型，以測量風速套用情境異常偵測。
+ **太陽面板輸出預測** – 套用分段、季節性和線性時間序列模型來預測太陽面板的輸出。
+ **噴射引擎的預測性維護** – 套用多變量長短期記憶體 (LSTM) 神經網路和邏輯回歸來預測噴射引擎故障。
+ **智慧家庭客戶區隔** – 套用 k 平均值和主體元件分析 (PCA) 分析，以偵測智慧家庭使用量資料中的不同客戶客群。
+ **智慧城市擁塞預測** – 使用 LSTM 預測城市高速公路的使用率。
+ **智慧城市空氣品質預測** – 使用 LSTM 預測城市中心的粒子污染。