[개인] Google Clab → Google Bigquery 자동화 프로젝트(2)
01 Colab환경에서 KAMIS API을 활용하여 데이터를 가져온다.
1. 파라미터 참고! request url도 해당 페이지에서 제공한다.
2. 2881개의 행을 가진 데이터셋을 가져올 수 있다.
3. 전처리 과정으로 특수문자를 제거, 통합된 Date컬럼을 생성, 전체 데이터를 평균과 평년으로 나눈다.
4. 두 가지 방법으로 sns을 활용하여 그래프를 만들어봤다. (우) 날짜를 유추하기 좋은 코드를 배웠다.
02 필요 모듈 설치, 연동 인증하기
!pip install google-cloud-bigquery pandas google-auth google-auth-oauthlib google-auth-httplib2
빅쿼리랑 코랩이랑 연결하려면 인증 절차를 거쳐야 한다. 아무나 접근하면 안되니까!
03 클라이언트를 하나 만들어야 한다.
1. 프로젝트 이름 옆에 있는 아이디를 입력한다.
project_id = '입력하기'
2. 빅쿼리 클라이언트에 연결한다.
client = bigquery.Client(project=project_id)
1. 빅쿼리에 연결할 준비가 끝났다. 인증도 했고, 주소도 확인이 됐으니까.
2. 여기에서 만든 client 변수가 메소드와 함께 자주 쓰일 예정이다.
04 DataFrame을 BigQuery로 업로드하기 (colab코드 참고)
dataset_id = 'kamis'
table_id = 'watermelon'
1. 데이터 셋이 아무것도 없으니까 데이터셋을 정의하고, 지금 전달하려는 테이블명도 정의한다.
full_dataset_id = "{}.{}".format(client.project, dataset_id)
2. 문자열 포맷팅을 용하여 풀 데이터셋을 완성한다. (틀 만드는 중)
확인: print(full_dataset_id)
3. 2번 코드를 출력하면 '프로젝트ID.kamis' 라고 나온다.
4. 서버랑 통신해서 내가 요청하는 데이터셋이 없으면 (처음이면 당연히 없음)
5. 새로운 데이터셋을 만들어야 한다. -> 이때, try&except 구문을 사용한다.
6. 팁: 북아시아에 있는 구글 서버에 데이터를 만들 것 이다.
7. 중요한 이유: 물리적으로 가까운 곳에 설정해야 요금이 더 저렴하다.
출력: Dataset 프로젝트ID.kamis created
8. 평균 가격에 해당하는 데이터셋을 넣었다.
9. 프로젝트ID 옆에 점 세개 누르고 콘텐츠 새로고침을 하면 간단히 확인할 수 있다.
# 활용 방법
- 캐글외 직접 데이터 수집을 완료했고 업로드 끝냈다.
- 이 데이터를 볼 수 있는 권한을 팀원에게 나눠준다.
- 아이디, 비밀번호 이전에 권한에 대한 세부설정도 있음.
05 과금 체크
1. 빅쿼리에서 모니터링을 누르면 내역을 확인할 수 있다.
2. 클라우드 밖으로 나가서 결제 보고서 보면 정산 금액이 나오는데 아직 안뜬다. (데이터가 작아서 그럴 수도)
# 활용 방법
- 대용량 데이터셋을 다룰 때에는 10%만 밀어넣고 테스트한다.
- Openai api를 활용했을 때처럼 테스트로 요금을 예측할 수있다.
06 테이블 두 개를 모두 업로드 했다.
# 팀 프로젝트 활용 방법
- 데이터 공유: 빅쿼리 혹은 외부 클라우드 db를 이용
- 코드 공유: 깃허브, 구글 코랩, 구글 드라이브 등
- 진행상황: 노션 등
- 시각화: 태블로, 루커 스튜디오, 스프레드 시트 등
07 참고하면 좋은 전처리 코드를 배웠다.
df_str = df[(df['시군구'] == '평균')]
df_str = df_str.fillna('NA')
df_str = df_str.assign(date = lambda x : df['연도'] + '/' + df['날짜'])
df_str = df_str.assign(price_100g = lambda x: x['가격'].str.replace(',','').astype('int')/20)