πŸ“

1. 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의 μ£Όμš”ν•œ νŠΉμ§•μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. κ·Έ μ™Έμ˜ νŠΉμ§•μ— λŒ€ν•œ μ •λ³΄λŠ” μ•„λž˜ μ„œμˆ ν•œ λ‚΄μš© ν˜Ήμ€ 곡식 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•΄ μ£Όμ‹­μ‹œμ˜€.
  1. μ„œλ²„λ¦¬μŠ€ μ•„ν‚€ν…μ²˜
      • μ„œλ²„ κ΄€λ¦¬λ‚˜ 섀정에 상관 없이 μ‚¬μš©ν•  수 μžˆλŠ” μ„œλ²„λ¦¬μŠ€ μ•„ν‚€ν…μ²˜λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
      • μ‚¬μš©μžλŠ” 데이터 μ²˜λ¦¬μ— μ§‘μ€‘ν•˜κ³  λ³΅μž‘ν•œ μ„œλ²„ 관리λ₯Ό ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.
  1. 데이터 곡유 및 ν˜‘μ—… κΈ°λŠ₯
      • μ‹€μ‹œκ°„μœΌλ‘œ λ‹€μˆ˜μ˜ μ‚¬μš©μžμ™€ 데이터λ₯Ό κ³΅μœ ν•  수 μžˆμ–΄, 효율적으둜 νŒ€ κ°„ 데이터 곡유 및 데이터 뢄석 ν˜‘μ—… ν™˜κ²½μ„ ꡬ좕할 수 μžˆμŠ΅λ‹ˆλ‹€.
  1. μ €μž₯된 ν”„λ‘œμ‹œμ €
      • μ €μž₯된 ν”„λ‘œμ‹œμ €λ₯Ό μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ‹€ν–‰λ˜λŠ” SQL μ½”λ“œ 블둝을 μ •μ˜ν•˜κ³  μ‹€ν–‰ν•  수 μžˆλŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.
      • 이λ₯Ό 톡해 λ³΅μž‘ν•œ μΏΌλ¦¬λ‚˜ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ‹¨μˆœν™”ν•˜κ³  μž¬μ‚¬μš©μ„±μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€.
  1. 데이터 λ³΄μ•ˆ 및 μ•‘μ„ΈμŠ€ μ œμ–΄
      • 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 ν˜•μ‹μ€ λ¬Έμžμ—΄ 데이터λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 데이터 ν˜•μ‹μž…λ‹ˆλ‹€. ν…μŠ€νŠΈ, λ¬Έμžμ—΄, λ ˆμ΄λΈ”, 이름 λ“±μ˜ 정보λ₯Ό μ €μž₯ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.
notion imagenotion image
notion imagenotion image
Β 
  • INTEGER
INTEGER ν˜•μ‹μ€ μ •μˆ˜ 데이터λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 데이터 ν˜•μ‹μœΌλ‘œ, μ†Œμˆ˜μ  μ΄ν•˜μ˜ 숫자λ₯Ό ν¬ν•¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ •μˆ˜ κ°’μ˜ μ—°μ‚° 및 μ €μž₯에 μ‚¬μš©λ©λ‹ˆλ‹€.
notion imagenotion image
notion imagenotion image
Β 
  • FLOAT
FLOAT ν˜•μ‹μ€ 뢀동 μ†Œμˆ˜μ  숫자λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 데이터 ν˜•μ‹μž…λ‹ˆλ‹€. μ†Œμˆ˜μ  μ΄ν•˜μ˜ 숫자λ₯Ό μ €μž₯ν•  λ•Œ μ‚¬μš©λ˜λ©°, μ‹€μˆ˜ κ°’μ˜ 연산에 μ ν•©ν•©λ‹ˆλ‹€.
notion imagenotion image
Β 
notion imagenotion image
Β 
  • 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 ν˜•μ‹μ€ μ—¬λŸ¬ 값을 λ‚˜νƒ€λ‚΄λŠ” 데이터 ν˜•μ‹μœΌλ‘œ, λ™μΌν•œ 데이터 νƒ€μž…μ˜ 값듀을 리슀트 ν˜•νƒœλ‘œ μ €μž₯ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ¬Έμžμ—΄ λ°°μ—΄ λ˜λŠ” μ •μˆ˜ 배열을 μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
notion imagenotion image
Β 
  • STRUCT
