物件儲存 XCom 後端

預設的 XCom 後端是 BaseXCom 類別,它將 XCom 儲存在 Airflow 資料庫中。對於小數值來說這很好,但對於大數值或大量 XCom 來說可能會產生問題。

若要啟用將 XCom 儲存在物件儲存中,您可以將 xcom_backend 設定選項設定為 airflow.providers.common.io.xcom.backend.XComObjectStorageBackend。您也需要將 xcom_objectstorage_path 設定為所需的位置。連線 ID 是從您提供的 URL 的使用者部分取得,例如 xcom_objectstorage_path = s3://conn_id@mybucket/key。此外,xcom_objectstorage_threshold 必須設定為大於 -1 的值。任何小於此閾值的物件(以位元組為單位)將儲存在資料庫中,而任何較大的物件將被放入物件儲存中。這將允許混合設定。如果 XCom 儲存在物件儲存上,則參考將儲存在資料庫中。最後,您可以將 xcom_objectstorage_compression 設定為 fsspec 支援的壓縮方法,例如 zipsnappy,以便在將資料儲存到物件儲存之前壓縮資料。

因此,例如,以下設定將把任何大於 1MB 的內容儲存在 S3 中,並使用 gzip 壓縮它

[core]
xcom_backend = airflow.providers.common.io.xcom.backend.XComObjectStorageBackend

[common.io]
xcom_objectstorage_path = s3://conn_id@mybucket/key
xcom_objectstorage_threshold = 1048576
xcom_objectstorage_compression = gzip

注意

壓縮需要您的 Python 環境中安裝了對它的支援。例如,要使用 snappy 壓縮,您需要安裝 python-snappy。Zip、gzip 和 bz2 可以直接使用。

此條目是否有幫助?