Data Engineering/Datahub

[Datahub] μ˜€ν”ˆμ†ŒμŠ€ 메타 데이터 ν”Œλž«νΌ, 데이터 ν—ˆλΈŒμ— λŒ€ν•΄ μ•Œμ•„λ³΄μž πŸ™‹‍♂️

Donghae 2024. 9. 21. 00:17
πŸ™‡‍♂️ λ“€μ–΄κ°€λ©°
사내 λŒ€μ‹œλ³΄λ“œλ₯Ό λ§Œλ“€ λ•Œ λͺ¨λ₯΄λŠ” 컬럼이 있으면 μŠ¬λž™μ— κ²€μƒ‰ν•˜κ±°λ‚˜ νŒ€μ— λ¬Έμ˜ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. κ·Έ κ³Όμ •μ—μ„œ ν—·κ°ˆλ¦° μ‚¬λžŒμ΄ μ €λΏλ§Œμ΄ μ•„λ‹ˆλΌλŠ” 것을 κΉ¨λ‹¬μ•˜λŠ”λ°μš”, μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλŠ” 데이터 ν—ˆλΈŒμ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€!

 

Datahub

LinkedInμ—μ„œ λ§Œλ“  μ˜€ν”ˆμ†ŒμŠ€ 메타 데이터 ν”Œλž«νΌμœΌλ‘œ 메타 데이터 관리, 데이터 검색 및 데이터 κ±°λ²„λ„ŒμŠ€λ₯Ό μœ„ν•΄ λ§Œλ“€μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. Airflow, BigQuery, CSV, Mysql λ“±μ˜ λ‹€μ–‘ν•œ μ†ŒμŠ€λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
 

1. Data Ingestion

κ°€μž₯ λ¨Όμ € ν•΄μ•Όν•  일은 메타데이터λ₯Ό μž…λ ₯ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 데이터 ν—ˆλΈŒμ˜ UIλ₯Ό μ΄μš©ν•˜κ±°λ‚˜ YAML ν˜•μ‹μœΌλ‘œ μž‘μ„±ν•œ  recipeλ₯Ό μž‘μ„±ν•΄ 메타 정보λ₯Ό ingestion, 즉 μ„­μ·¨(?)ν•  수 있게 ν•΄μ€˜μ•Ό ν•©λ‹ˆλ‹€. 이 과정은 Airflow의 DAG둜 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
 
*recipe: 메타 데이터 μˆ˜μ§‘μ„ μœ„ν•œ ꡬ성 파일둜 데이터λ₯Ό μ–΄λ””μ—μ„œ 가져와(Source) 어디에 λ‘˜μ§€(Sink) μ •μ˜ν•˜κ³  κ·œμΉ™μ„ μ„€μ •ν•©λ‹ˆλ‹€. vscodeμ—μ„œ Redhat의 yamlν”ŒλŸ¬κ·ΈμΈμ„ μ„€μΉ˜ν•˜λ©΄ .dhub.yaml ν™•μž₯자둜 μžλ™μ™„μ„±κ³Ό ꡬ문 검증 κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
 

Ingestionμ‹œ Formκ³Ό YAML 쀑 선택 κ°€λŠ₯
YAML둜 λ³€κ²½ μ‹œ

 

2. Data Asset

 λ°μ΄ν„°λ₯Ό κ°€μ Έμ™”λ‹€λ©΄ 이λ₯Ό μ‚¬μš©μžλ“€μ΄ 더 μ‰½κ²Œ μ°Ύκ³  이해할 수 μžˆλ„λ‘ ν•΄μ•Όν•©λ‹ˆλ‹€. μ•„λž˜ Domain, Glossary Terms, Tags μ„Έ κ°€μ§€ κΈ°λŠ₯을 톡해 관리할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

βœ”οΈ Domain