STRUCT ν˜•μ‹μ€ 데이터 μ—΄ λ‚΄μ—μ„œ κ΅¬μ‘°ν™”λœ 정보λ₯Ό μ €μž₯ν•˜λŠ” 데이터 ν˜•μ‹μž…λ‹ˆλ‹€. 이 데이터 ν˜•μ‹μ€ λ³΅μž‘ν•œ 정보λ₯Ό ν•˜λ‚˜μ˜ μ—΄ 내에 μ €μž₯ν•˜κ³  쑰직화할 수 있으며, 주둜 λ°°μ—΄κ³Ό ν•¨κ»˜ μ‚¬μš©λ©λ‹ˆλ‹€. STRUCT ν˜•μ‹μ„ μ‚¬μš©ν•˜λ©΄ 쀑첩 ν•„λ“œλ₯Ό 생성할 수 있으며, μ΄λŠ” κ΅¬μ‘°ν™”λœ 데이터λ₯Ό 효율적으둜 λ‹€λ£¨λŠ” 데 도움이 λ©λ‹ˆλ‹€.
쀑첩 ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ λ°μ΄ν„°μ˜ νŠΉμ • 츑면을 보닀 μ„ΈλΆ€μ μœΌλ‘œ ν‘œν˜„ν•  수 있으며, 이λ₯Ό 톡해 λ³΅μž‘ν•œ 데이터 ꡬ쑰λ₯Ό 닀루기 μ‰¬μ›Œμ§‘λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, β€œμ£Όμ†Œβ€λΌλŠ” μ€‘μ²©ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή ν•„λ“œ 내에 β€œλ„μ‹œβ€, β€œμš°νŽΈλ²ˆν˜Έβ€μ™€ 같은 ν•˜μœ„ ν•„λ“œλ₯Ό 쀑첩할 수 μžˆμŠ΅λ‹ˆλ‹€.
Β 
μ΄λ ‡κ²Œ 쀑첩 ν•„λ“œλ₯Ό ν™œμš©ν•˜λ©΄ κ΅¬μ‘°ν™”λœ 데이터λ₯Ό 효과적으둜 μ €μž₯ν•˜κ³  검색할 수 있으며, μ΄λŠ” λ°μ΄ν„°λ² μ΄μŠ€ 및 μŠ€ν‚€λ§ˆ μ„€κ³„μ—μ„œ 특히 μœ μš©ν•˜λ©°, λ°μ΄ν„°μ˜ ꡬ쑰λ₯Ό 보닀 λͺ…ν™•ν•˜κ²Œ μ •μ˜ν•˜κ³  관리할 수 μžˆμŠ΅λ‹ˆλ‹€. 쑰금 더 μžμ„Έν•œ λ‚΄μš©μ€ κ³΅μ‹λ¬Έμ„œλ₯Ό μ°Έκ³  λ°”λžλ‹ˆλ‹€.
πŸ’‘
STRUCT vs. JSON
BigQuery의 STRUCT ν˜•μ‹κ³Ό JSON은 λͺ¨λ‘ 계측적인 데이터 ꡬ쑰λ₯Ό ν‘œν˜„ν•˜λŠ” 데 μ‚¬μš©λ˜μ§€λ§Œ, κΈ°λ³Έμ μœΌλ‘œλŠ” λ‹€λ₯Έ κ²ƒμž…λ‹ˆλ‹€. λ‹€λ§Œ, λͺ‡ 가지 μœ μ‚¬μ μ΄ μžˆμŠ΅λ‹ˆλ‹€.
  1. BigQuery의 STRUCT:
      • STRUCT ν˜•μ‹μ€ BigQuery의 볡합 데이터 μœ ν˜• 쀑 ν•˜λ‚˜λ‘œ, μ—¬λŸ¬ ν•„λ“œλ₯Ό ν•˜λ‚˜μ˜ μ—”ν„°ν‹°λ‘œ κ·Έλ£Ήν™”ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
      • 각 ν•„λ“œλŠ” 이름과 데이터 μœ ν˜•μ„ κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
      • 예: STRUCT<name STRING, age INT64>
  1. JSON (JavaScript Object Notation):
      • JSON은 κ²½λŸ‰ 데이터 κ΅ν™˜ ν˜•μ‹μœΌλ‘œ, μ‚¬λžŒμ΄ 읽고 μ“°κΈ° 쉽고 기계가 νŒŒμ‹±ν•˜κ³  μƒμ„±ν•˜κΈ° μ‰½μŠ΅λ‹ˆλ‹€.
      • JSON은 ν‚€-κ°’ 쌍으둜 κ΅¬μ„±λœ 객체와 κ°’μ˜ λ°°μ—΄λ‘œ ꡬ성될 수 μžˆμŠ΅λ‹ˆλ‹€.
      • 예: {"name": "John", "age": 30}
Β 
STRUCT ν˜•μ‹κ³Ό JSON이 ꡬ쑰적으둜 μœ μ‚¬ν•΄ 보일 수 μžˆμ§€λ§Œ, μ„œλ‘œ λ‹€λ₯Έ 문법과 λͺ©μ μ„ 가지고 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ BigQueryλŠ” JSON 데이터λ₯Ό μΏΌλ¦¬ν•˜κ³ , JSON ν˜•μ‹μ˜ 데이터λ₯Ό STRUCTλ‚˜ λ‹€λ₯Έ 볡합 데이터 μœ ν˜•μœΌλ‘œ λ³€ν™˜ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.
notion imagenotion image
Β 
  • GEOGRAPHY
지리 정보λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 데이터 ν˜•μ‹μœΌλ‘œ, 지리적 μ’Œν‘œ λ˜λŠ” 지도 데이터λ₯Ό μ €μž₯ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. 곡간 λ°μ΄ν„°λ² μ΄μŠ€μ™€ 지리 정보 μ‹œμŠ€ν…œ(GIS)κ³Ό 관련이 μžˆμŠ΅λ‹ˆλ‹€.
Β 
  • BYTES
이진 데이터λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 데이터 ν˜•μ‹μœΌλ‘œ, 이미지, μ˜€λ””μ˜€, λΉ„λ””μ˜€ 및 기타 이진 ν˜•μ‹μ˜ 데이터λ₯Ό μ €μž₯ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.
Β 

1.3. BigQuery ν”„λ‘œμ νŠΈ 생성

ν”„λ‘œμ νŠΈλŠ” 데이터 및 κ΄€λ ¨ λ¦¬μ†ŒμŠ€λ₯Ό κ΅¬μ„±ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” λ‹¨μœ„μž…λ‹ˆλ‹€. Google Cloud Platform(GCP)μ—μ„œ 데이터 뢄석 및 처리λ₯Ό μœ„ν•œ 곡톡 ν™˜κ²½μ„ μ œκ³΅ν•˜λ©°, λ°μ΄ν„°λ² μ΄μŠ€, ν…Œμ΄λΈ”, 쿼리 μž‘μ—… 등을 ν¬ν•¨ν•˜λŠ” λ‹€μ–‘ν•œ 데이터 κ΄€λ ¨ λ¦¬μ†ŒμŠ€λ₯Ό 포함할 수 μžˆμŠ΅λ‹ˆλ‹€.
πŸ’‘
μƒŒλ“œλ°•μŠ€λŠ” BigQueryμ—μ„œ μ œκ³΅ν•˜λŠ” 무료 ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€. 졜초 ν”„λ‘œμ νŠΈ 생성 μ‹œ, $300의 무료 ν¬λ ˆλ”§μ΄ 제곡되며, μ†Œμ§„ μ‹œ μ‚¬μš©λŸ‰μ— λ”°λ₯Έ λΉ„μš©μ΄ λΆ€κ³Όλ©λ‹ˆλ‹€.
Β 
  1. ꡬ글 ν΄λΌμš°λ“œμ— 접속 ν›„ μ½˜μ†”(Console) λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ μ ‘μ†ν•©λ‹ˆλ‹€.
    1. notion imagenotion image
Β 
  1. ν”„λ‘œμ νŠΈ 선택 메뉴λ₯Ό ν΄λ¦­ν•˜μ—¬ μƒˆ ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
    1. notion imagenotion image
      notion imagenotion image
Β 
  1. 쒌츑 상단 메뉴λ₯Ό 선택에 BigQuery SQL μž‘μ—… 곡간에 μ ‘μ†ν•˜κ³ , μƒμ„±ν•œ ν”„λ‘œμ νŠΈλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
    1. notion imagenotion image
      notion imagenotion image
