帮助通过SQL管理派生数据集的构造
下面介绍的功能在通过SQL管理派生数据集时非常有用。
更改要为配置文件启用的现有数据集
ALTER TABLE SQL构造可用于为配置文件启用现有数据集。 这要求向架构和相应的数据集中添加启用配置文件的标记。
ALTER TABLE your_decile_table ADD label 'PROFILE';
ALTER TABLE
命令后,控制台返回ALTER SUCCESS
。向现有数据集添加主要身份
将数据集中的现有列标记为主标识集,否则会导致错误。 要使用SQL设置主标识,请使用下面显示的查询格式。
ALTER TABLE <your_table_name> ADD CONSTRAINT primary identity NAMESPACE
例如:
ALTER TABLE test1_dataset ADD CONSTRAINT PRIMARY KEY(id2) NAMESPACE 'IDFA';
在提供的示例中,id2
是test1_dataset
中的现有列。
为配置文件禁用数据集
如果要为配置文件禁用表,则必须使用DROP命令。 下面显示了使用DROP
的示例SQL语句。
ALTER TABLE table_name DROP LABEL 'PROFILE';
例如:
ALTER TABLE decile_table DROP label 'PROFILE';
此SQL语句提供了使用API调用的高效替代方法。 有关详细信息,请参阅有关如何使用数据集API禁用用于Real-Time CDP的数据集的文档。
允许为数据集更新和插入功能
UPSERT命令允许您在表中插入新记录或更新现有数据。 具体来说,如果表中已存在指定的值,它允许您更新现有行;如果指定的值不存在,它允许您插入新行。
下面显示了使用正确格式的示例语句。
ALTER TABLE table_name ADD LABEL 'UPSERT';
例如:
ALTER TABLE table_with_a_decile ADD label 'UPSERT';
此SQL语句提供了使用API调用的高效替代方法。 有关详细信息,请参阅有关如何使用数据集API🔗启用用于Real-Time CDP和UPSERT的数据集的文档。
禁用数据集的更新和插入功能
此命令禁用更新行并将其插入到数据集的功能。
下面显示了使用正确格式的示例语句。
ALTER TABLE table_name DROP LABEL 'UPSERT';
例如:
ALTER TABLE table_with_a_decile DROP label 'UPSERT';
显示与每个表关联的其他表信息
为启用配置文件的数据集保留其他元数据。 使用SHOW TABLES
命令显示一个额外的labels
列,该列提供有关与表关联的任何标签的信息。
此命令的输出示例如下所示:
name | dataSetId | dataSet | description | labels
---------------------+--------------------------+----------------+-------------+----------
luma_midvalues | 5bac030c29bb8d12fa992e58 | Luma midValues | | false
luma_postvalues | 5c86b896b3c162151785b43c | Luma midValues | | false
table_with_a_decile | 5c86b896b3c162151785b43c | Luma midValues | | 'UPSERT', 'PROFILE'
(3 rows)
使用SQL创建字段组
现在可以通过使用SQL创建字段组。 这提供了在Experience Platform UI中使用架构编辑器或对架构注册表进行API调用的替代方法。
下面显示了创建字段组的示例语句。
CREATE FIELDGROUP <field_group_name> [IF NOT EXISTS] (field_name <data_type> primary identity namespace <namespace>, [field_name_2 >data_type>]) [ WITH(LABEL='PROFILE') ];
label
标志或字段组已存在,则通过SQL创建字段组将失败。请确保查询包含
IF NOT EXISTS
子句,以避免查询失败,因为该字段组已存在。现实世界的例子可能与下面所示的例子类似。
CREATE FIELDGROUP field_group_for_test123 (decile1Month map<text, integer>, decile3Month map<text, integer>, decile6Month map<text, integer>, decile9Month map<text, integer>, decile12Month map<text, integer>, decilelietime map<text, integer>) WITH (LABEL-'PROFILE');
成功执行此语句将返回创建的字段组ID。 例如:c731a1eafdfdecae1683c6dca197c66ed2c2b49ecd3a9525
。
有关替代方法的详细信息,请参阅有关如何在架构编辑器🔗中创建新字段组或使用架构注册表API的文档。
放置字段组
有时可能需要从架构注册表中删除字段组。 这是通过执行具有字段组ID的DROP FIELDGROUP
命令来完成的。
DROP FIELDGROUP [IF EXISTS] <your_field_group_id>;
例如:
DROP FIELDGROUP field_group_for_test123;
IF EXISTS
子句以避免查询失败。显示表的所有字段组名和ID
SHOW FIELDGROUPS
命令返回一个表,其中包含表的名称、fieldgroupId和所有者。
此命令的输出示例如下所示:
name | fieldgroupId | owner |
---------------------------------+-------------------------------------------------+-----------------
AEP Mobile Lifecycle Details | _experience.aep-mobile-lifecycle-details | Luma midValues |
AEP Web SDK ExperienceEvent | _experience.aep-web-sdk-experienceevent | Luma midValues |
AJO Classification Fields | _experience.journeyOrchestration.classification | Luma midValues |
AJO Entity Fields | _experience.customerJourneyManagement.entities | Luma midValues |
(4 rows)