1.1. BigQuery κ°μ1.1.1. BigQuery μκ°1.1.2. λ°μ΄ν°λ² μ΄μ€ κΈ°λ³Έ μ©μ΄1.1.3. BigQuery νΉμ§1.2. BigQuery ν
μ΄λΈ1.2.1. μ€ν€λ§1.2.2. DATA TYPE1.3. BigQuery νλ‘μ νΈ μμ±1.4. BigQueryμ λ°μ΄ν° λΆλ¬μ€κΈ°1.4.1. BigQueryκ° μ§μνλ ν
μ΄λΈ μ ν1.4.2. BigQuery κ³΅κ° λ°μ΄ν°μ
λΆλ¬μ€κΈ°1.4.3. Analytics Hub λ°μ΄ν° λΆλ¬μ€κΈ°1.4.4. μ€μ΅ νκ²½ μ€μ νκΈ°1.5. λΆλ‘1.5.1. BigQuery κ°κ²© μ±
μ 1.5.2. BigQuery μ€ν 리μ§
Β
1.1. BigQuery κ°μ
1.1.1. BigQuery μκ°
BigQueryλ Google Cloud Platformμ ν΄λΌμ°λ κΈ°λ° λ°μ΄ν° μ¨μ΄νμ°μ§ μλΉμ€λ‘, λκ·λͺ¨ λ°μ΄ν°μ
μ μ μ₯, 쿼리νκ³ λΆμνλ λ° μ¬μ©λλ μμ κ΄λ¦¬ν μλ²λ¦¬μ€ SQL λ°μ΄ν°λ² μ΄μ€μ
λλ€.
SQL κΈ°λ°μ 쿼리 μΈμ΄λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ½κ² κ²μ λ° λΆμν μ μμΌλ©°, λ°μ΄ν° λΆμκ°, λ°μ΄ν° μμ§λμ΄ λ± λ€μν μ¬μ©μλ€μ΄ μ€μν λΉμ¦λμ€ μμ¬κ²°μ μ λ΄λ¦΄ μ μλλ‘ ν©λλ€.
Β
1.1.2. λ°μ΄ν°λ² μ΄μ€ κΈ°λ³Έ μ©μ΄
- Key: λ°μ΄ν°λ² μ΄μ€μμ λ°μ΄ν°λ₯Ό μλ³νκ±°λ μ‘°ννλλ° νμ©λλ κ³ μ ν μλ³μμ λλ€.
- νμ : κ° μ΄μ΄ κ°μ§ μ μλ λ°μ΄ν° μ νμ λνλ λλ€. λ¬Έμμ΄, μ«μ, λ μ§ λ±μ΄ μμ΅λλ€.
- Date: λ μ§ λ°μ΄ν°λ₯Ό μ μ₯νκ³ μ‘°μνκΈ° μν λ°μ΄ν° μ νμ λνλ λλ€. μκ°, μ°λ, μ, μΌ λ±μ μ 보λ₯Ό ν¬ν¨ν μ μμ΅λλ€.
- RDBMS (Relational Database Management System): κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν μΌλ‘, μλ‘ κ΄λ ¨λ κ° ν μ΄λΈμ κ΄κ³λ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό μ‘°μ§, κ΄λ¦¬νκ³ μΏΌλ¦¬ν μ μμ΅λλ€.
- ERD (Entity-Relationship Diagram): μν°ν° κ°μ κ΄κ³λ₯Ό μκ°μ μΌλ‘ ννν λ€μ΄μ΄κ·Έλ¨μΌλ‘, λ°μ΄ν°λ² μ΄μ€ μ€κ³μ ꡬ쑰λ₯Ό μ΄ν΄νκ³ νννκΈ° μν΄ μ¬μ©λ©λλ€.
Β
1.1.3. BigQuery νΉμ§
BigQueryμ μ£Όμν νΉμ§μ λ€μκ³Ό κ°μ΅λλ€. κ·Έ μΈμ νΉμ§μ λν μ 보λ μλ μμ ν λ΄μ© νΉμ 곡μ λ¬Έμλ₯Ό μ°Έκ³ ν΄ μ£Όμμμ€.
- μλ²λ¦¬μ€ μν€ν μ²
- μλ² κ΄λ¦¬λ μ€μ μ μκ΄ μμ΄ μ¬μ©ν μ μλ μλ²λ¦¬μ€ μν€ν μ²λ₯Ό μ 곡ν©λλ€.
- μ¬μ©μλ λ°μ΄ν° μ²λ¦¬μ μ§μ€νκ³ λ³΅μ‘ν μλ² κ΄λ¦¬λ₯Ό ν νμκ° μμ΅λλ€.
- λ°μ΄ν° 곡μ λ° νμ κΈ°λ₯
- μ€μκ°μΌλ‘ λ€μμ μ¬μ©μμ λ°μ΄ν°λ₯Ό 곡μ ν μ μμ΄, ν¨μ¨μ μΌλ‘ ν κ° λ°μ΄ν° 곡μ λ° λ°μ΄ν° λΆμ νμ νκ²½μ ꡬμΆν μ μμ΅λλ€.
- μ μ₯λ νλ‘μμ
- μ μ₯λ νλ‘μμ λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ² μ΄μ€μμ μ€νλλ SQL μ½λ λΈλ‘μ μ μνκ³ μ€νν μ μλ κΈ°λ₯μ μ 곡ν©λλ€.
- μ΄λ₯Ό ν΅ν΄ 볡μ‘ν 쿼리λ νλ‘μΈμ€λ₯Ό λ¨μννκ³ μ¬μ¬μ©μ±μ λμΌ μ μμ΅λλ€.
- λ°μ΄ν° 보μ λ° μ‘μΈμ€ μ μ΄
- Google Cloud Platform(GCP)μ Identity and Access Management(IAM)μ μ€μ¬μΌλ‘ ꡬμ±λ©λλ€. IAMμ ν΅ν΄ νλ‘μ νΈ, λ°μ΄ν°μ , ν μ΄λΈ λ±μ μ‘μΈμ€ κΆνμ κ΄λ¦¬νκ³ , μ΄ μμ€ μ‘μΈμ€ μ μ΄λ₯Ό ν΅ν΄ νΉμ μ΄μ λν μ κ·Όμ μ μ΄ν©λλ€.
- λ°μ΄ν°λ μνΈνλμ΄ μ μ₯λλ©°, κ°μ¬ λ‘κΉ λ° λ€μν μ κ·Ό μ μ΄ κΈ°λ₯μ νμ©νμ¬ λ°μ΄ν° μ κ·Όκ³Ό λ³κ²½ λ΄μμ κ΄λ¦¬ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°μ 보μκ³Ό μμ ν μ‘μΈμ€λ₯Ό 보μ₯ν©λλ€.
Β
1.2. BigQuery ν μ΄λΈ
ν
μ΄λΈμ λ°μ΄ν°λ₯Ό ꡬ쑰νλ ννλ‘ μ μ₯νλ λ°μ΄ν°λ² μ΄μ€μ ν΅μ¬ λ¨μλ‘, νκ³Ό μ΄λ‘ μ΄λ£¨μ΄μ§ ννλ‘ λ°μ΄ν°κ° μ μ₯λ©λλ€.
1.2.1. μ€ν€λ§
μ€ν€λ§λ λ°μ΄ν°λ² μ΄μ€μμ ν
μ΄λΈμ ꡬ쑰λ₯Ό μ μνλ λ° μ¬μ©λλ©°, κ° μ΄μ μ΄λ¦, λ°μ΄ν° μ ν, μ€λͺ
, μ μ½ μ‘°κ±΄, κΈ°λ³Έκ° λ±μ ν¬ν¨ν©λλ€. BigQueryλ₯Ό μ¬μ©νλ©΄ λ°μ΄ν°λ₯Ό ν
μ΄λΈμ λ‘λνκ±°λ μλ‘μ΄ λΉ ν
μ΄λΈμ λ§λ€ λ ν΄λΉ ν
μ΄λΈμ μ€ν€λ§λ₯Ό μ§μ ν μ μμ΅λλ€.
Β
μ€ν€λ§ μ§μ
- μ΄ μ΄λ¦
- λ¬Έμ(a~z, A~Z) ν¬ν¨ κ°λ₯
- μ«μ(0~9) ν¬ν¨ κ°λ₯
- λ°μ€(_) ν¬ν¨ κ°λ₯
- λ¬Έμ λλ λ°μ€λ‘ μμν΄μΌ ν¨
- μ΄ μ΄λ¦μ μ΅λ κΈΈμ΄λ 300μμ(μλ¬Έ κΈ°μ€)
- λμλ¬Έμκ° λ€λ₯Έ μ€λ³΅ μ΄ μ΄λ¦μ νμ©λμ§ μμ
μ΄ μ΄λ¦μ μ§μ νλ 쑰건μ λ€μκ³Ό κ°μ΅λλ€.
- μ΄ μ€λͺ
κ° μ΄μλ μ΅λ 1,024μμ λ¬Έμμ΄μ μ€λͺ
μ΄ ν¬ν¨λ μ μμ΅λλ€.
- κΈ°λ³Έκ°
- 리ν°λ΄
- νΉμ ν¨μλ€
CURRENT_DATE
: νμ¬ λ μ§λ₯Ό λνλ΄λ ν¨μCURRENT_DATETIME
: νμ¬ λ μ§μ μκ°μ λνλ΄λ ν¨μCURRENT_TIME
: νμ¬ μκ°μ λνλ΄λ ν¨μCURRENT_TIMESTAMP
: νμ¬ νμμ€ν¬ν(λ μ§ λ° μκ°)λ₯Ό λνλ΄λ ν¨μGENERATE_UUID
: UUID(Universally Unique Identifier)λ₯Ό μμ±νλ ν¨μRAND
: 0μμ 1 μ¬μ΄μ 무μμ λΆλ μμμ μ«μλ₯Ό μμ±νλ ν¨μSESSION_USER
: νμ¬ μΈμ μ μ¬μ©μλ₯Ό λνλ΄λ ν¨μST_GEOGPOINT
: μ§λ¦¬μ μΈ μ μ λνλ΄λ ν¨μ
μ΄μ κΈ°λ³Έκ°μ 리ν°λ΄ λλ νΉμ ν¨μ μ€ νλμ¬μΌ ν©λλ€.
μ΄μ κΈ°λ³Έκ°μΌλ‘ μ§μ κ°μ μ§μ ν©λλ€. μλ₯Ό λ€μ΄, κΈ°λ³Έκ°μΌλ‘ λ¬Έμμ΄, μ«μ, λ μ§ λ±μ μ§μ μ
λ ₯ν μ μμ΅λλ€.
- λͺ¨λ
BigQueryλ λ€μκ³Ό κ°μ μ΄ λͺ¨λλ₯Ό μ§μν©λλ€. λͺ¨λλ μ νμ¬νμ΄λ©°, λͺ¨λλ₯Ό μ§μ νμ§ μμ κ²½μ°, μ΄μ κΈ°λ³Έμ μΌλ‘ NULLABLEλ‘ μ€μ λ©λλ€.
λͺ¨λ | μ€λͺ
|
NULLABLE | μ΄μμΒ NULL Β κ° νμ©(κΈ°λ³Έκ°) |
REQUIRED | NULL Β κ°μ΄ νμ©λμ§ μμ |
REPEATED | μ΄μ μ§μ λ μ νμ κ° λ°°μ΄ ν¬ν¨ |
Β
μ€μ²© λ° λ°λ³΅ μ΄ μ§μ
BigQueryλ λ°μ΄ν°κ° λΉμ κ·νλ μνμΌ λ μ±λ₯μ΄ κ°μ₯ λ°μ΄λ©λλ€. λ°λΌμ, μ€μ²© λ° λ°λ³΅ μ΄ λ±μ νμ©νμ¬ λ°μ΄ν°λ₯Ό λΉμ κ·ννκ³ , κ΄κ³ν μ€ν€λ§λ₯Ό μ μ§νμ§ μλ κ²μ΄ ν¨μ¨μ μΌ μ μμ΅λλ€. μ€μ²© λ° λ°λ³΅ μ΄μ μ¬μ©νλ©΄ λ°μ΄ν° κ°μ κ΄κ³λ₯Ό λ 볡μ‘νκ² μ μ§νλ©΄μλ λ°μ΄ν°λ₯Ό λ ν¨μ¨μ μΌλ‘ μ μ₯νκ³ κ²μν μ μμ΅λλ€.
- μ€μ²© μ΄
- μ€μ²© λ°μ΄ν°λ₯Ό κ°μ§ μ΄μ μμ±νλ €λ©΄ μ€ν€λ§μμ ν΄λΉ μ΄μ λ°μ΄ν° μ νμ
RECORD
λ‘ μ§μ ν©λλ€.RECORD
λ νμ€ SQLμμΒSTRUCT
Β μ νμΌλ‘ μ κ·Όν μ μλ νμμ λλ€.
- λ°λ³΅ μ΄
- λ°λ³΅ λ°μ΄ν°λ₯Ό κ°μ§ μ΄μ μμ±νλ €λ©΄ μ€ν€λ§μμ ν΄λΉ μ΄μ λͺ¨λλ₯Ό REPEATEDλ‘ μ€μ ν©λλ€. REPEATEDλ νμ€ SQLμμ
ARRAY
Β μ νμΌλ‘ μ κ·Όν μ μλ νμμ λλ€.
BigQueryκ° μ§μνλ μ€μ²© λ° λ°λ³΅ μ΄μ λν μμΈν λ΄μ©μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ ν΄ μ£ΌμκΈ° λ°λλλ€.
Β
μ€ν€λ§ μλ κ°μ§
μ€ν€λ§ μλ κ°μ§λ μ¬μ©μκ° μ€ν€λ§λ₯Ό μλμΌλ‘ μ§μ ν νμ μμ΄ μλμΌλ‘ λ°μ΄ν° μ νμ μΆλ‘ νλ BigQueryμ κΈ°λ₯μ
λλ€. μ£Όλ‘ λ°μ΄ν°λ₯Ό λ‘λν λ νΉμ μΈλΆμ λ°μ΄ν°λ₯Ό 쿼리ν λ μ¬μ©λ©λλ€.
CSV
, JSON
λ° Google Sheets
μ κ°μ λ°μ΄ν° νμμ μ€ν€λ§λ₯Ό μλμΌλ‘ μΆλ‘ ν μ μμ΅λλ€.μλ κ°μ§λ₯Ό μ¬μ©νλ©΄ BigQueryλ λ°μ΄ν° μμ€μ μΌλΆλ₯Ό μνλ§νμ¬ μ΄μ λ°μ΄ν° μ νμ μΆλ‘ ν©λλ€. λνμ μΈ μνλ‘ μ¬μ©νκΈ° μν΄ μ΅λ 500νμ λ°μ΄ν°λ₯Ό μ€μΊνλ©°, κ° νλμ λ°μ΄ν° μ νμ μνκ°μ κΈ°λ°νμ¬ ν λΉν©λλ€.
- CSV λ°μ΄ν°
CSV
κ΅¬λΆ κΈ°νΈ:CSV
κ΅¬λΆ κΈ°νΈ μ€ μΌν(,) / νμ΄ν(|) / ν(\t)μ μλμΌλ‘ κ°μ§ν©λλ€.CSV
ν€λ: 첫 λ²μ§Έ νμ λΆμνμ¬ μ΄ μ΄λ¦μ μΆλ‘ ν©λλ€. μ΄ νμ΄ λ¬Έμμ΄λ§μ ν¬ν¨νκ³ λ€λ₯Έ νκ³Ό λ°μ΄ν° μ νμ΄ λ€λ₯Ό κ²½μ°, BigQueryλ 첫 λ²μ§Έ νμ ν€λλ‘ κ°μ£Όνκ³ ν΄λΉ νλλ₯Ό μ΄ μ΄λ¦μΌλ‘ ν λΉν©λλ€. λ§μ½ 첫 λ²μ§Έ νμ΄ ν€λλ‘ μΈμλμ§ μμΌλ©΄ μΌλ°μ μΈ μ΄ μ΄λ¦(μ: string_field_1)μ μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό λ‘λν©λλ€.
- JSON λ°μ΄ν°
JSON
μ€μ²© λ° λ°λ³΅ νλ:JSON
κ°μ²΄μΈ κ²½μ° ν΄λΉ νλλ₯ΌRECORD
μ νμΌλ‘ μ΄μ μμ±νκ³ , λ°°μ΄μΈ κ²½μ°μλ λ°λ³΅ μ΄λ‘ μ΄μ μμ±ν©λλ€.- λ¬Έμμ΄ λ³ν: κ°λ₯ν κ²½μ° λ¬Έμμ΄μ μ«μ,
BOOLEAN
λλ λ μ§/μκ° μ νμΌλ‘ λ³νν©λλ€. μλ₯Ό λ€μ΄, βidβ νλκ° β1234βμ κ°μ΄ μ μλ‘ ννλ κ²½μ°, βidβ νλλ₯ΌINTEGER
μ νμΌλ‘ μλ λ³νν©λλ€.
Β
1.2.2. DATA TYPE
λ°μ΄ν° νμ
μ λ°μ΄ν° λ² μ΄μ€μμ μ μ₯λλ κ°μ μ’
λ₯ λλ νμμ μ μνλ μ€μν κ°λ
μ
λλ€. Google BigQueryμμλ λ€μν λ°μ΄ν° νμ
μ μ§μν©λλ€. μλμμλ BigQueryμμ μ£Όλ‘ μ¬μ©λλ λ°μ΄ν° νμ
λ€μ μ€λͺ
νκ² μ΅λλ€.
Β
- STRING
STRING
νμμ λ¬Έμμ΄ λ°μ΄ν°λ₯Ό λνλ΄λ λ°μ΄ν° νμμ
λλ€. ν
μ€νΈ, λ¬Έμμ΄, λ μ΄λΈ, μ΄λ¦ λ±μ μ 보λ₯Ό μ μ₯ν λ μ¬μ©λ©λλ€. 

