در Airflow، انتقال داده بین Taskها معمولاً از طریق XCom انجام میشود. هر Task میتواند مقدار برگشتی (return) خود را به XCom بفرستد و Taskهای بعدی آن را بازیابی کنند. در نسخههای جدید TaskFlow API، این کار بهصورت خودکار انجام میشود.
اما برای دادههای حجیم، ذخیره مستقیم در XCom باعث سنگینی و کندی دیتابیس متادیتا (Postgres) میشود، زیرا علاوه بر یک رکورد کلی، برای هر کلید داخل JSON هم یک رکورد جدا ایجاد میشود.
راهکارها:
BaseXCom ارثبری میکند، میتوان دادههای بزرگ را در یک storage خارجی ذخیره و تنها مسیر یا شناسه آن را در XCom نگه داشت.در نتیجه، برای دادههای کوچک XCom کافی است، ولی برای دادههای بزرگ بهتر است از Custom XCom Backend یا object storage خارجی استفاده شود.
مهارت هایی را برای امروز، فردا و فراتر از آن بسازید. آموزش برای اثبات آینده شغلی شما.
لطفا کلمات کلیدی را وارد کنید