

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

# WorkSpaces 應用程式用量報告
<a name="configure-usage-reports"></a>

您可以訂閱 Amazon WorkSpaces 應用程式用量報告，以接收有關使用者如何使用服務的詳細報告。每天會將兩個 .csv 檔案匯出至您帳戶中的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。

**注意**  
若要啟用 WorkSpaces 應用程式用量報告，您必須使用在 2019 年 5 月 7 日或之後發行的 WorkSpaces 應用程式代理程式版本映像。

**Topics**
+ [啟用 WorkSpaces 應用程式用量報告](enable-usage-reports.md)
+ [WorkSpaces 應用程式用量報告欄位](usage-reports-fields.md)
+ [建立自訂報告和分析 WorkSpaces 應用程式用量資料](configure-custom-reports-analyze-usage-data.md)

# 啟用 WorkSpaces 應用程式用量報告
<a name="enable-usage-reports"></a>

若要接收用量報告，您可以使用 WorkSpaces 應用程式主控台、 AWS Command Line Interface (AWS CLI) 或 `CreateUsageReportSubscription` API 操作來訂閱這些報告。您必須針對要接收用量資料的每個 AWS 區域分別啟用用量報告。

**注意**  
您可以隨時啟動或停止用量報告的訂閱。訂閱用量報告不必付費，但存放在 S3 儲存貯體中的報告可能須支付標準 Amazon S3 費用。如需詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

若要使用 WorkSpaces 應用程式主控台訂閱 WorkSpaces 應用程式的用量報告，請執行下列步驟。

1. 在 https：//[https://console.aws.amazon.com/appstream2/home](https://console.aws.amazon.com/appstream2/home) 開啟 WorkSpaces 應用程式主控台。

1. 選擇您要啟用用量報告的 AWS 區域。

1. 在導覽窗格中，選擇 **Usage Reports (用量報告)**。

1. 選擇 **Enabled** (已啟用)，然後選擇 **Apply** (套用)。

如果您為工作階段指令碼組態啟用執行個體工作階段指令碼和 Amazon S3 記錄，WorkSpaces 應用程式會建立 S3 儲存貯體來存放指令碼輸出。此儲存貯體專屬於您的帳戶和區域。在此情況下，當您啟用用量報告時，WorkSpaces 應用程式會使用相同的儲存貯體來存放您的用量報告。如果您尚未啟用執行個體工作階段指令碼，當您啟用用量報告時，WorkSpaces 應用程式會在下列位置建立新的 S3 儲存貯體：

```
appstream-logs-region-code-account-id-without-hyphens-random-identifier
```

***region-code***  
啟用用量報告之區域的區域 AWS 代碼。

***account-id-without-hyphens***  
您的 Amazon Web Services 帳戶識別符。隨機識別符可確保同一區域中的其他儲存貯體不會發生衝突。儲存貯體名稱的第一部分 `appstream-logs`，不會因為跨帳戶或區域而變更。

例如，如果您在美國西部 （奧勒岡） 區域 (us-west-2) 啟用帳號 123456789012 的用量報告，WorkSpaces 應用程式會在您的帳戶內建立 Amazon S3 儲存貯體，類似於下列範例所示的名稱：

```
appstream-logs-us-west-2-1234567890123-abcdefg
```

只有具備足夠許可的管理員可以刪除這個儲存貯體。

**Topics**
+ [WorkSpaces 應用程式工作階段報告](usage-report-types-sessions-reports.md)
+ [WorkSpaces 應用程式應用程式報告](usage-report-types-applications-reports.md)

# WorkSpaces 應用程式工作階段報告
<a name="usage-report-types-sessions-reports"></a>

對於使用者在您的 Amazon Web Services 帳戶中啟動至少一個串流工作階段的每一天，WorkSpaces 應用程式都會將工作階段報告匯出到您的 Amazon S3 儲存貯體。報告名為 **daily-session-report-[YYYY]-[MM]-[DD].csv** 並且會存放在 Amazon S3 帳戶中的巢狀資料夾結構內，並使用以下資料夾路徑：