Β
- INTEGER
INTEGER
νμμ μ μ λ°μ΄ν°λ₯Ό λνλ΄λ λ°μ΄ν° νμμΌλ‘, μμμ μ΄νμ μ«μλ₯Ό ν¬ν¨νμ§ μμ΅λλ€. μ μ κ°μ μ°μ° λ° μ μ₯μ μ¬μ©λ©λλ€.

Β
- FLOAT
FLOAT
νμμ λΆλ μμμ μ«μλ₯Ό λνλ΄λ λ°μ΄ν° νμμ
λλ€. μμμ μ΄νμ μ«μλ₯Ό μ μ₯ν λ μ¬μ©λλ©°, μ€μ κ°μ μ°μ°μ μ ν©ν©λλ€.
Β

Β
- BOOLEAN
BOOLEAN
νμμ TRUE
λλ FALSE
μ λνλ΄λ λ°μ΄ν° νμμ
λλ€. λ
Όλ¦¬μ μΈ μ‘°κ±΄μ ννν λ μ¬μ©λ©λλ€. Β
- DATE
DATE
νμμ μ€μ§ λ μ§ μ 보λ§μ μ μ₯ν©λλ€. μ°, μ, μΌ μ 보λ§μ ν¬ν¨νκ³ μ, λΆ, μ΄ μ 보λ ν¬ν¨νμ§ μμ΅λλ€. DATE
νμμ μ£Όλ‘ λ μ§μ κΈ°λ°ν νν°λ§ λ° μ§κ³ μμ
μ μ¬μ©λ©λλ€. μλ₯Ό λ€μ΄, λ μ§ λ²μ λ΄μ λ°μ΄ν°λ₯Ό μΆμΆνκ±°λ μΌλ³ ν맀λμ κ³μ°νλ λ° νμ©λ©λλ€.DATE
DATE
νμμ βYYYY-MM-DDβλ‘ ννλ©λλ€. μ¬κΈ°μ βYYYYβλ μ°λ, βMMβμ μ, βDDβλ μΌμ λνλ λλ€.
- μλ₯Ό λ€μ΄, β2023-01-01βμ 2023λ 1μ 1μΌμ λνλ λλ€.
Β
- TIME
TIME
νμμ μ€μ§ μκ° μ 보λ§μ μ μ₯ν©λλ€. μ, λΆ, μ΄ λ° λ§μ΄ν¬λ‘μ΄(microseconds)κΉμ§μ μ 보λ₯Ό ν¬ν¨ν©λλ€. TIME
νμμ μ£Όλ‘ μκ°μ κΈ°λ°ν μ°μ°μ μ¬μ©λ©λλ€. μλ₯Ό λ€μ΄, νΉμ μκ° κ°κ²© λμμ νλμ λΆμνλ λ° νμ©λ©λλ€.TIME
TIME
νμμ βHH:MM:SS.ssssssβλ‘ ννλ©λλ€. μ¬κΈ°μ βHHβλ μκ°, βMMβμ λΆ, βSSβλ μ΄, βssssssβλ λ§μ΄ν¬λ‘μ΄λ₯Ό λνλ λλ€.
- μλ₯Ό λ€μ΄, '15:30:00.123456'μ μ€ν 3μ 30λΆ 0.123456μ΄λ₯Ό λνλ λλ€.
Β
- DATETIME
DATETIME
νμμ λ μ§μ μκ° μ 보 λͺ¨λ μ μ₯ν©λλ€. μ°, μ, μΌ, μ, λΆ, μ΄, λ§μ΄ν¬λ‘μ΄κΉμ§μ μ 보λ₯Ό ν¬ν¨ν©λλ€. DATETIME
νμμ μΌλ°μ μΌλ‘ μ΄λ²€νΈ μκ°μ κΈ°λ‘νκ±°λ μ΄λ²€νΈ κ°μ μκ° μ°¨μ΄λ₯Ό κ³μ°νλ λ° μ¬μ©ν©λλ€.DATETIME
DATETIME
νμμ βYYYY-MM-DD HH:MM:SS.ssssssβλ‘ ννλ©λλ€. μ¬κΈ°μ βYYYYβλ μ°λ, βMMβμ μ, βDDβλ μΌ, βHHβλ μκ°, βMMβμ λΆ, βSSβλ μ΄, βssssssβλ λ§μ΄ν¬λ‘μ΄λ₯Ό λνλ λλ€.
- μλ₯Ό λ€μ΄, β2023-01-01 15:30:00.123456βμ 2023λ 1μ 1μΌ μ€ν 3μ 30λΆ 0.123456μ΄λ₯Ό λνλ λλ€.
Β
- TIMESTAMP
TIMESTAMP
νμμ DATETIME
νμ
κ³Ό μ μ¬νμ§λ§ UTC(μΈκ³ νμ€ μκ°) μκ°λλ₯Ό μ¬μ©νμ¬ λ μ§μ μκ° μ 보λ₯Ό μ μ₯ν©λλ€. μ΄ νμμ λΆμ° μμ€ν
μμ λ°μ΄ν° μΌκ΄μ±μ μ μ§νκ³ λ°μ΄ν°μ μ νν νμμ€ν¬ν μ 보λ₯Ό μ μ₯νλ λ° μ¬μ©λ©λλ€.TIMESTAMP
TIMESTAMP
νμμ 'YYYY-MM-DD HH:MM:SS.ssssss UTC' λλ 'YYYY-MM-DD HH:MM:SS.ssssss'λ‘ ννλ©λλ€. UTC μκ°λλ₯Ό λͺ μμ μΌλ‘ λνλ΄κ±°λ μλ΅ν μ μμ΅λλ€.
- '2023-01-01 15:30:00.123456 UTC' λλ β2023-01-01 15:30:00.123456β
Β
- ARRAY
ARRAY
νμμ μ¬λ¬ κ°μ λνλ΄λ λ°μ΄ν° νμμΌλ‘, λμΌν λ°μ΄ν° νμ
μ κ°λ€μ 리μ€νΈ ννλ‘ μ μ₯ν©λλ€. μλ₯Ό λ€μ΄, λ¬Έμμ΄ λ°°μ΄ λλ μ μ λ°°μ΄μ μ μ₯ν μ μμ΅λλ€.
Β
- STRUCT
STRUCT
νμμ λ°μ΄ν° μ΄ λ΄μμ ꡬ쑰νλ μ 보λ₯Ό μ μ₯νλ λ°μ΄ν° νμμ
λλ€. μ΄ λ°μ΄ν° νμμ 볡μ‘ν μ 보λ₯Ό νλμ μ΄ λ΄μ μ μ₯νκ³ μ‘°μ§νν μ μμΌλ©°, μ£Όλ‘ λ°°μ΄κ³Ό ν¨κ» μ¬μ©λ©λλ€. STRUCT
νμμ μ¬μ©νλ©΄ μ€μ²© νλλ₯Ό μμ±ν μ μμΌλ©°, μ΄λ ꡬ쑰νλ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ λ€λ£¨λ λ° λμμ΄ λ©λλ€. μ€μ²© νλλ₯Ό μ¬μ©νλ©΄ λ°μ΄ν°μ νΉμ μΈ‘λ©΄μ λ³΄λ€ μΈλΆμ μΌλ‘ ννν μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ 볡μ‘ν λ°μ΄ν° ꡬ쑰λ₯Ό λ€λ£¨κΈ° μ¬μμ§λλ€. μλ₯Ό λ€μ΄, βμ£ΌμβλΌλ μ€μ²©νλλ₯Ό μ¬μ©νλ©΄ ν΄λΉ νλ λ΄μ βλμβ, βμ°νΈλ²νΈβμ κ°μ νμ νλλ₯Ό μ€μ²©ν μ μμ΅λλ€.
Β
μ΄λ κ² μ€μ²© νλλ₯Ό νμ©νλ©΄ ꡬ쑰νλ λ°μ΄ν°λ₯Ό ν¨κ³Όμ μΌλ‘ μ μ₯νκ³ κ²μν μ μμΌλ©°, μ΄λ λ°μ΄ν°λ² μ΄μ€ λ° μ€ν€λ§ μ€κ³μμ νΉν μ μ©νλ©°, λ°μ΄ν°μ ꡬ쑰λ₯Ό λ³΄λ€ λͺ
ννκ² μ μνκ³ κ΄λ¦¬ν μ μμ΅λλ€. μ‘°κΈ λ μμΈν λ΄μ©μ 곡μλ¬Έμλ₯Ό μ°Έκ³ λ°λλλ€.
STRUCT vs. JSON
BigQueryμ
STRUCT
νμκ³Ό JSON
μ λͺ¨λ κ³μΈ΅μ μΈ λ°μ΄ν° ꡬ쑰λ₯Ό νννλ λ° μ¬μ©λμ§λ§, κΈ°λ³Έμ μΌλ‘λ λ€λ₯Έ κ²μ
λλ€. λ€λ§, λͺ κ°μ§ μ μ¬μ μ΄ μμ΅λλ€.- BigQueryμ STRUCT:
STRUCT
νμμ BigQueryμ λ³΅ν© λ°μ΄ν° μ ν μ€ νλλ‘, μ¬λ¬ νλλ₯Ό νλμ μν°ν°λ‘ κ·Έλ£Ήννλ λ° μ¬μ©λ©λλ€.- κ° νλλ μ΄λ¦κ³Ό λ°μ΄ν° μ νμ κ°μ§ μ μμ΅λλ€.
- μ:
STRUCT<name STRING, age INT64>
- JSON (JavaScript Object Notation):
JSON
μ κ²½λ λ°μ΄ν° κ΅ν νμμΌλ‘, μ¬λμ΄ μ½κ³ μ°κΈ° μ½κ³ κΈ°κ³κ° νμ±νκ³ μμ±νκΈ° μ½μ΅λλ€.JSON
μ ν€-κ° μμΌλ‘ ꡬμ±λ κ°μ²΄μ κ°μ λ°°μ΄λ‘ ꡬμ±λ μ μμ΅λλ€.- μ:
{"name": "John", "age": 30}
Β
STRUCT
νμκ³Ό JSON
μ΄ κ΅¬μ‘°μ μΌλ‘ μ μ¬ν΄ λ³΄μΌ μ μμ§λ§, μλ‘ λ€λ₯Έ λ¬Έλ²κ³Ό λͺ©μ μ κ°μ§κ³ μμ΅λλ€. κ·Έλ¬λ BigQueryλ JSON
λ°μ΄ν°λ₯Ό 쿼리νκ³ , JSON
νμμ λ°μ΄ν°λ₯Ό STRUCT
λ λ€λ₯Έ λ³΅ν© λ°μ΄ν° μ νμΌλ‘ λ³ννλ κΈ°λ₯μ μ 곡ν©λλ€.
Β
- GEOGRAPHY
μ§λ¦¬ μ 보λ₯Ό λνλ΄λ λ°μ΄ν° νμμΌλ‘, μ§λ¦¬μ μ’ν λλ μ§λ λ°μ΄ν°λ₯Ό μ μ₯ν λ μ¬μ©λ©λλ€. κ³΅κ° λ°μ΄ν°λ² μ΄μ€μ μ§λ¦¬ μ 보 μμ€ν
(GIS)κ³Ό κ΄λ ¨μ΄ μμ΅λλ€.
Β
- BYTES
μ΄μ§ λ°μ΄ν°λ₯Ό λνλ΄λ λ°μ΄ν° νμμΌλ‘, μ΄λ―Έμ§, μ€λμ€, λΉλμ€ λ° κΈ°ν μ΄μ§ νμμ λ°μ΄ν°λ₯Ό μ μ₯ν λ μ¬μ©λ©λλ€.
Β
1.3. BigQuery νλ‘μ νΈ μμ±
νλ‘μ νΈλ λ°μ΄ν° λ° κ΄λ ¨ 리μμ€λ₯Ό ꡬμ±νκ³ κ΄λ¦¬νλ λ¨μμ
λλ€. Google Cloud Platform(GCP)μμ λ°μ΄ν° λΆμ λ° μ²λ¦¬λ₯Ό μν κ³΅ν΅ νκ²½μ μ 곡νλ©°, λ°μ΄ν°λ² μ΄μ€, ν
μ΄λΈ, 쿼리 μμ
λ±μ ν¬ν¨νλ λ€μν λ°μ΄ν° κ΄λ ¨ 리μμ€λ₯Ό ν¬ν¨ν μ μμ΅λλ€.
μλλ°μ€λ BigQueryμμ μ 곡νλ λ¬΄λ£ νλ‘μ νΈμ
λλ€. μ΅μ΄ νλ‘μ νΈ μμ± μ, $300μ λ¬΄λ£ ν¬λ λ§μ΄ μ 곡λλ©°, μμ§ μ μ¬μ©λμ λ°λ₯Έ λΉμ©μ΄ λΆκ³Όλ©λλ€.
Β
- κ΅¬κΈ ν΄λΌμ°λμ μ μ ν μ½μ(Console) λ²νΌμ ν΄λ¦νμ¬ μ μν©λλ€.