Β 

1.4. BigQuery에 데이터 뢈러였기

1.4.1. BigQueryκ°€ μ§€μ›ν•˜λŠ” ν…Œμ΄λΈ” μœ ν˜•

  • ν‘œμ€€ BigQuery ν…Œμ΄λΈ”
    • ν‘œμ€€ 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κ°€ μ§€μ›ν•˜λŠ” ν…Œμ΄λΈ” μœ ν˜•μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ 곡식 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•΄ μ£Όμ‹œκΈ° λ°”λžλ‹ˆλ‹€.
Β 

1.4.2. BigQuery 곡개 데이터셋 뢈러였기

BigQuery의 곡개 데이터셋은 Google Cloudμ—μ„œ μ œκ³΅ν•˜λŠ” λ°μ΄ν„°μ…‹μœΌλ‘œ, 무료둜 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  1. νƒμƒ‰κΈ°μ˜ β€œ+좔가” λ²„νŠΌ 클릭 ν›„, 곡개 데이터셋을 μ„ νƒν•©λ‹ˆλ‹€.
    1. notion imagenotion image
      notion imagenotion image
Β 
  1. 데이터λ₯Ό κ²€μƒ‰ν•˜κ±°λ‚˜, ν•„ν„°λ₯Ό μ„€μ •ν•˜μ—¬ μ›ν•˜λŠ” 데이터λ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
    1. notion imagenotion image
      notion imagenotion image
Β 
  1. 데이터셋 λ‚΄ ν…Œμ΄λΈ”μ˜ μŠ€ν‚€λ§ˆμ™€ 미리 보기 λ“± 정보λ₯Ό 확인할 수 있으며, 쿼리λ₯Ό ν†΅ν•œ μž‘μ—…μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.
    1. notion imagenotion image
      Β 

1.4.3. Analytics Hub 데이터 뢈러였기

Analytics HubλŠ” 데이터 κ΅ν™˜ ν”Œλž«νΌμœΌλ‘œ, κ°•λ ₯ν•œ λ³΄μ•ˆ 및 개인 정보 보호 ν”„λ ˆμž„μ›Œν¬λ₯Ό κ°–μΆ”κ³  μžˆμ–΄ 쑰직 경계λ₯Ό λ„˜μ–΄ 데이터 및 톡계λ₯Ό 규λͺ¨μ— 맞게 κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ Analytics Hubλ₯Ό 톡해 λ‹€μ–‘ν•œ 데이터 제곡 업체가 μ„ λ³„ν•œ 데이터 λΌμ΄λΈŒλŸ¬λ¦¬μ— μ‰½κ²Œ μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Google이 μ œκ³΅ν•˜λŠ” λ‹€μ–‘ν•œ 데이터셋도 이 λΌμ΄λΈŒλŸ¬λ¦¬μ— ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  1. μ™Όμͺ½ λ©”λ‰΄μ—μ„œ Analytics Hubλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
    1. notion imagenotion image
Β 
  1. Analytics Hub API β€œμ‚¬μš©β€ λ²„νŠΌμ„ ν΄λ¦­ν•©λ‹ˆλ‹€.
    1. notion imagenotion image
Β 
  1. SQL μž‘μ—… 곡간에 μ ‘μ†ν•˜κ³ , νƒμƒ‰κΈ°μ˜ β€œ+좔가” λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ β€œAnalytics Hub”λ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
    1. notion imagenotion image
      notion imagenotion image
      notion imagenotion image
Β 
  1. 데이터λ₯Ό κ²€μƒ‰ν•˜κ±°λ‚˜, ν•„ν„°λ₯Ό μ„ νƒν•˜μ—¬ μ›ν•˜λŠ” 데이터λ₯Ό μ„ νƒν•©λ‹ˆλ‹€. Analytics Hub에 곡개된 데이터λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” 데이터 μ €μž‘κΆŒμžμ—κ²Œ μ•‘μ„ΈμŠ€ κΆŒν•œμ„ μš”μ²­ν•΄μ•Ό ν•©λ‹ˆλ‹€.
    1. notion imagenotion image
➑️
Analytics Hub APIλ₯Ό 톡해 데이터λ₯Ό 등둝 및 κ΅ν™˜ν•˜λŠ” μžμ„Έν•œ 방법은 곡식 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•΄ μ£Όμ‹œκΈ° λ°”λžλ‹ˆλ‹€.
Β 

1.4.4. μ‹€μŠ΅ ν™˜κ²½ μ„€μ •ν•˜κΈ°

이 μ±…μ—μ„œλŠ” Oracle λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” β€œHR” 데이터셋을 μ‚¬μš©ν•©λ‹ˆλ‹€. β€œHR” 데이터셋은 인적 μžμ›(Human Resources) κ΄€λ ¨ λ°μ΄ν„°λ‘œ, λ‘œμ»¬μ— μ €μž₯된 CSV νŒŒμΌμ„ ν™œμš©ν•˜μ—¬ BigQuery 데이터셋을 μƒμ„±ν•©λ‹ˆλ‹€. β€œHR” 데이터셋은 Githubμ—μ„œ λ‹€μš΄λ‘œλ“œν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.
HR λ°μ΄ν„°μ…‹μ˜ ERDHR λ°μ΄ν„°μ…‹μ˜ ERD
HR λ°μ΄ν„°μ…‹μ˜ ERD
Β 
  1. νƒμƒ‰κΈ°μ˜ β€œ+좔가” λ²„νŠΌ 클릭 ν›„, 둜컬 νŒŒμΌμ„ μ„ νƒν•©λ‹ˆλ‹€.
    1. notion imagenotion image
      notion imagenotion image
