

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

# 了解匯出交付
<a name="dataexports-export-delivery"></a>

在下列各節中，您將找到匯出交付的相關資訊。
+ **匯出 S3 父目錄結構：**匯出資料在將匯出交付至其中的 S3 目錄中的結構。
+ **匯出重新整理：**S3 目錄中的匯出更新頻率。
+ **匯出覆寫並建立新的：**匯出交付如何透過覆寫進行變更，並建立新的交付偏好設定。
+ **匯出資料檔案名稱和區塊：**匯出檔案 (gzip/csv 或 Parquet) 的命名方式。

## 匯出 S3 父目錄結構
<a name="export-s3-parent-directory-structure"></a>

每個匯出都會將查詢中的資料交付至 S3 （一或多個 gzip/csv 或 Parquet 檔案），以及`Manifest.json`中繼資料檔案，其中包含執行匯出時匯出定義的相關資訊。

**資料**  
匯出查詢所產生的資料會存放在下列 S3 檔案路徑中：  
`s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/`  
分割區對應至正在查詢的資料表。對於 CUR 2.0，分割區對應至指定 CUR 2.0 匯出的「帳單期間」。  
`prefix`：您指派給匯出的 S3 檔案字首。  
`export-name`：您指派給匯出的名稱。  
`partition`：分割區說明如何將單一資料表分割為個別資料表以進行交付。對於 CUR 2.0，分割區對應至格式為 的「帳單期間」`BILLING_PERIOD=YYYY-MM`。例如，2023 年 11 月的分割區是 2023 年 11 月。  
以下是 S3 檔案路徑的範例：  
`s3://my-data-export-s3-bucket/my-cur-files/business_group_a_cur/data/BILLING_PERIOD=2023-11`

**中繼資料**  
查詢的`Manifest.json`中繼資料檔案會存放在下列 S3 檔案路徑中：  
`s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>/<export-name>-Manifest.json`  
每次重新整理匯出時，`Manifest.json`檔案都會更新。系統會為匯出建立的每個新分割區建立新的`Manifest.json`檔案。對於 CUR 2.0，這表示在新的計費期間開始時會產生新的`Manifest.json`檔案。  
資訊清單檔案包含下列資訊：  
+ 匯出中包含的所有資料欄。
+ 匯出檔案及其檔案路徑的清單。我們建議您以程式設計方式讀取此清單來識別要擷取哪些檔案。
+ 匯出涵蓋的期間。
+ 稱為 `additionalOutputFiles`的區段，列出如果您有 Athena 或 Amazon Redshift 整合時所交付的其他檔案。
只有在所有匯出資料檔案都已交付至 S3 時，`Manifest.json`才會交付 。

## 匯出重新整理
<a name="export-refreshing"></a>

資料匯出會在每次更新來源資料時重新整理匯出。對於 CUR 2.0，這至少每天發生一次。目前計費期間 （分割區） 會重新整理，直到計費期間結束為止，此時下一個計費期間的交付就會開始。下一個帳單期間的交付僅包含該帳單期間的費用和帳單資料。在計費期間結束後， AWS 可以在計費期間結束後的前兩週內更新前一個計費期間的匯出交付。

## 匯出覆寫並建立新的
<a name="export-overwriting-create-new"></a>

建立匯出時，您可以選擇建立新的匯出檔案，或在每次重新整理時覆寫現有的匯出檔案。

**建立新的**  
建立新的匯出檔案會使用更多 S3 儲存體，因為所有匯出重新整理都會保留。覆寫先前的匯出檔案會使用較少的 S3 儲存體，因為只會保留每個計費期間重新整理的最新版本。  
在「建立新」模式下，匯出檔案會傳送到下列 S3 路徑：  
`s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<timestamp>-<execution-id>`  
`timestamp` 是執行匯出的日期和時間。`execution-id` 是指派給執行的唯一 ID。  
對於「建立新的」，每個匯出執行都會交付兩個`Manifest.json`檔案。一個存放在 `metadata/<partition>/<timestamp>-<execution-id>`目錄中，另一個則覆寫在 `metadata/<partition>`目錄中。`metadata/<partition>` 目錄中的資訊清單一律代表最新的重新整理，其資料用於識別最近重新整理的匯出檔案的位置。

**覆寫**  
覆寫僅適用於相同分割區的重新整理 （即計費期間）。一旦新的計費期間開始，匯出會建立名稱以最新分割區或計費期間為基礎的新 S3 目錄，並開始在該處交付新的匯出分割區。除非更新該特定分割區的資料，否則不會覆寫前一個分割區的匯出。  
在「覆寫」模式下，匯出檔案會傳送到下列 S3 路徑：  
`s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/`  
此檔案目錄中的匯出檔案會在每次交付相同分割區時 （也就是計費期間） 覆寫。  
當匯出變得足夠大時，匯出檔案會以多個「區塊」（分開的 gzip/csv 或 Parquet 檔案） 形式交付。如果匯出在當月曾減少大小 （由於查詢變更或資料更正），則可能需要較少區塊才能提供匯出重新整理。在此情況下，Data Exports 會使用空白資料覆寫來自上次重新整理的任何額外區塊。  
對於覆寫，每個匯出執行都會傳送一個`Manifest.json`檔案。它會存放在 `metadata/<partition>`目錄中，並在每次重新整理時覆寫。