[bucket\$1name]/sessions/schedule=DAILY/year=[YYYY]/month=[MM]/day=[DD]/

如果您選擇使用 Amazon Athena 查詢報告，這種巢狀結構有助於分割。Athena 是互動式的無伺服器查詢服務，可供您使用標準 SQL 來分析存放在 S3 儲存貯體中的資料。如需詳細資訊，請參閱[建立自訂報告和分析 WorkSpaces 應用程式用量資料](configure-custom-reports-analyze-usage-data.md)。

在工作階段報告中，每一個使用者工作階段都會使用單一記錄來說明。系統會根據作為報告主題當日結束時 24 小時內的 UTC 時間，每天產生工作階段報告。如果工作階段跨越多天，則工作階段記錄會出現在工作階段結束當日所對應的工作階段報告內。如需工作階段報告內所含資料的相關資訊，請參閱[工作階段報告欄位](usage-reports-fields-sessions-reports.md)。

# WorkSpaces 應用程式應用程式報告
<a name="usage-report-types-applications-reports"></a>

對於使用者在串流工作階段期間啟動至少一個應用程式的每一天，WorkSpaces 應用程式都會將應用程式報告匯出到您的 Amazon S3 儲存貯體。報告名為 **daily-app-report-[YYYY]-[MM]-[DD].csv** 並且會存放在 Amazon S3 帳戶中的巢狀資料夾結構內，並使用以下資料夾路徑：

[bucket\$1name]/applications/schedule=DAILY/year=[YYYY]/month=[MM]/day=[DD]/

如果您選擇使用 Amazon Athena 查詢報告，這種巢狀結構有助於分割。Athena 是互動式的無伺服器查詢服務，可供您使用標準 SQL 來分析存放在 S3 儲存貯體中的資料。如需詳細資訊，請參閱[建立自訂報告和分析 WorkSpaces 應用程式用量資料](configure-custom-reports-analyze-usage-data.md)。

在應用程式報告中，每一個應用程式啟動都會使用單一記錄來說明。例如，如果使用者在工作階段期間啟動五個個別的應用程式，則相關的應用程式報告中會出現五個個別的記錄。如果發生下列事件，便會將應用程式記錄為已啟動：
+ 應用程式在工作階段開始時直接啟動，因為該應用程式識別符內嵌在串流 URL 或轉送狀態中。
+ 使用者在啟動新的串流工作階段時，從應用程式目錄選擇了該應用程式。
+ 使用者在串流工作階段期間，從應用程式目錄清單選擇了該應用程式。

應用程式報告未包含以其他方式啟動的應用程式。例如，如果您為使用者提供 Windows 檔案總管、PowerShell 或 Windows 桌面**開始**功能表的存取權，而且使用者使用這些工具來直接啟動應用程式，或是如果其他程式或指令碼啟動應用程式，則這些應用程式啟動不會包含在應用程式報告內。

系統會根據作為報告主題當日結束時 24 小時內的 UTC 時間，每天產生應用程式報告。如果工作階段跨越多天，則在工作階段期間啟動的應用程式，會反映在工作階段期結束當日所對應的應用程式報告內。如需應用程式報告內所含資料的相關資訊，請參閱[應用程式報告欄位](usage-reports-fields-applications-reports.md)。

# WorkSpaces 應用程式用量報告欄位
<a name="usage-reports-fields"></a>

本主題提供有關 WorkSpaces 應用程式用量報告中包含的欄位的資訊。

**Topics**
+ [工作階段報告欄位](usage-reports-fields-sessions-reports.md)
+ [應用程式報告欄位](usage-reports-fields-applications-reports.md)

# 工作階段報告欄位
<a name="usage-reports-fields-sessions-reports"></a>

下表說明 WorkSpaces 應用程式工作階段報告中包含的欄位。


