Beágyazott táblák (Analysis Services – Adatbányászat)

A következőkre vonatkozik: SQL Server 2019 és korábbi Analysis Services Azure Analysis Services Fabric/Power BI Premium

Fontos

Az adatbányászat elavult az SQL Server 2017 Analysis Servicesben, és megszűnt az SQL Server 2022 Analysis Servicesben. Az elavult és megszűnt funkciók dokumentációja nem frissül. További információkért tekintse meg az Analysis Services visszamenőleges kompatibilitását.

Az SQL Server SQL Server Analysis Servicesben az adatokat adatbányászati algoritmusnak kell táplálni egy esettáblában található esetek sorozataként. Azonban nem minden eset írható le egyetlen adatsor alapján. Egy eset például két táblából származhat: egy olyan táblából, amely ügyféladatokat tartalmaz, és egy másik táblából, amely vevői vásárlásokat tartalmaz. Az ügyfélinformációs táblában egyetlen ügyfél több tételt is tartalmazhat az ügyfélvásárlások táblában, ami megnehezíti az adatok egyetlen sor használatával történő leírását. Az SQL Server Analysis Services egy egyedi módszert kínál az esetek kezelésére beágyazott táblák használatával. A beágyazott táblák fogalmát az alábbi ábra szemlélteti.

Két tábla egymásba ágyazott táblázattal kombinálva

Ebben a diagramban az első tábla, amely a szülőtábla, információkat tartalmaz az ügyfelekről, és minden ügyfélhez egyedi azonosítót társít. A második tábla, a gyermektábla az egyes ügyfelek vásárlásait tartalmazza. A gyermektábla vásárlásai a szülőtáblához kapcsolódnak az egyedi azonosító, a CustomerKey oszlop alapján. A diagram harmadik táblázata a két táblázat együttesét mutatja.

A beágyazott tábla a fő táblában egy speciális oszlopként jelenik meg, amelynek adattípusa TABLE. Bármely esetsorban ez az oszloptípus a gyermektábla kijelölt sorait tartalmazza, amelyek a szülőtáblához tartoznak.

A beágyazott táblák adatai felhasználhatók előrejelzéshez, bemenethez vagy mindkettőhöz. Előfordulhat például, hogy egy modellben két beágyazott táblaoszlop található: az egyik beágyazott táblaoszlop az ügyfél által vásárolt termékek listáját, a másik beágyazott táblaoszlop pedig az ügyfél hobbijaival és érdeklődési köreivel kapcsolatos információkat tartalmaz, amelyek esetleg egy felmérésből származnak. Ebben a forgatókönyvben az ügyfél hobbijait és érdeklődési köreit használhatja bemenetként a vásárlási viselkedés elemzéséhez és a valószínű vásárlások előrejelzéséhez.

Esettáblák és beágyazott táblák összekapcsolása

Beágyazott tábla létrehozásához a két forrástáblának definiált kapcsolatot kell tartalmaznia, hogy az egyik tábla elemei kapcsolódhassanak a másik táblához. Az SQL Server Data Toolsban ezt a kapcsolatot az adatforrás nézetben határozhatja meg.

Megjegyzés:

A CustomerKey mező az a relációs kulcs, amellyel az esettáblát és a beágyazott táblát összekapcsolja az adatforrás nézetdefinícióban, valamint a bányászati struktúrában lévő oszlopok kapcsolatának kialakításához. Ezt a relációs kulcsot azonban általában nem érdemes használni az erre a struktúrára épülő bányászati modellekben. Általában a legjobb, ha kihagyja a relációs kulcs oszlopát a bányászati modellből, ha csak a táblák összekapcsolására szolgál, és nem nyújt elemzéshez érdekes információkat.

Beágyazott táblákat programozott módon hozhat létre adatbányászati bővítmények (DMX) vagy Analysis Management Objects (AMO) használatával, vagy használhatja az Adatbányászat varázslót és az adatbányászati tervezőt az SQL Server Data Toolsban.

Beágyazott táblaoszlopok használata bányászati modellben

Az esettáblában a kulcs gyakran ügyfélazonosító, terméknév vagy dátum egy adatsorban: olyan adatok, amelyek egyedileg azonosítják a tábla egy sorát. . Beágyazott táblákban azonban a kulcs általában nem a relációs kulcs (vagy idegen kulcs), hanem a modellezett attribútumot képviselő oszlop.