데이터 μžμ‚°μ˜ 쀑앙 집쀑화λ₯Ό μœ„ν•΄ κ·Έλ£Ήν™”λœ μ΅œμƒμœ„ 폴더(λ˜λŠ” λ²”μ£Ό)μž…λ‹ˆλ‹€. ν•˜λ‚˜μ˜ μžμ‚°μ€ ν•˜λ‚˜μ˜ λ„λ©”μΈμ—λ§Œ 속할 수 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜μ™€ 같이 Ingestion λ‹¨κ³„μ˜ YAML λ ˆμ‹œν”Όμ—μ„œ 미리 λ§Œλ“€μ–΄λ‘” 도메인을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • 예) λΉ„μ¦ˆλ‹ˆμŠ€(금육, λ§ˆμΌ€νŒ…, 뢄석 λ“±) νŒ€ 도메인 생성
source: 
    (...)
    domain:
      Analytics:
        allow:
          - "long_tail_companions.analytics.*"
      Finance:
        allow:
          - "long_tail_companions.ecommerce.*"

 

βœ”οΈ Glossary Terms

데이터 ν‘œμ€€ν™”λ₯Ό μœ„ν•΄ μ€‘μ•™μ—μ„œ κ΄€λ¦¬ν•˜λŠ” μš©μ–΄(λ˜λŠ” μš©μ–΄μ§‘)μž…λ‹ˆλ‹€. μš©μ–΄ κ°„ 관계 μ„€μ • 및 κ·Έλ£Ήν™”κ°€ κ°€λŠ₯ν•˜λ©°, λ§Œλ“€μ–΄μ§„ μš©μ–΄μ§‘μ€ μžμ‚°κ³Ό μ—°κ²°ν•΄ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. YAML 파일둜 관리가 κ°€λŠ₯ν•©λ‹ˆλ‹€.

  • 예) KPI, OKR, μ „λ¬Έ μš©μ–΄ λ˜λŠ” μ•½μ–΄ λ“± 보관
πŸ“Œ  μš©μ–΄μ§‘μ„ 톡해 μ‚¬λ‚΄μ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄μ˜ λœ»μ„ νŒŒμ•…ν•˜κ³ , μ—°κ²°λœ 데이터λ₯Ό ν™•μΈν•˜κ³ , κΆκΈˆν•œ 점 λ˜λŠ” κ°œμ„ ν•  점이 μžˆλŠ” 경우 μ†Œμœ μžμ—κ²Œ λ¬Έμ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

βœ”οΈ Tags

검색을 μœ„ν•΄ μ‚¬μš©ν•˜λŠ” λ„κ΅¬μž…λ‹ˆλ‹€. ν•˜λ‚˜μ˜ μžμ‚°μ—λŠ” μ—¬λŸ¬κ°œμ˜ νƒœκ·Έλ₯Ό 뢙일 수 μžˆμŠ΅λ‹ˆλ‹€. μ€‘μ•™μ—μ„œ κ΄€λ¦¬ν•˜μ§€ μ•ŠλŠ” 비곡식적인 λ„κ΅¬λ‘œ λΉ λ₯΄κ²Œ 데이터λ₯Ό 라벨링 ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
 
 
 
데이터 μžμ‚°μ„ λΆ„λ₯˜ν•˜κ³  검색 μ„±λŠ₯을 λ†’μ˜€λ‹€λ©΄, μ•„λž˜ 두 κΈ°λŠ₯을 μ‚¬μš©ν•΄ Datahubλ₯Ό 더 잘 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
 
 

3. SQL Profiling

λ°μ΄ν„°μ˜ ν…Œμ΄λΈ” 및 컬럼 μˆ˜μ€€μ˜ 톡계 정보λ₯Ό μˆ˜μ§‘ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 데이터λ₯Ό 더 잘 μ΄ν•΄ν•˜κ³  ν’ˆμ§ˆμ„ μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Ingestion λ‹¨κ³„μ˜ YAML λ ˆμ‹œν”Όμ—μ„œ profiling λ‚΄ enabled=True둜 μ„€μ •ν•˜λ©΄ μžμ‚°μ˜ Stats νƒ­μ—μ„œ μ•„λž˜ 정보λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

  • NULL의 개수 및 λΉ„μœ¨
  • DISTINCT κ°’μ˜ 개수 및 λΉ„μœ¨
  • MIN, MAX, AVG λ“±μ˜ 톡계 정보 λ“±
