BEGIN;
부터 END;
또는 COMMIT;
사이에 놓은 작업들을 하나의 작업처럼 사용한다.ROLLBACK;
은 BEGIN;
이전으로 돌아가라는 명령어BEGIN;
이 실행되면 END;
/COMMIT;
을 만나기 전까지 SQL은 임시 상태에 놓이고 모두 성공하면 최종 상태가 된다.BEGIN;
INSERT ~~~;
DELETE ~~~;
END; # COMMIT과 같음
autocommit=true
: 기본적으로 모든 SQL statement가 바로 테이블에 커밋autocommit=false
: 모든 SQL statement가 커밋되지 않아 명시적으로 선언해야한다. 모두 staging 상태를 유지하고 있다.ROLLBACK;
을, 에러가 안나면 COMMIT;
을 명시적으로 작성해야 한다.raise
를 사용하자.from airflow import DAG
# task 공통 설정
default_args = {
'owner' : 'owner_id', # 담당자 id
'email' : 'owner_email', # 담당자 email
'retries' : 1, # 재시도 횟수
'retry_delay': timedelta(minutes=3), # 재시도 사이에 기다리는 시간
'on_failure_callback' : fail_ft, # 실패 시 실행되는 함수
'on_success_Callback' : success_tf # 성공 시 실행되는 함수
}
# DAG 생성
dag = DAG(
'dag_name',
start_date = datetime( ),
schedule = '0 * * * *', # dag를 실행하는 주기
tags = ['tag_nm1', 'tag_nm2', ...], # 하나만 있어도 된다.
catchup = False, # start_date로 생성하는 날보다 과거로 설정시 그 gap을 따라잡을지(True), 따라잡지 않을 지(False)
default_args = default_args
)
from airflow.operators.bash import BashOperator
task1 = BashOperator(
task_id = 'task_id',
bash_command = 'command',
dag = dag
)
>>
, 병렬이면 [ ]
사이에 task 작성task1 >> [task2, task3]
아직까지는 큰 어려움 없이 열심히 따라가고 있다.
설치하는 방법에 대해서는 따로 더 자세하게 게시글로 작성해봐야지!