Β
- νλ‘μ νΈ μ ν λ©λ΄λ₯Ό ν΄λ¦νμ¬ μ νλ‘μ νΈλ₯Ό μμ±ν©λλ€.


Β
- μ’μΈ‘ μλ¨ λ©λ΄λ₯Ό μ νμ BigQuery SQL μμ 곡κ°μ μ μνκ³ , μμ±ν νλ‘μ νΈλ₯Ό μ νν©λλ€.


Β
1.4. BigQueryμ λ°μ΄ν° λΆλ¬μ€κΈ°
1.4.1. BigQueryκ° μ§μνλ ν μ΄λΈ μ ν
- νμ€ BigQuery ν μ΄λΈ
- μ€ν€λ§κ° μκ³ μ€ν€λ§μ λͺ¨λ μ΄μ ν μ΄ν° μ νμ΄ μλ κΈ°λ³Έ ν μ΄λΈ
- ν μ΄λΈ ν΄λ‘ : BigQuery ν μ΄λΈμ μ°κΈ° κ°λ₯ν κ²½λ μ¬λ³Έ(ν΄λ‘ κ³Ό κΈ°λ³Έ ν μ΄λΈ κ°μ λΈνλ§ μ μ₯)
- ν μ΄λΈ μ€λ μ·: ν μ΄λΈμ νΉμ μμ μ¬λ³Έ (μ½κΈ° μ μ©μ΄μ§λ§ ν μ΄λΈμ 볡μν μ μμ, μ€λ μ·κ³Ό κΈ°λ³Έ ν μ΄λΈ κ°μ μ°¨μ΄κ° μλ λ°μ΄νΈλ§ μ μ₯)
νμ€ BigQuery ν
μ΄λΈμλ ꡬ쑰νλ λ°μ΄ν°κ° ν¬ν¨λμ΄ μμΌλ©° BigQuery μ€ν 리μ§μ μ΄ νμμΌλ‘ μ μ₯λ©λλ€.
- μΈλΆ ν μ΄λΈ
- BigLake ν μ΄λΈ: Cloud Storage, Amazon Simple Storage Service(Amazon S3), Azure Blob Storage λ±μ λ°μ΄ν° μ μ₯μμ μ μ₯λ ꡬ쑰νλ λ°μ΄ν°λ₯Ό μ°Έμ‘°νλ ν μ΄λΈ
- κ°μ²΄ ν μ΄λΈ: Cloud Storageμ κ°μ λ°μ΄ν° μ μ₯μμ μ μ₯λ JSON νμΌ, CSV νμΌ, Avro νμΌ λ±κ³Ό κ°μ λ€μν νμμ ꡬ쑰νλμ§ μμ λ°μ΄ν°λ₯Ό μ°Έμ‘°νλ ν μ΄λΈ (κ°μ²΄ ν μ΄λΈμ JSONκ³Ό κ°μ μ€ν€λ§λ¦¬μ€ νμμΌλ‘ μ μ₯λλ λ°μ΄ν°λ₯Ό λΆλ¬μμ 쿼리ν μ μκΈ° λλ¬Έμ λ€μν ννμ λΉμ νμ μΈ λ°μ΄ν°λ₯Ό ν¨κ³Όμ μΌλ‘ λ€λ£° μ μμ΅λλ€.)
- BigLakeκ° μλ μΈλΆ ν μ΄λΈ: Cloud Storage, Google Drive, Cloud Bigtable λ±μ λ°μ΄ν° μ μ₯μμ μ μ₯λ ꡬ쑰νλ λ°μ΄ν°λ₯Ό μ°Έμ‘°
μΈλΆ ν
μ΄λΈμ BigQuery μ€ν λ¦¬μ§ μΈλΆμ μ μ₯λλ©° BigQuery μΈλΆμ μ μ₯λ λ°μ΄ν°λ₯Ό μ°Έμ‘°ν©λλ€.
BigQueryκ° μ§μνλ ν
μ΄λΈ μ νμ λν μμΈν λ΄μ©μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ ν΄ μ£ΌμκΈ° λ°λλλ€.
Β
1.4.2. BigQuery κ³΅κ° λ°μ΄ν°μ λΆλ¬μ€κΈ°
BigQueryμ κ³΅κ° λ°μ΄ν°μ
μ Google Cloudμμ μ 곡νλ λ°μ΄ν°μ
μΌλ‘, 무λ£λ‘ μ¬μ©ν μ μμ΅λλ€.
- νμκΈ°μ β+μΆκ°β λ²νΌ ν΄λ¦ ν, κ³΅κ° λ°μ΄ν°μ μ μ νν©λλ€.


