Git 원격 저장소 Git 리모트 저장소 리모트 저장소 (remote repository) 리모트 저장소는 인터넷이나 네트워크 어딘가에 있는 저장소를 말함 리모트 저장소를 관리할 줄 알아야 다른 팀원과 협업이 가능함 협업을 한다는 것은 리모트 저장소를 관리하면서 데이터를 Push하고 Pull하는 것 리모트 저장소를 관리한다는 것은 저장소를 추가, 삭제하는 것 뿐만 아니라 브랜치를 관리하고 추적할 지 말지 등을 관리하는 것 리모트 저장소 확인하기 git clone https://github.com/Jeonghy0517/2023BucketList cd 2023BucketList git remote git remote -v ✔ Git clone 저장소를 Clone하면 명령은 자동으로 리모트 저장소를 Origi..
Git 커밋 히스토리 조회 & 되돌리기 Git 히스토리 조회 Git log 명령어를 통해 히스토리를 조회 git clone https://github.com/Jeonghy0517/2023BucketList git log Git log 옵션 -p 내역을 원하는 숫자 만큼 조회 --stat 통계 정보 조회 --pretty=[출력형식] oneline, short, full, fuller 출력 형식 지정 --pretty=format :"%h - %an, %ar : %s" 출력 포맷 변경 --pretty=format : --graph 아스키 코드로 그래프 출력 --no-merges 머지 커밋을 제외 --since=날짜 명시한 날짜 이후의 커밋만 검색 --until = 날짜 명시한 날짜 이전의 커밋만 검색 Git ..
Git 사용법 Git 설치 (CLI) Git - Installing Git This book was written using Git version 2.0.0. Though most of the commands we use should work even in ancient versions of Git, some of them might not or might act slightly differently if you’re using an older version. Since Git is quite excellent at pres git-scm.com Linux CentOS (Fedora) #패키지로 설치 sudo yum install git #소스코드로 설치 sudo yum install curl-devel..
GIT의 기초 버전 관리 버전 관리 (VCS - Version Control System) 이란? 파일 변화를 시간에 따라 기록했다가, 특정 시점의 버전을 다시 꺼내올 수 있는 시스템 실제로 거의 모든 컴퓨터 파일의 버전을 관리할 수 있음 시간에 따라 수정 내용을 비교할 수 있고, 누가 언제 만들어낸 이슈인지 알 수 있음 버전 관리의 종류 로컬 버전 관리 중앙 집중 형 버전 관리 (CVCS) 분산 버전 관리 (DVCS) Git이란 Git 분산 버전 관리의 대표적인 예가 Git 빠른 속도, 단순한 구조, 완벽한 분산 비선형적인 개발 (수천 개의 동시 다발적인 브랜치) Git Snapshot 스냅샷을 기반으로 함 (다른 분산 버전 관리 시스템은 델타를 기반으로 사용) 파일을 하나씩 별도로 관리하지 않고 프로..
DAG Runs DAG Run Task 인스턴스들을 DAG에 정의 된 특정 시작일에 실행하는 DAG의 인스턴스 동시에 최대 몇개의 DAG run을 돌게 허용할 것인지 셋팅하는 파라미터가 있음 Airflow Dag Task 옵션 값 Airflow Dag Task 옵션 값 Airflow에는 dag 성능을 개선할 수 있는 다양한 옵션들에는 다음과 같은 것들이 있음 parallelism 에어플로우 클러스터 전체에서 동시에 수행될 수 있는 task 인스턴스의 개수를 결 heywantodo.tistory.com 구분 내용 Status DAG 실행 결과 Dag id DAG의 이름 (식별자) Logical Date DAG이 실행 된 자체적인 논리적 시간 (기존의 execution_date) Run id DAG을 실행한..
Airflow란? Airflow Workflow를 정의하고 실행 가능한 플랫폼 반복된 작업을 자동화하기 위해 사용 각 작업들은 DAG를 통해 구조화 Airflow의 장점 연결 된 화살표 방향 순서대로 작업을 실행하고, 분기 실행과 병렬 실행이 가능함 각 작업들을 독립 된 단위로 나눠서 개발, 실행 순서를 조정하는 방법으로 모듈화 가능 데이터의 추출, 가공, 적재 기능을 나눠서 개발하고 Airflow는 이 작업들을 연결하여 파이프라인으로 배치 Airflow 구조 Airflow는 Scheduler가 DAG Directory의 작업을 가져와서 Worker에서 실행하는 형태 Scheduler Airflow의 DAG와 작업들을 모니터링하고 실행 순서와 상태 관리 Worker Airflow의 작업을 실행하는 공간 ..
쿠버네티스 설치 ✔ 사전 조건: 서버 기본 3개 구성MasterNode1Node2 Ubuntu에 설치Ubuntu 22.042 core 4 GiB memory 1. Kubeadm 설치 ❔ Kubeadm이란kubeadm은 쿠버네티스에서 제공하는 기본적인 도구로클러스터를 빠르고 쉽게 구축하기 위한 기능 제공 1-1. 환경 구성/etc/hostssudo vi /etc/hosts~127.0.0.1 hosts[master private ip] master[node1 private ip] node1[node2 private ip] node2~1-2. 도커 & 도커 엔진 설치1️⃣ 도커 Install Docker Engine on Ubuntu docs.docker.comsudo apt-get update sudo ..
쿠버네티스의 이해 컨테이너 오케스트레이션 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화 컨테이너를 사용하는 어떤 환경에서든 사용할 수 있음 ✔ 컨테이너 오케스트레이션으로 배포 가능한 태스크 자동화 설정 및 스케줄링 리소스 할당 인프라 전반의 워크로드 밸런싱을 기반으로 컨테이너 스케일링 또는 제거 컨테이너 상태 모니터링 컨테이너 간 상호 작용의 보안 유지 등 Kubernetes (K8s) 란? https://kubernetes.io/ Production-Grade Container Orchestration Production-Grade Container Orchestration kubernetes.io Container Cluster Manager 컨테이너화 된 애플리케이션을 자동으로 배포, 스케일링 ..
테이블에서 데이터 검색하기 : SELECT 테이블에 있는 데이터를 조회하는 명령어 ex) 책 정보를 저장하는 book 테이블에 저장된 모든 데이터 검색 SELECT * FROM book; ✔ 만약 중복을 제거하고 조회를 하고 싶다면? 중복제거 : DISTINCT 뒤에 나오는 컬럼의 중복을 제거하고 보여줌 뒤에 2개 이상의 컬럼을 적으면, 한 쪽 컬럼에 중복이 있어도 다른 쪽 컬럼의 값이 다르면 다르게 취급 SELECT DISTINCT title, author FROM book; ✔ 검색 조건을 추가하고 싶다면? 조건을 추가해서 검색 : WHERE 검색하고자 하는 데이터의 조건을 설정할 수 있는 명령 SELECT * FROM book WHERE title = '돈키호테'; 🔎 여러 연산자를 사용해서 조건을..
시나리오 1. mysql to csv 2. csv 파일 s3에 업로드 3. 실패 시 슬랙 알람 연동 1. MySQL to CSV airflow에서 mysql to csv를 실행하는 방법에는 여러가지가 있겠지만 여기선 두가지를 사용 Airflow Connection 이용 Pymysql과 Pandas 이용 1-1. Airflow Connection를 이용하여 MySQL Airflow 연결 Airflow webserver에서 [Admin] - [Connections] 메뉴로 이동, +를 눌러 새연결 생성 Connection id : 연결 이름 Connection Type : MySQL (만약 없다면, 서버에서 pip install -U 'apache-airflow[mysql]' 진행) Host : 확인한 IP..
들여쓰기 (Indentation) 코딩을 할 땐, 가독성을 위해서 들여쓰기를 함 특히 프로젝트를 진행할 땐 그라운드 룰을 수립하고 지키는 것이 굉장히 중요 파이썬에서는 들여쓰기를 하지 않았을 경우 IndentationError: unexpected indent 에러 발생 파이썬에서 코드 블럭을 구성하기 위해 if, for, class, def 등등 을 작성하면서 나오는 : 다음 아랫줄은 들여쓰기를 해야함 파이썬은 공백 2칸, 공백 4칸, 탭 문자 등을 각각 사용해도 동작이 잘 됨 중요한 것은 같은 블록 내에서는 들여쓰기 칸 수가 같아야 한다는 점 공백과 탭을 섞어쓰면 ❌❌❌ 아래는 4칸 공백을 사용한 예시 class Fourcal: def __init__(self,first,second): self.fi..
Airflow Dag Task 옵션 값 Airflow에는 dag 성능을 개선할 수 있는 다양한 옵션들에는 다음과 같은 것들이 있음 parallelism 에어플로우 클러스터 전체에서 동시에 수행될 수 있는 task 인스턴스의 개수를 결정 concurrency Dag는 concurrency 값을 초과하는 task 인스턴스를 동시에 수행할 수 없음 Dag 생성 시 concurrency를 설정할 수 있고, 따로 설정하지 않으면 dag_concurrency를 기본값으로 사용 task_concurrency 여러개의 dag_runs가 동시에 수행되는 경우 각 task 별 task 인스턴스 수를 제한 Dag안에 task가 최대 병렬적으로 몇 개 존재할 수 있는지에 대한 설정 값 max_active_runs task들의..