로컬에서 데이터 로드하기
cloudshell 사용
cloudshell에서 git clone하여 github 저장소에 접근하여 load
연결한 git을 bigquery 테이블로 로드
웹UI로 데이서 로드하기
프로젝트를 생성하여 업로드
웹UI를 사용하면 파일 크기는 최대 10MB, 행 수는 16,000으로 제한된다. -> google cloud stroage를 생성해주어야 한다.
google cloud storage에 접속하여 bucket을 생성하고 local file을 업로드하면 된다.
업로드 후 다시 돌아가 Explorer 옆 +ADD를 클릭한 후 Google CLoud Storage를 클릭해 업로드 한 file을 불러오면 된다.
데이터 로드 후, 데이터 타입을 확인하여 타입 캐스트를 해줘야 한다.
e.g.
SELECT
INSTNM
, ADM_RATE_ALL
, FIRST_GEN
, MD_FAMINC
, MD_EARN_WNE_P10
, SAT_AVG
FROM
ch04.college_scorecard
WHERE
SAFE_CAST(SAT_AVG AS FLOAT64) > 1300
AND SAFE_CAST(ADM_RATE_ALL AS FLOAT64) > 0.2
AND SAFE_CAST(FIRST_GEN AS FLOAT64) > 0.1
ORDER BY
CAST(MD_FAMINC AS FLOAT64) ASC
타입캐스팅을 하지 않으면 아래와 같은 에러 발생
No matching signature for operator > for argument types: STRING, INT64
데이터를 로드하기 전 반드시 데이터 정리와 변형 작업을 진행해주어야 한다.
스키마 자동 탐지 알고리즘은 몇 개의 행만 보고 샘플링하기 때문에 정확도를 신뢰할 수 없다.
운영 환경에서는 컬럼별 데이터 형식을 지정해주는 것이 낫다.
업로드한 파일 컬럼들의 스키마 정보를 로드에서 확인한 후, 텍스트 편집기에서 적절한 형식으로 수정해준다.
수정한 후에는 터미널에서 스키마 파일을 함께 지정해주면 된다.
데이터를 로드한 후, 불필요한 컬럼을 제외하고 새롭게 CREATE TABLE하면 목적이 확실한 테이블을 생성할 수 있다.
CREATE OR REPLACE TABLE ch04.college_scorecard_etl AS
SELECT
INSTNM
, ADM_RATE_ALL
, FIRST_GEN
, MD_FAMINC
, MD_EARN_WNE_P10
, SAT_AVG
FROM
ch04.college_scorecard
데이터 조회 이전에, 빅쿼리 동작 방식 및 정의들에 대해 알고 있어야 활용이 가능할 것 같다. 아직 자유롭게 사용하기에는 이해도가 낮다.
많은 도움이 되었습니다, 감사합니다.