

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

# 使用 Amazon S3 檔案建立資料集
<a name="create-a-data-set-s3"></a>

若要從 Amazon S3 使用一或多個文字檔案 (.csv、.tsv、.clf 或 .elf) 建立資料集，請建立 Quick Sight 的資訊清單。Quick Sight 使用此資訊清單來識別您要使用的檔案，以及匯入檔案所需的上傳設定。使用 Amazon S3 建立資料集時，檔案資料會自動匯入到 [SPICE](spice.md)。

您必須授予 Quick Sight 存取任何要從中讀取檔案的 Amazon S3 儲存貯體。如需授予 Quick Sight AWS 資源存取權的詳細資訊，請參閱 [設定 AWS Amazon Quick Sight 對資料來源的存取](access-to-aws-resources.md)。

**Topics**
+ [支援的 Amazon S3 清單檔案格式](supported-manifest-file-format.md)
+ [建立 Amazon S3 資料集](create-a-data-set-s3-procedure.md)
+ [在另一個 AWS 帳戶中使用 S3 檔案的資料集](using-s3-files-in-another-aws-account.md)

# 支援的 Amazon S3 清單檔案格式
<a name="supported-manifest-file-format"></a>

您可以使用 JSON 資訊清單檔案來指定 Amazon S3 中的檔案，以匯入 Quick Sight。這些 JSON 資訊清單檔案可以使用以下所述的 Quick Sight 格式或《Amazon Redshift 資料庫開發人員指南》中的[使用資訊清單來指定資料檔案](https://docs.aws.amazon.com/redshift/latest/dg/loading-data-files-using-manifest.html)中所述的 Amazon Redshift 格式。 **您不需要使用 Amazon Redshift 來使用 Amazon Redshift 清單檔案格式。

如果您使用 Quick Sight 資訊清單檔案，它必須具有 .json 副檔名，例如 `my_manifest.json`。如果您使用 Amazon Redshift 清單檔案，它可以有任何副檔名。

如果您使用 Amazon Redshift 資訊清單檔案，Quick Sight 會像 Amazon Redshift 一樣處理選用`mandatory`選項。如果找不到相關聯的檔案，Quick Sight 會結束匯入程序並傳回錯誤。

您選取匯入的檔案必須是分隔的文字 (例如，.csv 或 .tsv)、日誌 (.clf) 或延伸日誌 (.elf) 格式，或 JSON (.json)。一個資訊清單檔案中識別的所有個檔案，必須使用相同的檔案格式。另外，它們必須具有相同數量和類型的資料欄。Quick Sight 支援 UTF-8 檔案編碼，但不支援具有位元組順序標記 (BOM) 的 UTF-8。如果您要匯入 JSON 檔案，則對於 `globalUploadSettings`，請指定 `format`，而不是 `delimiter`、`textqualifier` 和 `containsHeader`。

請確定您指定的任何檔案都位於您已授予 Quick Sight 存取權的 Amazon S3 儲存貯體中。如需授予 Quick Sight AWS 資源存取權的詳細資訊，請參閱 [設定 AWS Amazon Quick Sight 對資料來源的存取](access-to-aws-resources.md)。

## Quick Sight 的資訊清單檔案格式
<a name="quicksight-manifest-file-format"></a>

Quick Sight 資訊清單檔案使用以下 JSON 格式。

```
{
    "fileLocations": [
        {
            "URIs": [
                "uri1",
                "uri2",
                "uri3"
            ]
        },
        {
            "URIPrefixes": [
                "prefix1",
                "prefix2",
                "prefix3"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "JSON",
        "delimiter": ",",
        "textqualifier": "'",
        "containsHeader": "true"
    }
}
```

使用 `fileLocations` 元素中的欄位以指定要匯入的檔案，使用 `globalUploadSettings` 元素中的欄位以指定這些檔案的匯入設定，例如欄位分隔符號。

資訊清單檔案元素如下所述：
+ **fileLocations** – 此元素用於指定要匯入的檔案。您可以使用 `URIs` 和 `URIPrefixes` 陣列其中一個或兩個都用來這樣做。您至少必須在其中之一指定一個值。
  + **URI** – 此陣列用於列出要匯入之特定檔案的 URI。

    Quick Sight 可以存取任何 中的 Amazon S3 檔案 AWS 區域。不過，如果您的 Amazon S3 儲存貯體與 Quick 帳戶所使用的區域不同，您必須使用識別 Amazon S3 儲存貯 AWS 體區域的 URI 格式。

    支援下列格式的 URI。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/quick/latest/userguide/supported-manifest-file-format.html)
  + **URIPrefixes** – 此陣列用於列出 S3 儲存貯體和資料夾的 URI 前綴。指定儲存貯體或資料夾中的所有檔案都會匯入。Quick Sight 會以遞迴方式從子資料夾擷取檔案。

    Quick Sight 可以存取任何 中的 Amazon S3 儲存貯體或資料夾 AWS 區域。 AWS 區域 如果 S3 儲存貯體與您的快速帳戶使用不同，請務必使用識別 S3 儲存貯體的 URI 字首格式。

    支援下列格式的 URI 前綴。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/quick/latest/userguide/supported-manifest-file-format.html)
