데이터 부트캠프 - Today I Learned

[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_9주차_25.01.20

onion95 2025. 1. 20. 17:22

Today's Goals

1. API로 데이터 수집하는 코드 Git에 저장하기, 수집한 데이터 빅쿼리에 적재하기

 

 

 

데이터를 수집하는 것에 이어서, 데이터를 빅쿼리에 적재하는 방법까지 배웠다.항상 데이터파이프라인이 뭔데 라는 의문이 있었는데 조금씩 감이 잡히는 것 같다.

 

 

 

 

 

1. 데이터 수집 코드 저장 및 데이터 적재

 

API 활용 데이터 수집 코드 Git에 저장하기


 

[Git의 Repository - 프로젝트 저장소]

  • 레파지토리는 프로젝트의 소스(코드)를 저장하여 프로젝트별로 관리하는 저장소임

  • 사이트 우측 상단에서 새로운 레파지토리 생성 가능
  • 생성 시 private과 public을 설정할 수 있는데, 공유를 위한 목적이라면 public으로 만들기

 

 

[Git에 코드 저장하기 - 코드 관리 방법]

  • 새로운 레파지토리 생성 후 해당 레파지토리에 들어가면 오른쪽 위의 +버튼을 선택하여 새로운 파일을 생성하거나 업로드할 수 있음(코드파일 생성)

 

 

 

구글 코랩과 빅쿼리를 연결하여 데이터 적재하기


 

[일단 받아들이자, 빅쿼리에 적재하는 방법]

!git clone https://github.com/jaeonion/api_assign.git #나의 Git 레파지토리 경로


#Git에 저장된 데이터 수집 코드(최종적으로 데이터 프레임으로 추출)
import requests
import json
import pandas as pd

url = 'http://apis.data.go.kr/1160100/service/GetFinaStatInfoService_V2/getBs_V2'
params = {
    'pageNo': 1,
    'numOfRows': 100,
    'resultType': 'json',
    'serviceKey': 'CInqflqEroMBIvwzFgjXQJmsywE6qccC7DzY9BmyjB8inNR88bJjlwr2NzkrLN5VZKyMf39GNtGDHdloYAKJWw=='
}
response = requests.get(url, params=params)

data = response.json()

item = data['response']['body']['items']['item']
df= pd.DataFrame(item)
df


#빅쿼리에 저장하는 과정

from google.colab import files
from google.oauth2 import service_account
uploaded = files.upload() #실행 후 빅쿼리 api 키로 다운받은 json파일 넣어주기

# 서비스 계정 키 파일 경로 설정
key_path = list(uploaded.keys())[0]
credentials = service_account.Credentials.from_service_account_file(key_path)

from google.cloud import bigquery

# BigQuery 클라이언트 생성
client = bigquery.Client(credentials=credentials, project=credentials.project_id)

# 업로드할 데이터셋 및 테이블 정보 설정
dataset_id = "api_dataset"  # BigQuery 데이터셋 ID(빅쿼리 상에 미리 생성한)
table_id = "financial_api"      # BigQuery 테이블 ID(빅쿼리에 적재 시 테이블 이름)

# 데이터프레임 업로드
job = client.load_table_from_dataframe(df, f"{dataset_id}.{table_id}")

# 작업 완료 대기
job.result()

# 결과 확인
print(f"Uploaded {job.output_rows} rows to {dataset_id}.{table_id}.")
  • 해당 과정을 완료하면 빅쿼리에 적재된 데이터를 확인할 수 있음