Β
- λ°μ΄ν°λ₯Ό κ²μνκ±°λ, νν°λ₯Ό μ€μ νμ¬ μνλ λ°μ΄ν°λ₯Ό μ νν©λλ€.


Β
- λ°μ΄ν°μ λ΄ ν μ΄λΈμ μ€ν€λ§μ 미리 보기 λ± μ 보λ₯Ό νμΈν μ μμΌλ©°, 쿼리λ₯Ό ν΅ν μμ μ΄ κ°λ₯ν©λλ€.

Β
1.4.3. Analytics Hub λ°μ΄ν° λΆλ¬μ€κΈ°
Analytics Hubλ λ°μ΄ν° κ΅ν νλ«νΌμΌλ‘, κ°λ ₯ν 보μ λ° κ°μΈ μ 보 λ³΄νΈ νλ μμν¬λ₯Ό κ°μΆκ³ μμ΄ μ‘°μ§ κ²½κ³λ₯Ό λμ΄ λ°μ΄ν° λ° ν΅κ³λ₯Ό κ·λͺ¨μ λ§κ² 곡μ ν μ μμ΅λλ€. λν Analytics Hubλ₯Ό ν΅ν΄ λ€μν λ°μ΄ν° μ 곡 μ
μ²΄κ° μ λ³ν λ°μ΄ν° λΌμ΄λΈλ¬λ¦¬μ μ½κ² μ‘μΈμ€ν μ μμ΅λλ€. Googleμ΄ μ 곡νλ λ€μν λ°μ΄ν°μ
λ μ΄ λΌμ΄λΈλ¬λ¦¬μ ν¬ν¨λμ΄ μμ΅λλ€.
- μΌμͺ½ λ©λ΄μμ Analytics Hubλ₯Ό μ νν©λλ€.