Β 
  1. β€œμƒˆ λ°μ΄ν„°μ„ΈνŠΈ λ§Œλ“€κΈ°β€λ₯Ό μ„ νƒν•˜μ—¬ 데이터셋을 μƒμ„±ν•©λ‹ˆλ‹€.
    1. notion imagenotion image
      notion imagenotion image
      Β 
      데이터 μ„ΈνŠΈ ID
      μ‚¬μš©ν•  데이터셋λͺ…을 μž…λ ₯ν•©λ‹ˆλ‹€.
      ➑️
      이 μ±…μ—μ„œ μ‚¬μš©ν•˜λŠ” 데이터셋 λͺ…은 β€œHRβ€λ‘œ μ„€μ •ν–ˆμŠ΅λ‹ˆλ‹€.
      Β 
      μœ„μΉ˜ μœ ν˜•
      • 리전
        • νŠΉμ • 리전에 데이터셋이 μ €μž₯λ©λ‹ˆλ‹€.
        • 데이터가 νŠΉμ • 지역적 κ·œμ • λ˜λŠ” 규제 μš”κ±΄μ„ μ€€μˆ˜ν•΄μ•Ό ν•˜λŠ” 경우 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
        • 데이터가 μ €μž₯된 지역과 데이터λ₯Ό μ‚¬μš©ν•˜λŠ” 지역이 λ‹€λ₯Ό 경우, 과금 정책상 μš”κΈˆμ΄ 뢀과될 수 μžˆμŠ΅λ‹ˆλ‹€.
      • λ©€ν‹° 리전
        • 데이터셋이 μ—¬λŸ¬ 리전에 λ³΅μ œλ˜μ–΄ μ €μž₯λ©λ‹ˆλ‹€.
        • μ‚¬μš©μžκ°€ 데이터에 더 λΉ λ₯΄κ²Œ μ•‘μ„ΈμŠ€ν•  수 있고 μ„Όν„° λ˜λŠ” 지역에 μž₯μ• κ°€ λ°œμƒν•˜λ„ 데이터 κ°€μš©μ„±μ΄ μœ μ§€λ˜λŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€.
      ➑️
      이 μ±…μ—μ„œ μœ„μΉ˜ μœ ν˜•μ€ λ©€ν‹° λ¦¬μ „μœΌλ‘œ μ„€μ •ν–ˆμŠ΅λ‹ˆλ‹€.
      Β 
      ν…Œμ΄λΈ” 만료 κΈ°κ°„
      데이터 보관 κΈ°κ°„κ³Ό λΉ„μš©μ„ κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•©λ‹ˆλ‹€. 데이터λ₯Ό 일정 κΈ°κ°„ μž„μ‹œλ‘œ μ‚¬μš©ν•˜κ±°λ‚˜ 법적 μš”κ΅¬ 사항이 μžˆλŠ” 경우 보관 기간을 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•  수 있으며, λΉ„μš©μ„ μ΅œμ ν™”ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
      ➑️
      이 μ±…μ—μ„œ ν…Œμ΄λΈ” 만료 기간은 λ³„λ„λ‘œ μ„€μ •ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
      Β 
  1. μƒμ„±ν•œ 데이터셋에 ν…Œμ΄λΈ” 생성
    1. notion imagenotion image
      Β 
      파일 선택
      β€œμ°Ύμ•„λ³΄κΈ°β€ λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ ν…Œμ΄λΈ”λ‘œ 생성할 νŒŒμΌμ„ μ„ νƒν•©λ‹ˆλ‹€.
      Β 
      데이터 μ„ΈνŠΈ
      2번 κ³Όμ •μ—μ„œ μƒμ„±ν•œ 데이터셋을 μ„ νƒν•©λ‹ˆλ‹€.
      Β 
      μŠ€ν‚€λ§ˆ
      β€œμžλ™ 감지” κΈ°λŠ₯을 μ„ νƒν•˜λ©΄ BigQueryλŠ” λ°μ΄ν„°μ…‹μ˜ 각 ν…Œμ΄λΈ” λ°μ΄ν„°μ—μ„œ λ¬΄μž‘μœ„ 행을 μƒ˜ν”Œλ‘œ μ„ νƒν•˜μ—¬ 각 μ—΄μ˜ 데이터 μœ ν˜•μ„ μΆ”λ‘ ν•©λ‹ˆλ‹€.
      β€œμžλ™ 감지” κΈ°λŠ₯을 μ„ νƒν•˜μ§€ μ•Šμ„ 경우, μ•„λž˜ 이미지와 같이 β€œν•„λ“œ 좔가” λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ μŠ€ν‚€λ§ˆλ₯Ό μˆ˜λ™μœΌλ‘œ μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€.
      notion imagenotion image
      ν˜Ήμ€ β€œν…μŠ€νŠΈλ‘œ νŽΈμ§‘β€ μ˜΅μ…˜μ„ μ„ νƒν•˜μ—¬ SQL μ–Έμ–΄λ‘œ μŠ€ν‚€λ§ˆλ₯Ό μˆ˜λ™μœΌλ‘œ μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€.
      notion imagenotion image
      ➑️
      이 μ±…μ—μ„œλŠ” μŠ€ν‚€λ§ˆ β€œμžλ™ 감지” κΈ°λŠ₯을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.
      Β 
  1. μƒμ„±ν•œ ν…Œμ΄λΈ” 확인
    1. μ•„λž˜ 이미지와 같이 탐색기λ₯Ό 보면, μƒμ„±ν•œ 데이터셋 내에 3번 κ³Όμ •μ—μ„œ μΆ”κ°€ν•œ ν…Œμ΄λΈ”μ΄ μƒμ„±λœ 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μƒμ„±ν•œ ν…Œμ΄λΈ”μ„ ν΄λ¦­ν•˜λ©΄ μ΄λ―Έμ§€μ˜ 우츑과 같이 ν…Œμ΄λΈ”μ— λŒ€ν•œ 정보λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
      notion imagenotion image
