Freigeben über


Geschachtelte Tabellen (Analysis Services – Data Mining)

In SQL Server Analysis Services müssen Daten in Form einer Reihe von Fällen, die in einer Falltabelle enthalten sind, an einen Data-Mining-Algorithmus übertragen werden. Allerdings können nicht alle Fälle durch eine einzelne Datenzeile beschrieben werden. Ein Fall kann beispielsweise aus zwei Tabellen abgeleitet werden: einer Tabelle, die Kundeninformationen enthält, und einer anderen Tabelle, die Kundenkäufe enthält. Ein einzelner Kunde in der Tabelle "Kundeninformationen" enthält möglicherweise mehrere Elemente in der Tabelle "Kundenkäufe", wodurch es schwierig ist, die Daten mithilfe einer einzelnen Zeile zu beschreiben. Analysis Services bietet eine eindeutige Methode für die Behandlung dieser Fälle mithilfe geschachtelter Tabellen. Das Konzept einer geschachtelten Tabelle wird in der folgenden Abbildung veranschaulicht.

Zwei Tabellen kombiniert mit einer geschachtelten Tabelle

In diesem Diagramm enthält die erste Tabelle, die die übergeordnete Tabelle ist, Informationen zu Kunden und ordnet jedem Kunden einen eindeutigen Bezeichner zu. Die zweite Tabelle, die untergeordnete Tabelle, enthält die Einkäufe für jeden Kunden. Die Käufe in der untergeordneten Tabelle beziehen sich auf die übergeordnete Tabelle durch den eindeutigen Bezeichner, die Spalte "CustomerKey ". Die dritte Tabelle im Diagramm zeigt die beiden kombinierten Tabellen.

Eine geschachtelte Tabelle wird in der Falltabelle als spezielle Spalte dargestellt, die einen Datentyp von TABLE aufweist. Bei einer bestimmten Fallzeile enthält diese Art von Spalte ausgewählte Zeilen aus der untergeordneten Tabelle, die zur übergeordneten Tabelle gehören.

Die Daten in einer geschachtelten Tabelle können für die Vorhersage oder für Eingaben oder für beides verwendet werden. Beispielsweise verfügen Sie möglicherweise über zwei geschachtelte Tabellenspalten in einem Modell: eine geschachtelte Tabellenspalte kann eine Liste der Produkte enthalten, die ein Kunde erworben hat, während die andere geschachtelte Tabellenspalte Informationen zu den Hobbys und Interessen des Kunden enthält, die möglicherweise aus einer Umfrage abgerufen wurden. In diesem Szenario könnten Sie die Hobbys und Interessen des Kunden als Eingabe für die Analyse des Einkaufsverhaltens und die Vorhersage wahrscheinlicher Einkäufe verwenden.

Verknüpfen von Falltabellen und geschachtelten Tabellen

Um eine geschachtelte Tabelle zu erstellen, müssen die beiden Quelltabellen eine definierte Beziehung enthalten, damit die Elemente in einer Tabelle mit der anderen Tabelle verknüpft werden können. In SQL Server Data Tools (SSDT) können Sie diese Beziehung in der Datenquellenansicht definieren.

Hinweis

Das CustomerKey-Feld ist der relationale Schlüssel, der verwendet wird, um die Falltabelle und die geschachtelte Tabelle in der Definition der Datenquellenansicht zu verknüpfen und die Beziehung der Spalten innerhalb der Miningstruktur festzulegen. In der Regel sollten Sie diesen relationalen Schlüssel jedoch nicht in Miningmodellen verwenden, die auf dieser Struktur basieren. In der Regel ist es am besten, die relationale Schlüsselspalte aus dem Miningmodell auszulassen, wenn sie nur zum Verknüpfen der Tabellen dient und keine Informationen bereitstellt, die für die Analyse interessant sind.

Sie können geschachtelte Tabellen programmgesteuert erstellen, indem Sie Data Mining-Erweiterungen (ANALYSIS Management Objects, AMO) oder den Data Mining-Assistenten und Data Mining-Designer in SQL Server Data Tools (SSDT) verwenden.

Verwenden von geschachtelten Tabellenspalten in einem Miningmodell

In der Falltabelle ist der Schlüssel häufig eine Kunden-ID, ein Produktname oder datum in einer Datenreihe: Daten, die eine Zeile in der Tabelle eindeutig identifizieren. . In geschachtelten Tabellen ist der Schlüssel in der Regel jedoch nicht der relationale Schlüssel (oder Fremdschlüssel), sondern die Spalte, die das zu modellierte Attribut darstellt.

Wenn die Haupttabelle beispielsweise Bestellungen enthält und die geschachtelte Tabelle Elemente der Bestellung enthält, möchten Sie die Beziehung zwischen Elementen modellieren, die in der geschachtelten Tabelle in mehreren Bestellungen gespeichert sind, welche wiederum in der Haupttabelle abgelegt sind. Daher sollten Sie "OrderID" nicht als Schlüssel der geschachtelten Tabelle verwenden, obwohl die geschachtelte Tabelle "Items" durch den relationalen Schlüssel "OrderID" mit der Falltabelle "Orders" verknüpft ist. Stattdessen würden Sie die Spalte "Elemente " als geschachtelten Tabellenschlüssel auswählen, da diese Spalte die Daten enthält, die Sie modellieren möchten. In den meisten Fällen können Sie OrderID im Miningmodell sicher ignorieren, da die Beziehung zwischen der Falltabelle und der geschachtelten Tabelle bereits von der Datenquellenansichtsdefinition eingerichtet wurde.

