选择 Campaign | Partitions | partition[n] | dataSources 以配置
IBM® Campaign 与数据库(包括其自己的系统表)交互的方式。
这些属性指定 IBM® Campaign 可以访问的数据库,这些属性还可以控制查询构成方式的众多方面。
您在 Campaign 中添加的每个数据源由
partition[n] > dataSources > DATA_SOURCE_NAME 下面的一个类别来表示。
|
每个分区的 Campaign 系统表数据源必须在 Marketing Platform 中命名为 UA_SYSTEM_TABLES, dataSources > UA_SYSTEM_TABLES 类别必须存在于每个 Campaign 分区的“配置”页面中。
|
Campaign 根据数据源类型来选择其数据源访问库。 例如,
libora4d.so 用于 Oracle 连接,而
libdb24d.so 用于
DB2® 连接。在大多数情况下,缺省选择便是恰当的。但是,如果能证明缺省值在您的
Campaign 环境中是错误的,那么可以更改
AccessLibrary 属性。 例如,64 位
Campaign 提供两个 ODBC 访问库:一个适用于兼容 unixODBC 实现 (
libodb4d.so) 的 ODBC 数据源,另一个兼容 DataDirect 实现(
libodb4dDD.so,由
Campaign 用于访问诸如 Teradata 之类的数据源)。
Campaign 包含两个附加库以用于
AIX® ODBC 驱动程序管理器(后者支持 ODBC ANSI API 而非 ODBC Unicode API):
AliasPrefix 属性指定在使用新维表并写入到新表的情况下,
Campaign 如何构成
Campaign 自动创建的别名。
此属性确定 Campaign 是否尝试对选择进程中使用的基本表(来自同一数据源)执行 SQL 连接;否则,将在
Campaign 服务器上执行等效连接。
在此情况下,Campaign 生成单个 SQL
CASE 语句细分市场,然后在
Campaign 应用程序服务器上进行“按字段细分”处理。
AllowTempTables 属性指定
Campaign 是否在数据库中创建临时表。创建临时表可显著提高营销活动的业绩。如果为
TRUE 时,那么已启用临时表。
如果未启用临时表,那么 Campaign 将在服务器存储器中保留所选标识。其他查询将从数据库中检索标识,并将其与服务器存储器中的标识相匹配。
如果将此属性设置为 TRUE,那么在您登录到数据源时
Campaign 不会提示您输入用户名和密码。如果将此属性设置为
FALSE,那么在您每次登录到数据源时
Campaign 都会提示您输入用户名和密码。
ConditionalSQLOpenBracket 属性指定用于指示原始 SQL 定制宏中条件细分开头的括号类型。仅当存在临时表时,才会使用
ConditionalSQLOpenBracket 和
ConditionalSQLCloseBracket 属性所指定的括号中括起的条件细分,如果没有临时表,那么将忽略这些条件细分。
缺省情况下 (N=0),
Campaign 将为每个操作建立一个指向数据源的新连接;如果
Campaign 保持连接的高速缓存并且连接可供复用,那么
Campaign 将使用高速缓存的连接,而不是建立新连接。
如果设置不为 0,那么在进程使用完连接后,
Campaign 会将指定数量的连接保持打开状态,时间长度是
InactiveConnectionTimeout 属性所指定的值。 在此时间到期后,将从高速缓存中除去连接并且连接关闭。
Campaign 使用
DateFormat 属性的值来确定在使用
Campaign 宏语言或在解释日期列中的数据时如何解析
date 格式的数据。
将 DateFormat 属性的值设置为
Campaign 期望从此数据源中接收数据的格式。此值必须与您的数据库用于显示日期(在选择时)的格式相匹配。对于大部分数据库,此设置与
DateOutputFormatString 属性的设置相同。
DateOutputFormatString 属性指定
Campaign 向数据库中写入任何日期(如营销活动开始或结束日期)时要使用的数据类型的格式。将
DateOutputFormatString 属性的值设置为数据源对
date 类型的列所期望的格式。 对于大部分数据库,此设置与
[data_source_name] > DateFormat 属性的设置相同。
可以将 DateOutputFormatString 属性设置为针对
DATE_FORMAT 宏中的
format_str 指定的任何格式。
DATE_FORMAT 宏接受两种不同类型的格式。一种是标识(例如,
DELIM_M_D_Y 和
DDMMMYYYY,与
DATE 宏接受的格式相同),而另一种是格式字符串。
DateOutputFormatString 属性的值必须是格式字符串 - 不得是
DATE 宏标识中的一个。通常,请使用其中一种定界格式。
CREATE TABLE date_test (F1 DATE)
INSERT INTO date_test VALUES ('03/31/2004')
如果数据库允许 INSERT 命令成功完成,那么您已选择了正确的格式。
通常,您应按照以下方式来设置 DateTimeFormat:在按照表“按数据库选择日期”中所述确定
DateFormat 值之后,在
DT_ 前面添加
DateFormat 值。
DateTimeOutputFormatString 属性指定
Campaign 向数据库中写入任何日期时间(如营销活动开始或结束日期和时间)时要使用的 datetime 数据类型的格式。将
DateTimeOutputFormatString 属性的值设置为数据源对
datetime 类型的列所期望的格式。对于大部分数据库,此设置与
[data_source_name] > DateTimeFormat 属性的设置相同。
DB2NotLoggedInitially 属性确定在
DB2® 中填充临时表时
Campaign 是否使用
not logged initially SQL 语法。设置为
TRUE 时,此属性将对插入到临时表这一操作禁用日志记录,这将提高性能并降低数据库资源消耗。
如果您的 DB2® 版本不支持
not logged initially 语法,请将此属性设置为
FALSE。
|
设置为 TRUE 时,如果用户表事务由于任何原因而失败,那么表将损坏并且必须予以删除。所有先前包含在表中的数据都将丢失。
|
Campaign 创建数据库字段以存储平面文件或派生字段中的数字值,且使用“快照”进程或“导出”进程时,会使用
DefaultScale 属性。
如果为 DefaultScale 设置的值超过字段的精度,那么将对这些字段使用
DefaultScale=0。例如,如果精度为 5,并且
DefaultScale=6,那么将使用值 0。
ODBC 数据源需要 DefaultTextType 属性。此属性指示
Campaign 如何在源文本字段来自不同数据源类型的情况下在目标数据源中创建文本字段。例如,源文本字段可能来自平面文件或者不同类型的 DBMS。如果源文本字段来自相同类型的 DBMS,那么将忽略此属性,并且在目标数据源中使用来自源文本字段的数据类型创建文本字段。
DeleteAsRecreate 属性指定在输出进程配置为
REPLACE TABLE 并且不支持
TRUNCATE 的情况下,
Campaign 是删除并重新创建表,还是仅从表中删除。
值为 TRUE 时,
Campaign 将删除表并重新创建。
值为 FALSE 时,
Campaign 将从表中执行
DELETE FROM。
DeleteAsTruncate 属性指定在输出进程配置为
REPLACE TABLE 时,
Campaign 是使用
TRUNCATE TABLE 还是从表中删除。
值为 TRUE 时,
Campaign 将从表中运行
TRUNCATE TABLE。
值为 FALSE 时,
Campaign 将从表中运行
DELETE FROM。
|
对于 Netezza®、Oracle 和 SQL Server 为 TRUE。
|
设置为 FALSE 时,
Campaign 将使用某个命令来执行直接“创建并填充”SQL 语法;例如,
CREATE TABLE <table_name> AS ...(对于 Oracle 和
Netezza®)和
SELECT <field_names> INTO <table_name> ...(对于 SQL Server)。
设置为 TRUE 时,
Campaign 将创建临时表,然后使用单独命令直接在表之间填充此临时表。
使用 Campaign 数据源配置属性,您可以指定引用同一物理数据源的多个逻辑数据源。例如,您可以为同一数据源创建两组数据源属性,一个包含
AllowTempTables = TRUE,另一个包含
AllowTempTables = FALSE。其中每个数据源在
Campaign 中具有不同名称,但是如果它们引用同一个物理数据源,那么将具有相同 DSN 值。
仅当 Campaign 数据源为 SQL Server 时,
DSNUsingOSAuthentication 属性才适用。当 DSN 配置为使用
Windows™ 认证方式时,请将此值设置为
TRUE 。
缺省情况下,此属性设置为 FALSE,并且当基本表和维表是同一数据库并且关系字段相同时(例如,AcctID 到 AcctID),
Campaign 假定您不希望执行连接。
值为 TRUE 时,数据库将执行重复数据删除,对数据库生成的 SQL 查询具有以下格式(如果适用):
SELECT DISTINCT key FROM table
值为 FALSE 时,
Campaign 服务器将执行重复数据删除,并且针对数据库生成的 SQL 查询具有以下格式:
SELECT key FROM table
|
您希望 Campaign 应用程序服务器执行重复数据删除以降低数据库上的资源消耗/负载。
|
无论您为此属性指定的值如何,Campaign 都将自动确保根据需要对键进行重复数据删除。此属性仅用于控制进行重复数据删除的位置(在数据库上还是在
Campaign 服务器上)。
值为 TRUE 时,数据库将执行排序,并且对数据库生成的 SQL 查询具有以下格式:
SELECT <key> FROM <table> ORDER BY <key>
值为 FALSE 时,
Campaign 服务器将执行排序,并且针对数据库生成的 SQL 查询具有以下格式:
SELECT <key>FROM <table>
UAC_*,当
ExtractTablePrefix 属性的值为缺省值时,此值将排除临时表和抽取表。
使用 ExtractTablePostExecutionSQL 属性来指定在创建和填充抽取表之后要立即运行的一个或多个完整 SQL 语句。
以下描述了可用于 ExtractTablePostExecutionSQL 的标记。
ExtractTablePrefix 属性指定在
Campaign 中所有抽取表名称前面自动添加的字符串。两个或更多数据源指向相同数据库时,此属性非常有用。有关详细信息,请参阅
TempTablePrefix 描述。
ForceNumeric 属性指定
Campaign 是否作为数据类型
double 来检索数字值。值设置为
TRUE 时,
Campaign 将作为数据类型
double 来检索所有数字值。
InsertLogSize 属性指定在
Campaign 快照进程正在运行的情况下新条目进入日志文件的时机。每当快照进程写入的记录数量达到
InsertLogSize 属性中指定数量的倍数时,便写入日志条目。日志条目可帮助您确定某个正在运行的快照进程的最新进度。此值设置太低可能会创建大型日志文件。
仅当配置 Campaign 系统表时,才会使用
JndiName 属性(不适用于其他数据源,如客户表)。将其值设置为应用程序服务器(
WebSphere® 或 WebLogic)中定义的
Java™ 命名和目录接口 (JNDI) 数据源。
LoaderCommand 属性指定用于调用
Campaign 中的数据库装入实用程序的命令。 如果设置此参数,那么对于与“替换所有记录”设置一起使用的“快照”进程中所有输出文件,
Campaign 会进入数据库装入器实用程序方式。此参数还在
Campaign 将标识列表上载到临时表时调用数据库装入器实用程序方式。
Contact Optimization 与
Campaign 使用相同的配置设置来实现数据库装入实用程序。如果将
Campaign 配置为与数据库装入实用程序一起工作,那么应该将
Contact Optimization 配置为使用相同命令。同样,如果将 Contact Optimization 配置为与数据库装入实用程序一起工作,那么应将
Campaign 配置为与数据库装入实用程序一起工作。每种情况采用
IBM® EMM 安装目录中不同的根目录。根目录为
/Campaign(对于
Campaign)或者
/ContactOptimization(对于
Contact Optimization),因此,可在装入器命令和模板文件中指定不同命令。
|
|
|
|
|
|
|
|
|
此标记将替换为 Campaign 根据 LoaderControlFileTemplate 参数中指定的模板而生成的临时控制文件的完整路径和文件名。
|
|
此标记将替换为 Campaign 将数据装入到的数据源的名称。这与此数据源的类别名称中使用的数据源名称相同。
|
|
此标记将替换为在装入过程中由 Campaign 创建的临时数据文件的完整路径和文件名。此文件位于 Campaign 临时目录 UNICA_ACTMPDIR 中。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
此标记将替换为 Campaign 将数据装入到的数据库表名称。这是您的快照进程中的目标表或者 Campaign 正在创建的临时表的名称。
|
|
|
LoaderCommandForAppend 参数指定为调用数据库装入实用程序(以在
Campaign 中的数据库表中追加记录)而发出的命令。 如果设置此参数,那么对于与“追加记录”设置一起使用的“快照”进程中所有输出文件,
Campaign 会进入数据库装入器实用程序方式。
|
|
|
|
|
|
|
|
|
此标记将替换为 Campaign 根据 LoaderControlFileTemplate 参数中指定的模板而生成的临时控制文件的完整路径和文件名。
|
|
此标记将替换为 Campaign 将数据装入到的数据源的名称。这与此数据源的类别名称中使用的数据源名称相同。
|
|
此标记将替换为在装入过程中由 Campaign 创建的临时数据文件的完整路径和文件名。此文件位于 Campaign 临时目录 UNICA_ACTMPDIR 中。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
此标记将替换为 Campaign 将数据装入到的数据库表名称。这是您的快照进程中的目标表或者 Campaign 正在创建的临时表的名称。
|
|
|
LoaderControlFileTemplate 属性指定
Campaign 中配置的控制文件模板的完整路径和文件名。 如果设置了此参数,
Campaign 将根据您在此处指定的模板来动态构建临时控制文件。此临时控制文件的路径和名称可用于
<CONTROLFILE> 标记(此标记可用于 LoaderCommand 参数)。
在数据库装入器实用程序中使用 Campaign 之前,必须配置此参数所指定的控制文件模板。控制文件模板支持以下标记,当
Campaign 创建临时控制文件时,将动态替换这些标记。
可用于 LoaderControlFileTemplate 的标记与针对
LoaderCommand 属性描述的标记相同,另外还有以下特殊标记,这些特殊标记对出站表中的每个字段重复一次。
|
|
|
|
|
|
|
|
|
|
|
此令牌替换为文字“CHAR( )”。此字段的长度是在 () 中指定。 如果您的数据库恰巧不理解字段类型 CHAR,那么您可以手动为字段类型类型相应文本,并使用 <FIELDLENGTH> 标记。例如,对于 SQLSVR 和 SQL2000,您将使用“ SQLCHAR(<FIELDLENGTH>)”
|
|
|
|
|
|
|
|
|
LoaderControlFileTemplateForAppend 属性指定
Campaign 中配置的控制文件模板的完整路径和文件名。 如果设置了此参数,
Campaign 将根据此处指定的模板来动态构建临时控制文件。此临时控制文件的路径和名称可用于
<CONTROLFILE> 标记(此标记可用于
LoaderCommandForAppend 属性)。
在数据库装入器实用程序中使用 Campaign 之前,必须配置此参数所指定的控制文件模板。控制文件模板支持以下标记,当
Campaign 创建临时控制文件时,将动态替换这些标记。
Campaign|partitions|partition[n]|dataSources|dataSourcename
将此值设置为 FALSE 可指定句点 (.) 将用作小数点。
此值设置为 TRUE 以指定将使用与语言环境相应的小数点符号。
允许您指定允许 Campaign 在 SQL 中的单个列表中包含的项(例如,WHERE 子句中 IN 运算符后面的值列表)的最大数量。
Campaign 使用独立线程运行数据库查询。由于
Campaign 进程并行运行,因此通常针对单个数据源同时运行多个查询。如果要并行运行的查询数量超过此属性指定的值,那么
Campaign 服务器会自动将同时查询数限制为该值。
所选标识数量小于 MaxRowFetchRecords 属性指定的值时,
Campaign 会在单独 SQL 查询中将标识传递到数据库,每次传递一个。此过程可能需要花费很长时间。如果所选标识数量大于此参数指定的值,那么
Campaign 将使用临时表(如果数据库源允许),或者从表中下拉所有值(不包括任何必要的值)。
发出查询时,Campaign 将在包含确切标识列表(由于查询而生成)的数据库上创建临时表。对数据库发出一个选择所有记录的附加查询时,
MaxTempTableJoinPctSelectAll 属性指定是否对临时表执行连接。
仅当 AllowTempTables 属性的值设置为
TRUE 时,此属性才适用。如果
useInDbOptimization 属性设置为
YES,那么将忽略此属性。
0 到 100 之间的整数。值为
0 意味着从不使用临时表连接;值为
100 意味着将始终使用表连接,无论临时表的大小如何。
假定 MaxTempTableJoinPctSelectAll 设置为
90。首先,您可能希望从数据库表(
客户)中选择帐户余额 (
Accnt_balance) 大于 $1000 的客户 (
CustID)。
SELECT CustID FROM Customer
WHERE Accnt_balance > 1000
然后,您可能希望对所选标识 (CustID) 以及实际余额 (
Accnt_balance) 获取快照。 由于临时表 (
Temp_table) 的相对大小小于 90% (
MaxTempTableJoinPctSelectAll),因此将首先对临时表执行连接。快照进程生成的 SQL 表达式可能如下所示:
SELECT CustID, Accnt_balance FROM Customer, Temp_table WHERE CustID = TempID
SELECT CustID, Accnt_balance FROM Customer
发出查询时,Campaign 将在包含确切标识列表(由于查询而生成)的数据库上创建临时表。如果对数据库发出一个附加查询,此查询通过限制条件来选择记录,那么
MaxTempTableJoinPctWithCondition 属性指定是否应对临时表执行连接。
如果临时表的相对大小(指定为百分比)大于 MaxTempTableJoinPctWithCondition 的值,那么不执行连接。这避免了数据库中原本不需要的开销。在此情况下,将针对数据库发出查询,检索产生的标识列表,然后在将此列表与服务器存储器中的列表进行匹配时废弃不需要的记录。
仅当 AllowTempTables 属性的值设置为
TRUE 时,此属性才适用。
0 到 100 之间的整数。值为
0 意味着从不使用临时表连接;值为
100 意味着将始终使用表连接,无论临时表的大小如何。
如果未配置此属性,Campaign 会假设该值为缺省值(零)。如果配置了此属性,但将值设置为负值或非整数值,那么
Campaign 会假设该值为零。
如果未配置此属性,Campaign 会假设该值为缺省值(零)。如果配置了此属性,但将值设置为负值或非整数值,那么
Campaign 会假设该值为零。
NumberOfRetries 属性指定在失败时
Campaign 自动重试数据库操作的次数。在
Campaign 报告数据库错误或失败之前,将按照这一次数来自动向数据库重新提交查询。
ODBCUnicode 属性指定
Campaign ODBC 调用中使用的编码类型。此属性仅用于 ODBC 数据源,在用于 Oracle 或
DB2® 本机连接时,将忽略此属性。
|
如果此属性设置为 UTF-8 或 UCS-2,那么数据源的 StringEncoding 值必须设置为 UTF-8 或 WIDEUTF-8,否则将忽略 ODBCUnicode 属性的设置。
|
|
UTF-8 - Campaign 使用 Unicode ODBC 调用并假定 SQLWCHAR 为单字节。这与 DataDirect ODBC 驱动程序兼容。
|
|
UCS-2 - Campaign 使用 Unicode ODBC 并假定 SQLWCHAR 为双字节。这与 Windows™ 和 unixODBC ODBC 驱动程序兼容。
|
使用 ODBCv2 属性指定
Campaign 应将哪种 ODBC API 规范用于数据源。
缺省值 FALSE 允许
Campaign 使用 v3 API 规范,而设置
TRUE 将导致
Campaign 使用 v2 API 规范。对于不支持 ODBC v3 API 规范的数据源,请将
ODBCv2 属性设置为
TRUE。
ODBCv2 属性设置为
TRUE 时,
Campaign 不支持 ODBC Unicode API,对于
ODBCUnicode 属性,
disabled 以外的值均不会被识别。
设置为 TRUE 时,
PadTextWithSpaces 属性将使
Campaign 使用空格来填充文本值,直至字符串与数据库字段具有相同宽度。
使用 PostExtractTableCreateRunScript 属性指定在创建并填充抽取表之后
Campaign 运行的脚本或可执行文件。
以下描述了可用于 PostExtractTableCreateRunScript 的标记。
以下描述了可用于 PostSegmentTableCreateRunScript 的标记。
使用 PostSnapshotTableCreateRunScript 属性指定在创建并填充快照表之后
Campaign 运行的脚本或可执行文件。
以下描述了可用于 PostSnapshotTableCreateRunScript 的标记。
使用 PostTempTableCreateRunScript 属性指定在用户表源或系统表数据库中创建并填充临时表之后
Campaign 运行的脚本或可执行文件。
以下描述了可用于 PostTempTableCreateRunScript 的标记。
以下描述了可用于 PostUserTableCreateRunScript 的标记。
使用 PrefixOnSelectSQL 属性指定在
Campaign 生成的所有
SELECT SQL 表达式前面自动添加的字符串。
此属性仅适用于 Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
此属性将自动添加到 SELECT SQL 表达式,而不检查其语法。如果使用此属性,请确保其是合法表达式。
QueryThreadSleep 属性影响
Campaign 服务器进程 (
UNICA_ACSVR) 的 CPU 利用率。值为
TRUE 时,
Campaign 服务器进程用于检查查询是否完成的线程将在检查的间歇休眠。 值为
FALSE 时,
Campaign 服务器进程将连续检查查询是否完成。
ReaderLogSize 参数定义在从数据库读取数据时
Campaign 在日志文件中生成新条目的时机。每当读取自数据库的记录数量达到此参数中定义的数字的倍数时,将在日志文件中写入一个日志条目。
StringEncoding 属性指定数据库的字符编码。当
Campaign 从数据库检索数据,数据将从指定编码转换为
Campaign 的内部编码 (
UTF-8)。
Campaign 向数据库发送查询时,会将字符数据的编码从
Campaign 的内部编码 (
UTF-8) 转换为
StringEncoding 属性中指定的编码。
如果数据库客户机编码为 UTF-8,那么此值的首选设置为
WIDEUTF-8。仅当数据库客户机已设置为
UTF-8时,
WIDE-UTF-8 设置才会起作用。
如果您使用 partitions > partition[n] > dataSources > data_source_name > ODBCUnicode 属性,那么将
StringEncoding 属性设置为
UTF-8 或
WIDEUTF-8。否则,将忽略
ODBCUnicode 属性值。
本部分描述如何为 DB2®、SQL Server 或 Teradata 数据库设置正确的值。
标识 DB2® 数据库代码页和代码集。对于本地化环境,
DB2® 数据库必须具有以下配置:
在 Campaign 中将
StringEncoding 属性值设置为
DB2® 数据库代码集值。
将 DB2® 环境变量
DB2CODEPAGE 设置为
DB2® 数据库代码页值:
|
在 Windows™ 上:将以下行添加到 Campaign 侦听器启动脚本 ( <CAMPAIGN_HOME>\bin\cmpServer.bat):
|
|
在 UNIX™ 上:在启动 DB2® 之后,系统管理员必须从 DB2® 实例用户输入以下命令:
|
StringEncoding=CP932
CharacterSet=UTF8
Campaign 通常负责在其内部编码
UTF-8 与数据库的编码之间进行代码转换。当数据库以
UTF-8 编码时,可以为
StringEncoding 指定值
UTF-8(SQL Server 除外),并且不需要代码转换。传统上,这些是
Campaign 访问数据库中的非英文数据的唯一可行模型。
在 Campaign V7.0 中,引入了一种称为
WIDEUTF-8 的新数据库编码,可作为
StringEncoding 属性的值。通过使用此编码,
Campaign 仍使用
UTF-8 来与数据库客户机进行通信,但是允许客户机在
UTF-8 与实际数据库的编码之间执行代码转换任务。需要此增强版本的
UTF-8 来改变表列映射的宽度,以便将它们具有足够宽度来适应转换代码后的文本。
SuffixOnAllOtherSQL 属性指定要自动追加到
Campaign 生成的每个 SQL 表达式并且
SuffixOnInsert、SQLSuffixOnSelectSQL、SuffixOnTempTableCreation、 SuffixOnUserTableCreation 或
SuffixOnUserBaseTableCreation 属性未包含的字符串。
此属性仅适用于 Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
TRUNCATE TABLE table
DROP TABLE table
DELETE FROM table [WHERE ...]
UPDATE table SET ...
SuffixOnCreateDateField = FORMAT 'YYYY-MM-DD'
|
请参阅对 DateFormat 属性的描述中的表。
|
SuffixOnInsertSQL 属性指定将自动追加到
Campaign 生成的所有
INSERT SQL 表达式的字符串。 此属性仅适用于
Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
INSERT INTO table ...
SuffixOnSelectSQL 属性指定将自动追加到
Campaign 生成的所有
SELECT SQL 表达式的字符串。 此属性仅适用于
Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
使用 SuffixOnTempTableCreation 属性来指定在创建临时表时将自动追加到
Campaign 生成的 SQL 表达式的字符串。此属性仅适用于
Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。要使用此属性,
AllowTempTables 属性必须设置为
TRUE。
以下描述了可用于 SuffixOnSegmentTableCreation 的标记。
使用 SuffixOnSnapshotTableCreation 属性来指定在创建快照表时将自动追加到
Campaign 生成的 SQL 表达式的字符串。
以下描述了可用于 SuffixOnSnapshotTableCreation 的标记。
使用 SuffixOnExtractTableCreation 属性来指定在创建抽取表时将自动追加到
Campaign 生成的 SQL 表达式的字符串。
以下描述了可用于 SuffixOnExtractTableCreation 的标记。
使用 SuffixOnUserBaseTableCreation 属性指定在用户创建基本表时(例如,在抽取进程中),将自动追加到
Campaign 生成的 SQL 表达式的字符串。 此属性仅适用于
Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
以下描述了可用于 SuffixOnUserBaseTableCreation 的标记。
使用 SuffixOnUserTableCreation 属性指定在用户创建常规表时(例如,在快照进程中),将自动追加到
Campaign 生成的 SQL 表达式的字符串。 此属性仅适用于
Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
除非 UA_SYSTEM_TABLES 数据源包含多个模式(例如,在多个组所使用的 Oracle 数据库上),否则请将此值留为空白。(在此上下文中,“模式”指示
X.Y 格式的“限定”表名的初始部分(例如,
dbo.UA_Folder)。在这一格式中,
X 是模式,
Y 是未限定表名称。 此语法的术语在
Campaign 支持的不同数据库系统之间各有不同。)
使用 TempTablePostExecutionSQL 属性可指定在用户表源或在系统表数据库中创建临时表之后
Campaign 立即运行的完整 SQL 语句。
AllowTempTables 属性必须设置为
TRUE 才能在数据源中启用临时表的创建。
使用 TableListSQL 属性来指定要使用的 SQL 查询以在可映射的表的列表中包含同义词。
select B.name AS oName, A.name AS tName
from sys.synonyms A LEFT OUTER JOIN sys.schemas B
on A.schema_id = B.schema_id ORDER BY 1, 2
*select B.name AS oName, A.name AS tName from
(select name, schema_id from sys.synonyms UNION
select name, schema_id from sys.tables UNION select name,
schema_id from sys.views) A LEFT OUTER JOIN sys.schemas B on
A.schema_id = B.schema_id ORDER BY 1, 2
*select OWNER, TABLE_NAME from (select OWNER, TABLE_NAME
from ALL_TABLES UNION select OWNER, SYNONYM_NAME AS TABLE_NAME
FROM ALL_SYNONYMS UNION select OWNER,
VIEW_NAME AS TABLE_NAME from ALL_VIEWS) A ORDER BY 1, 2
SQLOnConnect 属性定义在每个数据库连接之后
Campaign 立即运行的完整 SQL 语句。
UOSQLOnConnect 属性与此类似,但是仅适用于
Contact Optimization。
此属性的缺省值为 FALSE,这指示 Campaign 应使用其标准方法(例如,ODBC 或本机连接)来检索模式。此属性设置为 TRUE 会导致
Campaign 来准备一个类似于
select * from <table> 的 SQL 查询以检索表模式。
这可提供特定于每个数据源的优势。例如,某些数据源(Netezza® 或 SQL Server)不能通过缺省 ODBC 或本机连接来正确地报告 SQL 同义词(数据库对象的备用名称,使用
create synonym 语法来定义)。通过将此属性设置为 TRUE,将针对
Campaign 中的数据映射来检索 SQL 同义词。
|
对于 Netezza®,必须将此属性设置为 TRUE 以便能够支持同义词。将此属性设置为 TRUE 可命令 Campaign 准备一个 SQL 查询以检索表模式。要在 Netezza® 数据源中支持同义词,不需要其他设置或值。
|
要使 Campaign 能够处理
Netezza® 或 SQL Server 同义词:
UseSQLToRetrieveSchema=TRUE
Campaign|partitions|partition[n]|dataSources|dataSourcename
流程框配置为写入新映射表 >
基本记录表 >
在所选数据库中创建新表时,会调用此属性。仅当创建表(创建和映射过程期间)时,会调用此属性。流程框运行时期间不会调用此属性。
|
新映射表 > 常规表 > 在所选数据源中创建新表:创建/映射过程期间会调用此属性;而快照运行时期间不会调用此属性。
|
|
新映射表 > 维表 > 在所选数据库中创建新表:创建/映射过程期间会调用此属性;而快照运行时期间不会调用此属性。
|
当 UseTempTablePool 设置为
FALSE 时,临时表将被删除,并在每次运行流程图时重新创建。当该属性设置为
TRUE 时,将不从数据库中删除临时表。将从
Campaign 维护的表池中截断临时表并加以复用。 临时表池在多次重新运行流程图的环境中最高效,例如,设计阶段和测试阶段。
使用 SegmentTablePostExecutionSQL 属性指定在创建并填充细分市场临时表之后
Campaign 运行的完整 SQL 语句。
以下描述了可用于 SegmentTablePostExecutionSQL 的标记。
使用 SnapshotTablePostExecutionSQL 属性指定在创建并填充快照表之后要立即运行的一个或多个完整 SQL 语句。仅当“快照”流程框写出到抽取表时,才会调用此属性。
以下描述了可用于 SnapshotTablePostExecutionSQL 的标记。
此属性指定自动作为前缀追加到 Campaign 创建的所有临时表名称的字符串。使用此属性以帮助识别和管理临时表。您还可以使用此属性以在特定位置中创建临时表。
TempTablePrefix="<USER>"
使用 TempTablePreTruncateExecutionSQL 属性指定一个要在截断临时表之前运行的 SQL 查询。 您指定的查询可以用于取消
TempTablePostExecutionSQL 属性中指定的 SQL 语句的效果。
例如,通过 TempTablePostExecutionSQL 属性,您可以指定以下 SQL 语句以创建索引:
然后,在 TempTablePreTruncateExecutionSQL 属性中指定以下查询以删除索引:
使用 TempTablePreTruncateRunScript 属性指定一个要在截断临时表之前运行的脚本或可执行文件。 您指定的脚本可以用于取消
PostTempTableCreateRunScript 属性中指定的 SQL 语句的效果。
例如,通过 PostTempTableCreateRunScript 属性,您可以指定一个包含以下 SQL 语句的脚本以创建索引:
然后,在 TempTablePreTruncateRunScript 属性中指定另一个包含以下语句的脚本以删除索引:
|
如果 Campaign 由于任何原因而无法删除记录,那么它将不会删除表。
|
将此值设置为 FALSE 可在不首先删除所有记录的情况下删除表。
TruncateSQL 属性可用于
DB2® 数据源,并且允许您指定用于表截断的备用 SQL。仅当
DeleteAsTruncate 设置为 TRUE 时,此属性才适用。
DeleteAsTruncate 设置为 TRUE 时,此属性的任何定制 SQL 都将用于截断表。 如果未设置此属性,那么
Campaign 将使用 TRUNCATE TABLE <TABLENAME> 语法。
当 Campaign 在合并进程或细分进程中执行排除时,缺省情况下将使用“NOT EXISTS”语法,如:
SELECT IncludeTable.ID FROM IncludeTable WHERE NOT EXISTS
(SELECT * FROM ExcludeTable WHERE IncludeTable.ID = ExcludeTable.ID)
如果 UseExceptForMerge 设置为
TRUE 并且我们无法使用“NOT IN”(因为
UseNotInForMerge 已禁用,或者因为受众级别包含多个字段并且数据源不是 Oracle),那么语法更改为如下所示:
SELECT IncludeTable.ID FROM IncludeTable
MINUS (SELECT ExcludeTable.ID FROM ExcludeTable)
SELECT IncludeTable.ID FROM IncludeTable
EXCEPT (SELECT ExcludeTable.ID FROM ExcludeTable)
UseNonANSIJoin 属性指定此数据源是否使用非 ANSI 连接语法。如果数据源类型设置为 Oracle7 或 Oracle8,并且
UseNonANSIJoin 的值设置为
TRUE,那么数据源使用适合于 Oracle 的非 ANSI 连接语法。
当 Campaign 在合并进程或细分进程中执行排除时,缺省情况下将使用“NOT EXISTS”语法,如:
SELECT IncludeTable.ID FROM IncludeTable WHERE NOT EXISTS (SELECT *
FROM ExcludeTable WHERE IncludeTable.ID = ExcludeTable.ID)
如果启用了 UseNotInForMerge(值设置为
YES),且 (1) 受众级别包含单个标识字段,或 (2) 数据源为 Oracle,那么语法将变更,如下所示:
SELECT IncludeTable.ID FROM IncludeTable WHERE IncludeTable.ID NOT IN
(SELECT ExcludeTable.ID FROM ExcludeTable)
UseSQLToProfile 属性使您可以配置
Campaign 以将 SQL 查询
GROUP BY 提交给数据库,从而计算概要文件(使用“
SELECT field, count(*) FROM table GROUP BY field”),而不必访存记录。
|
值 FALSE(缺省值)将导致 Campaign 对字段进行概要分析(通过检索表中所有记录的字段值)以及跟踪每个非重复值的计数。
|
|
值 TRUE 将导致 Campaign 通过发出类似以下的查询来对字段进行概要分析:
|
SELECT field, COUNT(*) FROM table GROUP BY field
Copyright IBM Corporation 2015. All Rights Reserved.
|