Β
- Analytics Hub API βμ¬μ©β λ²νΌμ ν΄λ¦ν©λλ€.

Β
- SQL μμ 곡κ°μ μ μνκ³ , νμκΈ°μ β+μΆκ°β λ²νΌμ ν΄λ¦νμ¬ βAnalytics Hubβλ₯Ό μ νν©λλ€.



Β
- λ°μ΄ν°λ₯Ό κ²μνκ±°λ, νν°λ₯Ό μ ννμ¬ μνλ λ°μ΄ν°λ₯Ό μ νν©λλ€. Analytics Hubμ 곡κ°λ λ°μ΄ν°λ₯Ό μ¬μ©νκΈ° μν΄μλ λ°μ΄ν° μ μκΆμμκ² μ‘μΈμ€ κΆνμ μμ²ν΄μΌ ν©λλ€.

Analytics Hub APIλ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό λ±λ‘ λ° κ΅ννλ μμΈν λ°©λ²μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ ν΄ μ£ΌμκΈ° λ°λλλ€.
Β
1.4.4. μ€μ΅ νκ²½ μ€μ νκΈ°
μ΄ μ±
μμλ Oracle λ°μ΄ν°λ² μ΄μ€μμ μ 곡νλ βHRβ λ°μ΄ν°μ
μ μ¬μ©ν©λλ€. βHRβ λ°μ΄ν°μ
μ μΈμ μμ(Human Resources) κ΄λ ¨ λ°μ΄ν°λ‘, λ‘컬μ μ μ₯λ CSV νμΌμ νμ©νμ¬ BigQuery λ°μ΄ν°μ
μ μμ±ν©λλ€. βHRβ λ°μ΄ν°μ
μ Githubμμ λ€μ΄λ‘λνμ€ μ μμ΅λλ€.

Β
- νμκΈ°μ β+μΆκ°β λ²νΌ ν΄λ¦ ν, λ‘컬 νμΌμ μ νν©λλ€.


Β
- βμ λ°μ΄ν°μΈνΈ λ§λ€κΈ°βλ₯Ό μ ννμ¬ λ°μ΄ν°μ μ μμ±ν©λλ€.
- 리μ
- νΉμ 리μ μ λ°μ΄ν°μ μ΄ μ μ₯λ©λλ€.
- λ°μ΄ν°κ° νΉμ μ§μμ κ·μ λλ κ·μ μ건μ μ€μν΄μΌ νλ κ²½μ° μ¬μ©ν μ μμ΅λλ€.
- λ°μ΄ν°κ° μ μ₯λ μ§μκ³Ό λ°μ΄ν°λ₯Ό μ¬μ©νλ μ§μμ΄ λ€λ₯Ό κ²½μ°, κ³ΌκΈ μ μ± μ μκΈμ΄ λΆκ³Όλ μ μμ΅λλ€.
- λ©ν° 리μ
- λ°μ΄ν°μ μ΄ μ¬λ¬ 리μ μ 볡μ λμ΄ μ μ₯λ©λλ€.
- μ¬μ©μκ° λ°μ΄ν°μ λ λΉ λ₯΄κ² μ‘μΈμ€ν μ μκ³ μΌν° λλ μ§μμ μ₯μ κ° λ°μνλ λ°μ΄ν° κ°μ©μ±μ΄ μ μ§λλ μ₯μ μ΄ μμ΅λλ€.


Β
λ°μ΄ν° μΈνΈ ID
μ¬μ©ν λ°μ΄ν°μ
λͺ
μ μ
λ ₯ν©λλ€.
μ΄ μ±
μμ μ¬μ©νλ λ°μ΄ν°μ
λͺ
μ βHRβλ‘ μ€μ νμ΅λλ€.
Β
μμΉ μ ν
μ΄ μ±
μμ μμΉ μ νμ λ©ν° 리μ μΌλ‘ μ€μ νμ΅λλ€.
Β
ν
μ΄λΈ λ§λ£ κΈ°κ°
λ°μ΄ν° λ³΄κ΄ κΈ°κ°κ³Ό λΉμ©μ κ΄λ¦¬νκΈ° μν΄ μ¬μ©ν©λλ€. λ°μ΄ν°λ₯Ό μΌμ κΈ°κ° μμλ‘ μ¬μ©νκ±°λ λ²μ μꡬ μ¬νμ΄ μλ κ²½μ° λ³΄κ΄ κΈ°κ°μ κ΄λ¦¬νκΈ° μν΄ μ¬μ©ν μ μμΌλ©°, λΉμ©μ μ΅μ ννκΈ° μν΄ μ¬μ©ν μ μμ΅λλ€.
μ΄ μ±
μμ ν
μ΄λΈ λ§λ£ κΈ°κ°μ λ³λλ‘ μ€μ νμ§ μμ΅λλ€.
Β
- μμ±ν λ°μ΄ν°μ μ ν μ΄λΈ μμ±

Β
νμΌ μ ν
βμ°Ύμ보기β λ²νΌμ ν΄λ¦νμ¬ ν
μ΄λΈλ‘ μμ±ν νμΌμ μ νν©λλ€.
Β
λ°μ΄ν° μΈνΈ
2λ² κ³Όμ μμ μμ±ν λ°μ΄ν°μ
μ μ νν©λλ€.
Β
μ€ν€λ§
βμλ κ°μ§β κΈ°λ₯μ μ ννλ©΄ BigQueryλ λ°μ΄ν°μ
μ κ° ν
μ΄λΈ λ°μ΄ν°μμ 무μμ νμ μνλ‘ μ ννμ¬ κ° μ΄μ λ°μ΄ν° μ νμ μΆλ‘ ν©λλ€.
βμλ κ°μ§β κΈ°λ₯μ μ ννμ§ μμ κ²½μ°, μλ μ΄λ―Έμ§μ κ°μ΄ βνλ μΆκ°β λ²νΌμ ν΄λ¦νμ¬ μ€ν€λ§λ₯Ό μλμΌλ‘ μ 곡ν΄μΌ ν©λλ€.

