deepcube清数有两种方式,clear_data和赋空值。
需要注意的是,为了提升deepcube的执行性能,clear_data只会删掉指定范围内python内存中存在的数据,而不是将指定范围的笛卡尔积赋空值(这种操作会极大拉低计算效率)。因此想要达到清数效果,需要在init_data的时候,将要清数的数据块从财务模型中加载到python内存,也就是说,init_data指定的范围需要包含后续clear_data的数据范围。
但是往往在计算时,我们都是需要清掉目标集原本数据的,所以建议所有计算脚本在init_data时指定的范围包括所有目标集,并使用clear_data清数。
与loc规则相似,未指定的维度从scopes中找,clear_data中指定的维度,会替换scopes中的范围。
def main():
con_entity = p2['Entity']
cube1 = deepcube('cube1')
entity = cube1.Entity
partner = cube1.Partner
account = cube1.Account
value = cube1.Value
cube1.init_data([account['6602'].Base() + account['6604'].Base(),
partner['Internal'].Base(),
value['Elimination']])
cube1.scope(account['6602'].Base() + account['6604'].Base(),
partner['Internal'].Base(),
value['Elimination'])
cube1.clear_data(account['999'])
cube1.submit_calc()
def main():
con_entity = p2['Entity']
cube1 = deepcube('cube1')
entity = cube1.Entity
partner = cube1.Partner
account = cube1.Account
value = cube1.Value
cube1.scope(account['6602'].Base() + account['6604'].Base(),
audittrail['REPORT'],
partner['Internal'].Base(),
value['Elimination'])
cube1.loc[account['999']] = None
cube1.submit_calc()
回到顶部
咨询热线