파이썬을 사용한 서버리스 데이터 변환
서버리스 아키텍처는 많은 기업이 클라우드 컴퓨팅을 활용하는 방법 중 하나입니다. 이 아키텍처에서는 서버가 필요하지 않고 코드가 실행되며, 비용 절감과 확장성 측면에서 많은 장점을 가지고 있습니다.
이번 예시에서는 파이썬을 사용하여 서버리스 아키텍처에서 데이터 변환을 하는 방법을 알아보겠습니다.
단계 1: 데이터 소스 가져오기
첫 번째 단계는 데이터를 가져오는 것입니다. 이 예시에서는 AWS S3 버킷에 있는 CSV 파일을 사용하겠습니다. 다음은 해당 파일을 가져오는 방법입니다.
import boto3
def get_data_from_s3(bucket, file_name):
s3 = boto3.resource('s3')
obj = s3.Object(bucket, file_name)
data = obj.get()['Body'].read()
return data
단계 2: 데이터 변환
두 번째 단계는 데이터를 원하는 형식으로 변환하는 것입니다. 이 예시에서는 CSV 파일을 JSON 형태로 변환하겠습니다.
import csv
import json
def transform_data(data):
csv_data = data.decode('utf-8')
reader = csv.DictReader(csv_data.splitlines())
json_data = json.dumps([row for row in reader], indent=4)
return json_data
단계 3: 변환된 데이터 저장
마지막 단계는 변환된 데이터를 저장하는 것입니다. 이 예시에서는 다시 AWS S3 버킷에 저장하겠습니다.
def save_data_to_s3(bucket, file_name, data):
s3 = boto3.resource('s3')
obj = s3.Object(bucket, file_name)
obj.put(Body=data)
예제 실행하기
위의 코드를 가지고 데이터 변환 작업을 실행해봅시다.
def main(event, context):
# AWS Lambda에서 실행하기 위한 진입점
bucket = 'my-bucket'
file_name = 'data.csv'
# S3에서 데이터 가져오기
data = get_data_from_s3(bucket, file_name)
# 데이터 변환하기
transformed_data = transform_data(data)
# S3에 변환된 데이터 저장하기
save_data_to_s3(bucket, 'transformed_data.json', transformed_data)
AWS Lambda 함수로 위의 main
함수를 등록하고, 이벤트 및 컨텍스트를 제공하여 실행하면 됩니다. 데이터 변환이 정상적으로 완료되면, transformed_data.json
파일이 my-bucket
S3 버킷에 저장될 것입니다.
이렇게 파이썬을 사용하여 서버리스 아키텍처에서 데이터 변환을 할 수 있습니다. 이를 통해 비용 절감과 스케일링의 장점을 누릴 수 있습니다.
#데이터변환 #서버리스