Β 
  1. 슀크립트 μΆ”κ°€ 및 쿼리 μž‘μ„±
    1. notion imagenotion image
      notion imagenotion image
      ➑️
      1. μƒˆ 슀크립트λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. 2. SQL 쿼리λ₯Ό μž‘μ„±ν•˜κ³  μ‹€ν–‰ν•©λ‹ˆλ‹€. 3. μ‹€ν–‰ν•œ 쿼리가 μ²˜λ¦¬ν•œ 데이터 μš©λŸ‰μ„ ν‘œμ‹œν•©λ‹ˆλ‹€. 4. μž‘μ„±ν•œ 슀크립트λ₯Ό ν”„λ‘œμ νŠΈμ— μ €μž₯ν•˜κ³  κ΄€λ¦¬ν•©λ‹ˆλ‹€.
      notion imagenotion image
      notion imagenotion image
      ➑️
      1. 쿼리 μ‹€ν–‰ 결과에 λ”°λ₯Έ λ‹€μ–‘ν•œ 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
      • μž‘μ—… 정보: 쿼리 μž‘μ—…μ— λŒ€ν•œ κΈ°λ³Έ 정보
      • κ²°κ³Ό: 쿼리 κ²°κ³Όλ₯Ό ν…Œμ΄λΈ” ν˜•νƒœλ‘œ ν‘œμ‹œ
      • JSON: 쿼리 κ²°κ³Όλ₯Ό JSON ν˜•νƒœλ‘œ ν‘œμ‹œ
      • μ‹€ν–‰ 세뢀정보: 쿼리 싀행에 λŒ€ν•œ μžμ„Έν•œ μ„ΈλΆ€ 정보 제곡
      • 차트: 쿼리 κ²°κ³Όλ₯Ό μ΄μš©ν•˜μ—¬ κ°„λ‹¨ν•œ κ·Έλž˜ν”„ 및 차트 생성
      • μ‹€ν–‰ κ·Έλž˜ν”„: 쿼리 μ‹€ν–‰ 과정을 κ·Έλž˜ν”„λ‘œ ν‘œμ‹œ
      Β 
      1. 1번 κ³Όμ •μ—μ„œ μ„ νƒν•œ 탭에 λŒ€ν•œ κ²°κ³Όλ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€. μœ„μ˜ μ΄λ―Έμ§€λŠ” β€œκ²°κ³Όβ€νƒ­μ΄ μ„ νƒλ˜μ–΄ 쿼리 κ²°κ³Ό ν…Œμ΄λΈ”μ΄ ν‘œμ‹œλœ μ˜ˆμ‹œμž…λ‹ˆλ‹€.
      Β 
      1. 쿼리 κ²°κ³Όλ₯Ό λ‹€μ–‘ν•œ ν˜•μ‹μ˜ 파일둜 μ €μž₯ν•©λ‹ˆλ‹€.
      • CSV(Google Drive or 둜컬 파일)
      • JSON
      • JSONL
      • BigQuery ν…Œμ΄λΈ”
      • Google Sheets
      • ν΄λ¦½λ³΄λ“œμ— 볡사
      Β 
      1. 쿼리 κ²°κ³Όλ₯Ό 뢄석 및 BI 도ꡬ에 μ—°κ²°ν•˜μ—¬ 뢄석과 μ‹œκ°ν™”λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
      • μŠ€ν”„λ ˆλ“œμ‹œνŠΈ
      • Looker Studio (데이터 μ‹œκ°ν™” 및 λΉ„μ¦ˆλ‹ˆμŠ€ μΈν…”λ¦¬μ „μŠ€λ₯Ό μœ„ν•œ Google의 μ—”ν„°ν”„λΌμ΄μ¦ˆ ν”Œλž«νΌ)
      • Python λ…ΈνŠΈλΆ
      Β 
      뢄석 및 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 μ•„ν‚€ν…μ²˜(좜처: Google Cloud)BigQuery μ•„ν‚€ν…μ²˜(좜처: Google Cloud)
BigQuery μ•„ν‚€ν…μ²˜(좜처: Google Cloud)
쿼리 μ‹€ν–‰ μ‹œ, BigQueryλŠ” 쿼리 엔진을 톡해 μ—¬λŸ¬ μž‘μ—…μžμ—κ²Œ μž‘μ—…μ„ λΆ„μ‚°ν•˜μ—¬ μŠ€ν† λ¦¬μ§€μ— μ €μž₯된 λ°μ΄ν„°μ˜ κ΄€λ ¨ 뢀뢄을 λ™μ‹œμ— μ²˜λ¦¬ν•©λ‹ˆλ‹€. μ΄λ•Œ, 처리 κ²°κ³Όλ₯Ό 효율적으둜 μˆ˜μ§‘ν•˜κΈ° μœ„ν•΄ νŽ˜νƒ€λ°”μ΄νŠΈ λ„€νŠΈμ›Œν¬λ₯Ό ν™œμš©ν•˜μ—¬ 데이터λ₯Ό λΉ λ₯΄κ²Œ μ›Œμ»€ λ…Έλ“œλ‘œ μ΄λ™μ‹œν‚€κ³ , 쿼리λ₯Ό λ©”λͺ¨λ¦¬μ—μ„œ μ™„μ „νžˆ μ‹€ν–‰ν•©λ‹ˆλ‹€.
Β 
λ‹€μŒμ€ BigQuery μŠ€ν† λ¦¬μ§€μ˜ λͺ‡ 가지 μ£Όμš” κΈ°λŠ₯μž…λ‹ˆλ‹€.
  • κ΄€λ¦¬ν˜•: BigQuery μŠ€ν† λ¦¬μ§€λŠ” μ™„μ „ κ΄€λ¦¬ν˜• μ„œλΉ„μŠ€λ‘œ, ν”„λ‘œλΉ„μ €λ‹μ΄λ‚˜ μš©λŸ‰ μ˜ˆμ•½ 없이 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 데이터λ₯Ό μ‹œμŠ€ν…œμ— λ‘œλ“œν•  λ•Œ μžλ™μœΌλ‘œ μŠ€ν† λ¦¬μ§€λ₯Ό ν• λ‹Ήν•˜λ©°, λΉ„μš©μ€ μ‹€μ œ μ‚¬μš©ν•œ μŠ€ν† λ¦¬μ§€ μš©λŸ‰μ— λŒ€ν•΄μ„œλ§Œ μ²­κ΅¬λ©λ‹ˆλ‹€.
  • 내ꡬ성: BigQuery μŠ€ν† λ¦¬μ§€λŠ” 맀우 높은 내ꡬ성을 μ œκ³΅ν•©λ‹ˆλ‹€. 데이터λ₯Ό μ—¬λŸ¬ κ°€μš©μ„± μ˜μ—­μ— λ³΅μ œν•˜μ—¬ λ¨Έμ‹  μˆ˜μ€€ λ˜λŠ” μ˜μ—­ μˆ˜μ€€μ˜ μž₯μ• λ‘œ μΈν•œ 데이터 손싀을 λ°©μ§€ν•©λ‹ˆλ‹€.
  • μ•”ν˜Έν™”: BigQuery μŠ€ν† λ¦¬μ§€λŠ” 데이터λ₯Ό λ””μŠ€ν¬μ— κΈ°λ‘ν•˜κΈ° 전에 μžλ™μœΌλ‘œ μ•”ν˜Έν™”ν•˜λ©°, μ‚¬μš©μžλŠ” μ•”ν˜Έν™” ν‚€λ₯Ό 직접 κ΄€λ¦¬ν•˜κ±°λ‚˜ Google이 μ œκ³΅ν•˜λŠ” μ•”ν˜Έν™” ν‚€λ₯Ό μ„ νƒν•˜μ—¬ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 효율적: BigQuery μŠ€ν† λ¦¬μ§€λŠ” 데이터λ₯Ό 효율적으둜 μ €μž₯ν•˜κ³  μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ 뢄석 μ›Œν¬λ‘œλ“œμ— μ΅œμ ν™”λœ 데이터 인코딩 ν˜•μ‹μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.