| 欄位名稱 | Description | 
| --- | --- | 
| user\$1session\$1id | 工作階段的唯一識別符 (ID)。 | 
| aws\$1account\$1id | Amazon Web Services 帳戶 ID。 | 
| region |  AWS 區域。 | 
| session\$1start\$1time |  工作階段開始的日期和時間。必須以 ISO 8601 格式指定為 UTC。  | 
| session\$1end\$1time |  工作階段結束的日期和時間。必須以 ISO 8601 格式指定為 UTC。  | 
| session\$1duration\$1in\$1seconds | 工作階段的持續時間 (以秒為單位)。 | 
| user\$1id | 使用者在驗證類型內的唯一識別符。 | 
| user\$1arn | 使用者的 Amazon Resource Name (ARN)。 | 
| authentication\$1type |  用於驗證使用者的方法。 可能的值：`CUSTOM` \$1 `SAML` \$1 `USERPOOL`  | 
| authentication\$1type\$1user\$1id | 使用者識別符和驗證類型的串連，可供唯一識別使用者以便估算使用者費用。如需詳細資訊，請參閱 [WorkSpaces 應用程式定價](https://aws.amazon.com/appstream2/pricing/)。 | 
| fleet\$1name | 與工作階段相關聯之機群的名稱。 | 
| stack\$1name | 與工作階段相關聯之堆疊的名稱。 | 
| instance\$1type | 用於工作階段的 WorkSpaces 應用程式執行個體類型。如需執行個體類型的清單，請參閱 [WorkSpaces 應用程式定價](https://aws.amazon.com/appstream2/pricing/)。 | 
| eni\$1private\$1ip\$1address | WorkSpaces 應用程式執行個體用於網路通訊的彈性網路界面 IP 地址。 | 
| connected\$1at\$1least\$1once |  指出使用者是否已連線到工作階段至少一次。 可能的值：`true` \$1 `false`  | 
| client\$1ip\$1addresses | 用來連線到工作階段的使用者裝置相關聯的 IP 地址。如果使用者在連線到工作階段後又與之中斷連線的次數超過一次，則最多只會儲存最後 10 個不同的 IP 地址，並以分號分隔。 | 
| google\$1drive\$1enabled |  指出是否已啟用 Google 雲端硬碟來作為工作階段的持久性儲存選項。如需詳細資訊，請參閱[為您的 WorkSpaces 應用程式使用者啟用和管理 Google Drive](google-drive.md)。 可能的值：`true` \$1 `false`  | 
| one\$1drive\$1enabled |  指出是否已啟用 OneDrive 來作為工作階段的持久性儲存選項。如需詳細資訊，請參閱[為您的 WorkSpaces 應用程式使用者啟用和管理 Google Drive](google-drive.md)。 可能的值：`true` \$1 `false`  | 
| home\$1folders\$1storage\$1location | 使用主資料夾存放的檔案所使用 Amazon S3 儲存貯體。 | 
| user\$1settings\$1clipboard\$1copy\$1from\$1local\$1device |  指出使用者是否能在工作階段期間，使用剪貼簿將資料從本機裝置複製到串流工作階段。 可能的值：`ENABLED` \$1 `DISABLED`  | 
| user\$1settings\$1clipboard\$1copy\$1to\$1local\$1device |  指出使用者是否能在工作階段期間，使用剪貼簿將資料從串流工作階段複製到本機裝置。 可能的值：`ENABLED` \$1 `DISABLED`  | 
| user\$1settings\$1file\$1upload |  指出使用者是否能在工作階段期間，將檔案從本機裝置上傳到串流工作階段。 可能的值：`ENABLED` \$1 `DISABLED`  | 
| user\$1settings\$1file\$1download |  指出使用者是否能在工作階段期間，將檔案從串流工作階段下載到本機裝置。 可能的值：`ENABLED` \$1 `DISABLED`  | 
| user\$1settings\$1printing\$1to\$1local\$1device |  指出使用者是否能在工作階段期間，將檔案從串流工作階段列印到本機裝置。 可能的值：`ENABLED` \$1 `DISABLED`  | 
| application\$1settings\$1enabled |  指出是否已為工作階段啟用應用程式設定持久性。 可能的值：`true` \$1 `false`  | 
| domain\$1joined |  指出 WorkSpaces 應用程式串流執行個體是否在工作階段啟動時加入 Active Directory 網域。如需詳細資訊，請參閱[搭配 WorkSpaces 應用程式使用 Active Directory](active-directory.md)。 可能的值：`Y` \$1 `N`  | 
| max\$1session\$1duration | 工作階段允許的持續時間上限 (以秒為單位)。 | 
| session\$1type |  工作階段類型。 可能的值：`ALWAYS_ON` \$1 `ON_DEMAND`  | 
| stream\$1view |  串流檢視。 可能的值：`APPLICATION` \$1 `DESKTOP`  | 
| streaming\$1experience\$1settings\$1protocol |  工作階段結束串流使用的通訊協定。 可能的值：`UDP` \$1 `TCP`  | 
| instance\$1id | 與使用者工作階段相關聯的執行個體 ID。 | 
| is\$1multisession |  指出工作階段是否屬於多工作階段機群。 可能的值：`true` \$1 `false`  | 

# 應用程式報告欄位
<a name="usage-reports-fields-applications-reports"></a>

下表說明 WorkSpaces 應用程式報告中包含的欄位。


| 欄位名稱 | Description | 
| --- | --- | 
| user\$1session\$1id | 工作階段的唯一識別符 (ID)。 | 
| application\$1name | 應用程式的名稱，如映像助理中指定。當使用者透過 WorkSpaces 應用程式界面啟動應用程式時，會提供此值。 | 
| schedule | 用來產生報告的頻率。 可能的值：DAILY | 
| year | 報告的年份。 | 
| month | 報告的月份。 | 
| day | 報告的日期。 | 

# 建立自訂報告和分析 WorkSpaces 應用程式用量資料
<a name="configure-custom-reports-analyze-usage-data"></a>

Amazon Athena 是互動式的無伺服器查詢服務，可供您使用標準 SQL 查詢來分析存放在 S3 儲存貯體中的資料。您可以使用 Athena 來彙總用量報告或產生其他類型的自訂報告。

**Topics**
+ [建立 AWS Glue 爬蟲程式](configure-custom-reports-create-crawler.md)
+ [使用 AWS Glue 爬蟲程式建立資料目錄](configure-custom-reports-create-data-catalog.md)
+ [建立並執行 Athena 查詢](configure-custom-reports-create-run-athena-queries.md)
+ [使用 Athena 查詢](configure-custom-reports-example-sql-queries.md)

# 建立 AWS Glue 爬蟲程式
<a name="configure-custom-reports-create-crawler"></a>

AWS Glue 是一種全受管擷取、轉換和載入 (ETL) 服務，可讓您從 Amazon S3 資料建立資料庫，並使用 Athena 查詢該資料庫。此資料庫也稱為 AWS Glue Data Catalog。 AWS Glue 爬蟲程式可以自動偵測 Amazon S3 資料的結構描述，並建立對應的資料庫和資料表。WorkSpaces 應用程式提供 CloudFormation 範本，可用來建立必要的 AWS Glue 資源。

**重要**  
完成下列程序中的步驟會建立 AWS Glue 爬蟲程式。不過，這些步驟不會啟動爬蟲程式。若要啟動爬蟲程式，您必須執行下一個程序中的步驟。如需 AWS Glue 爬蟲程式的詳細資訊，請參閱[定義爬蟲程式](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)。

**建立 AWS Glue 爬蟲程式**

1. 在 https：//[https://console.aws.amazon.com/appstream2/home](https://console.aws.amazon.com/appstream2/home) 開啟 WorkSpaces 應用程式主控台。

1. 選擇您已訂閱用量報告的 AWS 區域。

1. 在導覽窗格中選擇 **Usage Reports (用量報告)**，然後確認已啟用用量報告記錄。

1. 在 **Report Details (報告詳細資料)** 索引標籤中，於 **Analytics (分析)** 旁的段落選擇 **CloudFormation template (CloudFormation 範本)** 連結。

   選擇連結會開啟 CloudFormation 主控台，您可以在其中檢閱範本指定的 CloudFormation 堆疊參數，然後再執行它。範本會在執行時建立 AWS Glue 爬蟲程式和數個範例 Athena 查詢。

1. 在 **Specify Details (指定詳細資料)** 頁面上的 **ScheduleExpression** 旁邊，保留預設值或指定不同的 Cron 表達式來作為您所需的爬蟲程式執行頻率。請勿變更任何其他預設值。完成後，請選擇 **Next (下一步)**。

   在預設情況下，爬蟲程式會排定為每天執行，但您也可以將爬蟲程式設定為以每週、每月或其他頻率來執行。如需 Cron 語法的相關資訊，請參閱 [Cron 表達式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions)。

1. 在 **Options (選項)** 頁面上保留預設值，然後選擇 **Next (下一步)**。

1. 在**檢閱**頁面上，選取「我確認 CloudFormation 可能會使用自訂名稱建立 IAM 資源」旁的核取方塊，然後選擇**建立**。

   您必須擁有足夠的 AWS Glue 和 AWS Identity and Access Management (IAM) 許可，才能建立和執行 CloudFormation 堆疊。如果您沒有所需許可，可請 Amazon Web Services 帳戶管理員在您的帳戶中執行這些步驟，或授予您以下許可。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "athena:CreateNamedQuery",
                   "athena:BatchGetNamedQuery",
                   "athena:GetNamedQuery",
                   "athena:StartQueryExecution",
                   "athena:GetQueryResults",
                   "athena:GetQueryExecution",
                   "athena:ListNamedQueries",
                   "cloudformation:DescribeStacks",
                   "cloudformation:GetStackPolicy",
                   "cloudformation:DescribeStackEvents",
                   "cloudformation:CreateStack",
                   "cloudformation:GetTemplate",
                   "cloudformation:ListChangeSets",
                   "cloudformation:ListStackResources",
                   "iam:GetRole",
                   "iam:CreateRole",
                   "iam:GetRolePolicy",
                   "s3:GetBucketLocation",
                   "s3:ListBucketMultipartUploads",
                   "s3:ListBucket",
                   "s3:ListMultipartUploadParts",
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:AbortMultipartUpload"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*",
                   "arn:aws:cloudformation:*:*:stack/AppStreamUsageReports/*",
                   "arn:aws:athena:*:*:workgroup/primary",
                   "arn:aws:s3:::aws-athena-query-results-*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iam:AttachRolePolicy",
                   "iam:PutRolePolicy",
                   "s3:GetObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::appstream-logs-*",
                   "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*"
               ],
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": "glue.amazonaws.com"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "cloudformation:GetTemplateSummary",
                   "glue:GetResourcePolicy",
                   "glue:GetCrawlers",
                   "glue:BatchGetCrawlers",
                   "glue:GetClassifiers",
                   "glue:CreateClassifier",
                   "glue:ListCrawlers",
                   "glue:GetTags",
                   "glue:GetCrawlerMetrics",
                   "glue:GetClassifier",
                   "tag:GetResources"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "athena:RunQuery",
               "Resource": "arn:aws:athena:*:*:workgroup/primary"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "glue:GetTables",
                   "glue:GetPartitions",
                   "glue:GetTable"
               ],
               "Resource": [
                   "arn:aws:glue:*:*:table/appstream-usage/*",
                   "arn:aws:glue:*:*:database/appstream-usage",
                   "arn:aws:glue:*:*:catalog"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "glue:GetDatabase",
                   "glue:CreateDatabase",
                   "glue:GetDatabases"
               ],
               "Resource": [
                   "arn:aws:glue:*:*:database/appstream-usage",
                   "arn:aws:glue:*:*:catalog"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "glue:GetCrawler",
                   "glue:StartCrawler",
                   "glue:CreateCrawler"
               ],
               "Resource": "arn:aws:glue:*:*:crawler/appstream-usage*"
           },
           {
               "Effect": "Allow",
               "Action": "glue:GetCatalogImportStatus",
               "Resource": "arn:aws:glue:*:*:catalog"
           }
       ]
   }
   ```

------

# 使用 AWS Glue 爬蟲程式建立資料目錄
<a name="configure-custom-reports-create-data-catalog"></a>

 AWS Glue 爬蟲程式在執行時，會建立對應至工作階段和應用程式報告結構的資料目錄和結構描述。每次將新報告存放在 Amazon S3 儲存貯體時，您必須執行爬蟲程式，以使用新報告的資料來更新 AWS Glue Data Catalog。

**注意**  
執行 AWS Glue 爬蟲程式可能需要付費。如需詳細資訊，請參閱[AWS Glue 定價](https://aws.amazon.com/glue/pricing/)。

1. 在 https：//[https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) 開啟 AWS Glue 主控台。

1. 選擇您已訂閱用量報告的 AWS 區域。

1. 選取 **appstream-usage-sessions-crawler** 爬蟲程式旁的核取方塊，然後選擇 **Run crawler (執行爬蟲程式)**。對名為 **appstream-usage-apps-crawler** 的爬蟲程式重複這個步驟。

   執行這些步驟會執行爬蟲程式，並將它們排程為根據 CloudFormation 堆疊中指定的排程自動執行。

1. 兩個爬蟲程式都執行完後，在導覽窗格中選擇 **Databases (資料庫)**。隨即會顯示代表用量報告的 **appstream-usage** 資料庫。此資料庫是在執行 **appstream-usage-sessions-crawler** 和 **appstream-usage-apps-crawler** 時建立的 AWS Glue Data Catalog。

1. 若要檢視資料庫中的表格，請選擇 **appstream-usage** > **Tables (表格)**。隨即會顯示兩個表格 (**應用程式**和**工作階段**)，分別代表應用程式和工作階段用量報告。選擇任一表格即可檢視其結構描述。

   您現在可以使用 SQL 在 Athena 中查詢這些資料表。

# 建立並執行 Athena 查詢
<a name="configure-custom-reports-create-run-athena-queries"></a>

若要使用 Athena 來查詢用量報告，請執行以下步驟。
**注意**  
您執行的 Athena 查詢可能會產生費用。如需詳細資訊，請參閱 [Amazon Athena 定價](https://aws.amazon.com/athena/pricing/)。

1. 前往 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) 開啟 Athena 主控台。

1. 在 **Database (資料庫)** 中，選擇 **appstream-usage**。

1. 在查詢窗格中輸入 SQL 查詢，然後選擇 **Run query (執行查詢)**。

# 使用 Athena 查詢
<a name="configure-custom-reports-example-sql-queries"></a>

本節提供可在 Athena 中執行以分析 Amazon S3 儲存貯體中的用量報告資料的 SQL 查詢。

若要建立所有工作階段在給定月份的合併報告，請執行下列查詢：

```
SELECT *
FROM "appstream-usage"."sessions"
WHERE year='four-digit-year'
AND month='two-digit-month'
```

您也可以在查詢中的**應用程式**和**工作階段**表格之間執行加入操作。例如，若要檢視在給定月份啟動每個應用程式的不同使用者，請執行以下查詢：

```
SELECT DISTINCT apps.application_name, sessions.user_id
FROM "appstream-usage"."applications" apps
   INNER JOIN "appstream-usage"."sessions" sessions ON (apps.user_session_id = sessions.user_session_id AND sessions.year='four-digit-year' AND sessions.month='two-digit-month')
