turbaszek edited a comment on pull request #12327:
URL: https://github.com/apache/airflow/pull/12327#issuecomment-726684675


   > What was the error you got (in text please) when using this backend? I 
don't quite see how this would be used in your case.
   
   @ashb  as mentioned in #12315 the first problem I saw was loading of XCom 
model view in web ui:
   ```
     File 
"/usr/local/lib/python3.8/site-packages/flask_appbuilder/templates/appbuilder/general/widgets/base_list.html",
 line 23, in top-level template code
       {% block begin_loop_values %}
     File "/opt/airflow/airflow/www/templates/airflow/model_list.html", line 
80, in block "begin_loop_values"
       {% elif item[value] != None %}
     File "/usr/local/lib/python3.8/site-packages/pandas/core/generic.py", line 
1326, in __nonzero__
       raise ValueError(
   ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, 
a.bool(), a.item(), a.any() or a.all().
   ```
   
   However, as described there it can be fixed by changing `!= None` to `is not 
none` in model template. Here's the result:
   
   <img width="1673" alt="Screenshot 2020-11-13 at 11 21 10" 
src="https://user-images.githubusercontent.com/9528307/99061788-58391e00-25a2-11eb-88b2-fe80bcdd226d.png";>
   
   But the presence of dataframes in this table suggests that they are 
retrieved from GCS bucket (they are not stored in XCom table, where I store 
only reference to the bucket object). To show this view we do:
   ```
           xcomlist = (
               session.query(XCom)
               .filter(XCom.dag_id == dag_id, XCom.task_id == task_id, 
XCom.execution_date == dttm)
               .all()
           )
   ```
   Which queries XComs and calls `deserialize_value` when recreating XCom 
object from database in `init_on_load` method. Definitely not something we want 
to do with 100s of big dataframes or other objects. 
   
   What this PR propose is to have `orm_deserialize_value` for "get value from 
database to create XCom object" and  `deserialize_value` to "deserialize XCom 
object into other object". I'm happy to hear other possible options, however 
this one is simplest one that came to my mind.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to