Β 
μŠ€ν† λ¦¬μ§€ λ ˆμ΄μ•„μ›ƒ
BigQueryλŠ” 데이터λ₯Ό μ €μž₯ν•˜λŠ” 방식이 일반적인 λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œκ³Ό λ‹€λ¦…λ‹ˆλ‹€.
μŠ€ν† λ¦¬μ§€ λ ˆμ΄μ•„μ›ƒ(좜처: Google Cloud Blog)μŠ€ν† λ¦¬μ§€ λ ˆμ΄μ•„μ›ƒ(좜처: Google Cloud Blog)
μŠ€ν† λ¦¬μ§€ λ ˆμ΄μ•„μ›ƒ(좜처: Google Cloud Blog)
Β 
  • BigQuery의 데이터 μ €μž₯ 방식
    • BigQueryλŠ” ν…Œμ΄λΈ” 데이터λ₯Ό μ—΄ 기반으둜 μ €μž₯ν•˜μ—¬ 각 열을 κ°œλ³„μ μœΌλ‘œ κ΄€λ¦¬ν•¨μœΌλ‘œμ¨, λ°μ΄ν„°μ…‹μ—μ„œ κ°œλ³„ 열을 μŠ€μΊ”ν•˜λŠ” μž‘μ—…μ„ 효율적으둜 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 뢄석 μΏΌλ¦¬λ‚˜ 집계 μž‘μ—…κ³Ό 같은 μž‘μ—…μ— 효과적이며, 예λ₯Ό λ“€μ–΄ λŒ€κ·œλͺ¨ λ°μ΄ν„°μ…‹μ—μ„œ 수천만 개의 ν–‰μ˜ μ—΄ 합계λ₯Ό 계산할 λ•Œ BigQueryλŠ” ν•΄λ‹Ή μ—΄ λ°μ΄ν„°λ§Œ 읽어 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ νŠΉμ„±μœΌλ‘œ 인해 BigQueryλŠ” OLAP 및 데이터 μ›¨μ–΄ν•˜μš°μŠ€ μ›Œν¬λ‘œλ“œμ— μ ν•©ν•œ λ°μ΄ν„°λ² μ΄μŠ€μž…λ‹ˆλ‹€. λ˜ν•œ, μ—΄ 기반 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œλŠ” μœ μ‚¬ν•œ 데이터가 μ—΄μ—μ„œ λ°˜λ³΅λ˜λ―€λ‘œ μ€‘λ³΅λœ 데이터λ₯Ό 효과적으둜 μ••μΆ•ν•˜μ—¬ μ €μž₯ 곡간을 μ ˆμ•½ν•  수 있고, μ΄λŠ” λŒ€κ·œλͺ¨ λ°μ΄ν„°μ˜ 효율적인 μ €μž₯κ³Ό 뢄석을 μ§€μ›ν•©λ‹ˆλ‹€.
      μ—΄ 기반 ν˜•μ‹(좜처: Google Cloud)μ—΄ 기반 ν˜•μ‹(좜처: Google Cloud)
      μ—΄ 기반 ν˜•μ‹(좜처: Google Cloud)
Β 
  • 일반적인 κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ˜ 데이터 μ €μž₯ 방식
    • 일반적인 λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ€ 데이터λ₯Ό ν–‰ 기반으둜 μ €μž₯ν•©λ‹ˆλ‹€. 이에 따라 λ””μŠ€ν¬μ— 각 ν–‰μ˜ 열이 μ—°μ†μ μœΌλ‘œ μ €μž₯λ˜μ–΄ ν•΄λ‹Ή 행에 λΉ λ₯΄κ²Œ μ ‘κ·Όν•  수 있게 λ©λ‹ˆλ‹€. 행이 ν•¨κ»˜ μ €μž₯되며 각 ν–‰μ˜ 열이 λ””μŠ€ν¬μ— 순차적으둜 ν‘œμ‹œλ©λ‹ˆλ‹€. ν–‰ 기반 λ°μ΄ν„°λ² μ΄μŠ€λŠ” 각 행을 효율적으둜 μ‘°νšŒν•  수 μžˆμ§€λ§Œ, 행에 μ ‘κ·Όν•  λ•Œ μ‹œμŠ€ν…œμ΄ λͺ¨λ“  열을 읽어야 ν•˜λ―€λ‘œ μ—¬λŸ¬ ν–‰μ—μ„œ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” 것이 항상 νš¨μœ¨μ μ΄μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
      ν–‰ 기반 ν˜•μ‹(좜처: Google Cloud)ν–‰ 기반 ν˜•μ‹(좜처: Google Cloud)
      ν–‰ 기반 ν˜•μ‹(좜처: Google Cloud)
