

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

# AWS Marketplace 데이터 피드의 저장 및 구조
<a name="data-feed-details"></a>

AWS Marketplace는 판매자 소유의 비즈니스 인텔리전스 도구 간 추출, 변환, 로드(ETL)를 위한 구조화된 최신 제품 및 고객 정보를 전송하는 메커니즘으로써 AWS Marketplace 시스템에서 판매자 Amazon S3 버킷으로 데이터 피드를 제공합니다. 이 주제에서는 데이터 피드의 구조 및 스토리지에 대한 자세한 정보를 제공합니다.

데이터 피드는 쉼표로 구분된 값(CSV) 파일을 수집하여 사용자가 제공하는 암호화된 Amazon S3 버킷에 전송합니다. 이러한 CSV 파일은 다음과 같은 특성을 갖습니다.
+ [4180 표준](https://tools.ietf.org/html/rfc4180)을 따릅니다.
+ 문자 인코딩이 BOM을 사용하지 않는 UTF-8입니다.
+ 값 사이의 구분 기호로 쉼표가 사용됩니다.
+ 필드는 큰따옴표로 이스케이프됩니다.
+ `\n`은 줄 바꿈 문자입니다.
+ 날짜는 UTC 표준 시간대로 보고되고 ISO 8601 날짜 및 시간 형식이며 1초 이내의 오차로 정확합니다.
+ 모든 `*_period_start_date` 및 `*_period_end_date` 값은 경계 값을 포함합니다. 따라서 모든 날짜에 가능한 마지막 타임스탬프는 `23:59:59`입니다.
+ 모든 금액 필드 앞에는 통화 필드가 있습니다.
+ 금액 필드는 마침표(`.`) 문자를 소수 구분 기호로 사용하며 쉼표(,)를 천 단위 구분 기호로 사용하지 않습니다.

데이터 피드는 다음과 같이 생성되고 저장됩니다.
+ 데이터 피드는 하루 내에 생성되며 전날의 24시간 데이터를 포함합니다.
+ Amazon S3 버킷에서 데이터 피드는 다음 형식을 사용하여 월 단위로 구성됩니다.

  `{{bucket-name}}/{{data-feed-name_version}}/year={{YYYY}}/month={{MM}}/data.csv`
+ 각 일일 데이터 피드가 생성되면 해당 월의 기존 CSV 파일에 추가됩니다. 새 달이 시작되면 각 데이터 피드에 대해 새 CSV 파일이 생성됩니다.
+ 데이터 피드의 정보는 2010년 1월 1일\~2020년 4월 30일(포함)의 데이터로 다시 채워지며 `year=2010/month=01` 하위 폴더의 [CSV 파일](#data-feed-details)에 있습니다.

  해당 데이터 피드의 이번 달 파일에 열 머리글만 있고 데이터가 없는 상황이 있을 수 있습니다. 이는 이번 달에 해당 피드의 새로운 항목이 없음을 의미합니다. 이 문제는 제품 피드와 같이 자주 업데이트되지 않는 데이터 피드에서 발생할 수 있습니다. 이러한 경우 백필된 폴더에서 데이터를 사용할 수 있습니다.
+ Amazon S3에서는 [Amazon S3 수명 주기 정책](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-lifecycle.html)을 생성하여 버킷에 파일을 보관하는 기간을 관리할 수 있습니다.
+ 암호화된 Amazon S3 버킷으로 데이터가 전송될 때 알림을 받도록 Amazon SNS를 구성할 수 있습니다. 알림 구성 방법에 대한 내용은 *Amazon Simple Notification Service 개발자 안내서*의 [Amazon SNS 시작하기](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html) 섹션을 참조하세요.

## 데이터에 대한 기록
<a name="data-feed-historization"></a>

각 데이터 피드에는 데이터에 대한 기록을 문서화하는 열이 포함됩니다. `valid_to`를 제외하고 이러한 열은 모든 데이터 피드에 공통적입니다. 공통 기록 스키마로 포함되며, 데이터 쿼리에 유용합니다.


| 열 이름  | 설명  | 
| --- | --- | 
| valid\_from | 기본 키의 값이 다른 필드의 값과 관련하여 유효한 첫 번째 날짜입니다. | 
| valid\_to | 이 열은 [주소](data-feed-address.md) 데이터 피드에만 표시되며 항상 비어 있습니다. | 
| insert\_date | 레코드가 데이터 피드에 삽입된 날짜입니다. | 
| update\_date | 레코드가 마지막으로 업데이트된 날짜입니다. | 
| delete\_date | 이 열은 항상 비어 있습니다. | 

다음은 이러한 열의 예입니다.


|  valid\_from  |  valid\_to  |  insert\_date  |  update\_date  |  delete\_date  | 
| --- | --- | --- | --- | --- | 
|  2018-12-12T02:00:00Z  |   |  2018-12-12T02:00:00Z  |  2018-12-12T02:00:00Z  |   | 
|  2019-03-29T03:00:00Z  |   |  2019-03-29T03:00:00Z  |  2019-03-29T03:00:00Z  |   | 
|  2019-03-29T03:00:00Z  |   |  2019-03-29T03:00:00Z  |  2019-04-28T03:00:00Z  |   | 

`valid_from` 필드와 `update_date` 필드는 함께 *양방향 시간 데이터 모델*을 구성합니다. `valid_from` 필드는 그 이름처럼 항목이 언제부터 유효한지 알려줍니다. 항목이 편집된 경우 피드에 여러 레코드가 있을 수 있으며, 각 레코드의 `update_date`는 다르지만 `valid_from` 날짜는 같습니다. 예를 들어 항목의 현재 값을 찾으려면 `valid_from` 날짜가 가장 최근인 레코드 목록에서 `update_date`가 가장 최근인 레코드를 찾으면 됩니다.

위 예제의 레코드는 2018년 12월 12에 처음으로 생성되었습니다. 그리고 2019년 3월 29에 변경되었습니다(예: 레코드의 주소 변경). 그 후 2019년 4월 28일에 주소 변경이 수정되었습니다. 따라서 `valid_from`은 변경되지 않았지만 `update_date`는 변경되었습니다. 주소를 수정하면(드문 경우지만) 원래 `valid_from` 날짜의 레코드를 소급하여 변경하므로, 해당 필드는 변경되지 않았습니다. 가장 최근 `valid_from`을 찾는 쿼리는 2개 레코드를 반환하는데, `update_date`가 가장 최근인 레코드는 실제 현재 레코드를 제공합니다.