BigQuery

BigQuery 데이터 입출력 From Local TO BigQuery

개요

  • 서비스 계정 추가 후, 데이터 업로드

GCP 서비스 계정 추가

  • IAM 및 관리자 > 서비스 계정 > 서비스 계정 만들기 선택

image.png

  • 서비스 계정 이름은 각자 정한다. 필자는 lgu6th-bq-loader로 명명했다.
  • 서비스계정 ID는 이메일 주소 ID를 사용한다.
  • 만들고 계속하기 버튼을 클릭한다.

image.png

  • 권한을 부여한다. BigQuery 관리자를 선택한다.
  • 그 후 계속 버튼을 클릭한다.

image.png

  • 그 후 완료 버튼을 클릭한다.

image.png

서비스 키 다운로드

  • 다음과 같은 화면에서 키 관리 버튼을 클릭한다.

image.png

GCP VM Connect to BigQuery using Streamlit (ver. 2025, 06)

개요

  • VM 만들기 Web UI가 일부 변경됨 (추가 진행하기로 함)
  • VM 생성 및 VS Code 연결
  • VM과 BigQuery 연결

VM 머신 생성

머신 구성

  • 이름과 성능 체크
  • 월별 예상 가격을 체크한다.

Screenshot 2025-06-20 at 7.54.08 PM.png

OS 및 스토리지

  • Ubuntu - Ubuntu 24.04 LTS 방식으로 진행 (x86/64) 방식 선택
  • 디스크 사이즈 : 25GB

Screenshot 2025-06-20 at 8.00.50 PM.png

  • 암호화 : Google 관리 암호화 키 선택

Screenshot 2025-06-20 at 8.02.26 PM.png

Streamlit App Deployment with nohup in Google Compute Engine

개요

개요

  • Streamlit Sample 코드를 작성한 후 배포를 진행한다.
  • VS Code 접속 시 고정 IP를 할당한다.
  • 이 때 터미널이 종료되거나 사용자가 로그아웃해도 계속 실행되도록 nohup을 사용한다.

Nohup의 기본 개념

  • nohup은 “no hang up"의 약자로, 백그라운드에서 다른 명령을 실행하는 데 사용되는 UNIX 명령으로, 로그아웃한 후에도 계속 실행됨.
  • 원격 서버에서 장기간 실행되는 프로세스를 시작하려는 경우 세션 연결이 끊어지거나 터미널이 닫힐 때 프로세스가 종료되지 않도록 하려는 경우에 특히 유용함.
  • foreground에서 명령이나 프로세스를 실행할 때 터미널이나 셸 세션이 종료되면 해당 명령이나 프로세스가 종료될 수 있다.
  • nohup을 사용하면 기본적으로 터미널에서 프로세스를 분리하고 종료(HUP) 신호를 수신하지 못하도록 하여 로그아웃하거나 연결을 끊어도 프로세스가 완료될 때까지 실행할 수 있다.
  • Python에서 nohup을 실행할 때는 다음과 같다.
    • 출력(로그 및 오류)을 특정 파일로 리디렉션하려면 다음 명령을 사용할 수 있다.
    • 이렇게 하면 Streamlit 앱의 표준 출력과 표준 오류가 모두 streamlit.log라는 파일로 리디렉션 된다.
nohup streamlit run my_app.py > streamlit.log 2>&1 &
  • Streamlit 앱을 중지해야 하는 경우 ps 명령을 사용하여 프로세스 ID를 찾은 다음 종료 명령을 사용하면 된다.
ps aux | grep "streamlit run"
  • 그러면 Streamlit과 관련된 프로세스 목록이 표시된다. 삭제하고자 하는 프로세스 ID를 찾아서 종료한다.
kill -9 PROCESS_ID

고정 IP 할당

  • 왼쪽 사이드바 메뉴 > VPC 네트워크 > IP 주소 클릭한다.

Untitled

Streamlit with Bigquery On Compute Engine

개요

인스턴스 시작

  • 인스턴스가 중지가 되어 있다면 다시 시작을 한다.

Untitled

BigQuery Client 라이브러리 설치

  • 클라이언트 라이브러리를 설치한다.
pip install --upgrade google-cloud-bigquery

Untitled

Streamlit 라이브러리를 활용한 배포 - BigQuery 사용

개요

  • Streamlit 라이브러리와 BigQuery를 사용하여 배포를 진행한다.
  • GCP 클라우드 프로젝트 설정 과정은 생략한다.

BigQuery API 사용설정

  • Project API에서 ENABLE APIS AND SERVICES 버튼을 클릭한다.

Untitled

  • 빅쿼리 API를 탐색한다.
    • 키워드명 : BigQuery API

Untitled

Untitled

  • manage 버튼을 클릭한다.

Untitled

  • 인증키를 다운로드 받도록 한다. (CREATE CREDENTIALS클릭)

Untitled

  • 아래와 같이 지정 후, 스크롤을 내려서 NEXT 버튼을 클릭한다.

Untitled

  • 임의의 Service account ID 작성 후, CREATE AND CONTINUE 버튼을 클릭한다.

Untitled

  • 프로젝트 권한을 부여 후, CONTINUE 버튼을 클릭한다.

Untitled

BigQuery ML을 사용한 펭귄 체중 예측

