SQL 映射

SQL 映射功能可用于满足复杂的映射要求,也可用于使用单次数据库遍历取代多个 * 到 * 通配符映射规则。

在此示例中,映射大约需要 3 分钟,而使用单个 SQL 映射规则大约只需要 30 秒。可以使用单个 SQL 映射规则取代所有 "like" 规则,映射规则看起来如下所示:

图中显示了单个 SQL 映射规则。

生成并执行的实际 SQL 如下:

图中显示了实际 SQL。

在本例中,在 ACCOUNT 维上定义了 SQL 映射,并删除了其他 * 到 * 映射规则。这个 SQL 映射规则的总时长为 29 秒,并且不需要其他映射规则。

这类名称可能会引用 ACCOUNT 和 ENTITY 维,但是其他维会映射到 UD 维。要找出 SQL 映射需要的维集合,您需要查看应用程序定义或者日志文件以了解要使用哪些维。在此示例中,“产品”和“方案”会映射到 UD1 和 UD3。源维成员使用不带 "X "的列,而映射的值位于带 "X "后缀的列中。对于 ACCOUNT 维而言,源文件中的值位于名为 ACCOUNT 的列中,而映射的值会存储在 ACCOUNTX 列中。SQL 映射用于为每个维设置 "X" 列。

这些相同类型的映射可能会在 Account Reconciliation 中使用,但是请注意,“配置文件”维分类为 ACCOUNT,因此针对“配置文件”维的所有 SQL 映射都应该在 ACCOUNT 维上指定。Account Reconciliation 中的其他维应该基于应用程序定义中定义的映射来引用。

每种类型的映射使用资源的方式是不同的,映射性能的排序如下,其中 Explicit(显式)最快,而 Multi-Dim(多维)最慢:

  1. EXPLICIT
  2. IN
  3. BETWEEN 和 LIKE
  4. MULTI-DIM

多维映射是最慢的映射,对于需要结合使用 EXPLICIT 和 LIKE 映射的复杂用例,请尽量限制使用多维规则。例如 ENTITY = 100 AND ACCOUNT LIKE 4*。

您或许能够通过组合源维,使用显式映射取代多维映射,这是另一调整策略。例如,如果 ENTITY=100 AND ACCOUNT=4100,则您可以将 ENTITY 和 ACCOUNT 串联起来作为源,并为 100-4000 定义 EXPLICIT 映射。

Note:

尽管数据量特别大(大于 3 百万行)时性能相近,但是 SQL 映射可能会因数据库调控器限制而失败。导入数据时处理的是导入表达式,不涉及 SQL 操作,因此导入不会失败。正因如此,如果数据量非常大,建议使用导入表达式,而不是 SQL 映射。