νΉμ βν
μ€νΈλ‘ νΈμ§β μ΅μ
μ μ ννμ¬ SQL μΈμ΄λ‘ μ€ν€λ§λ₯Ό μλμΌλ‘ μ 곡ν΄μΌ ν©λλ€.

μ΄ μ±
μμλ μ€ν€λ§ βμλ κ°μ§β κΈ°λ₯μ μ¬μ©νμ΅λλ€.
Β
- μμ±ν ν μ΄λΈ νμΈ
μλ μ΄λ―Έμ§μ κ°μ΄ νμκΈ°λ₯Ό 보면, μμ±ν λ°μ΄ν°μ
λ΄μ 3λ² κ³Όμ μμ μΆκ°ν ν
μ΄λΈμ΄ μμ±λ κ²μ νμΈν μ μμ΅λλ€. λν, μμ±ν ν
μ΄λΈμ ν΄λ¦νλ©΄ μ΄λ―Έμ§μ μ°μΈ‘κ³Ό κ°μ΄ ν
μ΄λΈμ λν μ 보λ₯Ό νμΈν μ μμ΅λλ€.

Β
- μ€ν¬λ¦½νΈ μΆκ° λ° μΏΌλ¦¬ μμ±
- μμ μ 보: 쿼리 μμ μ λν κΈ°λ³Έ μ 보
- κ²°κ³Ό: 쿼리 κ²°κ³Όλ₯Ό ν μ΄λΈ ννλ‘ νμ
- JSON: 쿼리 κ²°κ³Όλ₯Ό JSON ννλ‘ νμ
- μ€ν μΈλΆμ 보: 쿼리 μ€νμ λν μμΈν μΈλΆ μ 보 μ 곡
- μ°¨νΈ: 쿼리 κ²°κ³Όλ₯Ό μ΄μ©νμ¬ κ°λ¨ν κ·Έλν λ° μ°¨νΈ μμ±
- μ€ν κ·Έλν: 쿼리 μ€ν κ³Όμ μ κ·Έλνλ‘ νμ
- 1λ² κ³Όμ μμ μ νν νμ λν κ²°κ³Όλ₯Ό μΆλ ₯ν©λλ€. μμ μ΄λ―Έμ§λ βκ²°κ³Όβνμ΄ μ νλμ΄ μΏΌλ¦¬ κ²°κ³Ό ν μ΄λΈμ΄ νμλ μμμ λλ€.
- 쿼리 κ²°κ³Όλ₯Ό λ€μν νμμ νμΌλ‘ μ μ₯ν©λλ€.
- CSV(Google Drive or λ‘컬 νμΌ)
- JSON
- JSONL
- BigQuery ν μ΄λΈ
- Google Sheets
- ν΄λ¦½λ³΄λμ 볡μ¬
- 쿼리 κ²°κ³Όλ₯Ό λΆμ λ° BI λꡬμ μ°κ²°νμ¬ λΆμκ³Ό μκ°νλ₯Ό ν μ μμ΅λλ€.
- μ€νλ λμνΈ
- Looker Studio (λ°μ΄ν° μκ°ν λ° λΉμ¦λμ€ μΈν 리μ μ€λ₯Ό μν Googleμ μν°νλΌμ΄μ¦ νλ«νΌ)
- Python λ ΈνΈλΆ


1. μ μ€ν¬λ¦½νΈλ₯Ό μμ±ν©λλ€.
2. SQL 쿼리λ₯Ό μμ±νκ³ μ€νν©λλ€.
3. μ€νν μΏΌλ¦¬κ° μ²λ¦¬ν λ°μ΄ν° μ©λμ νμν©λλ€.
4. μμ±ν μ€ν¬λ¦½νΈλ₯Ό νλ‘μ νΈμ μ μ₯νκ³ κ΄λ¦¬ν©λλ€.


1. 쿼리 μ€ν κ²°κ³Όμ λ°λ₯Έ λ€μν μ 보λ₯Ό μ 곡ν©λλ€.
Β
Β
Β
Β
λΆμ λ° BI λꡬλ₯Ό νμ©νλ μμΈν λ°©λ²μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ ν΄ μ£ΌμκΈ° λ°λλλ€.
Β
1.5. λΆλ‘
1.5.1. BigQuery κ°κ²© μ± μ
BigQueryλ λ κ°μ§ ꡬμ±μμμ λ°λΌ κ°κ²© μ±
μ μ΄ μ΄λ£¨μ΄μ§λλ€.
- λΆμ κ°κ²© μ± μ : SQL 쿼리, μ¬μ©μ μ μ ν¨μ, μ€ν¬λ¦½νΈ, DML(λ°μ΄ν° μ‘°μ μΈμ΄) λ° DDL(λ°μ΄ν° μ μ μΈμ΄) λ¬Έμ μ€νν λ λ°μνλ λΉμ©
- μ€ν λ¦¬μ§ κ°κ²© μ± μ : BigQueryμ μ λ‘λν λ°μ΄ν°λ₯Ό 보κ΄νλ λ° λ°μνλ λΉμ©
Β
λΆμ κ°κ²© μ±
μ λͺ¨λΈ
λΆμ κ°κ²© μ±
μ λͺ¨λΈμ λ κ°μ§ 쿼리 μ€ν λΉμ© λͺ¨λΈμ μ 곡ν©λλ€.
- μ£Όλ¬Έν κ°κ²© μ± μ : κ° μΏΌλ¦¬μμ μ²λ¦¬λ λ°μ΄ν° λ°μ΄νΈμ λν λΉμ©μ΄ λΆκ³Όλλ©°, 맀μ μ΅μ΄ 1TBμ 쿼리 λ°μ΄ν° μ²λ¦¬λ 무λ£λ‘ μ 곡λ©λλ€.
- μ μ‘μ : 쿼리 μ€νμ μ¬μ© κ°λ₯ν μ²λ¦¬ μ©λμΈ μ¬λ‘―(κ°μ CPU)μ ꡬ맀ν©λλ€. μ¬λ‘―μ μκΈμ λ λ€μκ³Ό κ°μ΅λλ€.
- κ°λ³ μ¬λ‘―(λ¨κΈ° μ½μ ): 60μ΄ λμ μ½μ ν©λλ€. κ°λ³ μ¬λ‘―μ μ₯κΈ° μ½μ μ ꡬμ νκΈ° μ μ μμ λΆν μ¬λΆ λ±μ μ±λ₯μ νμΈν λ μ μ©ν©λλ€.
- μκ° μ½μ : 30μΌ λμ μ½μ ν©λλ€.
- μ°κ° μ½μ : 365μΌ λμ μ½μ ν©λλ€.
Β
μ€ν λ¦¬μ§ κ°κ²© μ±
μ λͺ¨λΈ
μ€ν λ¦¬μ§ κ°κ²© μ±
μ λͺ¨λΈμ λ κ°μ§ 쿼리 μ€ν λΉμ© λͺ¨λΈμ μ 곡ν©λλ€. 맀μ 10GBμ μ€ν 리μ§λ 무λ£λ‘ μ 곡λ©λλ€.
- νμ± μ€ν 리μ§: μ΅κ·Ό 90μΌ λμ μμ λ λͺ¨λ ν μ΄λΈ λλ ν μ΄λΈ νν°μ μ ν¬ν¨ν©λλ€.
- μ₯κΈ° μ€ν 리μ§: μ΅κ·Ό 90μΌ λμ μμ λμ§ μμ λͺ¨λ ν μ΄λΈ λλ ν μ΄λΈ νν°μ μ ν¬ν¨ν©λλ€. ν΄λΉ ν μ΄λΈμ μ€ν λ¦¬μ§ λΉμ©μ μ½ 50% ν μΈλ κ°κ²©μΌλ‘ μλ μ‘°μ λ©λλ€.
νμ± μ€ν 리μ§μ μ₯κΈ° μ€ν 리μ§λ μ±λ₯, κ°μ©μ±, λ΄κ΅¬μ± μΈ‘λ©΄μμ μ°¨μ΄κ° μμ΅λλ€.
BigQueryμ κ°κ²© μ±
μ μ λν μμΈν λ΄μ©μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ ν΄ μ£ΌμκΈ° λ°λλλ€.
Β
1.5.2. BigQuery μ€ν 리μ§
BigQuery μ€ν 리μ§λ λκ·λͺ¨ λ°μ΄ν°μ
μ λΆμ 쿼리μ μ΅μ νλμ΄ μμ΅λλ€. μ²λ¦¬λμ΄ λμ μ€νΈλ¦¬λ° μμ§ λ° μ½κΈ°λ₯Ό ν¨μ¨μ μΌλ‘ μ§μνμ¬ μν¬λ‘λ μ΅μ νμ λμμ΄ λ©λλ€.
Β
μ€ν 리μ§μ μ»΄ν¨ν
μ λΆλ¦¬
BigQuery μν€ν
μ²μμ μ€μν νΉμ§μ μ€ν 리μ§μ μ»΄ν¨ν
μ λΆλ¦¬μ
λλ€. μ΄λ₯Ό ν΅ν΄ BigQueryλ μ€ν 리μ§μ μ»΄ν¨ν
μ λ
립μ μΌλ‘ νμ₯ν μ μμ΅λλ€.

