

如需與 Amazon Timestream for LiveAnalytics 類似的功能，請考慮使用 Amazon Timestream for InfluxDB。它提供簡化的資料擷取和單一位數毫秒查詢回應時間，以進行即時分析。[在這裡](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)進一步了解。

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

# UNLOAD
<a name="supported-sql-constructs.UNLOAD"></a>

Timestream for LiveAnalytics 支援 `UNLOAD`命令做為其 SQL 支援的延伸。中`UNLOAD`說明 支援的資料類型[支援的資料類型](supported-data-types.md)。`time` 和 `unknown`類型不適用於 `UNLOAD`。

```
UNLOAD (SELECT statement)
 TO 's3://bucket-name/folder'
 WITH ( option = expression [, ...] )
```

其中 選項為

```
{ partitioned_by = ARRAY[ col_name[,…] ] 
 | format = [ '{ CSV | PARQUET }' ] 
 | compression = [ '{ GZIP | NONE }' ]
 | encryption = [ '{ SSE_KMS | SSE_S3 }' ]
 | kms_key = '<string>'
 | field_delimiter ='<character>'
 | escaped_by = '<character>'
 | include_header = ['{true, false}']
 | max_file_size = '<value>'
}
```

SELECT 陳述式  
用於從一或多個 Timestream for LiveAnalytics 資料表選取和擷取資料的查詢陳述式。  

```
(SELECT column 1, column 2, column 3 from database.table
      where measure_name = "ABC" and timestamp between ago (1d) and now() )
```

TO 子句  

```
TO 's3://bucket-name/folder'
```
或  

```
TO 's3://access-point-alias/folder'
```
`UNLOAD` 陳述式中的 `TO`子句指定查詢結果輸出的目的地。您需要提供完整路徑，包括 Amazon S3 儲存貯體名稱或具有 Amazon S3 上資料夾位置的 Amazon S3 access-point-alias，其中 Timestream for LiveAnalytics 會寫入輸出檔案物件。S3 儲存貯體應該由同一帳戶和同一區域擁有。除了查詢結果集之外，Timestream for LiveAnalytics 還會將資訊清單和中繼資料檔案寫入指定的目的地資料夾。

PARTITIONED\$1BY 子句  

```
partitioned_by = ARRAY [col_name[,…] , (default: none)
```
`partitioned_by` 子句用於查詢中，以精細層級分組和分析資料。當您將查詢結果匯出至 S3 儲存貯體時，您可以選擇根據選取查詢中的一或多個資料欄來分割資料。分割資料時，匯出的資料會根據分割區資料欄分割為子集，而每個子集會存放在個別的資料夾中。在包含匯出資料的結果資料夾中，`folder/results/partition column = partition value/`會自動建立子資料夾。不過，請注意，分割的資料欄不包含在輸出檔案中。  
`partitioned_by` 不是語法中的強制性子句。如果您選擇在沒有分割的情況下匯出資料，則可以在語法中排除 子句。  

**Example**  
假設您正在監控網站的點擊流資料，並擁有 5 個流量通道，即 `direct`、`Social Media`、`Other`、 `Organic Search`和 `Referral`。匯出資料時，您可以選擇使用資料欄 分割資料`Channel`。在您的資料資料夾中，`s3://bucketname/results`您會有五個資料夾，每個資料夾都有各自的頻道名稱，例如，`s3://bucketname/results/channel=Social Media/.`在此資料夾中，您會找到所有透過`Social Media`頻道登陸您網站之客戶的資料。同樣地，您將擁有其餘通道的其他資料夾。
依頻道資料欄分割的匯出資料  

