[Airflow] DB ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์‹œํ•˜๊ณ , ํŠน์ • ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๋•Œ๊นŒ์ง€ ์ž‘์—…์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ | SqlSensor

2023. 11. 20. 14:48ยท๐Ÿ’ป Programming/Apache Airflow
๋ฐ˜์‘ํ˜•

Apache Airflow์˜ SqlSensor๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์‹œํ•˜๊ณ , ํŠน์ • ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๋•Œ๊นŒ์ง€ ์ž‘์—…์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ผ์„œ๋Š” ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜์—ฌ ํŠน์ • ๊ฐ’์ด๋‚˜ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์—ˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

SqlSensor ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

from airflow.sensors.sql import SqlSensor

sql_sensor_task = SqlSensor(
    task_id='sql_sensor_task',
    conn_id='your_database_connection_id',  # ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ID
    sql='SELECT COUNT(*) FROM your_table WHERE your_condition;',  # ๊ฐ์‹œํ•  ์ฟผ๋ฆฌ
    mode='poke',  # 'poke' ๋˜๋Š” 'reschedule' ์ค‘ ์„ ํƒ
    timeout=600,  # ํƒ€์ž„์•„์›ƒ (์ดˆ ๋‹จ์œ„)
    poke_interval=60,  # 'poke' ๋ชจ๋“œ์—์„œ ์ฟผ๋ฆฌ ๊ฐ์‹œ ๊ฐ„๊ฒฉ (์ดˆ ๋‹จ์œ„)
    dag=dag  # Airflow DAG ๊ฐ์ฒด
)


# DAG์— ์ถ”๊ฐ€ 
sql_sensor_task >> your_next_task
  • conn_id: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฌธ์ž์—ด. ์ด ์—ฐ๊ฒฐ์€ Airflow์˜ Connection์—์„œ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค
  • sql: ๊ฐ์‹œํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ
  • mode: ์„ผ์„œ ๋™์ž‘ ๋ชจ๋“œ. 'poke'๋Š” ์ง€์†์ ์œผ๋กœ ๊ฐ์‹œํ•˜๊ณ , 'reschedule'์€ ์ผ์ • ๊ฐ„๊ฒฉ์œผ๋กœ ์ƒˆ๋กœ์šด ์ž‘์—…์„ ์˜ˆ์•ฝ
  • timeout: ์„ผ์„œ ์ž‘์—…์„ ์ค‘์ง€ํ•  ์ตœ๋Œ€ ์‹œ๊ฐ„ (์ดˆ ๋‹จ์œ„).
  • poke_interval: 'poke' ๋ชจ๋“œ์—์„œ ์ฟผ๋ฆฌ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•  ๊ฐ„๊ฒฉ (์ดˆ ๋‹จ์œ„).

SqlSensor๋Š” ์„ค์ •๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฐ์‹œํ•˜๋ฉฐ, ํŠน์ • ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜๋ฉด ๋‹ค์Œ ์ž‘์—…์ด ์‹คํ–‰ํ•œ๋‹ค.

 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ •๋ณด ์„ค์ •

Airflow์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ •๋ณด๋Š” Airflow์˜ Connection์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” Airflow์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ DAG (Directed Acyclic Graph) ์‹คํ–‰ ๋™์•ˆ ์‚ฌ์šฉ๋œ๋‹ค.

Airflow ์›น ์ธํ„ฐํŽ˜์ด์Šค ๋˜๋Š” Airflow ๋ช…๋ นํ–‰ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Connection์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹ค์Œ์€ ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•œ connection ์„ค์ • ๋ฐฉ๋ฒ•์ด๋‹ค.

  1. Airflow ์›น ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ด๋™
  2. Admin ๋ฉ”๋‰ด์—์„œ Connections์„ ์„ ํƒ
  3. "Create" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ƒˆ๋กœ์šด Connection์„ ์ถ”๊ฐ€
  4. ์—ฐ๊ฒฐ์— ํ•„์š”ํ•œ ์ •๋ณด (ํ˜ธ์ŠคํŠธ, ํฌํŠธ, ์‚ฌ์šฉ์ž ์ด๋ฆ„, ์•”ํ˜ธ ๋“ฑ)๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅ
๋ฐ˜์‘ํ˜•