πŸ“Œ 단, μ—¬λŸ¬ ν…Œμ΄λΈ”μ΄λ‚˜ μ»¬λŸΌμ— λŒ€ν•΄ ν”„λ‘œνŒŒμΌλ§μ„ μ‹€ν–‰ν•˜λ©΄ μƒλ‹Ήν•œ 쿼리 λΉ„μš©μ΄ λ°œμƒν•  수 μžˆμœΌλ‹ˆ μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. 맀일 μ‹€ν–‰ν•˜κΈ°λ³΄λ‹€λŠ” 데이터에 따라 주에 ν•œλ²ˆ λ“± μ£ΌκΈ°λ₯Ό 두고 μ‹€ν–‰ν•˜λŠ” 방법 등을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

4. Data Lineage

데이터가 μ–΄λ””μ—μ„œ μ™”λŠ”μ§€ κ·Έλž˜ν”„λ₯Ό 톡해 ν™•μΈν•©λ‹ˆλ‹€. ν…Œμ΄λΈ” 뿐만 μ•„λ‹ˆλΌ *Airflow DAG의 Task와도 μ—°κ²°ν•΄ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 데이터와 κ΄€λ ¨λœ μ›Œν¬ν”Œλ‘œμš°λ₯Ό ν™•μΈν•˜κ³  μˆ˜μ • μ‹œ 영ν–₯도λ₯Ό νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€ (이전 νšŒμ‚¬μ—μ„œλŠ” 인터넷을 μ‚¬μš©ν•  수 μ—†λŠ” ν™˜κ²½μ—μ„œ 이λ₯Ό 수기둜 κ΄€λ¦¬ν–ˆκΈ°μ— λ„ˆλ¬΄λ‚˜ λ°˜κ°€μš΄(!) κΈ°λŠ₯μ΄μ—ˆμŠ΅λ‹ˆλ‹€).

*acryl-datahub-airflow-plugin μ„€μΉ˜ ν•„μš”
 

 

πŸ™‡‍♂️ 마치며

 μ΄λ ‡κ²Œ λ°μ΄ν„°ν—ˆλΈŒμ— λŒ€ν•΄ κ°„λ‹¨νžˆ μ‚΄νŽ΄λ΄€μŠ΅λ‹ˆλ‹€. λ‹Ήμž₯ ν‘œμ€€ν™”λ₯Ό μœ„ν•œ μš©μ–΄μ§‘μ„ λ§Œλ“€κ³  λͺ¨λ“  ν…Œμ΄λΈ”μ— μ μš©ν•˜κΈ°λŠ” 무리일 수 μžˆμ§€λ§Œ μ—μ–΄ν”Œλ‘œμš° DAGλ₯Ό μ—°κ²°ν•˜κ³  μ„€λͺ…κ³Ό νƒœκ·Έλ₯Ό 잘 λ‹¬μ•„μ£ΌκΈ°λ§Œ 해도 데이터λ₯Ό 더 μ‰½κ²Œ 이해할 수 μžˆμ„ 것 κ°™μŠ΅λ‹ˆλ‹€. μ €μ˜ 경우 이미 νŒ€ 내뢀에 데이터 ν—ˆλΈŒκ°€ κ΅¬μΆ•λ˜μ–΄ μžˆμ–΄ 배운 λ‚΄μš©μ„ ν•˜λ‚˜μ”© μ μš©ν•΄ 보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€ ☘️   
 


 

 

What is DataHub? | DataHub

DataHub is a modern data catalog designed to streamline metadata management, data discovery, and data governance. It enables users to efficiently explore and understand their data, track data lineage, profile datasets, and establish data contracts.

datahubproject.io