

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 내보내기 전송에 대한 이해
<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 파일 경로에 저장됩니다.  
`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`

**Metadata**  
쿼리의 `Manifest.json` 메타데이터 파일은 다음 S3 파일 경로에 저장됩니다.  
`s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>/<export-name>-Manifest.json`  
내보내기를 새로 고칠 때마다 `Manifest.json` 파일이 업데이트됩니다. 내보내기를 통해 생성되는 새 파티션마다 새 `Manifest.json` 파일이 생성됩니다. CUR 2.0의 경우 이는 새 청구 기간이 시작될 때 새 `Manifest.json` 파일이 생성됨을 의미합니다.  
매니페스트 파일에는 다음과 같은 정보가 포함되어 있습니다.  
+ 내보내기에 포함된 모든 열
+ 내보내기 파일 및 해당 파일 경로의 목록. 이 목록을 프로그래밍 방식으로 읽어서 모을 파일을 식별하는 것이 좋습니다.
+ 내보내기 대상 기간
+ Athena 또는 Amazon Redshift 통합이 있는 경우 전달되는 추가 파일을 나열`additionalOutputFiles`하는 라는 섹션입니다.
모든 내보내기 데이터 파일이 S3로 전송된 후에만 `Manifest.json`이 전송됩니다.

## 내보내기 새로 고침
<a name="export-refreshing"></a>

데이터 내보내기는 소스 데이터가 업데이트될 때마다 내보내기를 새로 고칩니다. CUR 2.0의 경우 새로 고침이 하루에 한 번 이상 발생합니다. 현재 청구 기간(파티션)은 청구 기간이 종료될 때까지 새로 고침되며, 청구 기간이 종료될 때 다음 청구 기간의 전송이 시작됩니다. 다음 청구 기간의 전송에는 해당 청구 기간의 요금 및 청구 데이터만 포함됩니다. 결제 기간이 종료된 후는 종료 후 처음 2주 이내에 이전 결제 기간에 대한 내보내기 전송을 업데이트할 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 파일)로 전송됩니다. 한 달 동안 쿼리 변경 또는 데이터 수정으로 인해 내보내기 크기가 줄어들면 내보내기 새로 고침을 제공하는 데 필요한 청크 수가 줄어들 수 있습니다. 이 경우 데이터 내보내기는 마지막 새로 고침의 추가 청크를 빈 데이터로 덮어씁니다.  
덮어쓰기의 경우 내보내기가 실행될 때마다 `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`

청크 번호는 항상 5자리입니다. 청크 번호는 `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 Management Console에 로그인하고 [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 데이터 내보내기를 저장하는 Amazon S3 버킷에 액세스할 수 있는 권한이 있는 IAM 역할의 ARN`<AWS_ROLE>`으로 바꿉니다.

1. 를 Amazon S3 버킷이 있는 리전`<S3_BUCKET_REGION>`으로 바꿉니다. 예를 들어 `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 역할을 사용하여 S3에서 Amazon Redshift로 AWS 데이터 내보내기 파일을 업로드합니다.

   1. **태그 테이블 생성** AWS- 사용자 정의 태그에 정의된 태그를 매핑할 수 있는 테이블을 생성합니다.

   1. **insert** - 사용자 정의 태그를 태그 테이블에 삽입합니다.

1.  AWS Data Export의 모든 데이터를 Amazon Redshift로 복사한 후 SQL을 사용하여 데이터를 쿼리할 수 있습니다. 자세한 내용은 [Amazon Redshift 데이터베이스 개발자 안내서의 Amazon Redshift SQL](https://docs.aws.amazon.com/redshift/latest/dg/c_redshift-sql.html)을 참조하세요. ** 

## Amazon Athena 통합
<a name="dataexports-athena-specifications"></a>

Amazon Athena 통합 옵션을 선택한 경우 AWS 는 필요한 모든 리소스를 설정하는 데 도움이 되는 여러 파일을 생성하고 전송합니다.는 CloudFormation 템플릿, Athena 테이블을 수동으로 생성하는 SQL 파일, 내보내기 새로 고침 상태를 확인하는 상태 폴더를 AWS 제공합니다. 이러한 파일은 다음 명명 규칙을 사용합니다.

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을 사용한 적이 없는 경우 **새 스택 생성을** 선택합니다. 그렇지 않은 경우 **스택 생성**을 선택합니다.

1. **템플릿 준비**에서 **기존 템플릿 선택을** 선택합니다.

1. **템플릿 지정**의 **템플릿 소스**에서 **Amazon S3 URL**을 선택합니다.

1. S3 객체 URL을 **Amazon S3 URL** 상자에 붙여 넣습니다.

1. **다음**을 선택합니다.

1. **스택 이름**에 템플릿 이름을 입력하고 **다음**을 선택합니다.

1. 페이지 하단에서 ** AWS CloudFormation이 IAM 리소스를 생성할 수 있음을 승인합니다를 선택합니다.**

1. **다음**을 선택한 후 **제출**을 선택합니다.

**기존 Athena CloudFormation 템플릿을 업데이트하려면**

1. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 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을 붙여 넣습니다. 의 경우 SQL의 첫 번째 줄에 있는 데이터베이스 및 테이블 이름을 `<database name>.<table name>`사용합니다.

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년 5월.

자세한 내용은 [ 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>`  
지정된 파티션(즉, 청구 기간)을 새로 고칠 때마다 이 디렉터리의 매니페스트가 덮어써집니다.