inblog logo
|
hollyisyoon
    스터디

    [Bigquery] 쿼리 필수요소

    빅쿼리 스터디 1일차
    Jul 14, 2023
    [Bigquery] 쿼리 필수요소
    1. 빅쿼리 객체와 설명2. SELECT, EXCEPT, REPLACE3. 배열 4. STRUCT5. 향후 계획

    1. 빅쿼리 객체와 설명

    빅쿼리 객체
    이름
    설명
    Project
    bigquery-public-data
    데이터셋 및 해당 테이블과 연결된 영구 스토리지의 소유자
    Dataset
    new_york_citibike
    데이터셋은 테이블 및 뷰에 대한 액세스를 구성하고 제어하는 데 사용되는 최상위 컨테이너
    Table/View
    citibike_trips
    테이블 또는 뷰는 데이터셋에 속해야하므로 빅쿼리에 데이터를 로드하기 전 하나 이상의 데이터셋을 생성해야 함
     

    2. SELECT, EXCEPT, REPLACE

    -- EXCEPT 사용해 특정 컬럼을 제외한 모든 컬럼을 선택하는 쿼리 SELECT * EXCEPT(short_name, last_reported) -- REPLACE를 사용해 컬럼의 값을 변환하는 쿼리 SELECT * REPLACE(num_bikes_available + 5 AS num_bikes_available)
     

    3. 배열

    • SQL쿼리에 배열을 하드코딩해서 쿼리를 작성할수도 있다(!). 간단한 테이블 만들듯..
    WITH example AS ( SELECT 'Sat' AS day, 1451 AS numrides, 1018 AS oneways UNION ALL SELECT 'Sun', 2376, 936 UNION ALL SELECT 'Mon', 1476, 736 ) SELECT * FROM example WHERE numrides < 2000
    Q1. 문제 풀어보자!
    • Customer Segment 테이블을 만들고, 해당 테이블에 열을 추가하고 해당하는 사용자 수를 찾아줘
      • Customer Segment
        device.category
        geo.country
        P0
        mobile
        United States
        P1
        mobile
        Japan
    쿼리
    WITH segment AS ( SELECT 'P0' AS segment, 'mobile' AS category, 'United States' AS country UNION ALL SELECT 'P1', 'mobile', 'Japan' ) SELECT segment.segment, segment.category, segment.country, COUNT(distinct user_pseudo_id) FROM segment LEFT JOIN firebase-public-project.analytics_153293282.events_20181003 f ON segment.category = f.device.category AND segment.country = f.geo.country GROUP BY 1,2,3
    notion image
    • ARRAY_AGG : 개별값을 수집해 순서가 있는 리스트 또는 ARRAY에 넣을 수 있다
    SELECT gender, ARRAY_AGG(numbrips ORDER BY year) AS numtrips FROM ( SELECT gender, EXTRACT(YEAR FROM starttime) AS year, COUNT(1) AS numbrips FROM bigquery-public-data.new_york_citibike.citibike_trips ) GROUP BY 1
     

    4. STRUCT

    • 순서를 갖는 필드 그룹. 필드에는 이름을 정해줄 수 있다.
    SELECT [ STRUCT('male' AS gender, [1, 2] AS numbrips, STRUCT('female' AS gender, [3, 4] AS numbrips ] AS bikerides
     
     

    5. 향후 계획


    7/17(월)
    7/19(수)
    7/21(금)
    데이터타입, 함수, 연산자
    빅쿼리로 데이터 로드 성능 및 비용 최적화
    고급쿼리
    7/24(월)
    7/26(수)
    7/28(금)
    한국어판 부록 10장 빅쿼리 관리 및 보안
    ㅤ
    ㅤ
    책 <구글 빅쿼리 완벽 가이드>
    2장 쿼리 기본 ⭐️
    3장 데이터 타입, 함수, 연산자 ⭐️ (+데이터 가공을 위한 SQL)
    4장 빅쿼리로 데이터 로드 ⭐️ #DDL #DML
    5장 빅쿼리를 이용한 개발
    6장 빅쿼리 아키텍쳐
    7장 성능 및 비용 최적화 #쿼리_속도 ⭐️
    8장 고급쿼리 #배열 #윈도우 #자바스크립트_정의_함수 ⭐️⭐️
     
    9장 빅쿼리 머신러닝
    10장 빅쿼리 관리 및 보안 ⭐️
    한국어판 부록 #ELT_파이프라인 ⭐️
     
    인프런 데이터분석을 위한 SQL 실전편
    [무료] [백문이불여일타] 데이터 분석을 위한 SQL 실전편 (무료 미니 코스) - 인프런 | 강의
    인프런 누적 수강생 10,000명 이상, 풍부한 온/오프라인 강의 경험을 가진 데이터리안의 SQL 실무 강의. SQL은 실무에서 어떻게 활용되고 있을까요? Microsoft의 Yammer 서비스의 실제 데이터를 이용하여 문제를 해결하는 데이터 분석가가 되어봅시다., 백문이...
    [무료] [백문이불여일타] 데이터 분석을 위한 SQL 실전편 (무료 미니 코스) - 인프런 | 강의
    https://www.inflearn.com/course/데이터-분석-sql-실전
    [무료] [백문이불여일타] 데이터 분석을 위한 SQL 실전편 (무료 미니 코스) - 인프런 | 강의
    Share article

    hollyisyoon

    RSS·Powered by Inblog