

S3 내부에서 Raw Data (JSON)을 Cleaned Data, Curated Data (Parquet)로 변환할 때 Parquet 구조를 정립한다.
추후 Redshift와 RDS의 테이블로 적재될 때 추출하기 어렵지 않은 방식으로 구조를 설계한다.
Bucket 파일구조
raw
cleaned : raw와 동일
curated
JSON 구조
book_review
{
"reviews": [
{
"isbn": ISBN
"web_code": 교보/알라딘
"wrt_date": 작성일,
"content": 댓글 내용
"rating": 평점,
}
]
}
book_content
{
"isbn": isbn13
"page": page ex)P.17
"content": 책 속으로 내용
}
Parquet 구조
<aside> 💡 * 저자의 경우 각 사이트마다 복수의 저자를 표기하는 방법이 달라 하나의 형식으로 통일시켜야 함 → “저자1, 저자2, 저자3” 과 같이 string 형식으로 “,” 구분자를 사용하여 여러 명의 저자를 표기하기로 함
</aside>
naver
| raw key | cleaned key | description |
|---|---|---|
| isbn | ISBN | ISBN (13자리) |
| title | TITLE | 책 제목 |
| link | SALE_URL | 판매 링크 |
| image | IMAGE_URL | 섬네일 링크 |
| author | AUTHOR | 저자 (^ 문자로 구분되어 있어 콤마로 replace하여 사용하면 될듯함) |
| discount | SALE_PRICE | 판매가 |
| publisher | PUBLISHER | 출판사 |
| pubdate | PUBDATE | 출판일 |
| description | DESCRIPTION | 설명 |
kakao
| raw key | cleaned key | description |
|---|---|---|
| isbn | ISBN | ISBN (13자리) |
| title | TITLE | 책 제목 |
| url | SALE_URL | 판매 링크 |
| thumbnail | IMAGE_URL | 섬네일 링크 |
| authors | AUTHOR | 저자를 배열로 제공 |
| sale_price | SALE_PRICE | 판매가 |
| publisher | PUBLISHER | 출판사 |
| datetime | PUBDATE | 출판일 |
| contents | DESCRIPTION | 설명 |
| translators | TRANSLATOR | 번역가를 배열로 제공 |
| status | SALE_STATUS | 판매 상태 (품절/절판) |
aladin