参数化查询 parameterized-queries

查询服务支持在查询编辑器中使用参数化查询。 通过参数化查询,您现在可以对参数使用占位符,并在执行时添加参数值。 使用占位符,您可以使用动态数据,其中您不知道在执行语句之前值是什么。 您还可以提前准备查询,并将它们重复用于类似目的。 重用查询可节省大量工作,因为您可以避免为每个用例创建不同的SQL查询。

先决条件

在继续本指南之前,请阅读查询编辑器UI指南。 查询编辑器指南提供了有关如何在Experience Platform用户界面中编写、验证和运行客户体验数据查询的详细信息。

NOTE
在Adobe Experience Platform UI中,仅在内联模板的父级支持参数化查询。 这意味着参数化查询仅在原始模板中使用时才有效。 子模板必须是静态模板,不能具有动态参数。 有关详细信息,请参阅内联模板文档

参数化查询语法 syntax

参数化查询使用格式'$YOUR_PARAMETER_NAME',并且可以使用点表示法连接。 下面显示了使用参数化查询的示例SQL语句。

INSERT INTO
   $Database_Name.Schema_Name.adwh_lkup_process_delta_log
   (process_name, merge_policy_id, process_status, process_date, create_ts, change_ts)
SELECT
   '$Table_Process_Name' process_name,
   hash('$Merge_PolicyID') merge_policy_id,
   '$process_status' process_status,
   to_date('$date_key') process_date,
   CURRENT_TIMESTAMP create_ts,
   CURRENT_TIMESTAMP change_ts;

创建参数化查询 create

要在UI中创建参数化查询,请导航到查询编辑器。 有关更多说明,请参阅访问查询编辑器一节。

在文本编辑器中使用 '$' 序言将查询参数输入到查询中。接下来,选择控制台旁边的​ 查询参数 ​选项卡,为键添加缺少的值。 如果您忽略向任何所需键添加值,则无法执行查询。 警报图标( 警报图标。 )出现在“查询参数”部分的任何空值输入字段旁边。

NOTE
如果查询不采用参数,则仍可在查询编辑器中输入不必要的参数。 查询编辑器会忽略所有不必要的键值对,并且这些键值对查询的执行或结果没有影响。

带有参数化查询的查询编辑器以及高亮显示的查询参数节。

TIP
将选项卡从查询参数更改为控制台以查看查询的控制台输出。

使用查询日志详细信息检查参数值 check-parameter-values

不能在模板中保存参数,因为使用的值不是永久性的。 但是,您可以检查查询日志详细信息页面以查找查询运行中使用的参数值。 在这种情况下,日志不会指示查询是参数化查询。 有关如何查找所用值的说明,请参阅查询日志文档

查询日志视图,其参数化查询的SQL在详细信息节中突出显示。

计划参数化查询 schedule

当您计划参数化查询时,将保存参数值。 要计划参数化查询,请按照指南中介绍的典型过程创建计划查询创建查询计划,然后输入要在查询运行中使用的参数值。 此UI部分仅针对参数化查询显示。 有关具体说明,请参阅有关为计划的参数化查询设置参数的章节。

TIP
查询服务通过使用参数化查询支持预准备语句。 有关涉及的SQL语法的详细信息,请参阅预准备语句语法指南

后续步骤

通过阅读本文档,您已了解如何在Adobe Experience Platform UI中参数化查询并在计划的查询运行中使用它们。 本文档还重点说明了如何检查日志中查询执行中使用的参数值。

接下来,建议您阅读有关监视计划查询的指南,以便通过Platform UI更好地了解所有查询作业的状态。

recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb