bigquery6 GCP Cloud Functions로 MySQL(AWS RDS) → BigQuery 동기화 파이프라인 구축하기 멀티 호스트 MySQL 데이터를 BigQuery로 동기화하는 파이프라인을 Cloud Functions(2세대)로 구축한 과정을 정리한다. Airflow 같은 오케스트레이터 없이 가볍게 운영할 수 있는 구성이며, DB가 GCP가 아닌 AWS RDS에 있는 경우의 네트워크 구성(고정 송신 IP)까지 다룬다. 이 글의 명령어와 코드만 따라 하면 동일한 파이프라인을 띄울 수 있다.환경: GCP 프로젝트 my-project, 리전 asia-northeast3(서울), MySQL은 AWS RDS(ap-northeast-2). 실제 값은 각자 환경에 맞게 치환하면 된다.1. 아키텍처와 선택 이유MySQL (AWS RDS, 호스트 여러 대) │ ▼Cloud Function (Python, gen2) ←─ Cl.. 2026. 6. 7. [DW 구축] dbt로 Staging Layer 설계 자동화하기(with. BigQuery) 목차핵심 메시지: 왜 Staging Layer가 데이터 웨어하우스의 근간인가1. 전체 아키텍처: 3-Layer 메달리온 구조 이해하기 1.1. Bronze → Silver → Gold, 왜 이렇게 나누는가 1.2. BigQuery Project 구조: dev/prod 분리 1.3. BigQuery Project 전체 구조 및 IAM 권한 설정2. 폴더 구조 설계: 소스 시스템 기반 디렉터리 2.1. 왜 소스 시스템별로 나누는가 2.2. 실전 폴더 구조 2.3. base 레이어: 조인이 불가피할 때3. 네이밍 규칙: 일관성이 생산성이다 3.1. 파일 네이밍: 접두사 + 소스 + 엔터티 3.2. 컬럼 네이밍: 데이터 타입별 접두사/접미사 체계4. 표준 Staging.. 2026. 3. 29. [DW 구축] Airflow로 MySQL→BigQuery 마이그레이션 하기 들어가며1. 마이그레이션 전략 수립 1.1 마이그레이션 대상 테이블 선정 1.2 YAML 기반 테이블 설정 관리 및 3가지 마이그레이션 모드 설계2. Airflow DAG 구현 2.1 동적 DAG 생성 패턴 2.2 full_refresh 모드 상세 구현 2.3 incremental 모드 구현 2.4 init 모드 구현3. PythonOperator 함수 설계 3.1 Task1: MySQL 스키마 동기화 함수(sync_schema_from_mysql) 3.2 Task2: 동적 쿼리 생성 함수(build_mysql_query) 3.3 Task4: 데이터 로드 함수(load_to_bigquery)4. 기술적 고려사항 구현 4.1 파티션 및 클러스터링 설정 .. 2026. 1. 17. [BigQuery] 신규사용자가 첫 접속날짜에 남긴 이벤트만 필터링 이글에서는 user_pseudo_id 또는 user_id를 활용해서 신규사용자가 처음 접속한 당일에 발생시킨 이벤트들만 필터링하는 방법에 대해서 알아볼 것이다. user_id를 수집하고 있지 않은 경우, 사용자를 식별할 수 있는 user_pesuo_id를 사용해야 한다.(user_id 관련 글) 이를 사용하여 사용자가 가장 처음 사이트를 접속한 날짜를 필터링하는 방법을 알아보자. SELECT user_pseudo_id, event_dateFROM `프로젝트ID.events_*`WHERE event_name = 'first_visit' 위와 같이 쿼리를 작성하면, user_pseudo_id를 기준으로 'first_visit' 이벤트를 발생시킨 날짜만 필터링되어서 출력된다.('first_visit'는 .. 2024. 2. 25. [BigQuery] event_date 날짜 형식 변경 방법 BigQuery의 event_date 날짜 형식을 보면, 20240225 이런식으로 되어있는 걸 볼 수 있다. 이러한 날짜 형식을 변경하고 싶을 때 사용할 수 있는 문법을 정리해봤다. 1. PARSE_DATE(format_string, date_string)이 함수는 텍스트 형식의 날짜형태를 날짜 형식으로 바꾸는 함수이다. format_string 부분에는 원본 데이터의 날짜형태를 그대로 입력해주어야한다. 예를 들어 event_date의 형태가 20240225이었기 때문에 아래와 같이 %Y%m%d 형태로 작성해주는 것이다. 다른 예시로 event_date의 형태가 24/02/25 였다면, format_string 부분에 %y/%m/%d 형태로 작성해야한다.PARSE_DATE('%Y%m%d',event_.. 2024. 2. 25. GA4, BigQuery, Looker Studio 3가지 툴 연동 방법 이 글에서는 GA4와 BigQuery를 연결시키는 방법과 BigQuery와 Looker Studio를 연결시키는 방법을 설명한다. 또한, 이 3가지 툴을 연동시키면 좋은 점과 가격에 대해서도 간단히 짚고 넘어간다. GA4, BigQuery, Looker Studio 왜 연동시켜야 할까?GA4의 보고서 외에도 더 다양한 그래프를 보고 싶거나, GA4에서 핵심적인 데이터를 모아서 한 곳에서 대시보드 형태로 확인하고 싶을 때, GA4와 Looker Studio을 연동해서 사용한다. GA4와 Looker Studio만 연결시켜도 대시보드 시각화가 가능한데, BigQuery까지 연결시켜야 하는 이유는 뭘까? 여러 가지 이유가 있지만, 내가 생각하는 BigQuery가 반드시 연결되어야 하는 이유는 정확한 데이터로 .. 2024. 1. 25. 이전 1 다음