WHERE apps.year='four-digit-year'
  AND apps.month='two-digit-month'
ORDER BY 1, 2
```

Athena 查詢結果會以 .csv 檔案的形式儲存在名為 `aws-athena-query-results-account-id-without-hyphens-region-code` 的帳戶中的 Amazon S3 儲存貯體內。為了能夠簡單地找到查詢結果，請選擇 **Save as (另存新檔)** 並為查詢提供名稱，然後才執行查詢。您也可以選擇 **Athena 結果**窗格中的下載圖示，將查詢結果下載為 .csv 檔案。

為了提高效能並降低成本，Athena 會使用分割來降低查詢所掃描的資料量。如需詳細資訊，請參閱[分割資料](https://docs.aws.amazon.com/athena/latest/ug/partitions.html)。在 Amazon S3 儲存貯體中，用量報告會依年、月和日來分割。您可以在查詢中使用 **year (年)**、**month (月)** 和 **day (日)** 欄位作為條件，將查詢限縮在某個日期範圍的分割。例如，以下查詢只會擷取 2019 年 5 月 19 日當週的工作階段報告。

```
SELECT SUBSTRING(session_start_time, 1, 10) AS report_date, 
    COUNT(DISTINCT user_session_id) AS num_sessions
FROM "appstream-usage"."sessions"
WHERE year='2019'
   AND month='05'
   AND day BETWEEN '19' and '25'