Β 
μœ„ λ‚΄μš©μ„ κ°„λž΅νžˆ μš”μ•½ν•˜μ—¬ ν‘œλ‘œ μ •λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
➑️
빅쿼리와 λ‹€λ₯Έ λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ˜ 비ꡐ
ν•­λͺ©
BigQuery
일반적인 κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œ
μ €μž₯ 방식
μ—΄ 지ν–₯ μ €μž₯ 방식 - μ—΄ λ‹¨μœ„ 데이터 μ‘°νšŒμ— μ΅œμ ν™”
ν–‰ 지ν–₯ μ €μž₯ 방식 - ν–‰ λ‹¨μœ„ 데이터 μ‘°νšŒμ— μ΅œμ ν™”
μ„±λŠ₯
ν•„μš”ν•œ μ—΄μ˜ λ°μ΄ν„°λ§Œ 읽을 수 μžˆμ–΄ 효율적일 수 있음
ν–‰ λ‹¨μœ„ 데이터 쑰회 μ‹œ λͺ¨λ“  열을 읽어야 ν•˜λ―€λ‘œ λΉ„νš¨μœ¨μ μΌ 수 있음
νŠΉμ§•
λŒ€κ·œλͺ¨ 데이터 μ••μΆ• 및 μŠ€μΊ” 용이 OLAP 및 데이터 μ›¨μ–΄ν•˜μš°μŠ€ μ›Œν¬λ‘œλ“œμ— 적합
λŒ€λŸ‰μ˜ νŠΈλžœμž­μ…˜ μ²˜λ¦¬μ— 적합 인덱슀λ₯Ό ν†΅ν•œ 데이터 μ²˜λ¦¬μ— μ΅œμ ν™”
Β 
데이터 ν…Œμ΄λΈ” μ΅œμ ν™”
데이터 ν…Œμ΄λΈ”μ„ 섀계할 λ•Œ μ„±λŠ₯을 μ΅œμ ν™”ν•˜κΈ° μœ„ν•œ 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
Β 
  • νŒŒν‹°μ…˜ λ‚˜λˆ„κΈ°
    • 데이터λ₯Ό νŒŒν‹°μ…˜ λ‹¨μœ„λ‘œ λ‚˜λˆˆ ν…Œμ΄λΈ”μ„ μ‚¬μš©ν•˜μ—¬ μ„±λŠ₯을 ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. νŒŒν‹°μ…˜ ν‚€λŠ” μ •μˆ˜ μ—΄, μ‹œκ°„ λ‹¨μœ„ μ—΄, 데이터λ₯Ό μˆ˜μ§‘ν•œ μ‹œκ°„ 등이 될 수 있으며, νŒŒν‹°μ…˜μ„ λ‚˜λˆ„μ–΄ 데이터λ₯Ό 효율적으둜 관리할 수 μžˆμŠ΅λ‹ˆλ‹€.
      λ‹€μŒμ€ λ‚ μ§œ ν•„λ“œλ‘œ νŒŒν‹°μ…˜μ„ λ‚˜λˆˆ ν…Œμ΄λΈ”μ΄λ©°, μ„Έ 개의 νŒŒν‹°μ…˜μ΄ ν‘œμ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. ”transaction_dateβ€λΌλŠ” 열을 기반으둜 일별 νŒŒν‹°μ…˜ λ‚˜λˆ„κΈ°λ₯Ό μ‚¬μš©ν•˜λŠ” ν…Œμ΄λΈ”μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
      λ‚ μ§œ ν•„λ“œλ‘œ νŒŒν‹°μ…˜μ„ λ‚˜λˆˆ ν…Œμ΄λΈ”(좜처: Google Cloud)λ‚ μ§œ ν•„λ“œλ‘œ νŒŒν‹°μ…˜μ„ λ‚˜λˆˆ ν…Œμ΄λΈ”(좜처: Google Cloud)
      λ‚ μ§œ ν•„λ“œλ‘œ νŒŒν‹°μ…˜μ„ λ‚˜λˆˆ ν…Œμ΄λΈ”(좜처: Google Cloud)
      데이터λ₯Ό νŒŒν‹°μ…˜μœΌλ‘œ λ‚˜λˆ„λ©΄, 쿼리가 필터와 μΌμΉ˜ν•˜λŠ” νŒŒν‹°μ…˜λ§Œ μŠ€μΊ”ν•˜κ³ , μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” νŒŒν‹°μ…˜μ€ κ±΄λ„ˆλ›Έ 수 μžˆμ–΄μ„œ 쿼리 μ„±λŠ₯을 ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.
      ➑️
      BigQueryκ°€ μ§€μ›ν•˜λŠ” νŒŒν‹°μ…˜ λ‚˜λˆ„κΈ°μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ 곡식 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•΄ μ£Όμ‹œκΈ° λ°”λžλ‹ˆλ‹€.
Β 
  • ν΄λŸ¬μŠ€ν„°λ§
    • ν΄λŸ¬μŠ€ν„°λ§μ€ νŠΉμ • μ—΄μ˜ 값을 κΈ°μ€€μœΌλ‘œ 데이터λ₯Ό μ •λ ¬ν•˜κ³  μœ μ‚¬ν•œ 값듀을 같은 μœ„μΉ˜μ— λ°°μΉ˜ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. ν΄λŸ¬μŠ€ν„°λ§ 된 ν…Œμ΄λΈ” μ—΄μ˜ μ΅œμ†Ÿκ°’ 및 μ΅œλŒ“κ°’μ„ μ΄μš©ν•˜μ—¬ 데이터 정렬에 ν™œμš©ν•©λ‹ˆλ‹€.
      Β 
      λ‹€μŒμ€Β β€customer_idβ€λΌλŠ” 열을 κΈ°μ€€μœΌλ‘œ ν΄λŸ¬μŠ€ν„°λ§ 된 ν…Œμ΄λΈ”μž…λ‹ˆλ‹€.
      β€œcustomer_id” 열을 κΈ°μ€€μœΌλ‘œ ν΄λŸ¬μŠ€ν„°λ§ 된 ν…Œμ΄λΈ”(좜처: Google Cloud)β€œcustomer_id” 열을 κΈ°μ€€μœΌλ‘œ ν΄λŸ¬μŠ€ν„°λ§ 된 ν…Œμ΄λΈ”(좜처: Google Cloud)
      β€œcustomer_id” 열을 κΈ°μ€€μœΌλ‘œ ν΄λŸ¬μŠ€ν„°λ§ 된 ν…Œμ΄λΈ”(좜처: Google Cloud)
      ν΄λŸ¬μŠ€ν„°λ§μ€ κ³ μœ ν•œ 값이 λ§Žμ€ μ—΄μ΄λ‚˜, λ²”μœ„κ°€ μž‘μ€ 데이터λ₯Ό ν•œ λ²ˆμ— ν•„ν„°λ§ν•˜κ±°λ‚˜ μ§‘κ³„ν•˜λŠ” 쿼리에 μ ν•©ν•©λ‹ˆλ‹€.
      ➑️
      BigQueryκ°€ μ§€μ›ν•˜λŠ” ν΄λŸ¬μŠ€ν„°λ§μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ 곡식 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•΄ μ£Όμ‹œκΈ° λ°”λžλ‹ˆλ‹€.
