insert_df

DeepModel.insert_df(object_name, data, relation=None, chunksize=500, enable_upsert=False, update_fields=None, exclusive_fields=None)

以事务执行基于DataFrame字段信息的批量插入数据

参数
  • object_name (str) – 被插入数据的对象名,需属于当前应用

  • data (DataFrame) – 要插入的数据,若有single link property, 则以列名为link_name@link_property_name的形式提供

  • relation (Optional[Dict[str, DataFrame]]) – 如有multi link,提供该字典用于补充link target信息, 键为link字段名,值为映射关系的DataFrame DataFrame中的source列需为插入对象的业务主键, target列需为link target的业务主键, 若有link property,则以property名为列名,提供在除source和target的列中

  • chunksize (int) – 单次最大行数

  • enable_upsert (bool) – 是否组织成upsert句式

  • update_fields (Optional[Iterable[str]]) – upsert句式下update的update fields列表, 涉及的fields需出现在data或relation中, 默认为提供的data列中除业务主键以外的fields

  • exclusive_fields (Optional[Iterable[str]]) – upsert句式下update的exclusive fields列表, 涉及的fields需出现在data或relation中, 默认为业务主键

提示

由于批量insert实现方式为组织 for-union clause 的 insert 语句, 而在其中查询self link只能查到已有数据, 无法查到 for-union clause 之前循环插入的结果,self link字段的数据将被单独抽出, 在 insert 后再用 for-union clause 的 update 语句更新

返回类型

None