![\[Folder structure showing channels: Direct, Organic search, Other, Referral, and Social media.\]](http://docs.aws.amazon.com/zh_tw/timestream/latest/developerguide/images/unload-results.png)


FORMAT  

```
format = [ '{ CSV | PARQUET }' , default: CSV
```
用於指定寫入 S3 儲存貯體之查詢結果格式的關鍵字。您可以使用逗號 (，) 做為預設分隔符號，或 Apache Parquet 格式的有效開放單欄式儲存格式，將資料匯出為逗號分隔值 (CSV) 進行分析。

壓縮  

```
compression = [ '{ GZIP | NONE }' ], default: GZIP
```
您可以使用壓縮演算法 GZIP 壓縮匯出的資料，或指定 `NONE`選項使其解除壓縮。

ENCRYPTION  

```
encryption = [ '{ SSE_KMS | SSE_S3 }' ], default: SSE_S3
```
Amazon S3 上的輸出檔案會使用您選取的加密選項進行加密。除了您的資料之外，資訊清單和中繼資料檔案也會根據您選取的加密選項進行加密。我們目前支援 SSE\$1S3 和 SSE\$1KMS 加密。SSE\$1S3 是一種伺服器端加密，Amazon S3 使用 256 位元進階加密標準 (AES) 加密來加密資料。SSE\$1KMS 是一種伺服器端加密，可使用客戶受管金鑰來加密資料。

KMS\$1KEY  

```
kms_key = '<string>'
```
KMS 金鑰是客戶定義的金鑰，用於加密匯出的查詢結果。KMS Key 由 AWS Key Management Service (AWS KMS) 安全管理，並用於加密 Amazon S3 上的資料檔案。

FIELD\$1DELIMITER  

```
field_delimiter ='<character>' , default: (,)
```
以 CSV 格式匯出資料時，此欄位會指定單一 ASCII 字元，用於分隔輸出檔案中的欄位，例如管道字元 (\$1)、逗號 (，) 或標籤 (/t)。CSV 檔的預設分隔符號為逗號字元。如果資料中的值包含選擇的分隔符號，則會以引號字元引用分隔符號。例如，如果您資料中的 值包含 `Time,stream`，則會在匯出的資料`"Time,stream"`中引用此值。Timestream for LiveAnalytics 使用的引號字元是雙引號 (")。  
`FIELD_DELIMITER` 如果您想要在 CSV 中包含標頭，請避免指定換行字元 (ASCII 13、十六進位 `0D`、文字 '\$1r') 或換行字元 (ASCII 10、十六進位 0A、文字 '\$1n') 做為 ，因為這會阻止許多剖析器在產生的 CSV 輸出中正確剖析標頭。

ESCAPED\$1BY  

```
escaped_by = '<character>', default: (\)
```
以 CSV 格式匯出資料時，此欄位會指定在寫入 S3 儲存貯體的資料檔案中應視為逸出字元的字元。逸出發生在下列案例中：  

1. 如果值本身包含引號字元 (")，則會使用逸出字元逸出。例如，如果值為 `Time"stream`，其中 (\$1) 是設定的逸出字元，則會以 逸出`Time\"stream`。

1. 如果值包含設定的逸出字元，則會逸出。例如，如果值為 `Time\stream`，則會以 的形式逸出`Time\\stream`。
如果匯出的輸出在陣列、資料列或時間序列等 中包含複雜的資料類型，則會將其序列化為 JSON 字串。以下是範例。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/timestream/latest/developerguide/supported-sql-constructs.UNLOAD.html)

INCLUDE\$1HEADER  

```
include_header = 'true' , default: 'false'
```
以 CSV 格式匯出資料時，此欄位可讓您將資料欄名稱包含為匯出 CSV 資料檔案的第一列。  
接受的值為「true」和「false」，預設值為「false」。文字轉換選項，例如 `escaped_by`和 也`field_delimiter`適用於標頭。  
包含標頭時，請務必不要選取歸位字元 (ASCII 13、十六進位 0D、文字 '\$1r') 或換行字元 (ASCII 10、十六進位 0A、文字 '\$1n') 做為 `FIELD_DELIMITER`，因為這會阻止許多剖析器在產生的 CSV 輸出中正確剖析標頭。

MAX\$1FILE\$1SIZE  

```
max_file_size = 'X[MB|GB]' , default: '78GB'
```
此欄位指定`UNLOAD`陳述式在 Amazon S3 中建立的檔案大小上限。`UNLOAD` 陳述式可以建立多個檔案，但寫入 Amazon S3 的每個檔案的大小上限大約是此欄位中指定的大小。  
欄位的值必須介於 16 MB 和 78 GB 之間。您可以指定整數，例如 `12GB`，或小數，例如 `0.5GB`或 `24.7MB`。預設值為 78 GB。  
實際檔案大小會在寫入檔案時近似，因此實際大小上限可能不完全等於您指定的數字。