協助透過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';

在提供的範例中,id2test1_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)

您可從範例中看出table_with_a_decile已為設定檔啟用,並套用標籤,例如'UPSERT''PROFILE' (如先前所述)。

使用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

放置欄位群組

有時可能需要從結構描述登入中移除欄位群組。 這是透過使用欄位群組識別碼執行DROP FIELDGROUP命令來完成。

DROP FIELDGROUP [IF EXISTS] <your_field_group_id>;

例如:

DROP FIELDGROUP field_group_for_test123;
重要
如果欄位群組不存在,透過SQL刪除欄位群組將會失敗。 請確定陳述式包含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)