MinIO
오픈 소스 오브젝트 스토리지(object storage) 솔루션으로, Amazon S3와 호환되는 인터페이스를 제공하는 고성능 분산 스토리지 시스템이다. MinIO는 대용량 데이터를 저장하고 관리하는 데 최적화되어 있으며, 클라우드 네이티브 애플리케이션과 빅데이터, AI/ML 워크로드에 적합한 스토리지 솔루션이다. 주로 Kubernetes와 같은 컨테이너 오케스트레이션 플랫폼에서 쉽게 사용할 수 있도록 설계되었다.
MinIO의 구성 요소:
- Bucket: 데이터가 저장되는 기본 단위로, AWS S3의 버킷과 동일한 개념입니다.
- Object: 버킷에 저장되는 개별 데이터 파일입니다.
- MinIO 서버: 오브젝트 스토리지를 제공하는 서버로, 여러 노드로 구성된 클러스터에서 동작할 수 있습니다
minio client 설치 주소
mc.exe
MinIO Client — MinIO Object Storage for Linux
minio connection 연결
Admin - connection 에서 minio 연결을 만든다.
conn Type, Access Key ID, Secret Access Key, Extra 에 endpoint_url 정보를 입력해준다.
Minio 연결 DAG
import pendulum
from datetime import timedelta
from airflow.decorators import dag, task
from airflow.providers.amazon.aws.hooks.s3 import S3Hook
@dag(
dag_id = 'chap_sw_minio',
schedule="@once",
start_date=pendulum.datetime(2024,9,10,19, tz=pendulum.timezone("Asia/Seoul")),
catchup=False,
default_args={
'retries':1,
'retry_delay':timedelta(minutes=5),
},
tags=["minio"]
)
def minio():
@task
def load_minio():
s3_hook = S3Hook(aws_conn_id='minio_sw')
s3_hook.load_file(
filename='/opt/airflow/dags/chap_sw.py', # 로컬 파일 경로
key='chap_sw.py', # MinIO에서 저장될 파일명
bucket_name='sandbox', # MinIO에서 사용할 버킷 이름
replace=True
)
load_minio()
minio()
함수 minio
- S3Hook 을 사용해서 해당 버킷에 파일을 로드한다.
Minio 웹 UI 확인
sandbox 버킷에 파일이 올라간 것을 확인할 수 있다.
반응형
'Echo system > Airflow' 카테고리의 다른 글
Airflow - Custom 패키지 만들기 (0) | 2024.09.23 |
---|---|
Airflow - Custom hook, operator, sensor 생성하기 (1) | 2024.09.23 |
Airflow - Apache Spark 연동 (2) | 2024.09.07 |
Airflow - Kubernetes(k8s) 연동 (0) | 2024.09.07 |
Airflow - DB (PostgreSQL) 데이터 삽입 및 DAG 탐지 후 읽어오기 (1) | 2024.09.07 |