维度订单会影响计算性能

确保在维度顺序上保持一致性将有助于提高模型的性能。这种一致性与模块和单个订单项有关。为什么订单很重要?Anaplan创建并使用索引来执行计算。尺寸相交的模块中的每个单元格都会给出一个索引号。

Here are two simple modules dimensioned by Customer and Product. In the first module, Product comes first and Customer second, and in the second module, Customer is first and Product is second.

DimensionOrder_1.jpg

在此模型中,有一个第三个模块将收入计算为价格 *量。

Anaplan将索引分配给模块中的交叉点。这是两个模块的索引值。请注意,某些交叉点对模块的索引相同:客户1和产品1,Customer 2和Product 2,以及客户3和产品3,其余的单元格具有不同的索引编号。客户1和产品2在顶部模块中的值为4,底部模块中的值为2。

Dimensionorder_2.jpg

The calculation is Revenue = Price * Volume.

为了运行计算,Anaplan通过匹配两个模块的索引值来执行以下操作。

Dimensionorder_3.jpg

由于索引值未对齐,因此处理器在执行计算之前会扫描索引值以找到匹配项。

When the dimensions in the module are reordered, these are the index values:

DimensionOrder_4.jpg

现在对每个模块的索引值进行对齐。由于相同维度结构的线条项目具有相同的布局,因此数据在内存中线性布置。计算过程以完全线性且可预测的方式访问内存。Anaplan的微处理器和内存子系统经过优化,以识别这种访问模式,并预先获取所需的数据。

DimensionOrder_5.jpg

How does the dimension order become different between modules? When you build a module, Anaplan uses the order that you drag the lists onto the Create Module dialog. The order is also dependent on where the lists are added. The lists that you add to the 'pages' area are first, then the lists that you add to the 'rows' area, and finally the lists added to the 'columns' area.

Dimensionorder_6.jpg

重新排序列表并确保一致性很容易。按着这些次序:

  1. On the Modules pane, (Model Settings>Modules) look for lists that are out of order in the Applies To column. Click the Applies To row that you want to re-order, then click the ellipsis.
    Dimensionorder_7.jpg
  2. 在“选择列表”对话框中,单击“确定”。
    Dimensionorder_8.jpg
  3. 在确认对话框中,单击“确定”。
    Dimensionorder_9.jpg
  4. The lists will be in the order that they appear in General Lists.
    DimensionOrder_10.jpg
  5. 完成检查模块中的列表订单后,单击“订单”选项卡并检查订单项。按照步骤1到3进行重新排序列表。

子集和订单项子集

One word of caution about Subsets and Line Item subsets. In the example below, we have added a subset and a Line Item Subset to the module:

DimensionOrder_11.jpg

The Applies To is as follows:

Dimensionorder_12.jpg

Clicking on the ellipsis, the dimensions are re-ordered to:

DimensionOrder_13.jpg

The general lists are listed in order first, followed by subsets and then line item subsets.
您仍然可以双击适用于列,并按照正确的顺序复制或键入尺寸来重新排序尺寸。

最小与最小?

This is the normal follow up question, and unfortunately, the answer is "it depends." Through research we have found that it all depends on the data within the module. Also, it can get very confusing if subsets are used; the Customer list might be bigger than the Products list, but if a subset of Customers is used that is smaller than Products, then what?

另外,我们不提倡秩序在g the lists in the General Lists setting in size order; the lists should be ordered in hierarchical order top to bottom, so, by definition, that will be smallest to largest. So our advice is be持续的. Think about how you describe the problem. Does the business talk about Customer by Product, or Products for Customers? Agree to a convention, and stick to it.

其他维度

计算性能仅与common源和目标之间的列表。一个或另一个单独列表的顺序与计算速度无关。

The content in this article has not been evaluated for all Anaplan implementations and may not be recommended for your specific situation.
在应用本文中的任何想法或步骤之前,请咨询您的内部管理员。
评论

Cool post! Great insights for performance tuning!

还有更多这样的事情要来 - 继续观看!

感谢简单,优雅,有力的解释。

I have 2 questions here:

1.这里提到的是,Anaplan记得添加列表的顺序。保存此顺序有什么具体的原因 /优势吗?

2. Isn't it possible for Anaplan to sort this based on the order provided in General List (instead of asking modeller to manually clicking the ellipsis & then click OK)? In fact, I observed that Anaplan itself sorts the lists based on order of General List when I click ellipsis & select the lists under Blueprint --> Applies to.

@sheethal

这样的“订购”没有优势或不利条件,并且在内部就自动重新分组列表进行了讨论。我要说的是,订购的一致性实际上比首先更重要。我总是会主张以您思考或描述业务并保持一致的方式订购模块。这可能与您订购一般列表中的列表的方式有所不同,还值得指出的是,模块的任何视图(包括默认视图)不会受到应用设置中的订单的影响。如果这对您很重要,则值得在想法交换中添加请求

我希望有帮助

大卫

Thank you David!

谢谢大卫!在您的示例上跟进,如果一个维度(产品)比另一个维度大?我想我记得将它们置于较小到较大的顺序(并按照您指示的范围内保持一致性),但是不确定这是否有所作为。

Great David. Follow on question: please layer in how properties are handled in terms of indexing and ording of lists.

Thanks.

@guillaume_arnau好问题,我们以前曾问过一个。

证据不像答案那样取决于模块中的DTAA的确定性。有时较小到较大的速度更快,而其他时间更大,更小的速度更快。

You then start to faxctor in subsets and it gets more complicated. If in doubt, it is worth trying it and seeing if there is a noticable difference

所以,实际上,订购的一致性比先出现的更为关键。我总是会主张以您思考或描述业务并保持一致的方式订购模块。这可能与您订购一般列表中的列表的方式有所不同

@dkolkaList properties ARE effectively line items so there is no difference. However, we don't advocate using them unless essential. It is best practice to use Modules and line items rather than list properties

Very helpful and actionable - thanks@DavidSmith!

非常强大且有用的技巧,请让他们来并更新计划:winking_face:

@DavidSmith- 在“子集”和“行”子集部分中,您可以注意Anaplan如何根据一般列表进行自动re序,然后是LIS集。

由于子集通常是在开发中的不同时间创建的,因此很难将它们与一般列表中的主要列表订购的方式保持一致。因此,例如,如果您有一个模块2 list subsets:

  1. 答:子集
  2. B:子集

但是,当单击应用中的省略号时,模型维度按以下顺序显示:

  1. A
  2. B
  3. B:子集
  4. 答:子集

因此,适用于这样的应用自然会重新排序为:B:子集, A:Subset

So my question is:is it best practice to always manually cut/paste List Subset dimensions so that their order is aligned to the order of their corresponding general lists? And doing so will have a positive performance impact?

Thanks!

@blake_gauer

Short answer is yes.

Having the subset in the correct corresponding order will give a performance benefit. A subset is treated as a list for the calculations

We advocate a regular "tidy-up" of the dimension order to double check. It is also a reason why I shy away from subsidiary views - If you don't have any, it is easy to do the tidy-up/check from the module blueprint as you don't have to check individual line items

Hope that helps

大卫

Version history
Last update:
‎04-15-202206:13 PM
Updated by:
关于作者
Contributors
标签(1)