쿼리 μ€ν μ, BigQueryλ 쿼리 μμ§μ ν΅ν΄ μ¬λ¬ μμ
μμκ² μμ
μ λΆμ°νμ¬ μ€ν 리μ§μ μ μ₯λ λ°μ΄ν°μ κ΄λ ¨ λΆλΆμ λμμ μ²λ¦¬ν©λλ€. μ΄λ, μ²λ¦¬ κ²°κ³Όλ₯Ό ν¨μ¨μ μΌλ‘ μμ§νκΈ° μν΄ ννλ°μ΄νΈ λ€νΈμν¬λ₯Ό νμ©νμ¬ λ°μ΄ν°λ₯Ό λΉ λ₯΄κ² μ컀 λ
Έλλ‘ μ΄λμν€κ³ , 쿼리λ₯Ό λ©λͺ¨λ¦¬μμ μμ ν μ€νν©λλ€.
Β
λ€μμ BigQuery μ€ν 리μ§μ λͺ κ°μ§ μ£Όμ κΈ°λ₯μ
λλ€.
- κ΄λ¦¬ν: BigQuery μ€ν 리μ§λ μμ κ΄λ¦¬ν μλΉμ€λ‘, νλ‘λΉμ λμ΄λ μ©λ μμ½ μμ΄ μ¬μ©ν μ μμ΅λλ€. λ°μ΄ν°λ₯Ό μμ€ν μ λ‘λν λ μλμΌλ‘ μ€ν 리μ§λ₯Ό ν λΉνλ©°, λΉμ©μ μ€μ μ¬μ©ν μ€ν λ¦¬μ§ μ©λμ λν΄μλ§ μ²κ΅¬λ©λλ€.
- λ΄κ΅¬μ±: BigQuery μ€ν 리μ§λ λ§€μ° λμ λ΄κ΅¬μ±μ μ 곡ν©λλ€. λ°μ΄ν°λ₯Ό μ¬λ¬ κ°μ©μ± μμμ 볡μ νμ¬ λ¨Έμ μμ€ λλ μμ μμ€μ μ₯μ λ‘ μΈν λ°μ΄ν° μμ€μ λ°©μ§ν©λλ€.
- μνΈν: BigQuery μ€ν 리μ§λ λ°μ΄ν°λ₯Ό λμ€ν¬μ κΈ°λ‘νκΈ° μ μ μλμΌλ‘ μνΈννλ©°, μ¬μ©μλ μνΈν ν€λ₯Ό μ§μ κ΄λ¦¬νκ±°λ Googleμ΄ μ 곡νλ μνΈν ν€λ₯Ό μ ννμ¬ μ¬μ©ν μ μμ΅λλ€.
- ν¨μ¨μ : BigQuery μ€ν 리μ§λ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ μ₯νκ³ μ²λ¦¬νκΈ° μν΄ λΆμ μν¬λ‘λμ μ΅μ νλ λ°μ΄ν° μΈμ½λ© νμμ μ¬μ©ν©λλ€.
Β
μ€ν λ¦¬μ§ λ μ΄μμ
BigQueryλ λ°μ΄ν°λ₯Ό μ μ₯νλ λ°©μμ΄ μΌλ°μ μΈ λ°μ΄ν°λ² μ΄μ€ μμ€ν
κ³Ό λ€λ¦
λλ€.

Β
- BigQueryμ λ°μ΄ν° μ μ₯ λ°©μ
BigQueryλ ν
μ΄λΈ λ°μ΄ν°λ₯Ό μ΄ κΈ°λ°μΌλ‘ μ μ₯νμ¬ κ° μ΄μ κ°λ³μ μΌλ‘ κ΄λ¦¬ν¨μΌλ‘μ¨, λ°μ΄ν°μ
μμ κ°λ³ μ΄μ μ€μΊνλ μμ
μ ν¨μ¨μ μΌλ‘ μνν μ μμ΅λλ€. μ΄λ λΆμ 쿼리λ μ§κ³ μμ
κ³Ό κ°μ μμ
μ ν¨κ³Όμ μ΄λ©°, μλ₯Ό λ€μ΄ λκ·λͺ¨ λ°μ΄ν°μ
μμ μμ²λ§ κ°μ νμ μ΄ ν©κ³λ₯Ό κ³μ°ν λ BigQueryλ ν΄λΉ μ΄ λ°μ΄ν°λ§ μ½μ΄ μ²λ¦¬ν μ μμ΅λλ€. μ΄λ¬ν νΉμ±μΌλ‘ μΈν΄ BigQueryλ OLAP λ° λ°μ΄ν° μ¨μ΄νμ°μ€ μν¬λ‘λμ μ ν©ν λ°μ΄ν°λ² μ΄μ€μ
λλ€. λν, μ΄ κΈ°λ° λ°μ΄ν°λ² μ΄μ€μμλ μ μ¬ν λ°μ΄ν°κ° μ΄μμ λ°λ³΅λλ―λ‘ μ€λ³΅λ λ°μ΄ν°λ₯Ό ν¨κ³Όμ μΌλ‘ μμΆνμ¬ μ μ₯ 곡κ°μ μ μ½ν μ μκ³ , μ΄λ λκ·λͺ¨ λ°μ΄ν°μ ν¨μ¨μ μΈ μ μ₯κ³Ό λΆμμ μ§μν©λλ€.

Β
- μΌλ°μ μΈ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ μμ€ν μ λ°μ΄ν° μ μ₯ λ°©μ
μΌλ°μ μΈ λ°μ΄ν°λ² μ΄μ€ μμ€ν
μ λ°μ΄ν°λ₯Ό ν κΈ°λ°μΌλ‘ μ μ₯ν©λλ€. μ΄μ λ°λΌ λμ€ν¬μ κ° νμ μ΄μ΄ μ°μμ μΌλ‘ μ μ₯λμ΄ ν΄λΉ νμ λΉ λ₯΄κ² μ κ·Όν μ μκ² λ©λλ€. νμ΄ ν¨κ» μ μ₯λλ©° κ° νμ μ΄μ΄ λμ€ν¬μ μμ°¨μ μΌλ‘ νμλ©λλ€. ν κΈ°λ° λ°μ΄ν°λ² μ΄μ€λ κ° νμ ν¨μ¨μ μΌλ‘ μ‘°νν μ μμ§λ§, νμ μ κ·Όν λ μμ€ν
μ΄ λͺ¨λ μ΄μ μ½μ΄μΌ νλ―λ‘ μ¬λ¬ νμμ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ κ²μ΄ νμ ν¨μ¨μ μ΄μ§ μμ μ μμ΅λλ€.