Β 
  • ν΄λŸ¬μŠ€ν„°λ§κ³Ό νŒŒν‹°μ…˜ λ‚˜λˆ„κΈ° κ²°ν•©
    • 데이터λ₯Ό μ—¬λŸ¬ νŒŒν‹°μ…˜μœΌλ‘œ λ‚˜λˆ„κ³ , 이λ₯Ό λ‹€μ–‘ν•œ μ—΄μ˜ μ§‘ν•©μœΌλ‘œ ν΄λŸ¬μŠ€ν„°λ§ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ, λ‚ μ§œ ν˜Ήμ€ μ‹œκ°„ λ“±μ˜Β μ—΄μ„ κΈ°μ€€μœΌλ‘œ 데이터λ₯Ό νŒŒν‹°μ…˜μœΌλ‘œ λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€. 각 νŒŒν‹°μ…˜ λ‚΄μ˜ λ°μ΄ν„°λŠ” 기쀀이 λ˜λŠ” 열에 따라 ν΄λŸ¬μŠ€ν„°λ§ λ©λ‹ˆλ‹€.
      λ‹€μŒμ€Β β€transaction_date” 열을 κΈ°μ€€μœΌλ‘œ 데이터λ₯Ό νŒŒν‹°μ…˜μœΌλ‘œ λ‚˜λˆ„κ³ , 각 νŒŒν‹°μ…˜μ˜  ”customer_id” 열을 κΈ°μ€€μœΌλ‘œ ν΄λŸ¬μŠ€ν„°λ§ 된 ν…Œμ΄λΈ”μž…λ‹ˆλ‹€.
      ν΄λŸ¬μŠ€ν„°λ§ 된 νŒŒν‹°μ…˜μ„ λ‚˜λˆˆ ν…Œμ΄λΈ”(좜처: Google Cloud)ν΄λŸ¬μŠ€ν„°λ§ 된 νŒŒν‹°μ…˜μ„ λ‚˜λˆˆ ν…Œμ΄λΈ”(좜처: Google Cloud)
      ν΄λŸ¬μŠ€ν„°λ§ 된 νŒŒν‹°μ…˜μ„ λ‚˜λˆˆ ν…Œμ΄λΈ”(좜처: Google Cloud)
Β 
λ‹€λ₯Έ λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œκ³Όμ˜ 비ꡐ
  1. κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œ (예: Oracle Database, MySQL, PostgreSQL λ“±)
      • μ €μž₯ 방식: ν…Œμ΄λΈ” ν˜•μ‹μ„ μ‚¬μš©ν•˜λ©°, 각 ν…Œμ΄λΈ”μ€ 미리 μ •μ˜λœ μŠ€ν‚€λ§ˆλ₯Ό 기반으둜 ν•œ ν–‰κ³Ό μ—΄λ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.
      • μž₯점: λ°μ΄ν„°μ˜ 일관성, 무결성 및 관계λ₯Ό 효과적으둜 μœ μ§€ν•˜λ©°, ACID νŠΈλžœμž­μ…˜μ„ μ§€μ›ν•˜μ—¬ λ°μ΄ν„°μ˜ μ•ˆμ •μ„±μ„ 보μž₯ν•©λ‹ˆλ‹€.
      • 단점: λŒ€κ·œλͺ¨ 데이터 처리 및 λ³΅μž‘ν•œ 쿼리에 λŒ€ν•œ μ„±λŠ₯이 λ–¨μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
      Β 
  1. NoSQL λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œ (예: MongoDB, Redis, Cassandra λ“±)
      • μ €μž₯ 방식: JSON λ¬Έμ„œμ™€ 같은 단일 데이터 ꡬ쑰 내에 데이터λ₯Ό λ³΄κ΄€ν•©λ‹ˆλ‹€. λ‹€μ–‘ν•œ ν˜•νƒœμ˜ 데이터 λͺ¨λΈμ„ μ‚¬μš©ν•˜λ©°, ν‚€-κ°’, κ·Έλž˜ν”„, λ¬Έμ„œ, 인메λͺ¨λ¦¬, μ™€μ΄λ“œ-컬럼 λ“±μ˜ μ €μž₯ 방식이 μžˆμŠ΅λ‹ˆλ‹€.
      • μž₯점: ν™•μž₯성이 λ›°μ–΄λ‚˜κ³  λŒ€μš©λŸ‰ 데이터 μ²˜λ¦¬μ— νš¨μœ¨μ μž…λ‹ˆλ‹€. μœ μ—°ν•œ μŠ€ν‚€λ§ˆλ‘œ λ‹€μ–‘ν•œ 데이터 ν˜•μ‹μ„ μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
      • 단점: λ°μ΄ν„°μ˜ 일관성을 보μž₯ν•˜κΈ° μ–΄λ €μšΈ 수 있으며, ACID νŠΈλžœμž­μ…˜μ„ μ™„μ „νžˆ μ§€μ›ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
      Β 
  1. 파일 μ‹œμŠ€ν…œ (예: HDFS, Amazon S3)
      • μ €μž₯ 방식: 파일 ν˜•μ‹μœΌλ‘œ 데이터λ₯Ό μ €μž₯ν•˜λ©°, 파일 μ‹œμŠ€ν…œμ˜ 디렉토리 ꡬ쑰λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€.
      • μž₯점: λŒ€μš©λŸ‰ 데이터λ₯Ό 효과적으둜 μ²˜λ¦¬ν•˜κ³  μ €μž₯ν•  수 있으며, λΆ„μ‚° 파일 μ‹œμŠ€ν…œμ„ ν™œμš©ν•˜μ—¬ κ³ κ°€μš©μ„±κ³Ό 내결함성을 μ œκ³΅ν•©λ‹ˆλ‹€.
      • 단점: 파일 μ‹œμŠ€ν…œμ€ 일반적으둜 데이터λ₯Ό 계측적인 디렉터리 ꡬ쑰둜 μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ— 데이터에 λŒ€ν•œ μœ μ—°ν•œ ꡬ쑰λ₯Ό μ •μ˜ν•˜κ±°λ‚˜ κ΄€λ¦¬ν•˜κΈ°κ°€ μ–΄λ €μšΈ 수 있으며, μ—¬λŸ¬ μ‚¬μš©μžμ— μ˜ν•œ λ™μ‹œ μ•‘μ„ΈμŠ€λ₯Ό 효과적으둜 μ œμ–΄ν•˜μ§€ λͺ»ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
      Β