GROUP BY 1
ORDER BY 1
```

相反地，以下查詢雖會產生相同結果，但因為未限縮在任何分割，所以會擷取 Amazon S3 儲存貯體中所存放的所有工作階段報告。

```
SELECT SUBSTRING(session_start_time, 1, 10) AS report_date, 
    COUNT(DISTINCT user_session_id) AS num_sessions
FROM "appstream-usage"."sessions"
WHERE session_end_time BETWEEN '2019-05-19' AND '2019-05-26'
GROUP BY 1
ORDER BY 1
```

如果工作階段跨越多天，則工作階段和應用程式記錄會分別出現在工作階段結束當日所對應的工作階段和應用程式報告內。因此，如果您需要尋找給定日期範圍內與所有作用中工作階段相關聯的記錄，請考慮按照您為機群所設定的工作階段最大長度來擴大查詢的分割集合。

例如，若要檢視給定機群 (該機群的工作階段持續時間上限為 100 小時) 在一個日曆月內的所有作用中工作階段，請執行以下查詢來將分割集合擴大 5 天。

```
SELECT *
FROM "appstream-usage"."sessions"
WHERE fleet_name = 'fleet_name'
   AND session_start_time BETWEEN '2019-05-01' AND '2019-06-01'
   AND year='2019'
   AND (month='05' OR (month='06' AND day<='05'))
