본문 바로가기
개념공부/AI, 머신러닝 등

메타데이터 (Metadata) 관리 및 포맷 JSON, YAML

by Zach Choi 2024. 11. 13.
728x90
반응형

메타데이터 관리는 데이터의 출처, 형식, 구조 및 기타 속성에 대한 정보를 체계적으로 관리하는 것을 의미한다. 메타데이터를 통해 데이터의 추적 가능성을 높이고, 데이터 검색과 사용을 용이하게 할 수 있다. 메타데이터 관리는 다음 단계들로 구성된다.


1. 메타데이터의 정의

메타데이터의 종류와 구조를 정의해야 한다. 일반적으로 메타데이터의 종류와 구조에는 데이터 형식, 구조, 크기, 용도, 소유자, 수집 및 갱신 주기, 처리 시간 등이 있다.

2. 메타데이터 수집

메타데이터를 수집하는 방법을 정의한다. 자동화 도구를 사용해 메타데이터를 수집하거나, 데이터 소스에서 직접 수집할 수 있다.

  • 자동화 도구: Apache Atlas, Google Data Catalog 등
  • 직접 수집: 수작업으로 메타데이터를 입력

3. 메타데이터 저장

수집한 메타데이터를 저장할 중앙 저장소를 설정한다. 데이터베이스나 메타데이터 관리 시스템을 사용할 수 있다.

  • 메타데이터 저장소: 관계형 데이터베이스, NoSQL 데이터베이스 등
  • 메타데이터 관리 시스템: Apache Atlas, Collibra, Informatica 등

4. 메타데이터 표준화 및 검증

메타데이터의 일관성을 유지하고, 품질을 보장하기 위해 표준화와 검증 절차를 설정한다.

  • 표준화: 메타데이터의 형식과 구조를 표준화
  • 검증: 메타데이터의 정확성과 완전성을 검증

5. 메타데이터 관리 도구 사용

메타데이터를 효율적으로 관리하기 위해 적절한 도구를 선택하고 설정한다.

  • 메타데이터 도구: Apache Atlas, Google Data Catalog, AWS Glue Data Catalog 등
  • 설정: 도구를 설정하고, 메타데이터 수집, 저장, 검색 기능을 활성화

6. 메타데이터 활용 및 모니터링

메타데이터를 통해 데이터 자산을 더 효과적으로 관리하고, 데이터의 활용성을 높입니다.

  • 검색 및 탐색: 메타데이터를 통해 데이터 검색과 탐색을 용이하게 함
  • 모니터링: 메타데이터의 상태와 품질을 지속적으로 모니터링

반응형

메타 데이터 관리를 위해 다음 2가지 기능이 필요하다. 

 

1. 메타데이터 삽입

import sqlite3
from datetime import datetime

# 메타데이터 삽입 함수
def insert_metadata(data_name, data_type, data_owner):
    conn = sqlite3.connect('metadata.db')
    c = conn.cursor()
    last_updated = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    c.execute('''
        INSERT INTO metadata (data_name, data_type, data_owner, last_updated)
        VALUES (?, ?, ?, ?)
    ''', (data_name, data_type, data_owner, last_updated))
    conn.commit()
    conn.close()

# 메타데이터 삽입 예제
insert_metadata('Customer Data', 'CSV', 'Data Team')
insert_metadata('Sales Data', 'Parquet', 'Sales Team')

 

2. 메타데이터 조회

import sqlite3

# 메타데이터 조회 함수
def get_metadata():
    conn = sqlite3.connect('metadata.db')
    c = conn.cursor()
    c.execute('SELECT * FROM metadata')
    rows = c.fetchall()
    conn.close()
    return rows

# 메타데이터 조회 예제
metadata = get_metadata()
for row in metadata:
    print(row)

메타데이터 포맷

  • 일반적으로 메타데이터 포맷으로 JSON과 YAML을 사용한다.
  • JSON은 키-값 쌍으로 데이터를 표현하고, 데이터의 계층 구조를 쉽게 표현할 수 있는 장점이 있다. 웹에서 많이 사용되며, 표준 포맷이다.
{
  "data_name": "Customer Data",
  "data_type": "CSV",
  "data_owner": "Data Team",
  "last_updated": "2023-11-13T22:17:00Z"
}
  • YAML은 JSON대비 더 읽기 쉽고 간단한 구조로 데이터를 표현할 수 있다. 그리고 다양한 형식의 데이터를 쉽게 표현할 수 있다.
data_name: Customer Data
data_type: CSV
data_owner: Data Team
last_updated: 2023-11-13T22:17:00Z
728x90
반응형