티스토리 뷰

초보 입장에서 어려웠던 부분중에 하나가 큰 데이터를 다루는 부분 이었다.

데이터는 크게 Feature, Label로 나뉘는데

Raw 데이터를 이용해 Label을 후에 붙여주게 된다.

내 경우에는 RAW 데이터가 MySQL 로 저장이 되어

MySQL에서 아래 작업을 처리 하려고 했었는데 이게 문제였다.

 

1. Feature 부분을 Export -> Export 속도가 느림.

2. label 생성 -> 생성은 빠름

3. Feature와 Label을 Join -> 하루 종일 돌려서 6000만건, 3억 건이면 5일을 돌려야 됨

 

이에 대한 해결 책은

1. Python을 이용하여 Feature데이터를 나누어서 Parquet 형식으로 저장

2. Label 도 Parquet 형식으로 저장

3. Label 과 Feature는 나중에 Join 할 수 있도록 키를 맞추어 저장

4. Label 은 여러가지 시도를 해 볼 수 있기 때문에 따로 준비

 

이렇게 준비하면 Feature 하나에 여러개의 라벨을 만들 수 있고

 

Feature는 아래와 같이 여러개

 

Label도 아래와 같이 여러개 파일로 나누어서 준비 할 수 있다.

 

Python에서 합쳐도 되겠지만 AWS를 쓰면 조금 더 빠르게 합칠 수 있다.

 

1. AWS S3에 각 폴더를 업로드

 

2. SageMaker Canvas에서 Data Wragler 선택, Import and prepare 클릭, Tarbular 클릭

 

3. S3에서 데이터 선택. 올린것을 모두 선택 하면 됨

 

 

4. 이렇게 하면 Feature가 불러와 지고

 

5. 여기에 오른쪽 위에 Add data를 눌러서 Label을 불러옴

 

6. Data Types에서 Combine data-> Join을 눌러 두개를 합침

 

합친 모양

 

그리고 합쳐진 것을 Export 하면 쉽게 데이터를 C3에 저장할 수 있다. 로 끝났으면 행복했겠지만

 

문제가 발생한다.

내 데이터는 80GB 정도 되고 여러개 파일로 나누어서 올린 후 합치려고 했더니

제대로 올라가지 않고 합쳐지지도 않는다.

 

이렇게 AWS를 이용해 처리하는 방법은 실패 했다.

 

쉬운 방법을 찾아서 헤멨지만

쉬운 방법은 없는가 보다.

 

이렇게 된 이상 로컬에서 하나로 합쳐서 준비 하는 수 밖에

 

'AWS Sagemaker' 카테고리의 다른 글

3. Sagemaker 둘러보기  (0) 2024.08.10
2. 데이터 준비하기  (0) 2024.08.10
1. 다시 머신러닝을 해 보자  (0) 2024.08.10
댓글
Total
Today
Yesterday
최근에 올라온 글
최근에 달린 댓글