SQL för frågetjänsten har utökats för att ge sömlöst stöd för härledda attribut. Detta är en effektiv alternativ metod för att skapa härledda attribut för era affärssituationer med kundprofiler i realtid.
I det här dokumentet beskrivs olika praktiska SQL-tillägg som genererar ett härlett attribut som kan användas med kundprofilen i realtid. Arbetsflödet förenklar den process som du annars skulle behöva utföra via olika API-anrop eller interaktioner för plattformsgränssnitt.
Generering och publicering av ett attribut för kundprofil i realtid omfattar vanligtvis följande steg:
När du har slutfört stegen ovan kan du fylla i datauppsättningen. Om du har aktiverat datauppsättningen för profilen kan du även skapa segment som refererar till det nya attributet och börja skapa insikter.
Med frågetjänsten kan du utföra alla åtgärder som listas ovan med hjälp av SQL-frågor. Detta inkluderar att vid behov göra ändringar i datauppsättningar och fältgrupper.
SQL-frågan som anges nedan förutsätter att ett befintligt namnutrymme används.
Använd en CTAS-fråga (Create Table as Select) för att skapa en datauppsättning, tilldela datatyper, ange en primär identitet, skapa ett schema och markera den som profilaktiverad. Exemplet med SQL-sats nedan skapar attribut och gör den tillgänglig för kunddataprofilen i realtid (Real-Time CDP). SQL-frågan kommer att följa formatet som visas i exemplet nedan:
CREATE TABLE <your_table_name> [IF NOT EXISTS] (fieldname <your_data_type> primary identity namespace <your_namespace>, [field_name2 <your_data_type>]) [WITH(LABEL='PROFILE')];
De datatyper som stöds är: boolesk, date, datetime, text, float, bigint, integer, map, array och struct/row.
SQl-kodlåset nedan innehåller exempel på hur datatyperna structure/row, map och array definieras. Rad ett visar radsyntaxen. Rad två demonstrerar mappningssyntax och rad tre, matrissyntax.
ROW (Column_name <data_type> [, column name <data_type> ]*)
MAP <data_type, data_type>
ARRAY <data_type>
Datamängder kan också aktiveras för profiler via plattformens användargränssnitt. Mer information om hur du markerar en datauppsättning som aktiverad för profilen finns i aktivera en datauppsättning för kundprofildokumentation i realtid.
I exempelfrågan nedan visas decile_table
datauppsättningen skapas med id
som den primära identitetskolumnen och har namnutrymmet IDFA
. Den har även ett fält med namnet decile1Month
av kartdatatypen. Tabellen som skapades (decile_table
) är aktiverat för profilen.
CREATE TABLE decile_table (id text PRIMARY KEY NAMESPACE 'IDFA',
decile1Month map<text, integer>) WITH (label='PROFILE');
När frågan har körts returneras datauppsättnings-ID:t till konsolen, vilket visas i exemplet nedan.
Created Table DataSet Id
>
637fd84969ba291e62dba79f
(1 row)
Använd label='PROFILE'
på en CREATE TABLE
för att skapa en profilaktiverad datauppsättning. The upsert
funktionen är aktiverad som standard. The upsert
kan skrivas över med ALTER
som i exemplet nedan.
ALTER TABLE <your_table_name> DROP label upsert;
Mer information om hur du använder ALTER TABLE kommando och etikett som en del av en CTAS-fråga.
De funktioner som beskrivs nedan är till stor nytta när du hanterar härledda attribut via SQL.
SQL-konstruktionen ALTER TABLE kan användas för att aktivera befintliga datauppsättningar för profilen. Detta kräver att en profilaktiverad tagg läggs till både i schemat och i motsvarande datauppsättning.
ALTER TABLE your_decile_table ADD label 'PROFILE';
Vid slutfört körning av ALTER TABLE
returnerar konsolen ALTER SUCCESS
.
Markera en befintlig kolumn i en datauppsättning som en primär identitetsuppsättning, annars uppstår ett fel. Om du vill ange en primär identitet med SQL använder du frågeformatet som visas nedan.
ALTER TABLE <your_table_name> ADD CONSTRAINT primary identity NAMESPACE
Exempel:
ALTER TABLE test1_dataset ADD CONSTRAINT PRIMARY KEY(id2) NAMESPACE 'IDFA';
I exemplet som anges id2
är en befintlig kolumn i test1_dataset
.
Om du vill inaktivera tabellen för profilanvändning måste du använda kommandot DROP. Ett exempel på en SQL-sats som ANVÄNDER DROP
visas nedan.
ALTER TABLE table_name DROP LABEL 'PROFILE';
Exempel:
ALTER TABLE decile_table DROP label 'PROFILE';
Den här SQL-satsen är ett effektivt alternativ till att använda ett API-anrop. Mer information finns i dokumentationen om hur du inaktivera en datauppsättning för användning med Real-Time CDP via API:t för datauppsättningar.
Med kommandot UPSERT kan du infoga en ny post eller uppdatera befintliga data i en tabell. Du kan uppdatera en befintlig rad om ett angivet värde redan finns i en tabell, eller infoga en ny rad om det angivna värdet inte redan finns.
En exempelprogramsats som använder rätt format visas nedan.
ALTER TABLE table_name ADD LABEL 'UPSERT';
Exempel:
ALTER TABLE table_with_a_decile ADD label 'UPSERT';
Den här SQL-satsen är ett effektivt alternativ till att använda ett API-anrop. Mer information finns i dokumentationen om hur du aktivera en datauppsättning för användning med Real-Time CDP och UPSERT med API:t för datauppsättningar.
Det här kommandot inaktiverar möjligheten att uppdatera och infoga rader i datauppsättningen.
En exempelprogramsats som använder rätt format visas nedan.
ALTER TABLE table_name DROP LABEL 'UPSERT';
Exempel:
ALTER TABLE table_with_a_decile DROP label 'UPSERT';
Ytterligare metadata sparas för profilaktiverade datauppsättningar. Använd SHOW TABLES
för att visa ett extra labels
kolumn som innehåller information om etiketter som är kopplade till tabeller.
Ett exempel på det här kommandots utdata visas nedan:
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)
I exemplet ser du att table_with_a_decile
har aktiverats för profilen och används med etiketter som 'UPSERT', PROFIL enligt beskrivningen ovan.
Fältgrupper kan nu skapas med hjälp av SQL. Detta är ett alternativ till att använda Schemaredigeraren i plattformsgränssnittet eller göra ett API-anrop till schemaregistret.
Ett exempel på hur du skapar en fältgrupp visas nedan.
CREATE FIELDGROUP <field_group_name> [IF NOT EXISTS] (field_name <data_type> primary identity namespace <namespace>, [field_name_2 >data_type>]) [ WITH(LABEL='PROFILE') ];
Det går inte att skapa fältgrupper via SQL om label
ingen flagga anges i satsen eller om fältgruppen redan finns.
Kontrollera att frågan innehåller en IF NOT EXISTS
för att undvika att frågan misslyckas eftersom fältgruppen redan finns.
Ett verkligt exempel kan se ut ungefär som det nedan.
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');
Slutförd körning av den här satsen returnerar det skapade fältgrupps-ID:t. Exempel c731a1eafdfdecae1683c6dca197c66ed2c2b49ecd3a9525
.
Läs dokumentationen om hur du skapa en ny fältgrupp i Schemaredigeraren eller med API för schemaregister för mer information om alternativa metoder.
Ibland kan det vara nödvändigt att ta bort en fältgrupp från schemaregistret. Detta görs genom att köra DROP FIELDGROUP
med fältgrupps-ID.
DROP FIELDGROUP [IF EXISTS] <your_field_group_id>;
Exempel:
DROP FIELDGROUP field_group_for_test123;
Borttagning av en fältgrupp via SQL misslyckas om fältgruppen inte finns. Kontrollera att programsatsen innehåller en IF EXISTS
för att undvika att frågan misslyckas.
The SHOW FIELDGROUPS
returnerar en tabell som innehåller tabellens namn, fältgrupp-ID och ägare.
Ett exempel på det här kommandots utdata visas nedan:
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)
När du har läst det här dokumentet får du en bättre förståelse för hur du använder SQL för att skapa en profil och en datauppsättning som kan uppdateras baserat på härledda attribut. Du är nu redo att använda den här datauppsättningen med arbetsflöden för batchimport för att göra uppdateringar av dina profildata. Om du vill veta mer om inmatning av data i Adobe Experience Platform börjar du med att läsa dataöverföring - översikt.