+ **globalUploadSettings** – (選用) 此元素用於指定 Amazon S3 檔案的匯入設定，例如欄位分隔符號。如果未指定此元素，Quick Sight 會使用本節中欄位的預設值。
**重要**  
對於日誌 (.clf) 和延伸日誌 (.elf) 檔案，此區段中只有 **format** 欄位適用，因此您可以略過其他欄位。如果您選擇包含它們，則會忽略它們的值。
  + **format** – (選用) 指定要匯入的檔案的格式。有效格式為 **CSV**、**TSV**、**CLF**、**ELF** 和 **JSON**。預設值為 **CSV**。
  + **delimiter** – (選用) 指定檔案欄位分隔符號。這必須映射到 `format` 欄位中指定的檔案類型。有效格式為 .csv 檔案的逗號 (**,**) 和 .tsv 檔案的製表符 (**\$1t**)。預設值為逗號 (**,**)。
  + **textqualifier** – (選用) 指定檔案文字限定詞。有效格式為單引號 (**'**)、雙引號 (**\$1"**)。對於 JSON 中的雙引號，前導反斜線是必要的逸出字元。預設值為雙引號 (**\$1"**)。如果您的文字不需要文字限定詞，請勿加入此屬性。
  + **containsHeader** – (選用) 指定檔案是否有標題列。有效格式為 **true** 或 **false**。預設值為 **true**。

### Quick Sight 的資訊清單檔案範例
<a name="quicksight-manifest-file-examples"></a>

以下是已完成 Quick Sight 資訊清單檔案的一些範例。

以下範例顯示的資訊清單檔案中識別兩個要匯入的特定 .csv 檔案。這些檔案使用雙引號作為文字限定詞。因為可接受預設值，所以略過 `format`、`delimiter` 和 `containsHeader` 欄位。

```
{
    "fileLocations": [
        {
            "URIs": [
                "https://yourBucket.s3.amazonaws.com/data-file.csv",
                "https://yourBucket.s3.amazonaws.com/data-file-2.csv"
            ]
        }
    ],
    "globalUploadSettings": {
        "textqualifier": "\""
    }
}
```

以下範例顯示的資訊清單檔案，可識別一個要匯入的特定 .tsv 檔案。此檔案還包含位在另一個 AWS 區域的儲存貯體，內含要匯入的其他 .tsv 檔案。因為可接受預設值，所以略過 `textqualifier` 和 `containsHeader` 欄位。

```
{
    "fileLocations": [
        {
            "URIs": [
                "https://s3.amazonaws.com/amzn-s3-demo-bucket/data.tsv"
            ]
        },
        {
            "URIPrefixes": [
                "https://s3-us-east-1.amazonaws.com/amzn-s3-demo-bucket/"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "TSV",
        "delimiter": "\t"
    }
}
```

以下範例識別的兩個儲存貯體包含要匯入的 .clf 檔案。一個與 Quick 帳戶 AWS 區域 位於相同的 ，另一個位於不同的 AWS 區域。因為 `delimiter`、`textqualifier` 和 `containsHeader` 欄位不適用於日誌檔，所以會略過。

```
{
    "fileLocations": [
        {
            "URIPrefixes": [
                "https://amzn-s3-demo-bucket1.your-s3-url.com",
                "s3://amzn-s3-demo-bucket2/"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CLF"
    }
}
```

以下範例使用 Amazon Redshift 格式來標識要匯入的 .csv 檔案。

```
{
    "entries": [
        {
            "url": "https://amzn-s3-demo-bucket.your-s3-url.com/myalias-test/file-to-import.csv",
            "mandatory": true
        }
    ]
}
```

以下範例使用 Amazon Redshift 格式來標識兩個要匯入的 JSON 檔案。

```
{
    "fileLocations": [
        {
            "URIs": [
                "https://yourBucket.s3.amazonaws.com/data-file.json",
                "https://yourBucket.s3.amazonaws.com/data-file-2.json"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "JSON"
    }
}
```

# 建立 Amazon S3 資料集
<a name="create-a-data-set-s3-procedure"></a>

**若要建立 Amazon S3 資料集**

1. 檢查 [資料來源配額](data-source-limits.md) 以確保您的目標檔案集不超過資料來源配額。

1. 使用[支援的 Amazon S3 清單檔案格式](supported-manifest-file-format.md)指定的其中一種格式建立資訊清單檔案，以識別您想要匯入的文字檔案。

1. 請將清單檔案儲存到本機目錄，或上傳到 Amazon S3。

1. 在快速入門頁面上，選擇**資料**。

1. 在**資料**頁面上，選擇**建立**然後**新增資料集**。

1. 選擇 Amazon S3 圖示，然後選擇**下一步**。

1. 針對 **Data source name (資料來源名稱)**，輸入資料來源的描述。此名稱應該協助您區分此資料來源和其他資料來源。

1. 針對 **Upload a manifest file (上傳資訊清單檔案)**，執行以下其中一個動作：
   + 若要使用本機資訊清單檔案，請選擇 **Upload (上傳)**，然後選擇 **Upload a JSON manifest file (上傳 JSON 資訊清單檔案)**。針對 **Open (開啟)**，選擇檔案，然後選擇 **Open (開啟)**。
   + 若要使用 Amazon S3 的清單檔案，請選擇 **URL**，並輸入清單檔案的 URL。若要在 Amazon S3 主控台尋找既有清單檔案的 URL，請瀏覽到適當的檔案並選擇。這時會顯示屬性面板，包含連結 URL。您可以複製 URL 並將其貼到 Quick Sight 中。

1. 選擇**連線**。

1. 為了確保連線完成，請選擇 **Edit/Preview data (編輯/預覽資料)**。否則，請選擇**視覺化**，以直接依資料現狀來建立分析。

   如果選擇**編輯/預覽資料**，您可以在準備資料時指定資料集名稱。否則，資料集名稱將與清單檔案的名稱相符。

   如要進一步了解資料準備，請參閱[在 Amazon Quick Sight 中準備資料](preparing-data.md)。

## 根據多個 Amazon S3 檔案建立資料集
<a name="data-sets-based-on-multiple-s3-files"></a>

您可以使用數種方法之一，在 Quick Sight 中合併或合併來自 Amazon S3 儲存貯體的檔案：
+ **使用清單檔案來結合檔案** – 在這種情況下，檔案必須有相同的欄位 (資料欄) 數量。在檔案中相同位置的欄位之間，資料類型必須相符。例如，每個檔案中的第一個欄位必須是相同的資料類型。第二個欄位、第三個欄位，以此類推，也都必須如此。Quick Sight 會從第一個檔案取得欄位名稱。

  資訊清單中必須明確列出檔案。不過，檔案不需要在相同的 Amazon S3 儲存貯體內。

  此外，檔案必須遵循[支援的 Amazon S3 清單檔案格式](supported-manifest-file-format.md)中所述的規則。

  如需有關使用資訊清單來結合檔案的詳細資訊，請參閱[使用 Amazon S3 檔案建立資料集](create-a-data-set-s3.md)。
+ **在不使用清單檔案的情況下合併檔案** – 若要將多個檔案合併成一個檔案，而不必在清單檔案中將其逐個列出，您可以使用 Athena。如果使用這個方法，您可以直接查詢文字檔案，就像在資料庫的表格中一樣。如需詳細資訊，請參閱大數據部落格中的文章：[Analyzing data in Amazon S3 using Athena](https://aws.amazon.com/blogs/big-data/analyzing-data-in-s3-using-amazon-athena/)。
+ **匯入之前使用指令碼來附加檔案** – 您可以使用為了上傳之前合併檔案而設計的指令碼。

# 在另一個 AWS 帳戶中使用 S3 檔案的資料集
<a name="using-s3-files-in-another-aws-account"></a>

使用本節來了解如何設定安全性，以便您可以使用 Quick Sight 存取另一個 AWS 帳戶中的 Amazon S3 檔案。

為了讓您存取另一個帳戶中的檔案，另一個帳戶的擁有者必須先設定 Amazon S3 來授予您讀取檔案的許可。然後，在 Quick Sight 中，您必須設定與您共用的儲存貯體存取權。在這兩個步驟完成之後，您可以使用清單檔案來建立資料集。

**注意**  
 若要存取公開共用的檔案，您不需要設定任何特殊的安全性。不過，您仍然需要資訊清單檔案。

**Topics**
+ [設定 Amazon S3 以允許從不同的快速帳戶存取](#setup-S3-to-allow-access-from-a-different-quicksight-account)
+ [設定 Quick Sight 以存取另一個 AWS 帳戶中的 Amazon S3 檔案](#setup-quicksight-to-access-S3-in-a-different-account)

## 設定 Amazon S3 以允許從不同的快速帳戶存取
<a name="setup-S3-to-allow-access-from-a-different-quicksight-account"></a>

使用本節了解如何在 Amazon S3 檔案中設定許可，以便 Quick Sight 可以存取另一個 AWS 帳戶中的許可。

如需從您的 Quick Sight 帳戶存取另一個帳戶的 Amazon S3 檔案的資訊，請參閱 [設定 Quick Sight 以存取另一個 AWS 帳戶中的 Amazon S3 檔案](#setup-quicksight-to-access-S3-in-a-different-account)。如需 S3 許可的詳細資訊，請參閱[管理 Amazon S3 資源的存取許可](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html)和[如何設定物件的許可？](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/set-object-permissions.html)

您可以使用下列程序從 S3 主控台來設定此存取。或者，您可以使用 AWS CLI 或編寫指令碼來授予許可。如果您有許多檔案要分享，您可改以在 `s3:GetObject` 動作上建立 S3 儲存貯體政策。若要使用儲存貯體政策，請將政策新增到儲存貯體許可，而不是檔案許可。如需有關儲存貯體政策的資訊，請參閱《Amazon S3 開發人員指南》**中的[儲存貯體政策範例](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html)。

**從 S3 主控台的不同快速帳戶設定存取權**

1. 取得您要與其共用之 AWS 帳戶電子郵件的電子郵件地址。或者，您可以取得及使用正式的使用者 ID。如需有關正式使用者 ID 的詳細資訊，請參閱**《AWS 一般參考》中的 [AWS 帳戶識別符](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 尋找您要與 Quick Sight 共用的 Amazon S3 儲存貯體。選擇**許可**。

1. 選擇**新增帳戶**，然後為您要共用 AWS 的帳戶輸入電子郵件地址，或貼上正式使用者 ID。此電子郵件地址應該是 AWS 帳戶的主要地址。

1. 對於**讀取儲存貯體許可**和**列出物件**，選擇**是**。

   選擇 **Save (儲存)** 以確認。

1. 找到您要共享的檔案，並開啟檔案的許可設定。

1. 輸入您要與其共用之 AWS 帳戶的電子郵件地址或正式使用者 ID。此電子郵件地址應該是 AWS 帳戶的主要電子郵件地址。

1. 為 Quick Sight 需要存取的每個檔案啟用**讀取物件**許可。

1. 通知 Quick 使用者檔案現已可供使用。

## 設定 Quick Sight 以存取另一個 AWS 帳戶中的 Amazon S3 檔案
<a name="setup-quicksight-to-access-S3-in-a-different-account"></a>

使用本節了解如何設定 Quick Sight，以便您可以存取另一個 AWS 帳戶中的 Amazon S3 檔案。如需允許其他人從其快速帳戶存取 Amazon S3 檔案的資訊，請參閱 [設定 Amazon S3 以允許從不同的快速帳戶存取](#setup-S3-to-allow-access-from-a-different-quicksight-account)。

使用下列程序，從 Quick Sight 存取另一個帳戶的 Amazon S3 檔案。另一個 AWS 帳戶中的使用者必須與您共用其 Amazon S3 儲存貯體中的檔案，您才能使用此程序。

**從 Quick Sight 存取另一個帳戶的 Amazon S3 檔案**

1. 確認其他 AWS 帳戶中的使用者已將您的帳戶讀取和寫入許可授予有問題的 S3 儲存貯體。

1. 選擇您的設定檔圖示，然後選擇**管理 Quick Sight**。

1. 選擇**安全和許可**。

1. 在 **Quick Sight 存取 AWS 服務**下，選擇**管理**。

1. 選擇**選取 S3 儲存貯體**。

1. 在**選取 Amazon S3 儲存貯體**畫面，選擇**您在整個 AWS內可以存取的 S3 儲存貯體**標籤。

   預設標籤名為**連結至 Quick Sight 帳戶的 S3 儲存貯**體。它會顯示您的快速帳戶可存取的所有儲存貯體。

1. 執行以下任意一項：
   + 如果要新增您有權使用的所有儲存貯體，請選擇**從其他 AWS 帳戶選擇可存取的儲存貯體**。
   + 如果您有一或多個要新增的 Amazon S3 儲存貯體，請輸入其名稱。它必須完全符合 Amazon S3 儲存貯體的唯一名稱。

     如果您沒有適當的許可，您會看到此訊息：「我們無法連線至此 S3 儲存貯體。請確定您指定的任何 S3 儲存貯體都與用來建立此 Quick AWS 帳戶的帳戶相關聯。」 如果您沒有帳戶許可或 Quick Sight 許可，則會顯示此錯誤訊息。
**注意**  
若要使用 Amazon Athena，Quick Sight 需要存取 Athena 使用的 Amazon S3 儲存貯體。  
您可以在此處逐一新增它們，或使用**從其他 AWS 帳戶選擇可存取的儲存貯**體選項。

1. 選擇 **Select buckets (選取儲存貯體)** 以確認您的選擇。

1. 根據 Amazon S3 建立新的資料集，並上傳您的清單檔案。如需 Amazon S3 資料集的詳細資訊，請參閱 [使用 Amazon S3 檔案建立資料集](create-a-data-set-s3.md)。