Generalist/data engineering

Kaggle 데이터를 Google Cloud Storage로 이동시키기

홍원 2022. 9. 23. 16:05

데이터 분석 공부를 위해 많은 데이터 셋들을 kaggle 에서 다운받던 중, 제 노트북에 용량 압박이 점점 느껴졌습니다.

주로 GCP를 사용하는 제 환경 상 Google Cloud Storage (이하 GCS)에 kaggle 데이터를 바로 저장하는것이 효과적이었습니다. 이번 글에서는 Kaggle 데이터를 GCS로 이동시키는 방법을 알아보겠습니다.


1. 새 Kaggle 노트북 생성

캐글 좌측 상단 create - new notebook

캐글 홈페이지에서 왼쪽 상단의 Create - New Notebook 을 클릭하여 새 캐글 노트북을 생성합니다.


2. 데이터 셋 추가

생성된 노트북의 우측 바 - Add Data를 클릭하여 자신이 필요한 캐글 데이터 셋을 추가합니다.

저는 이전 분석에 사용한 동물의 숲 데이터를 가져오겠습니다. 


3. 데이터를 GCS로 이동시키기

3-1. 라이브러리 호출

import os 
from google.cloud import storage

셀을 생성하여 위 패키지를 입력합니다.


3-2. 구글 클라우드 서비스 연결

위 과정을 통해서 Kaggle이 제 GCS 계정에 접근할 수 있는 권한을 부여하였습니다.

파란 박스에는 개인 이름, 구글 id가 있습니다. 빨간 박스를 따라 주세요.


3-3. 버킷 생성 및 업로드 함수 생성

storage_client = storage.Client(project="GCP_PROJECT_ID")
def create_bucket(bucket_name):
 bucket = storage_client.create_bucket(bucket_name)
def upload_files(bucket_name, source_folder):
 bucket = storage_client.get_bucket(bucket_name)
 for filename in os.listdir(source_folder):
 
  blob = bucket.blob(filename)
  blob.upload_from_filename(source_folder + filename)

위 코드로 제 GCS의 프로젝트에 접근 한 뒤,

create_bucket , upload_files 함수를 사용하여 버킷 생성, 파일 업로드를 합니다. 

첫번쨰 줄의 (project = ) 를 자신의 프로젝트 아이디로 변경한 뒤 실행합니다.

 

※ gcp 프로젝트 id 확인 법 

gcp 접속, 빨간박스로 확인


3-4. 함수 적용

create_bucket('생성하고싶은 버킷 이름') 

※주의※

버킷 이름은 유일해야 하므로 '이름 + 프로젝트명'으로 쉽게 유일한 버킷명을 생성 할수 있습니다.

 

upload_bucket('버킷 이름', '데이터 폴더 경로') 

※주의※

경로 뒤 '/' 를 추가하여야 os.listdir로 폴더의 하위 csv 파일들을 읽을 수 있습니다.

 

※ 데이터 폴더 경로 확인 법

우측 데이터 셋 path 복사 클릭


4. 결과 확인

GCS에 접속하면 버킷 생성, csv 파일 데이터 이동까지 잘 된 모습을 확인 할 수 있습니다 :)

 

 

 

 

 

 


참고 자료

https://towardsdatascience.com/importing-kaggle-training-data-into-google-cloud-storage-70830a439048

 

Importing Kaggle Training Data into Google Cloud Storage

We show you how in easy to follow steps.

towardsdatascience.com

위 자료를 응용하여 작성한 글입니다.