'๐Ÿ’ป Programming > Apache Airflow' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Airflow] ์—์–ดํ”Œ๋กœ์šฐ ์„ค์น˜ ๋ฐ ์›น ์ธํ„ฐํŽ˜์ด์Šค ์‹คํ–‰ํ•˜๊ธฐ  (1) 2023.11.20
[Airflow] Python ํ•จ์ˆ˜ ์‹คํ–‰ํ•˜๊ธฐ | PythonOperator ์‚ฌ์šฉ  (0) 2023.11.19
[Airflow] ์‰˜ ์Šคํฌ๋ฆฝํŠธ, ๋ช…๋ น์–ด ์‹คํ–‰ํ•˜๊ธฐ | BashOperator ์‚ฌ์šฉ  (0) 2023.11.19
[Airflow] ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ DAG ์‹คํ–‰ํ•˜๊ธฐ (์Šค์ผ€์ค„๋ง) | schedule_interval | cron ๊ธฐ๋ฐ˜ ์Šค์ผ€์ค„  (0) 2023.11.19
[Airflow] Airflow & DAG ์„ค๋ช…  (0) 2023.11.19
'๐Ÿ’ป Programming/Apache Airflow' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Airflow] ์—์–ดํ”Œ๋กœ์šฐ ์„ค์น˜ ๋ฐ ์›น ์ธํ„ฐํŽ˜์ด์Šค ์‹คํ–‰ํ•˜๊ธฐ
  • [Airflow] Python ํ•จ์ˆ˜ ์‹คํ–‰ํ•˜๊ธฐ | PythonOperator ์‚ฌ์šฉ
  • [Airflow] ์‰˜ ์Šคํฌ๋ฆฝํŠธ, ๋ช…๋ น์–ด ์‹คํ–‰ํ•˜๊ธฐ | BashOperator ์‚ฌ์šฉ
  • [Airflow] ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ DAG ์‹คํ–‰ํ•˜๊ธฐ (์Šค์ผ€์ค„๋ง) | schedule_interval | cron ๊ธฐ๋ฐ˜ ์Šค์ผ€์ค„
๋ญ…์ฆค
๋ญ…์ฆค
AI ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ
    ๋ฐ˜์‘ํ˜•
  • ๋ญ…์ฆค
    CV DOODLE
    ๋ญ…์ฆค
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ณต์ง€์‚ฌํ•ญ

    • โœจ About Me
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (198)
      • ๐Ÿ“– Fundamentals (33)
        • Computer Vision (9)
        • 3D vision & Graphics (6)
        • AI & ML (15)
        • NLP (2)
        • etc. (1)
      • ๐Ÿ› Research (64)
        • Deep Learning (7)
        • Image Classification (2)
        • Detection & Segmentation (17)
        • OCR (7)
        • Multi-modal (4)
        • Generative AI (6)
        • 3D Vision (2)
        • Material & Texture Recognit.. (8)
        • NLP & LLM (11)
        • etc. (0)
      • ๐ŸŒŸ AI & ML Tech (7)
        • AI & ML ์ธ์‚ฌ์ดํŠธ (7)
      • ๐Ÿ’ป Programming (85)
        • Python (18)
        • Computer Vision (12)
        • LLM (4)
        • AI & ML (17)
        • Database (3)
        • Apache Airflow (6)
        • Docker & Kubernetes (14)
        • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ (4)
        • C++ (1)
        • etc. (6)
      • ๐Ÿ’ฌ ETC (3)
        • ์ฑ… ๋ฆฌ๋ทฐ (3)
  • ๋งํฌ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    3D Vision
    GPT
    ํŒŒ์ด์ฌ
    ๊ฐ์ฒด ๊ฒ€์ถœ
    ChatGPT
    deep learning
    AI
    segmentation
    OpenCV
    Image Classification
    CNN
    material recognition
    ๋”ฅ๋Ÿฌ๋‹
    multi-modal
    Text recognition
    LLM
    Computer Vision
    ์ปดํ“จํ„ฐ๋น„์ „
    ํ”„๋กฌํ”„ํŠธ์—”์ง€๋‹ˆ์–ด๋ง
    object detection
    airflow
    pandas
    pytorch
    OCR
    OpenAI
    Python
    ๋„์ปค
    ๊ฐ์ฒด๊ฒ€์ถœ
    VLP
    nlp
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
๋ญ…์ฆค
[Airflow] DB ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์‹œํ•˜๊ณ , ํŠน์ • ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๋•Œ๊นŒ์ง€ ์ž‘์—…์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ | SqlSensor
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”