반응형
Extract, Transform, Load (ETL)
이 비디오에서는 ETL(추출, 변환, 로딩) 프로세스를 소개하고 간단한 Python 프로그램을 작성하는 방법을 배웁니다. ETL은 다양한 소스에서 데이터를 추출하고, 변환하여 원하는 형식으로 만든 다음, 데이터베이스 또는 목표 파일에 로드하는 과정입니다.
예를 들어, 당뇨병 위험을 예측하는 AI를 개발한 스타트업을 운영한다고 가정해보겠습니다. 일부 데이터는 CSV 형식이고, 다른 데이터는 JSON 파일에 있습니다. 이러한 데이터를 AI가 읽을 수 있는 하나의 파일로 병합해야 합니다. 또한, 데이터를 변환하여 미터법 단위로 바꾸고 최종적으로 하나의 큰 CSV 파일로 데이터를 로드해야 합니다.
ETL을 Python으로 구현하려면 다음 단계를 수행합니다.
- 추출(Extract) 단계: 여러 소스의 데이터를 가져옵니다.
- 변환(Transform) 단계: 데이터를 필요한 형식으로 변환합니다.
- 로드(Load) 단계: 데이터를 최종 파일에 저장합니다.
- 로깅(Logging) 함수 작성: 프로세스 시작 및 완료 시간을 기록합니다.
1.Extract
import pandas as pd
import glob
csv_files = glob.glob("*.csv")
json_files = glob.glob("*.json")
data = pd.DataFrame(columns=["Name", "Height", "Weight"])
for file in csv_files + json_files:
if file.endswith(".csv"):
temp_data = pd.read_csv(file)
elif file.endswith(".json"):
temp_data = pd.read_json(file)
data = data.append(temp_data, ignore_index=True)
2. Transform
def transform_data(data):
data["Height"] = (data["Height"] * 0.0254).round(2) # Inches to meters
data["Weight"] = (data["Weight"] * 0.453592).round(2) # Pounds to kilograms
return data
data = transform_data(data)
3.Load
data.to_csv("targetfile.csv", index=False)
4. Logging
import datetime
def log(message):
timestamp_format = "%Y-%h-%d-%H:%M:%S"
now = datetime.datetime.now().strftime(timestamp_format)
with open("logfile.log", "a") as f:
f.write(f"{now}: {message}\n")
log("ETL process started")
# Call the extract, transform, and load functions here
log("ETL process completed")
반응형
'Data Analysis > Data Engineering' 카테고리의 다른 글
Airflow에서 데코레이터(decorator)를 사용하는 이유 (0) | 2024.04.19 |
---|---|
IBM Data Engineer - Introduction to Relational Databases (RDBMS) (0) | 2023.04.19 |
IBM Data Engineer - Python for Data Science, AI & Development 3 (0) | 2023.04.18 |
IBM Data Engineer - Python for Data Science, AI & Development 2 (0) | 2023.04.12 |
IBM Data Engineer - Python for Data Science, AI & Development (0) | 2023.04.05 |
댓글