๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/airflow5

ํฌ๋กค๋ง ๊ด€๋ฆฌ Airflow vs Celery ๊ฐœ์š”๊ธฐ์กด ํ”„๋กœ์ ํŠธ์˜ ํฌ๋กค๋ง ์‹œ์Šคํ…œ์„ Airflow๋กœ ๊ด€๋ฆฌํ–ˆ๋‹ค.Airflow ์šด์˜ ์ค‘์ด๋˜ ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ๋งŽ์•˜๋Š” ๋ฐ, ๊ทธ ์ค‘์—์„œ ์ œ์ผ ํฐ ๋ฌธ์ œ๋Š” cpu ์ ์œ ์œจ์ด 100์œผ๋กœ ์น˜์†Ÿ์„ ๋•Œ๊ฐ€ ๋งŽ์•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.Airflow๋กœ ์šด์˜ํ•˜๋Š” ๊ฒƒ์ด ๋งŽ์ด ๋ฌด๊ฒ๊ณ  ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ์— Airflow๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ์กฐ์‚ฌ ๋ฐ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.ํ™•์ธAirflow๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ์›Œํฌํ”Œ๋กœ์šฐ ๊ด€๋ฆฌ์— ์ตœ์ ํ™”๋œ ๋„๊ตฌ์ด๋‹ค. ํฌ๋กค๋ง ๊ฐ™์€ ๋‹จ์ˆœํ•œ ์ž‘์—…์„ ์‹คํ–‰ํ•  ๋•Œ์—๋Š” Celery๊ฐ€ ๋” ์ ํ•ฉํ•˜๋‹ค.Airflow์™€ Celery๋ฅผ ๋น„๊ตํ•ด๋ณด๋ฉด ๋น„๊ต ํ•ญ๋ชฉCeleryAirflow์ฃผ์š” ๋ชฉ์ ๋น„๋™๊ธฐ ์ž‘์—… ์‹คํ–‰ (ํƒœ์Šคํฌ ํ)๋ฐ์ดํ„ฐ ์›Œํฌํ”Œ๋กœ์šฐ ๋ฐ ํŒŒ์ดํ”„๋ผ์ธ ๊ด€๋ฆฌ์ž‘์—… ์‹คํ–‰ ๋ฐฉ์‹๋น ๋ฅธ ์‹คํ–‰, ๋‹จ์ˆœํ•œ ์ž‘์—… ์ฒ˜๋ฆฌDAG ๊ธฐ๋ฐ˜,.. 2025. 2. 4.
[Airflow] local์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๊ธฐ ๊ฐœ์š”airflow ๊ด€๋ จํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋กœ์ปฌํ•ด์„œ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜๋ คํ•œ๋‹ค์ง„ํ–‰Step 1. ๊ฐ€์ƒ ํ™˜๊ฒฝํ•„์ˆ˜ ์‚ฌํ•ญ์€ ์•„๋‹ˆ์ง€๋งŒ pip ๋ฒ„์ „์œผ๋กœ ํฌ๊ฒŒ ๊ณจ์น˜ ์•„ํ”„๊ณ  ์‹ถ์ง€ ์•Š๊ธฐ์— ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ set up ํ•ด์ค€๋‹ค# Create a virtual environmentpython3 -m venv airflow-venv# Activate the virtual environmentsource airflow-venv/bin/activate Step 2. Apache Airflow ์„ค์น˜pip์„ ์ด์šฉํ•ด์„œ ์„ค์น˜ํ•ด์ค€๋‹ค.AIRFLOW_VERSION=2.5.1PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"CONSTRAINT_URL=".. 2024. 7. 30.
[Airflow] airflow ui์—์„œ arguments ์ „๋‹ฌํ•˜๊ธฐ ๊ฐœ์š”Airflow์˜ Task๋“ค์€ ์Šค์ผ€์ค„๋ง์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค.ํ•˜์ง€๋งŒ ๋‹จ๋ฐœ์„ฑ์œผ๋กœ ์‹คํ–‰๋˜์–ด์•ผํ•˜๋Š” Task๋“ค๋„ ์กด์žฌํ•œ๋‹ค.์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ์ ์žฌ ํ˜น์€ ์žฌ์ ์žฌ ์ด์Šˆ๋กœ ์ธํ•ด..์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์— Arguments์„ ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ ์ฐพ์•„๋ณด์•˜๋‹ค.์ง„ํ–‰BashOperator, PythonOperator ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ…Œ์ŠคํŠธํ•ด๋ณด์•˜๋‹ค.from datetime import datetime, timedeltafrom airflow import DAGfrom pendulum.tz.timezone import Timezonefrom airflow.operators.bash import BashOperatorfrom airflow.operators.python import PythonOperatorfrom airflow.ope.. 2024. 7. 11.
[Airflow] RemovedInAirflow3Warning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead. ๊ฐœ์š”airflow ์˜ฎ๊ธฐ๋Š” ์ž‘์—… ์ค‘์— error ๋ฐœ์ƒRemovedInAirflow3Warning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead. ํ™•์ธ airflow ์ง„ํ–‰ ์‚ฌํ•ญ์„ ์ด๋ฉ”์ผ๋กœ ๋ฐ›๋Š”๋ฐ, ๊ทธ ์ด๋ฉ”์ผ ์ธ์ฆ ๊ด€๋ จํ•ด์„œ ์ƒ๊ธด ๋ฌธ์ œ## docker-compose.yaml# For SMTPAIRFLOW__SMTP__SMTP_HOST: smtp.gmail.comAIRFLOW__SMTP__SMTP_PORT: 587AIRFLOW__SMTP__SMTP_RETRY_LIMIT: 5AIRFLOW__SMTP__S.. 2024. 5. 29.
[Airflow] The scheduler does not appear to be running. Last heartbeat was received 7 hours ago.The DAGs list may not update, and new tasks will not be scheduled. ์ž˜ ์šด์˜๋˜๋˜ Airflow๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋ฉˆ์ถ˜๊ฒƒ ๊ฐ™๋‹ค๋Š” ์–˜๊ธฐ๋ฅผ ๋“ฃ๊ณ  ๋ดค๋”๋‹ˆ ์—ฅ ~ ?? ๋‚ด DAG ๋“ค ๋‹ค ์˜ค๋””๊ฐ ?The scheduler does not appear to be running. Last heartbeat was received 7 hours ago.The DAGs list may not update, and new tasks will not be scheduled. >> ํ•ด์„์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์‹คํ–‰ ์ค‘์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Œ. ๋งˆ์ง€๋ง‰์€ 7์‹œ๊ฐ„ ์ „์— ์ˆ˜์‹ ๋˜์—ˆ์Œ.DAG ๋ชฉ๋ก์ด ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ƒˆ ์ž‘์—…์ด ์˜ˆ์•ฝ๋˜์ง€ ์•Š์Œ. Airflow ๊ธฐ๋Šฅ ์ค‘์— health ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์„œ ํ•œ๋ฒˆ ์‚ฌ์šฉํ•ด๋ณด์•˜๋‹น/health health ํ•œ์ง€ unhealthy ํ•œ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ง„์งœ ์ด์œ ๋Š” memory .. 2024. 3. 8.