Gebruiksgeval voor op een regel gebaseerde afgeleide gegevenssets
De afgeleide datasets vergemakkelijken gecompliceerde gebruiksgevallen voor het analyseren van gegevens van het gegevensmeer die met andere stroomafwaartse diensten van het Platform kunnen worden gebruikt of in uw gegevens van het Profiel van de Klant in real time worden gepubliceerd.
Dit voorbeeld gebruikt geval toont aan hoe te om op decile-gebaseerde afgeleide datasets voor gebruik met uw gegevens van het Profiel van de Klant in real time te creëren. Gebruikend een scenario van de luchtvaartloyaliteit als voorbeeld, vertelt deze gids u hoe te om een dataset tot stand te brengen die categoriale deciles gebruikt om te segmenteren en publiek tot stand te brengen dat op gerangschikte attributen wordt gebaseerd.
De volgende belangrijke concepten worden geïllustreerd:
- Schema maken voor decile bucketing.
- Categorisch decile maken.
- Opstellen van complexe afgeleide gegevenssets.
- Berekening van tegels in een terugzoekperiode.
- Een voorbeeldvraag om samenvoeging, rangschikking, en het toevoegen van unieke identiteiten aan te tonen om voor publiek toe te staan dat op deze decile emmers wordt geproduceerd.
Aan de slag
Deze handleiding vereist een goed begrip van query-uitvoering in Query-service en de volgende onderdelen van Adobe Experience Platform:
- Overzicht van het realtime klantprofiel: Biedt een uniform, real-time consumentenprofiel dat is gebaseerd op geaggregeerde gegevens van meerdere bronnen.
- Basisbeginselen van de schemacompositie: Een inleiding aan de schema's van de Gegevens van de Ervaring van het Model (XDM) en de bouwstenen, principes, en beste praktijken voor het samenstellen van schema's.
- Hoe te om een schema voor het Profiel van de Klant in real time toe te laten: In deze zelfstudie worden de stappen beschreven die nodig zijn om gegevens toe te voegen aan het realtime profiel van de klant.
- Een aangepast gegevenstype definiëren: De gegevenstypen worden gebruikt als verwijzing-type gebieden in klassen of groepen van het schemagebied en staan voor het verenigbare gebruik van een multi-gebiedstructuur toe die overal in het schema kan worden omvat.
Doelstellingen
Het voorbeeld in dit document gebruikt deciles om afgeleide datasets te bouwen voor het rangschikken van gegevens van een schema van de luchtvaartloyaliteit. Met afgeleide datasets kunt u het nut van uw gegevens maximaliseren door een publiek te identificeren dat op de top 'n' % voor een gekozen categorie wordt gebaseerd.
Op decile gebaseerde afgeleide gegevenssets maken
Om de rangschikking van deciles te bepalen die op een bepaalde afmeting en overeenkomstige metrisch wordt gebaseerd, moet een schema worden ontworpen om voor het decile knippen toe te staan.
Deze gids gebruikt een dataset van de luchtvaartloyaliteit om aan te tonen hoe te om de Dienst van de Vraag te gebruiken om deciles te bouwen die op mijlen worden gebaseerd die over diverse terugkijkperiodes worden gevlogen.
De Dienst van de Vraag van het gebruik om deciles te creëren
Gebruikend de Dienst van de Vraag, kunt u een dataset tot stand brengen die categorische deciles bevat, die dan kan worden gesegmenteerd om publiek tot stand te brengen dat op attributenrangschikking wordt gebaseerd. De concepten die in de volgende voorbeelden worden getoond kunnen worden toegepast om andere decile emmerdatasets tot stand te brengen, zolang een categorie wordt bepaald en metrisch beschikbaar is.
In het voorbeeld worden de gegevens van de luchtvaartmaatschappijen gebruikt voor XDM ExperienceEvents, klasse. Elke gebeurtenis is een overzicht van een zakelijke transactie voor afgelegde kilometers, gecrediteerd of gedebiteerd, en de status van lidmaatschapsloyaliteit van "Flyer", "Frequent", "Silver" of "Gold". Het primaire identiteitsveld is membershipNumber
.
Voorbeeldgegevenssets
De aanvankelijke dataset van de luchtvaartloyaliteit voor dit voorbeeld is "Gegevens van de Loyalty van de Luchtlijn", en heeft het volgende schema. Merk op dat de primaire identiteit voor het schema is _profilefoundationreportingstg.membershipNumber
.
Voorbeeldgegevens
In de volgende tabel worden de voorbeeldgegevens in het dialoogvenster _profilefoundationreportingstg
object dat voor dit voorbeeld wordt gebruikt. Het verstrekt context voor het gebruik van deegemmers om complexe afgeleide datasets tot stand te brengen.
_profilefoundationreportingstg
is weggelaten vanaf het begin van de naamruimte in de kolomtitels en latere vermeldingen in het hele document..membershipNumber
.emailAddress.address
.transactionDate
.transactionType
.transactionDetails
.mileage
.loyaltyStatus
Decile-gegevenssets genereren
In de bovenstaande gegevens over de loyaliteit van de luchtvaartmaatschappij .mileage
waarde bevat het aantal mijl dat een lid per vlucht aflegt. Dit gegeven wordt gebruikt om deciles voor het aantal mijlen tot stand te brengen die over levenraadplegingen en een verscheidenheid van terugzoekperiodes worden gevlogen. Voor dit doel wordt een dataset gecreeerd die deciles in een type van kaartgegevens voor elke raadplegingsperiode bevat en aangewezen decile voor elke raadplegingsperiode die onder wordt toegewezen membershipNumber
.
Maak een "Airline Loyalty Decile Schema" om een decile dataset te maken met gebruik van Query Service.
Het schema inschakelen voor realtime-klantprofiel
Gegevens die in Experience Platform worden opgenomen voor gebruik door Real-Time Klantprofiel moeten voldoen aan een XDM-schema (Experience Data Model) dat is ingeschakeld voor Profiel. Een schema kan alleen worden ingeschakeld voor Profiel als het de klasse XDM Individual Profile of XDM ExperienceEvent implementeert.
Laat uw schema voor gebruik in het Profiel van de Klant in real time toe gebruikend de Registratie API van het Schema of de Gebruikersinterface Schema-editor. Gedetailleerde instructies over hoe te om een schema voor Profiel toe te laten zijn beschikbaar in hun respectieve documentatie.
Maak vervolgens een gegevenstype dat opnieuw moet worden gebruikt voor alle op decile betrekking hebbende veldgroepen. Het maken van de decile-veldgroep is een eenmalige stap per sandbox. Het kan ook voor alle op decile betrekking hebbende regelingen opnieuw worden gebruikt.
Een naamruimte voor identiteit maken en markeren als primaire id identity-namespace
Om het even welk schema dat voor gebruik met deciles wordt gecreeerd moet een primaire toegewezen identiteit hebben. U kunt een identiteitsveld definiëren in de gebruikersinterface van Adobe Experience Platform-schema'sof via de Schema-register-API.
De Dienst van de vraag staat u ook toe om een identiteit of een primaire identiteit voor de gebieden van de ad hoc schemadataset direct door SQL te plaatsen. Zie de documentatie op het plaatsen van een secundaire identiteit en primaire identiteit in ad hoc schemaidentiteiten voor meer informatie .
Creeer een vraag voor het berekenen van deciles over een raadplegingsperiode create-a-query
In het volgende voorbeeld wordt de SQL-query getoond voor het berekenen van een decile-bewerking over een terugzoekperiode.
Een malplaatje kan of gebruikend de Redacteur van de Vraag in UI, of door worden gemaakt Query Service-API.
CREATE TABLE AS airline_loyality_decile
{ WITH summed_miles_1 AS (
SELECT _profilefoundationreportingstg.membershipNumber AS membershipNumber,
_profilefoundationreportingstg.loyaltyStatus AS loyaltyStatus,
SUM(_profilefoundationreportingstg.mileage) AS totalMiles
FROM airline_loyalty_data
WHERE _profilefoundationreportingstg.transactionDate < (MAKE_DATE(YEAR(CURRENT_DATE), MONTH(CURRENT_DATE), 1) - MAKE_YM_INTERVAL(0, 0))
GROUP BY 1,2
),
summed_miles_3 AS (
SELECT _profilefoundationreportingstg.membershipNumber AS membershipNumber,
_profilefoundationreportingstg.loyaltyStatus AS loyaltyStatus,
SUM(_profilefoundationreportingstg.mileage) AS totalMiles
FROM airline_loyalty_data
WHERE _profilefoundationreportingstg.transactionDate < (MAKE_DATE(YEAR(CURRENT_DATE), MONTH(CURRENT_DATE), 1) - MAKE_YM_INTERVAL(0, 1))
GROUP BY 1,2
),
summed_miles_6 AS (
SELECT _profilefoundationreportingstg.membershipNumber AS membershipNumber,
_profilefoundationreportingstg.loyaltyStatus AS loyaltyStatus,
SUM(_profilefoundationreportingstg.mileage) AS totalMiles
FROM airline_loyalty_data
WHERE _profilefoundationreportingstg.transactionDate < (MAKE_DATE(YEAR(CURRENT_DATE), MONTH(CURRENT_DATE), 1) - MAKE_YM_INTERVAL(0, 4))
GROUP BY 1,2
),
rankings_1 AS (
SELECT membershipNumber,
loyaltyStatus,
totalMiles,
NTILE(10) OVER (PARTITION BY loyaltyStatus ORDER BY totalMiles DESC) AS decileBucket
FROM summed_miles_1
),
rankings_3 AS (
SELECT membershipNumber,
loyaltyStatus,
totalMiles,
NTILE(10) OVER (PARTITION BY loyaltyStatus ORDER BY totalMiles DESC) AS decileBucket
FROM summed_miles_3
),
rankings_6 AS (
SELECT membershipNumber,
loyaltyStatus,
totalMiles,
NTILE(10) OVER (PARTITION BY loyaltyStatus ORDER BY totalMiles DESC) AS decileBucket
FROM summed_miles_6
),
map_1 AS (
SELECT membershipNumber,
MAP_FROM_ARRAYS(COLLECT_LIST(loyaltyStatus), COLLECT_LIST(decileBucket)) AS decileMonth1
FROM rankings_1
GROUP BY membershipNumber
),
map_3 AS (
SELECT membershipNumber,
MAP_FROM_ARRAYS(COLLECT_LIST(loyaltyStatus), COLLECT_LIST(decileBucket)) AS decileMonth3
FROM rankings_3
GROUP BY membershipNumber
),
map_6 AS (
SELECT membershipNumber,
MAP_FROM_ARRAYS(COLLECT_LIST(loyaltyStatus), COLLECT_LIST(decileBucket)) AS decileMonth6
FROM rankings_6
GROUP BY membershipNumber
),
all_memberships AS (
SELECT DISTINCT _profilefoundationreportingstg.membershipNumber AS membershipNumber FROM airline_loyalty_data
)
SELECT STRUCT(
all_memberships.membershipNumber AS membershipNumber,
STRUCT(
map_1.decileMonth1 AS decileMonth1,
map_3.decileMonth3 AS decileMonth3,
map_6.decileMonth6 AS decileMonth6
) AS decilesMileage
) AS _profilefoundationreportingstg
FROM all_memberships
LEFT JOIN map_1 ON (all_memberships.membershipNumber = map_1.membershipNumber)
LEFT JOIN map_3 ON (all_memberships.membershipNumber = map_3.membershipNumber)
LEFT JOIN map_6 ON (all_memberships.membershipNumber = map_6.membershipNumber)
}
Query-revisie
Secties van de voorbeeldquery worden hieronder nader onderzocht.
Termijnen voor opzoeken
Het gegevenstype decile bevat een emmertje voor 1, 3, 6, 9, 12, en levenlookbacks. De vraag gebruikt de raadplegingsperiodes van 1, 3, en 6 maanden, zodat zal elke sectie sommige "herhaalde"vragen bevatten om tijdelijke lijsten voor elke raadplegingsperiode tot stand te brengen.
decileMonthAll
.Samenvoeging
Gebruik algemene tabelexpressies (CTE) om de kilometerstand samen te voegen voordat u decile-emmers maakt. Dit levert de totale mijl voor een specifieke terugkijkperiode. CTEs bestaat tijdelijk en is slechts bruikbaar binnen het werkingsgebied van de grotere vraag.
summed_miles_1 AS (
SELECT _profilefoundationreportingstg.membershipNumber AS membershipNumber,
_profilefoundationreportingstg.loyaltyStatus AS loyaltyStatus,
SUM(_profilefoundationreportingstg.mileage) AS totalMiles
FROM airline_loyalty_data
WHERE _profilefoundationreportingstg.transactionDate < (MAKE_DATE(YEAR(CURRENT_DATE), MONTH(CURRENT_DATE), 1) - MAKE_YM_INTERVAL(0, 0))
GROUP BY 1,2
)
Het blok wordt tweemaal herhaald in de sjabloon (summed_miles_3
en summed_miles_6
) met een wijziging in de datumberekening om de gegevens voor de andere terugzoekperioden te genereren.
Het is belangrijk om van de identiteit, de afmeting, en metrische kolommen voor de vraag nota te nemen (membershipNumber
, loyaltyStatus
en totalMiles
respectievelijk).
Rangschikking
Met Deciles kunt u categoriale bucketing uitvoeren. Als u het rangschikkingsnummer wilt maken, NTILE
functie wordt gebruikt met een parameter van 10
binnen een VENSTER gegroepeerd door de loyaltyStatus
veld. Dit resulteert in een rangorde van 1 tot 10. Stel de ORDER BY
bepaling van de WINDOW
tot DESC
om ervoor te zorgen dat een 1
wordt gegeven aan grootste binnen de dimensie.
rankings_1 AS (
SELECT membershipNumber,
loyaltyStatus,
totalMiles,
NTILE(10) OVER (PARTITION BY loyaltyStatus ORDER BY totalMiles DESC) AS decileBucket
FROM summed_miles_1
)
Kaartaggregatie
Met veelvoudige raadplegingsperiodes, moet u de decile emmer kaarten vooraf tot stand brengen gebruikend MAP_FROM_ARRAYS
en COLLECT_LIST
functies. In het voorbeeldfragment: MAP_FROM_ARRAYS
maakt een kaart met twee toetsen (loyaltyStatus
) en waarden (decileBucket
). COLLECT_LIST
retourneert een array met alle waarden in de opgegeven kolom.
map_1 AS (
SELECT membershipNumber,
MAP_FROM_ARRAYS(COLLECT_LIST(loyaltyStatus), COLLECT_LIST(decileBucket)) AS decileMonth1
FROM rankings_1
GROUP BY membershipNumber
)
Unieke identiteiten
De lijst met unieke identiteiten (membershipNumber
) is vereist om een unieke lijst met alle lidmaatschappen te maken.
all_memberships AS (
SELECT DISTINCT _profilefoundationreportingstg.membershipNumber AS membershipNumber FROM airline_loyalty_data
)
membershipNumber
kan worden uitgevoerd in de laatste stap.Alle tijdelijke gegevens samenvoegen
De laatste stap bestaat uit het samenvoegen van alle tijdelijke gegevens in een formulier dat identiek is aan de structuur van de streepjes in de veldgroep.
SELECT STRUCT(
all_memberships.membershipNumber AS membershipNumber,
STRUCT(
map_1.decileMonth1 AS decileMonth1,
map_3.decileMonth3 AS decileMonth3,
map_6.decileMonth6 AS decileMonth6
) AS decilesMileage
) AS _profilefoundationreportingstg
FROM all_memberships
LEFT JOIN map_1 ON (all_memberships.membershipNumber = map_1.membershipNumber)
LEFT JOIN map_3 ON (all_memberships.membershipNumber = map_3.membershipNumber)
LEFT JOIN map_6 ON (all_memberships.membershipNumber = map_6.membershipNumber)
Als slechts levengegevens beschikbaar zijn, zou uw vraag als volgt verschijnen:
SELECT STRUCT(
rankings.membershipNumber AS membershipNumber,
STRUCT(
MAP_FROM_ARRAYS(COLLECT_LIST(loyaltyStatus), COLLECT_LIST(decileBucket)) AS decileMonthAll
) AS decilesMileage
) AS _profilefoundationreportingstg
FROM rankings
GROUP BY rankings.membershipNumber
Een correlatie tussen het rangschikkende aantal en percentiel wordt gewaarborgd in de vraagresultaten wegens het gebruik van deciles. Elke rang is gelijk aan 10%, zodat het identificeren van een publiek dat op top 30% wordt gebaseerd slechts ranks 1, 2, en 3 hoeft te richten.
De querysjabloon uitvoeren
Stel de vraag in werking om de decile dataset te bevolken. U kunt de vraag als malplaatje ook bewaren en het plannen om bij een kadentie te lopen. Als de query als een sjabloon wordt opgeslagen, kan deze ook worden bijgewerkt met het patroon voor maken en invoegen dat verwijst naar het table_exists
gebruiken. Meer informatie over het gebruik van de table_exists
kan worden gevonden in SQL-syntaxishandleiding.
Volgende stappen
Het bovenstaande voorbeeld gebruikt benadrukt stappen om op decile-gebaseerde afgeleide datasets beschikbaar te maken in het Profiel van de Klant in real time. Dit staat voor de Dienst van de Segmentatie, of via een gebruikersinterface of RESTful API, toe om publiek te kunnen produceren dat op deze decile emmers wordt gebaseerd. Zie de Overzicht van segmentatieservice voor informatie over om, segmenten tot stand te brengen te evalueren en toegang te hebben.