Dockerfile의 생성 - Docker에거 소프트웨어 설치 명령을 기술 - 베이스 이미지를 기술 (FROM) -> 코드 복사 -> 코드 실행 FROM node:alpine # FROM = OS종류를 적어줌(여기서는 Alpine이라는 경량 리눅스를 데모목적으로 선택) COPY ./app # COPY = 코드 복사에 사용 WORKDIR /app # WORKDIR = Wordking directory를 지정(지정 시 cmd에 경로 적어줄 필요 없음) CMD node app.js # CMD = 실행하는 명령 앞에 지정 - 그 외의 키워드 ARG : Docker Image를 만들 때 사용되는 변수 지정, 최종 이미지에는 안 들어감 ENV : 컨테이너가 실행될 때 사요오디는 환경변수, 최종 이미지에 저장됨 US..
Docker와 K8s 필요성 (예시 : Airflow 운영상의 어려움) 데이터 품질이나 데이터 리니지 이슈 이외에도 다양한 이슈들이 발생 - Dag 간의 사용하는 라이브러리/모듈 충돌 - Worker의 부족 - Wordker 서버들의 관리와 활용도 이슈 1. Dag간의 사용하는 라이브러리 / 모듈 충돌 이로 인해 DAG 혹은 Task별로 별도의 독립공간을 만들어주는 것이 필요 - Docker to the rescue - Dag 혹은 Task 코드를 Docker Image로 만들고 이를 독립된 공간(Docker Container)안에서 실행 2. Worker의 부족 - Scale Up : 컨테이너 서버의 사양을 늘리기 - Scale Out : 컨테이너 서버를 추가하기 (이걸 고민하는 시점에서 cloud a..
Snowflake란 2014년 클라우드 기반 데이터웨어하우스로 시작됨 (2020년 성장) 지금은 데이터 클라우드라고 부를 수 있을 정도로 발전 글로벌 클라우드 위에서 모두 동작 (AWS, GCP, Azure) - 멀티클라우드 데이터 판매를 통한 매출을 가능하게 해주는 Data Sharing/Marketplace 제공 ETL과 다양한 데이터 통합 기능 제공 Snowflake특징 스토리지와 컴퓨팅 인프라가 별도로 설정되는 가변 비용 모델 Redishift 고정비용처럼 노드 수를 조정할 필요가 없고 distkey등의 최적화 불필요 SQL기반으로 빅데이터 저장, 처리, 분석을 가능하게 해줌 비구조화된 데이터 처리와 머신러닝 기능도 제공 CSV, JSON< Avro, Parquet등과 같은 다양한 데이터 포맷을 ..
Redshift가 지원하는 데이터 백업 기본적으로 백업 방식은 마지막 백업으로부터 바뀐 것들만 저장하는 방식 이를 Snapshot이라고 부름 백업을 통해 과거로 돌아가 그 시점의 내용으로 특정 테이블을 복구하는 것이 가능(Table Restore) 또한 과거 시점의 내용으로 Redshift클러스터를 새로 생성하는 것도 가능 자동 백업 기본은 하루이지만 최대 과거 35일까지의 변경을 백업하게할 수 있음 이 경우 백업은 같은 지역에 있는 S3에 이뤄짐 다른 지역에 있는 S3에 하려면 Cross-regional snapshot copy를 설정해야함. 이는 보통 재난시 데이터 복구에 유용함 백업 기한 설정 : Redshift클러스터의 Maintenance 탭 -> Backup details -> Edit 매뉴..
Serializer Serialize - 모델 인스턴스나 QuerySet과 같은 데이터를 JSON 형식의 파일로 변환하는 작업 Deserialize - JSON형식의 데이터를 정의된 포맷에 맞추어 다시 모델 인스턴스로 변환하는 작업 Django shell로 실습 #Serialize >>> from polls.models import Question >>> from polls_api.serializers import QuestionSerializer >>> q = Question.objects.first() >>> q >>> serializer = QuestionSerializer(q) >>> serializer.data {'id': 1, 'question_text': '휴가를 어디서 보내고 싶으세요?',..
Django 설치 1. python 설치 - 다운 받은 설치 파일을 실행 후 터미널에서 실행할 수 있도록 "Add Python to PATH" 옵션 체크하기 https://www.python.org/downloads/ Download Python The official home of the Python Programming Language www.python.org 2. python 가상 환경 및 django 설치하기 python 설치 완료 후 python의 venv라는 모듈을 사용해 앞으로 만들 Django 프로젝트의 가상 환경을 설정해줘한다. 프로젝트마다 가상환경을 설정해주어야 하는 이유 : 서로 다른 유형과 목적의 프로젝트들을 한 공간에 넣어 관리 시 프로젝트 간의 충돌이 발생할 수 있다. - 터미..