查询允许您根据条件选择目标。 您可以将段代码与查询结果关联,并在其中插入其他数据。
有关查询示例的详细信息,请参阅此本部分。
查询活动在使用Oracle时与CLOB字段不兼容。
有关使用和管理其他数据的详细信息,请参阅添加数据。
Edit query…链接允许您通过以下方式定义人口的定位类型、限制和选择标准:
选择定位和过滤维度。 默认情况下,目标从收件人中选择。 限制过滤器的列表与用于投放定位的相同。
该定位维度与我们将处理的元素类型一致,例如操作所针对的人口。
过滤维度能够收集这些要素,例如与目标人有关的信息(合同、全额和最终结算等)。
有关详细信息,请参阅定位和过滤维度。
查询可以根据入站过渡中的数据(如果需要),在选择定位和过滤维度时选择Temporary schema。
使用向导定义人口。 要输入的字段可能因目标类型而异。 您可以使用Preview选项卡将目标人口与当前条件预览。
有关创建和使用过滤器或查询的详细信息,请参阅此部分。
如果您在步骤1中选择了Filtering conditions或使用Filters > Advanced filter…选项,则以后必须手动添加筛选条件。
您还可以通过选中相应的框来添加数据分组条件。 为此,过滤维度必须与查询的定位维度不同。 有关分组的详细信息,请参阅此部分。
您还可以使用表达式生成器并将其与逻辑选项AND、OR和EXCEPT组合,来添加更多条件。 然后,您可以预览Corresponding SQL query…作为条件组合。 有关详细信息,请参阅此部分。
如果您希望稍后重新使用过滤器,请保存过滤器。
通过附加的列,您可以收集有关目标人口的其他信息,例如合同编号、新闻稿或来源的订阅。 此数据可以存储在Adobe Campaign数据库或外部数据库中。
Add data…链接允许您选择要收集的其他数据。
开始:
如果平台上未安装可选模块,则不显示此阶段。 你会被带到下一个阶段。
要从Adobe Campaign数据库添加数据,请执行以下操作:
选择要添加的数据类型。 这可以是属于过滤维度的数据或存储在链接表中的数据。
如果查询属于该过滤维度,只需在可用字段的列表中选择该数据,即可在输出列中显示该数据。
您可以添加:
要添加链接到目标人群的信息集合,请执行以下操作:
在向导的第一步,选择Data linked to the filtering dimension选项:
选择包含要收集的信息的表,然后单击Next。
如有必要,请通过在Data collected字段中选择一个值来指定要保留的集合元素数。 默认情况下,将恢复集合的所有行,然后根据在以下步骤中指定的条件进行筛选。
如果集合的单个元素与此集合的筛选条件一致,请在Data collected字段中选择Single row。
此模式将优化由于集合元素上的直接接合而生成的SQL查询。
如果不遵守初始条件,结果可能有缺陷(缺少线或重叠线)。
如果选择恢复多行(Limit the line count),则可指定要收集的行数。
如果收集的列包含聚合,例如已声明的故障数、站点平均支出等。 可以使用Aggregates值。
指定集合的子选项。 例如:仅限最近15天内购买。
如果已选择Limit the line count选项,请定义过滤所收集数据的顺序。 收集的行数超过您指定保留的行数后,筛选顺序便允许您指定要保留的行。
在下例中,查询试图查明居住在法国的18至30岁男子。 此查询将用于旨在使其成为例如专用优惠的工作流。
本节中显示了其他查询示例。
命名查询,然后选择Edit query…链接。
在可用筛选器类型列表中选择Filtering conditions。
为建议的目标输入不同的标准。 此处的标准是使用AND选项组合的。 要被纳入选定,收件人必须满足以下四个条件:
您可以视图符合条件组合的SQL:
您可以通过在相关选项卡中预览与您的收件人匹配的查询来检查标准是否正确:
保存您的过滤器,以便在以后的日期再次使用它们,方法是单击Finish > OK。
通过向工作流中添加其他活动,继续编辑工作流。 启动它并完成上一个查询步骤后,将显示找到的收件人数。 您可以使用鼠标弹出菜单显示更多详细信息(右键单击过渡> Display the target…)。
这三个值集标识查询所针对的人口。 tableName 是记录目标标识符的表的名称, schema 是人口的模式(通常是nms: recCount 收件人),是表中元素的数量。
此值是工作表的模式。 此参数对于具有tableName和schema的所有过渡都有效。
以下部分提供了优化在Adobe Campaign上运行的查询的最佳实践,以限制数据库的工作量并改善用户体验。
高效的查询依赖索引。
对所有联接使用索引。
在模式上定义链接将确定连接条件。 链接的表在主键上应有唯一的索引,连接应在此字段上。
通过在数字字段而不是字符串字段上定义键来执行联接。
避免执行外部连接。 尽可能使用零ID记录来实现外部连接功能。
为联接使用正确的数据类型。
确保where
子句与字段的类型相同。
一个常见的错误是:iBlacklist='3'
其中iBlacklist
是数字字段,3
表示文本值。
确保您知道查询的执行计划。 避免全表扫描,尤其是实时查询或几乎每分钟运行的实时查询。
注意Lower(...)
等函数。 使用Lower函数时,不使用Index。
使用“like”指令或“upper”或“lower”指令仔细检查查询。 在用户输入上应用“Upper”,而不是在数据库字段上应用。
有关函数的详细信息,请参阅本节。
使用查询的过滤维度,而不是使用“exists sok”运算符。
在查询中,过滤器中的“exists such”条件无效。 它们等同于SQL中的子查询:
select iRecipientId from nmsRecipient where iRecipientId IN (select iRecipientId from nmsBroadLog where (...))
最佳做法是改用查询的过滤维度:
SQL中的过滤维度等效于内部连接:
select iRecipientId from nmsRecipient INNER JOIN nmsBroadLog ON (...)
有关过滤维度的详细信息,请参阅此部分。
构建一个与生产平台具有相似体积、参数和架构的开发平台。
对开发和生产环境使用相同的值。 尽可能使用相同的功能:
在开发环境中有效的功能在数据可能不同的生产环境中可能无效。 尝试确定主要差异,以预测风险并准备解决方案。
设置与目标卷匹配的配置。 大型卷需要特定的配置。 适用于100,000个收件人的配置可能不适用于10,000,000个收件人。
考虑系统在运行时将如何缩放。 仅仅因为某种东西在小规模上有效并不意味着它适合更大的体积。 测试应使用与生产量相似的卷。 您还应评估在高峰时间、高峰时间以及整个项目生命周期中卷(调用数量、数据库大小)更改的影响。