개요

  • BigQuery ML을 소개한다.
  • BigQuery ML을 사용하면, 머신러닝 모델을 만들고 또한 실행할 수 있다.

목표

  • BigQuery ML에서 CREATE MODEL 문을 사용하여 선형회귀 모델 만들기
  • ML.EVALUATE 함수를 사용하여 ML 모델 평가
  • ML.PREDICT 함수를 사용하여 ML 모델 예측

주의 사항

1단계: 데이터 세트 만들기

  • 데이터 세트 ID에 bqml_practice 입력
  • 데이터 위치로 미국 US 선택
  • 나머지는 모두 Default로 설정한다.

Untitled

2단계: 모델 만들기

데이터 소개

  • 먼저 데이터를 소개한다.
  • 데이터 원 자료는 해당 논문에서 확인할 수 있다.
  • 데이터 셋에 대한 설명은 다음과 같다.
    • species — 펭귄의 종(문자열)
    • island — 펭귄이 사는 섬(문자열)
    • culmen_length_mm — 컬멘 길이(밀리미터)(FLOAT64).
    • culmen_depth_mm — 컬멘 깊이(밀리미터)(FLOAT64)
    • flipper_length_mm — 지느러미의 길이(밀리미터)(FLOAT64)
    • sex — 펭귄의 성별(문자열)

모델 만들기 코드 실행

  • CREATE MODEL 명령어를 실행하여 모델을 생성한다.
#standardSQL
CREATE OR REPLACE MODEL `bqml_practice.penguins_model`
OPTIONS
  (model_type='linear_reg',
  input_label_cols=['body_mass_g']) AS
SELECT
  *
FROM
  `bigquery-public-data.ml_datasets.penguins`
WHERE
  body_mass_g IS NOT NULL
  • 실행 결과는 보는 것처럼 Preprocess, Train, Evaluate 작업이 진행 된 것을 확인할 수 있다.

Untitled

GCP Settings 2022 ver

개요

  • GCP 빅쿼리를 연동하는 예제를 구현한다.
  • 먼저 빅쿼리를 통해 데이터를 적재하는 예제를 확인한다.
  • 구글 코랩에서 빅쿼리 데이터를 불러온다.
  • 데이터 스튜디오에서 빅쿼리 데이터를 불러온다.

소개

Google Cloud 회원가입

  • 준비물
    • Google 계정
    • 신용카드나 체크카드 (개인적으로 돈이 없는 체크카드 사용 권장)
  • 구글 클라우드 사이트 접속
  • 무료 서버 받으려면 아래 화면에서 TRY IT FREE 를 클릭한다.

Untitled

Training Data Split in BigQuery

I. 구글 클라우드 설정

본격적인 빅쿼리 실습에 앞서서, Python과 연동하는 예제를 준비하였다. 빅쿼리 시작에 앞서서 선행적으로 클라우드 사용을 해야 한다.

  1. 만약 GCP 프로젝트가 없다면, 계정을 연동한다. Go to Cloud Resource Manager
  2. 그리고, 비용결제를 위한 카드를 등록한다. Enable billing
  3. 마지막으로 BigQuery API를 사용해야 하기 때문에 빅쿼리 API 사용허가를 내준다.Enable BigQuery

위 API를 이용하지 않으면 Python 또는 R과 연동해서 사용할 수는 없다. 자주 쓰는것이 아니라면 비용은 거의 발생하지 않으니 염려하지 않아도 된다. 비용관리에 대한 자세한 내용은 BigQuery 권장사항: 비용 관리에서 확인하기를 바란다.

(SQL-Tutorial) 데이터 분석을 위한 SQL 레시피와 빅쿼리 사용

1줄 요약

데이터 분석을 위한 SQL 레시피 교재를 빅쿼리에서 활용해본다.

책 소개

실습 준비

  • 도서의 부록/예제소스를 다운로드 하세요.

  • 예제 소스 코드를 열어봅니다.

  • sql 소스코드로 구성이 되어 있는 것을 확인할 수 있습니다.

  • 저자가 말하는 샘플 데이터 내용은 아래와 같습니다.

  • 이번에는 임의의 SQL 파일을 열어서 확인하도록 합니다.

  • 위 이미지에서 보면, Table을 생성하는 형태로 구성이 되어 있는 것을 알 수 있습니다.
  • 따라서, 위 코드가 실제 빅쿼리에도 동일하게 적용이 되는지 확인을 하도록 합니다.

빅쿼리에서의 실습

Ch22 Cleaner Null Handling with Coalesce

I. 구글 클라우드 설정

본격적인 빅쿼리 실습에 앞서서, Python과 연동하는 예제를 준비하였다. 빅쿼리 시작에 앞서서 선행적으로 클라우드 사용을 해야 한다.

  1. 만약 GCP 프로젝트가 없다면, 계정을 연동한다. Go to Cloud Resource Manager
  2. 그리고, 비용결제를 위한 카드를 등록한다. Enable billing
  3. 마지막으로 BigQuery API를 사용해야 하기 때문에 빅쿼리 API 사용허가를 내준다.Enable BigQuery

위 API를 이용하지 않으면 Python 또는 R과 연동해서 사용할 수는 없다. 자주 쓰는것이 아니라면 비용은 거의 발생하지 않으니 염려하지 않아도 된다. 비용관리에 대한 자세한 내용은 BigQuery 권장사항: 비용 관리에서 확인하기를 바란다.