Ha például az esettábla rendeléseket tartalmaz, és a beágyazott tábla a sorrendben lévő elemeket tartalmazza, akkor a beágyazott táblában tárolt elemek közötti kapcsolat modellezése több megrendelésre is kiterjed, amelyeket az esettáblában tárol. Ezért bár a Elemek beágyazott tábla az OrderID relációs kulcson keresztül kapcsolódik a Rendelések eseti táblához, nem kellene az OrderID azonosítót használni beágyazott táblakulcsként. Ehelyett az Elemek oszlopot jelölné ki beágyazott táblakulcsként, mert ez az oszlop tartalmazza a modellezendő adatokat. A legtöbb esetben nyugodtan figyelmen kívül hagyhatja az OrderID-t az adattárház modellben, mivel az esettábla és a beágyazott tábla közötti kapcsolatot az adatforrás nézet definíciója már létrehozta.

Ha a beágyazott táblakulcsként használni kívánt oszlopot választja ki, győződjön meg arról, hogy az oszlop értékei minden esetben egyediek. Ha például az esettábla ügyfeleket jelöl, a beágyazott tábla pedig az ügyfél által vásárolt elemeket jelöli, akkor győződjön meg arról, hogy egyetlen elem sem szerepel a listán egynél többször ügyfélenként. Ha egy ügyfél több alkalommal vásárolta meg ugyanazt az elemet, érdemes lehet egy másik nézetet létrehozni, amelynek oszlopa összesíti az egyes egyedi termékek vásárlásainak számát.

A beágyazott táblák ismétlődő értékeinek kezelése a létrehozott bányászati modelltől és a megoldandó üzleti problémától függ. Bizonyos esetekben előfordulhat, hogy nem érdekli, hogy egy ügyfél hányszor vásárolt egy adott terméket, de legalább egy vásárlás meglétét szeretné ellenőrizni. Más esetekben a vásárlások mennyisége és sorrendje nagyon fontos lehet.

Ha az elemek sorrendje fontos, szükség lehet egy további oszlopra, amely a sorrendet jelzi. Amikor a sorozatfürtezési algoritmust használja egy modell létrehozásához, ki kell választania egy további kulcsütemezési oszlopot az elemek sorrendjének megjelenítéséhez. A kulcsszekvencia oszlop egy speciális típusú beágyazott kulcs, amelyet csak a szekvencia fürtözési modellekben használnak, és egyedi numerikus adattípust igényel. Például az egész számok és a dátumok egyaránt használhatók kulcsütemezési oszlopként, de minden sorozatértéknek egyedinek kell lennie. A kulcsütemezési oszlop mellett a szekvenciafürtelési modell beágyazott táblakulcsot is tartalmaz, amely a modellezett attribútumot jelöli, például a megvásárolt termékeket.

Beágyazott táblából származó nem kulcsos beágyazott oszlopok használata

Miután definiálta az illesztéseket az esettábla és a beágyazott tábla között, és kiválasztott egy olyan oszlopot, amely érdekes és egyedi attribútumokat tartalmaz beágyazott táblakulcsként, a beágyazott tábla más oszlopait is belefoglalhatja a modell bemeneteként. A beágyazott táblázat összes oszlopa használható bemenethez, előrejelzéshez és bemenethez, vagy csak előrejelzéshez.

Ha például a beágyazott tábla a Product, a ProductQuantity és a ProductPrice oszlopot tartalmazza, akkor a Termék elemet választhatja beágyazott táblakulcsként, de bemenetként a ProductQuantity függvényt is hozzáadhatja a bányászati struktúrához.

Beágyazott táblaadatok szűrése

Az SQL Server 2017-ben szűrőket hozhat létre az adatbányászati modellek betanítása vagy tesztelése során használt adatokon. Szűrővel befolyásolhatja a modell összetételét, vagy tesztelheti a modellt az esetek egy részhalmazán. A szűrők beágyazott táblákra is alkalmazhatók. A beágyazott táblákkal használható szintaxisra azonban korlátozások vonatkoznak.

Gyakran előfordul, hogy szűrőt alkalmaz egy beágyazott táblára, amikor egy attribútum meglétét vagy nem meglétét teszteli. Alkalmazhat például egy szűrőt, amely a modellben használt eseteket csak azokra az esetekre korlátozza, amelyek a beágyazott táblában megadott értékkel rendelkeznek. Vagy korlátozhatja a modellben használt eseteket az olyan ügyfelekre, akik nem vásároltak meg egy adott elemet.

Ha beágyazott táblán hoz létre szűrőket, olyan operátorokat is használhat, mint a nagyobb vagy kisebb. Korlátozhatja például a modellben használt eseteket azokra az ügyfelekre, akik a céltermék legalább n egységét megvásárolták. A beágyazott táblaattribútumokra való szűrés nagy rugalmasságot biztosít a modellek testreszabásához.

A modellszűrők létrehozásáról és használatáról további információt a Bányászati modellek szűrői (Analysis Services – Adatbányászat) című témakörben talál.

Lásd még:

Adatbányászati algoritmusok (Analysis Services – Adatbányászat)
Bányászati struktúrák (Analysis Services – Adatbányászat)