Β
μ λ΄μ©μ κ°λ΅ν μμ½νμ¬ νλ‘ μ 리νμμ΅λλ€.
λΉ
쿼리μ λ€λ₯Έ λ°μ΄ν°λ² μ΄μ€ μμ€ν
μ λΉκ΅
νλͺ© | BigQuery | μΌλ°μ μΈ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ μμ€ν
|
μ μ₯ λ°©μ | μ΄ μ§ν₯ μ μ₯ λ°©μ
- μ΄ λ¨μ λ°μ΄ν° μ‘°νμ μ΅μ ν | ν μ§ν₯ μ μ₯ λ°©μ
- ν λ¨μ λ°μ΄ν° μ‘°νμ μ΅μ ν |
μ±λ₯ | νμν μ΄μ λ°μ΄ν°λ§ μ½μ μ μμ΄ ν¨μ¨μ μΌ μ μμ | ν λ¨μ λ°μ΄ν° μ‘°ν μ λͺ¨λ μ΄μ μ½μ΄μΌ νλ―λ‘ λΉν¨μ¨μ μΌ μ μμ |
νΉμ§ | λκ·λͺ¨ λ°μ΄ν° μμΆ λ° μ€μΊ μ©μ΄
OLAP λ° λ°μ΄ν° μ¨μ΄νμ°μ€ μν¬λ‘λμ μ ν© | λλμ νΈλμμ
μ²λ¦¬μ μ ν©
μΈλ±μ€λ₯Ό ν΅ν λ°μ΄ν° μ²λ¦¬μ μ΅μ ν |
Β
λ°μ΄ν° ν
μ΄λΈ μ΅μ ν
λ°μ΄ν° ν
μ΄λΈμ μ€κ³ν λ μ±λ₯μ μ΅μ ννκΈ° μν λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
Β
- νν°μ λλκΈ°
λ°μ΄ν°λ₯Ό νν°μ
λ¨μλ‘ λλ ν
μ΄λΈμ μ¬μ©νμ¬ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€. νν°μ
ν€λ μ μ μ΄, μκ° λ¨μ μ΄, λ°μ΄ν°λ₯Ό μμ§ν μκ° λ±μ΄ λ μ μμΌλ©°, νν°μ
μ λλμ΄ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€.
λ€μμ λ μ§ νλλ‘ νν°μ
μ λλ ν
μ΄λΈμ΄λ©°, μΈ κ°μ νν°μ
μ΄ νμλμ΄ μμ΅λλ€.Β βtransaction_dateβλΌλ μ΄μ κΈ°λ°μΌλ‘ μΌλ³ νν°μ
λλκΈ°λ₯Ό μ¬μ©νλ ν
μ΄λΈμ νμΈν μ μμ΅λλ€.

λ°μ΄ν°λ₯Ό νν°μ
μΌλ‘ λλλ©΄, μΏΌλ¦¬κ° νν°μ μΌμΉνλ νν°μ
λ§ μ€μΊνκ³ , μΌμΉνμ§ μλ νν°μ
μ 건λλΈ μ μμ΄μ 쿼리 μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€.
BigQueryκ° μ§μνλ νν°μ
λλκΈ°μ λν μμΈν λ΄μ©μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ ν΄ μ£ΌμκΈ° λ°λλλ€.
Β
- ν΄λ¬μ€ν°λ§
ν΄λ¬μ€ν°λ§μ νΉμ μ΄μ κ°μ κΈ°μ€μΌλ‘ λ°μ΄ν°λ₯Ό μ λ ¬νκ³ μ μ¬ν κ°λ€μ κ°μ μμΉμ λ°°μΉνλ κ²μ
λλ€. ν΄λ¬μ€ν°λ§ λ ν
μ΄λΈ μ΄μ μ΅μκ° λ° μ΅λκ°μ μ΄μ©νμ¬ λ°μ΄ν° μ λ ¬μ νμ©ν©λλ€.
Β
λ€μμΒ βcustomer_idβλΌλ μ΄μ κΈ°μ€μΌλ‘ ν΄λ¬μ€ν°λ§ λ ν
μ΄λΈμ
λλ€.

ν΄λ¬μ€ν°λ§μ κ³ μ ν κ°μ΄ λ§μ μ΄μ΄λ, λ²μκ° μμ λ°μ΄ν°λ₯Ό ν λ²μ νν°λ§νκ±°λ μ§κ³νλ 쿼리μ μ ν©ν©λλ€.
BigQueryκ° μ§μνλ ν΄λ¬μ€ν°λ§μ λν μμΈν λ΄μ©μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ ν΄ μ£ΌμκΈ° λ°λλλ€.
Β
- ν΄λ¬μ€ν°λ§κ³Ό νν°μ λλκΈ° κ²°ν©
λ°μ΄ν°λ₯Ό μ¬λ¬ νν°μ
μΌλ‘ λλκ³ , μ΄λ₯Ό λ€μν μ΄μ μ§ν©μΌλ‘ ν΄λ¬μ€ν°λ§ν μ μμ΅λλ€. μ΄λ, λ μ§ νΉμ μκ° λ±μΒ μ΄μ κΈ°μ€μΌλ‘ λ°μ΄ν°λ₯Ό νν°μ
μΌλ‘ λλ μ μμ΅λλ€. κ° νν°μ
λ΄μ λ°μ΄ν°λ κΈ°μ€μ΄ λλ μ΄μ λ°λΌ ν΄λ¬μ€ν°λ§ λ©λλ€.
λ€μμΒ βtransaction_dateβΒ μ΄μ κΈ°μ€μΌλ‘ λ°μ΄ν°λ₯Ό νν°μ
μΌλ‘ λλκ³ , κ° νν°μ
μ Β βcustomer_idβΒ μ΄μ κΈ°μ€μΌλ‘ ν΄λ¬μ€ν°λ§ λ ν
μ΄λΈμ
λλ€.

Β
λ€λ₯Έ λ°μ΄ν°λ² μ΄μ€ μμ€ν
κ³Όμ λΉκ΅
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ μμ€ν (μ: Oracle Database, MySQL, PostgreSQL λ±)
- μ μ₯ λ°©μ: ν μ΄λΈ νμμ μ¬μ©νλ©°, κ° ν μ΄λΈμ 미리 μ μλ μ€ν€λ§λ₯Ό κΈ°λ°μΌλ‘ ν νκ³Ό μ΄λ‘ ꡬμ±λ©λλ€.
- μ₯μ : λ°μ΄ν°μ μΌκ΄μ±, λ¬΄κ²°μ± λ° κ΄κ³λ₯Ό ν¨κ³Όμ μΌλ‘ μ μ§νλ©°, ACID νΈλμμ μ μ§μνμ¬ λ°μ΄ν°μ μμ μ±μ 보μ₯ν©λλ€.
- λ¨μ : λκ·λͺ¨ λ°μ΄ν° μ²λ¦¬ λ° λ³΅μ‘ν 쿼리μ λν μ±λ₯μ΄ λ¨μ΄μ§ μ μμ΅λλ€.
Β
- NoSQL λ°μ΄ν°λ² μ΄μ€ μμ€ν (μ: MongoDB, Redis, Cassandra λ±)
- μ μ₯ λ°©μ: JSON λ¬Έμμ κ°μ λ¨μΌ λ°μ΄ν° ꡬ쑰 λ΄μ λ°μ΄ν°λ₯Ό 보κ΄ν©λλ€. λ€μν ννμ λ°μ΄ν° λͺ¨λΈμ μ¬μ©νλ©°, ν€-κ°, κ·Έλν, λ¬Έμ, μΈλ©λͺ¨λ¦¬, μμ΄λ-μ»¬λΌ λ±μ μ μ₯ λ°©μμ΄ μμ΅λλ€.
- μ₯μ : νμ₯μ±μ΄ λ°μ΄λκ³ λμ©λ λ°μ΄ν° μ²λ¦¬μ ν¨μ¨μ μ λλ€. μ μ°ν μ€ν€λ§λ‘ λ€μν λ°μ΄ν° νμμ μ μ₯ν μ μμ΅λλ€.
- λ¨μ : λ°μ΄ν°μ μΌκ΄μ±μ 보μ₯νκΈ° μ΄λ €μΈ μ μμΌλ©°, ACID νΈλμμ μ μμ ν μ§μνμ§ μμ μ μμ΅λλ€.
Β
- νμΌ μμ€ν (μ: HDFS, Amazon S3)
- μ μ₯ λ°©μ: νμΌ νμμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλ©°, νμΌ μμ€ν μ λλ ν 리 ꡬ쑰λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό κ΄λ¦¬ν©λλ€.
- μ₯μ : λμ©λ λ°μ΄ν°λ₯Ό ν¨κ³Όμ μΌλ‘ μ²λ¦¬νκ³ μ μ₯ν μ μμΌλ©°, λΆμ° νμΌ μμ€ν μ νμ©νμ¬ κ³ κ°μ©μ±κ³Ό λ΄κ²°ν¨μ±μ μ 곡ν©λλ€.
- λ¨μ : νμΌ μμ€ν μ μΌλ°μ μΌλ‘ λ°μ΄ν°λ₯Ό κ³μΈ΅μ μΈ λλ ν°λ¦¬ κ΅¬μ‘°λ‘ μ μ₯νκΈ° λλ¬Έμ λ°μ΄ν°μ λν μ μ°ν ꡬ쑰λ₯Ό μ μνκ±°λ κ΄λ¦¬νκΈ°κ° μ΄λ €μΈ μ μμΌλ©°, μ¬λ¬ μ¬μ©μμ μν λμ μ‘μΈμ€λ₯Ό ν¨κ³Όμ μΌλ‘ μ μ΄νμ§ λͺ»ν μ μμ΅λλ€.
Β