본문 바로가기

Data Mining & Distributed/Airflow

[ Airflow ] MySQL, PostgreSQL - 기본 Database 설정하고 생성하기

반응형

Apache Airflow 설치 후 데이터베이스를 초기화하고 설정하려면 다음과 같은 절차를 따라야 합니다. Airflow는 SQLite, MySQL, PostgreSQL 등을 지원하며, 기본적으로 SQLite를 사용하지만, 프로덕션 환경에서는 MySQL이나 PostgreSQL을 사용하는 것이 권장됩니다.


 

1. 데이터베이스 설치 및 설정

  1. PostgreSQL 또는 MySQL 설치
    데이터베이스가 설치되어 있지 않다면 아래 명령어를 통해 설치합니다.
    • PostgreSQL 설치
     sudo apt update
     sudo apt install postgresql postgresql-contrib
  • MySQL 설치
     sudo apt update
     sudo apt install mysql-server
  1. 데이터베이스 생성
    데이터베이스와 사용자 생성 후 필요한 권한을 부여합니다.
    • PostgreSQL
     sudo -u postgres psql
     CREATE DATABASE airflow;
     CREATE USER airflow_user WITH PASSWORD 'your_password';
     GRANT ALL PRIVILEGES ON DATABASE airflow TO airflow_user;
     \q
  • MySQL
     mysql -u root -p
     CREATE DATABASE airflow;
     CREATE USER 'airflow_user'@'localhost' IDENTIFIED BY 'your_password';
     GRANT ALL PRIVILEGES ON airflow.* TO 'airflow_user'@'localhost';
     FLUSH PRIVILEGES;
     EXIT;

 

2. Airflow 데이터베이스 연결 설정

Airflow의 설정 파일(airflow.cfg)에서 데이터베이스 연결 문자열을 수정합니다. sql_alchemy_conn 항목에 적절한 URI를 입력합니다.

  • PostgreSQL
  sql_alchemy_conn = postgresql+psycopg2://airflow_user:your_password@localhost/airflow
  • MySQL
  sql_alchemy_conn = mysql+pymysql://airflow_user:your_password@localhost/airflow

 

3. Airflow 데이터베이스 초기화

Airflow의 데이터베이스를 초기화하려면 다음 명령어를 실행합니다.

airflow db init

이 명령은 데이터베이스 테이블을 생성하고 기본 메타데이터를 설정합니다.

 

4. Airflow 웹서버 및 스케줄러 시작

데이터베이스가 정상적으로 초기화되었다면, Airflow 웹서버와 스케줄러를 실행하여 테스트합니다.

  • 웹서버 시작:
  airflow webserver
  • 스케줄러 시작:
  airflow scheduler

이 과정을 완료하면 Airflow가 데이터베이스를 정상적으로 사용할 수 있습니다. 추가적으로 필요한 플러그인(psycopg2, pymysql)은 Airflow 설치 과정에서 함께 설치하거나 직접 설치해야 합니다.

  • PostgreSQL 플러그인 설치
  pip install psycopg2-binary
  • MySQL 플러그인 설치
  pip install pymysql
반응형