## 匯出資料檔案名稱和區塊
<a name="export-data-file-names"></a>

匯出會以一個檔案 (gzip/csv 或 Parquet) 或在多個「區塊」（分開 gzip/csv 或 Parquet 檔案） 中提供一次執行的結果，當匯出變得夠大時。

gzip/csv 檔案格式的匯出名稱如下：

`<export-name>-<chunk-number>.csv.gz`

Parquet 格式的匯出名稱如下：

`<export-name>-<chunk-number>.snappy.parquet`

區塊號碼一律有五位數。區塊號碼會從 開始列舉`00001`。

**注意**  
如果您在建立 CUR 2.0 時選擇 Athena 或 Redshift 報告整合選項，以下有關 Redshift 和 Athena 整合的章節可能與您相關。

## Amazon Redshift 整合
<a name="dataexports-redshift-specifications"></a>

如果您選擇 Amazon Redshift 整合的選項， AWS 也會建立並提供檔案，其中包含將報告上傳至 Amazon Redshift 所需的 SQL 命令。若要將資料匯出上傳至 Amazon Redshift，請完成下列步驟。

**上傳資料匯出至 Amazon Redshift**

1. 建立 Amazon Redshift 叢集。如需詳細資訊，請參閱《*Amazon Redshift 管理指南*》中的[建立叢集](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html#create-cluster)。

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

1. 導覽至您存放 AWS 資料匯出的 Amazon S3 位置。

1. 下載與 S3 中資訊清單檔案一起存放`RedshiftCommands.sql`的檔案，以及位於下列位置的 Redshift 協助程式檔案：

   `<bucket>/<prefix>/<export-name>/metadata/<partition>/<export-name>-RedshiftCommands.sql`

1. 在 `copy`命令中，`<AWS_ROLE>`將 取代為 IAM 角色的 ARN，該角色具有存取您存放 AWS 資料匯出之 Amazon S3 儲存貯體的許可。

1. 將 取代`<S3_BUCKET_REGION>`為 Amazon S3 儲存貯體所在的區域。例如 `us-east-1`。

1. 使用 SQL 用戶端連接到叢集。如需詳細資訊，請參閱《[Amazon Redshift 管理指南》中的存取 Amazon Redshift 叢集和資料庫](https://docs.aws.amazon.com/redshift/latest/mgmt/using-rs-tools.html)。 **

1. 依下列順序，從 `RedshiftCommands.sql` 檔案複製 SQL 命令到您的 SQL 用戶端：

   1. **建立資料表** — 建立具有自訂結構描述的 Amazon Redshift 資料表，以符合您的報告。

   1. **copy** — 使用提供的 IAM 角色，將 AWS 資料匯出檔案從 S3 上傳到 Amazon Redshift。

   1. **建立標籤資料表** — 建立資料表，可讓您將 AWS定義的標籤映射至使用者定義的標籤。

   1. **insert** — 將使用者定義的標籤插入標籤資料表。

1. 將 AWS 資料匯出中的所有資料複製到 Amazon Redshift 之後，您可以使用 SQL 查詢資料。如需詳細資訊，請參閱《[Amazon Redshift 資料庫開發人員指南](https://docs.aws.amazon.com/redshift/latest/dg/c_redshift-sql.html)*》中的 Amazon Redshift* SQL。

## Amazon Athena 整合
<a name="dataexports-athena-specifications"></a>

如果您選擇 Amazon Athena 整合的選項， AWS 也會建立並交付多個檔案，以協助設定您需要的所有資源。 AWS 會交付 CloudFormation 範本、手動建立 Athena 資料表的 SQL 檔案，以及檢查匯出重新整理狀態的狀態資料夾。這些檔案會使用以下命名慣例。

用於設定 Athena 資源的 CloudFormation 範本：

`<prefix>/<export-name>/crawler-cfn.yml`

手動建立 Athena 資料表的 SQL 檔案：

`<prefix>/<export-name>/metadata/<partition>/<export-name>-create-table.sql`

匯出重新整理狀態資料夾：

`<prefix>/<export-name>/execution_status/`

### 使用 CloudFormation 範本設定 Athena
<a name="dataexports-athena-cfn"></a>

**使用 Athena CloudFormation 範本**

1. 導覽至 S3 儲存貯體中的 `crawler-cfn.yml` 檔案，然後選取物件 URL 旁的**複製**按鈕。

1. 開啟位在 [https://console.aws.amazon.com/cloudformation/](https://console.aws.amazon.com/cloudformation/) 的 CloudFormation​ 主控台。

1. 如果您之前從未使用過 CloudFormation，請選擇**建立新堆疊**。否則，請選擇 **Create Stack (建立堆疊)**。

1. 在**準備範本**下，選取**選擇現有範本**。

1. 在**指定範本**下，針對**範本來源**選擇 **Amazon S3 URL**。

1. 將 S3 物件 URL 貼到 **Amazon S3 URL** 方塊中。

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

1. 在 **Stack name (堆疊名稱)** 中，輸入範本的名稱，然後選擇 **Next (下一步)**。

1. 在頁面底部，選取**我確認 AWS CloudFormation 可能會建立 IAM 資源。**

1. 選擇**下一步**，然後選擇**提交**。

**更新現有的 Athena CloudFormation 範本**

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 從儲存貯體清單中，選擇您選擇接收 AWS 資料匯出的儲存貯體。

1. 選擇您的報告路徑字首 (`your-report-path-prefix/`)，然後選擇您的報告名稱 (`your-report-name/`)。

1. 選擇`.yml`範本檔案，然後選取物件 URL 旁的**複製**按鈕。

1. 開啟位在 [https://console.aws.amazon.com/cloudformation/](https://console.aws.amazon.com/cloudformation/) 的 CloudFormation​ 主控台。

1. 選取先前建立的堆疊，然後選擇**更新堆疊** > **直接更新**。

1. 在**準備範本**下，選擇**取代現有範本**。

1. 在**範本來源**下，選擇 **Amazon S3 URL**。

1. 將 S3 物件 URL 貼到 **Amazon S3 URL** 方塊中。

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

1. 在**指定堆疊詳細資訊**頁面上，修改任何詳細資訊，然後選擇**下一步**。

1. 在頁面底部，選取**我確認 AWS CloudFormation 可能會建立 IAM 資源。**

1. 選擇**下一步**，然後選擇**提交**。

### 手動設定 Athena
<a name="dataexports-athena-manual"></a>

如果您不想使用 CloudFormation 範本，您可以使用提供的 SQL 檔案手動建立 Athena 資料表。

**手動建立 Athena 資料表**

1. 匯出`create-table.sql`的檔案位於：

   `<bucket>/<prefix>/<export-name>/metadata/BILLING_PERIOD=YYYY-MM/<export-name>-create-table.sql`

1. 在**新增查詢 1** 查詢窗格中，從 檔案貼上 SQL。對於 `<database name>.<table name>`，請使用 SQL 第一行的資料庫和資料表名稱。

1. 執行下列動作來建立資料庫：

   `CREATE DATABASE <database name>`

若要載入新的報告分割區，請執行下列 SQL：

`ALTER TABLE `<database name>`.<table name> ADD PARTITION (billing_period='YYYY-MM') LOCATION 's3://<bucket>/<prefix>/<export-name>/data/BILLING_PERIOD=YYYY-MM/';` 其中 YYYY-MM 是以 4 位數年份和 2 位數月份表示的計費期間。例如 2026-05。

如需詳細資訊，請參閱[使用 Amazon Athena 查詢成本和用量報告](https://docs.aws.amazon.com/cur/latest/userguide/cur-query-athena.html)。

## 摘要
<a name="export-summary"></a>

**使用 目錄匯出資料檔案名稱以建立新的**  
Parquet：  
`s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<timestamp>-<execution-id>/<export-name>-<chunk-number>.snappy.parquet`  
gzip/csv：  
`s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<timestamp>-<execution-id>/<export-name>-<chunk-number>.csv.gz`

**使用用於覆寫的目錄匯出資料檔案名稱**  
Parquet：  
`s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<export-name>-<chunk-number>.snappy.parquet`  
gzip/csv：  
`s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<export-name>-<chunk-number>.csv.gz`

**具有建立新目錄的清單檔案名稱**  
「建立新的」模式會交付`Manifest.json`至兩個位置。  
第一個位置位於代表匯出特定執行的資料夾中 （以 `timestamp`和 命名`execution-id`)。此資訊清單對應至該特定執行。檔案路徑如下所示：  
`s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>/<timestamp>-<execution-id>`  
第二個位置位於包含所有執行的分割區資料夾中。此資訊清單與最近一次執行匯出時相同的檔案。您可以讀取此資訊清單來識別所有最近匯出檔案的確切檔案路徑。檔案路徑如下所示：  
`s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>/Manifest.json`

**具有覆寫目錄的清單檔案名稱**  
「覆寫」模式會`Manifest.json`傳送到一個位置。  
`s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>`  
每次重新整理指定的分割區 （即計費期間） 都會覆寫此目錄中的資訊清單。