Wenn Sie eine Spalte auswählen, die als geschachtelter Tabellenschlüssel verwendet werden soll, müssen Sie sicherstellen, dass die Werte in dieser Spalte für jeden Fall eindeutig sind. Wenn die Falltabelle beispielsweise Kunden darstellt und die geschachtelte Tabelle Artikel darstellt, die vom Kunden erworben wurden, müssen Sie sicherstellen, dass pro Kunde kein Element mehr als einmal aufgeführt wird. Wenn ein Kunde dasselbe Element mehrmals erworben hat, können Sie eine andere Ansicht erstellen, die eine Spalte enthält, die die Anzahl der Einkäufe für jedes einzelne Produkt aggregiert.

Wie Sie sich entscheiden, doppelte Werte in einer geschachtelten Tabelle zu behandeln, hängt vom Miningmodell ab, das Sie erstellen, und von dem geschäftsproblem, das Sie lösen. In einigen Szenarien ist ihnen möglicherweise nicht wichtig, wie oft ein Kunde ein bestimmtes Produkt erworben hat, aber auf das Vorhandensein mindestens eines Kaufs prüfen möchte. In anderen Szenarien kann die Menge und Reihenfolge der Einkäufe sehr wichtig sein.

Wenn die Reihenfolge der Elemente wichtig ist, benötigen Sie möglicherweise eine zusätzliche Spalte, die die Sequenz angibt. Wenn Sie den Sequenzclusteringalgorithmus zum Erstellen eines Modells verwenden, müssen Sie eine zusätzliche Schlüsselabfolgespalte auswählen, um die Reihenfolge der Elemente darzustellen. Die Schlüsselabfolgespalte ist eine spezielle Art geschachtelter Schlüssel, die nur in Sequenzclusteringmodellen verwendet wird und einen eindeutigen numerischen Datentyp erfordert. Beispielsweise können ganze Zahlen und Datumswerte beide als Schlüsselsequenzspalte verwendet werden, aber alle Sequenzwerte müssen eindeutig sein. Zusätzlich zur Schlüsselsequenzspalte verfügt ein Sequenzclustermodell auch über einen geschachtelten Tabellenschlüssel, der das zu modellierende Attribut darstellt, z. B. die erworbenen Produkte.

Verwenden von nicht-schlüsselbezogenen geschachtelten Spalten aus einer geschachtelten Tabelle

Nachdem Sie die Verknüpfung zwischen der Falltabelle und der geschachtelten Tabelle definiert haben und eine Spalte ausgewählt haben, die interessante und eindeutige Attribute enthält, die als geschachtelter Tabellenschlüssel verwendet werden sollen, können Sie andere Spalten aus der geschachtelten Tabelle einschließen, die als Eingabe für das Modell verwendet werden sollen. Alle Spalten aus der geschachtelten Tabelle können für die Eingabe, die Vorhersage und die Eingabe oder nur für die Vorhersage verwendet werden.

Wenn die geschachtelte Tabelle beispielsweise die Spalten Produkt, Produktmenge und Produktpreis enthält, können Sie Produkt als verschachtelten Tabellenschlüssel auswählen, aber Produktmenge zur Miningstruktur hinzufügen, die als Eingabe verwendet werden soll.

Filtern von geschachtelten Tabellendaten

In SQL Server 2014 können Sie Filter für die Daten erstellen, die zum Trainieren oder Testen eines Data Mining-Modells verwendet werden. Ein Filer kann verwendet werden, um die Zusammensetzung des Modells zu beeinflussen, oder um das Modell in einer Teilmenge von Fällen zu testen. Filter können auch auf geschachtelte Tabellen angewendet werden. Es gibt jedoch Einschränkungen für die Syntax, die mit geschachtelten Tabellen verwendet werden kann.

Häufig wenden Sie einen Filter auf eine geschachtelte Tabelle an, die Sie auf das Vorhandensein oder Nichtexistenz eines Attributs testen. Sie können z. B. einen Filter anwenden, der die im Modell verwendeten Fälle auf die Fälle beschränkt, die einen angegebenen Wert in der geschachtelten Tabelle aufweisen. Oder Sie können die im Modell verwendeten Fälle auf Kunden beschränken, die keinen bestimmten Artikel erworben haben.

Wenn Sie Filter für eine geschachtelte Tabelle erstellen, können Sie auch Operatoren wie größer oder kleiner verwenden. Sie können beispielsweise die im Modell verwendeten Fälle auf Kunden beschränken, die mindestens n Einheiten des Zielprodukts erworben haben. Die Möglichkeit zum Filtern nach geschachtelten Tabellenattributen bietet eine hohe Flexibilität beim Anpassen von Modellen.

Weitere Informationen zum Erstellen und Verwenden von Modellfiltern finden Sie unter Filters for Mining Models (Analysis Services - Data Mining).For more information about how to create and use model filters, see Filters for Mining Models (Analysis Services - Data Mining).

Siehe auch

Data Mining-Algorithmen (Analysis Services - Data Mining)
Miningstrukturen (Analysis Services - Data Mining)