ORDER BY session_start_time
```

建立 AWS Glue 爬蟲程式的 CloudFormation 範本也會在您的 Athena 帳戶中建立並儲存數個範例查詢，供您用來分析用量資料。這些範例查詢包括下列項目：
+ 每月的彙總工作階段報告
+ 每個堆疊的平均工作階段長度
+ 每天的工作階段數量
+ 每位使用者的總串流時數
**注意**  
每個工作階段的隨需用量費用會四捨五入到下一個小時。
+ 每個應用程式的不同使用者

若要使用上述任何查詢，請執行以下步驟。

1. 前往 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/) 開啟 Athena 主控台。

1. 選擇 **Saved Queries (儲存的查詢)**。隨即應該會顯示此程序之前所記下的 5 個查詢。每個查詢的名稱會以「AS2」開頭。例如，「AS2\$1users\$1per\$1app\$1curr\$1mo。」

1. 若要執行查詢，請選擇查詢名稱而非名稱旁的選項。

1. 查詢的文字便會出現在查詢窗格中。選擇 **Run query** (執行查詢)。

若要在個別 CloudFormation 範本中檢視這些查詢，請參閱 Code Sample Catalog 中的 [athena-sample-queries-appstream-usage-data\$1template.yml](https://docs.aws.amazon.com/code-samples/latest/catalog/cloudformation-appstream2-athena-sample-queries-appstream-usage-data_template.yml.html)。 *AWS *