Adobe Experience Platform Query Service stöder FLATTEN
ställa in vid anslutning till en databas via BI-verktyg från tredje part. Den här funktionen förenklar kapslade datastrukturer i BI-verktyg från tredje part för att förbättra deras användbarhet och minska den arbetsbelastning som krävs för att hämta, analysera, omvandla och rapportera data.
Många BI-verktyg som Tableau och Power BI stöder inte kapslade datastrukturer. The FLATTEN
inställning tar bort behovet av att skapa SQL-vyer ovanpå dina data för att tillhandahålla en platt version, eller för att använda frågetjänsten CTAS
eller INSERT INTO
jobb för att duplicera datauppsättningar till platta versioner när du använder ad hoc-scheman.
The FLATTEN
inställning hämtar strukturen för varje bladfält till tabellens rot och ger fältet namn efter det ursprungliga namnutrymmet. Detta gör att du kan använda punktnotation för att matcha ett fält med dess XDM-sökväg (Experience Data Model) samtidigt som fältets kontext bevaras.
Använda FLATTEN
För inställningen krävs en fungerande förståelse av följande komponenter i Adobe Experience Platform:
XDM-system: Översikt över XDM och dess implementering i Experience Platform.
Sandlådor: Experience Platform tillhandahåller virtuella sandlådor som partitionerar en enda plattformsinstans i separata virtuella miljöer för att utveckla och utveckla program för digitala upplevelser.
Kapslade datastrukturer: Det här dokumentet innehåller exempel på hur du skapar, bearbetar eller omformar datauppsättningar med komplexa datatyper, inklusive kapslade datastrukturer.
The FLATTEN
När du anger förenklas kapslade datastrukturer till separata kolumner där attributnamnet blir det kolumnnamn som innehåller radvärdena. När du arbetar med data i BI-verktyg som inte har stöd för kapslade datastrukturer, förbättrar den här inställningen användbarheten för ad hoc-scheman och minskar den nödvändiga arbetsbelastningen.
Lägg till FLATTEN
till databasnamnet. Mer information om hur du ansluter ett specifikt BI-verktyg finns i respektive dokumentation i ansluta klienter till frågetjänsten - översikt. Anslutningssträngen ska innehålla:
all
eller ett specifikt datauppsättnings-ID, vy-ID eller databasnamn.FLATTEN
nyckelord.Indata ska ha följande format:
{sandbox_name}:{all/ID/database_name}?FLATTEN
En exempelanslutningssträng kan se ut så här:
prod:all?FLATTEN
Det exempelschema som används i den här guiden använder standardfältgruppen Commerce Details, som använder commerce
objektstruktur och productListItems
array. Läs XDM-dokumentationen för mer information om Commerce Details fältgrupp. En representation av schemastrukturen visas i bilden nedan.
Om ditt BI-verktyg inte stöder kapslade datastrukturer kan det vara svårt att referera till kapslade fält om de innehåller serialiserade värden (till exempel commerce
och productListItems
i exempelschemat). Dessa värden kan visas som delar av en enda kodad commerce
strängfält och är inte realistiskt oanvändbara.
Följande värden representerar commerce.order.priceTotal
(3018.0), commerce.order.purchaseID
(c9b5aff9-25de-450b-98f4-4484a2170180), och commerce.purchases.value
(1.0) i dåligt formaterade kapslade fält.
("(3018.0,c9b5aff9-25de-450b-98f4-4484a2170180)","(1.0)")
Genom att använda FLATTEN
kan du komma åt separata fält i schemat eller hela avsnitt i den kapslade datastrukturen genom att använda punktnotation och deras ursprungliga sökvägsnamn. Ett exempel på det här formatet med commerce
fältgruppen anges nedan.
commerce.order.priceTotal
commerce.order.purchaseID
commerce.purchases.value
The FLATTEN
-inställningen har vissa begränsningar när den hanterar andra datastrukturer. Fullständig information finns i begränsningsavsnitt.
De förenklade rotfälten använder nu punktnotation för att matcha sina XDM-sökvägar. När de används i en fråga måste fälten omges av citattecken (" ").
I SQL-exemplet nedan visas det ursprungliga läget för den kapslade frågan:
SELECT YEAR(timestamp) AS year,
SUM(commerce.order.priceTotal) AS revenue
FROM purchase_events_dataset
WHERE commerce.purchases.value > 0
GROUP BY 1;
När du använder de förenklade datafälten skrivs frågan med punktnotation och omsluts av citattecken enligt nedan:
SELECT YEAR(timestamp) AS year,
SUM("commerce.order.priceTotal") AS revenue
FROM purchase_events_dataset
WHERE "commerce.purchases.value" > 0
GROUP BY 1;
The FLATTEN
-inställningen förenklar för närvarande inte följande datastrukturer:
Datastruktur | Begränsning |
---|---|
Arrayer | Använd ett explicit matrisindex eller EXPLODE -funktion för att komma åt arrayer. |
Kartor | Använd strängnyckeln för att komma åt ett värde under en karta för att komma åt kartor. |
Om du vill lösa både mappnings- och matrisbegränsningar måste du använda BI-verktygen för SQL-redigering, som de avancerade alternativen -> SQL-satsen i Power BI.
BI-verktyg som rå SQL-redigering krävs för att lösa både mappnings- och matrisbegränsningar. Se guiden om hur man använda avancerade alternativ för Power BI för att ange en anpassad SQL-fråga i SQL-satsavsnittet.
I det här dokumentet beskrivs hur du förenklar kapslade datastrukturer för användning med BI-verktyg från tredje part. Om du inte redan har anslutit klienten kan du läsa Översikt över klientanslutningen för en lista över tredjepartsklienter som stöds.