Tworzenie modeli wyszukiwania danych
Ostrzeżenie
Ta funkcja zostanie usunięta z następnej wersji programu Microsoft SQL Server. Nie należy stosować tej funkcji w nowych projektach oraz jak najszybciej należy zmodyfikować aplikacje, w których obecnie jest używana ta funkcja.
Aby utworzyć nową relacyjnymi bazami danych OLAP lub model wyszukiwania programowo przy użyciu Decision Support Objects (DSO), wykonaj następujące czynności:
Połącz się z miejsce docelowe serwer analiz i wybierz bazę danych z MDStores zbiór Server obiektu.
Utwórz nowe dane model wyszukiwania obiektu za pomocą MiningModels kolekcja Database obiekt z odpowiednią SubClassType dla relacyjnej lub dane OLAP model wyszukiwania.
Jeśli to konieczne, należy utworzyć i przypisać model wyszukiwania ról do nowego relacyjnej lub OLAP model wyszukiwania obiektu.
Ustawianie właściwości potrzebne dla relacyjnej lub OLAP model wyszukiwania obiektu.W poniższej tabela przedstawiono różnice właściwości wymaganych dla relacyjnej i modelami wyszukiwanie danych OLAP.
Właściwość
model wyszukiwania OLAP
Relacyjnemodel wyszukiwania
CaseDimension
Definiuje przypadek wymiar przez model wyszukiwania.
Nie używane.
CaseLevel
Definiuje poziom przypadek przypadek wymiar przez model wyszukiwania.Właściwość tylko do odczytu, identyfikuje najniższy poziom w wymiarze, w których kolumna danych górnictwo model ma jego IsDisabled Właściwość zestaw na False.
Nie używane.
Description
Przyjazny opis danych zawiera model wyszukiwania.
Przyjazny opis danych zawiera model wyszukiwania.
FromClause
Nie używane.
Definiuje tabela przypadek w postaci klauzula FROM, przez model wyszukiwania.
JoinClause
Nie używane.
Definiuje wszystkie tabele pomocnicze w postaci klauzula JOIN, przez model wyszukiwania.
MiningAlgorithm
Definiuje dostawca algorytmu wyszukiwanie danych, takich jak Microsoft_Decision_Trees lub Microsoft_Clustering, używane przez oba typy modeli wyszukiwanie danych.
Definiuje dostawca algorytmu wyszukiwanie danych, takich jak Microsoft_Decision_Trees lub Microsoft_Clustering, używane przez oba typy modeli wyszukiwanie danych.
SourceCube
Definiuje moduł OLAP, przez model wyszukiwania w dane szkolenia.
Nie używane.
SubClassType
Jest zestaw do sbclsOlap po MiningModel tworzony jest obiekt.
Jest zestaw do sbclsRelational po MiningModel tworzony jest obiekt.
TrainingQuery
Definiuje kwerendy wyrażeń wielowymiarowych (MDX), używane do wstawiania danych szkolenia do danych model wyszukiwania.W większości przypadków ta właściwość jest pusta; DSO będzie skonstruować kwerendę odpowiednie szkolenie, jeśli ta właściwość nie jest używana.
Definiuje kwerendy wyrażeń wielowymiarowych (MDX), używane do wstawiania danych szkolenia do danych model wyszukiwania.W większości przypadków ta właściwość jest pusta; DSO będzie skonstruować kwerendę odpowiednie szkolenie, jeśli ta właściwość nie jest używana.
Utwórz nowe dane model wyszukiwania kolumna w Columns kolekcja MiningModel obiektu.
Ustawianie właściwości wymagane dla nowych danych model wyszukiwania kolumna.W poniższej tabela przedstawiono różnice między niezbędne kolumna właściwości dla relacyjnej i modelami wyszukiwanie danych OLAP.
Właściwość
model wyszukiwania OLAP
Relacyjnemodel wyszukiwania
DataType
Definiuje typ danych oczekiwanych kolumna wyszukiwanie danych.
Definiuje typ danych oczekiwanych kolumna wyszukiwanie danych.
Description
Przyjazny opis danych zawiera model wyszukiwania kolumna.
Przyjazny opis danych zawiera model wyszukiwania kolumna.
ContentType
Powinien zawierać wartość z kolumna SUPPORTED_CONTENT_TYPES MINING_SERVICES zestaw wierszy schematu.Na przykład, jeśli kolumna zawiera dane tekstowe, który odpowiadał zakresy dochodu dla klientów ContentType byłoby właściwość zestaw do DYSKRETNYCH w celu odzwierciedlenia discrete wyceny danych.Jeżeli z drugiej kolumna zawarte rzeczywiste wynagrodzenia, właściwość spowodowałoby zestaw CIĄGŁE lub DISCRETIZED, zależnie od możliwości dostawca algorytmu wyszukiwanie danych.
Powinien zawierać wartość z kolumna SUPPORTED_CONTENT_TYPES MINING_SERVICES zestaw wierszy schematu.Na przykład, jeśli kolumna zawiera dane tekstowe, który odpowiadał zakresy dochodu dla klientów ContentType byłoby właściwość zestaw do DYSKRETNYCH w celu odzwierciedlenia discrete wyceny danych.Jeżeli z drugiej kolumna zawarte rzeczywiste wynagrodzenia, właściwość spowodowałoby zestaw CIĄGŁE lub DISCRETIZED, zależnie od możliwości dostawca algorytmu wyszukiwanie danych.
IsKey
Nie używane.Ta właściwość jest tylko do odczytu i jest automatycznie zestaw na wartość True dla najniższego poziom włączone przypadek wymiary określone w CaseDimension właściwość modelu górniczych.
Definiuje kolumny klucz dla danych model wyszukiwania.Aby określić kolumna klucz przypadek zestaw jest wartość True.
IsInput
Definiuje kolumny wprowadzania danych model wyszukiwania.Zestaw kolumn pokrewnych, zmiana IsInput jednej z kolumn właociwooci automatycznie zmienia właściwość innych powiązanych kolumn.
Definiuje kolumny wprowadzania danych model wyszukiwania.Zestaw kolumn pokrewnych, zmiana IsInput jednej z kolumn właociwooci automatycznie zmienia właściwość innych powiązanych kolumn.
IsPredictable
Definiuje przewidywalne kolumn danych model wyszukiwania.kolumna może mieć zarówno IsInput i IsPredictable zestaw True.Zestaw kolumn pokrewnych, zmiana IsPredictable jednej z kolumn właociwooci automatycznie zmienia właściwość innych powiązanych kolumn.
Definiuje przewidywalne kolumn danych model wyszukiwania.kolumna może mieć zarówno IsInput i IsPredictable zestaw True.Zestaw kolumn pokrewnych, zmiana IsPredictable jednej z kolumn właociwooci automatycznie zmienia właściwość innych powiązanych kolumn.
IsDisabled
Definiuje kolumn, które mają być używane w analizie danych model wyszukiwania.
Definiuje kolumn, które mają być używane w analizie danych model wyszukiwania.
Distribution
Ta właściwość jest używana w celu zoptymalizowania model wyszukiwania przez nadanie model wyszukiwania algorytm pewne wskazania statystycznych charakteru danych kolumna.Wartości tej właściwość powinna pochodzić z SUPPORTED_DISTRIBUTION_FLAGS z MINING_SERVICES zestaw zestaw wierszy schematu.
Ta właściwość jest używana w celu zoptymalizowania model wyszukiwania przez nadanie model wyszukiwania algorytm pewne wskazania statystycznych charakteru danych kolumna.Wartości tej właściwość powinna pochodzić z SUPPORTED_DISTRIBUTION_FLAGS z MINING_SERVICES zestaw zestaw wierszy schematu.
SourceOlapObject
Wartość tej właściwość jest obiektem wewnątrz moduł OLAP.Na przykład, właściwość ta może zawierać obiektu poziom DSO lub DSO właściwość elementu członkowskiego obiektu.
Nie używane.
SourceColumn
Nie używane.
Wartość tej właściwość jest w pełni kwalifikowana nazwa pole przypadek lub uzupełniających tabela danych model wyszukiwania.
Istnieją inne różnice w sposób obsługi właściwości kolumna między OLAP i modeli relacyjnych.Aby uzyskać więcej informacji o danych model wyszukiwania kolumn, zobacz clsColumn.
Zapisz model wyszukiwania obiektu za pomocą Update metoda.
Aby opcjonalnie szkolić wyszukiwania modelu danych nowo utworzony, powinny używane następujące dodatkowe kroki.Chociaż nowe dane model wyszukiwania nie muszą być przetworzone, dane model wyszukiwania nie może być przeglądany, aż do ukończenia przetwarzania.
Zablokuj model wyszukiwania obiektu za pomocą olapLockProcess flagi.
Pociąg model wyszukiwania obiektu za pomocą Process metoda.
Odblokowywanie model wyszukiwania obiektu.
Blokowanie danych model wyszukiwania podczas przetwarzania uniemożliwia dostęp przez innych użytkowników do model wyszukiwania jest odblokowany, poprawy wydajności podczas kształcenia model wyszukiwania oraz zapewnienie utrzymania integralność repozytorium.
Tworzenie modelu wyszukiwania danych OLAP
Poniższy kod ilustruje tworzenie danych OLAP model wyszukiwania, wykonaj czynności opisane we wcześniejszej części tego tematu, który próbuje przewidzieć zakres wynagrodzenia odbiorcy w Sales Kostka FoodMart 2000 bazy danych oparte na płeć, stan cywilny i edukacji.
W przeciwieństwie do procesu tworzenia modelu górnictwa w relacyjnej bazie danych, strukturę kolumn jest pobierana bezpośrednio z moduł źródłowy określonych w SourceCube właściwość obiektu modelu górniczych.Aby określić, które kolumny mają zostać przetworzone przez wyszukiwanie danych modelu obiektów kolumny przechowywanych w Columns kolekcja obiektu model wyszukiwania mogą być zmieniane.IsDisabled Właściwość określa, które kolumna mają być używane jako część analizy, podczas gdy IsInput i IsPredictive Właściwości każdego obiektu kolumna zestaw, aby określić zachowanie kolumna, w tym, czy będzie służyć jako dane wejściowe, przewidywanych, lub kolumna danych wejściowych i przewidywanych model wyszukiwania.
Ponieważ struktura OLAP wyszukiwanie danych model rysowania ze struktury moduł źródłowy, wszystkie obiekty OLAP źródło używane przez model wyszukiwania musi być widoczna dla modelu górniczych.Muszą być spełnione następujące wymagania:
moduł źródłowy Musi być widoczna.
przypadek wymiar musi być widoczna.
SourceOlapObject Musi zawierać właściwość dla każdej kolumna wyszukiwanie danych obiektu OLAP widoczne źródło.
Ten przykładowy kod tworzy i przetwarza dane OLAP model wyszukiwania o nazwie CustSalesModelOLAP, w zależności od moduł Sprzedaż z FoodMart 2000 bazy danych, które analizuje wynagrodzenia dla klientów opartych na płeć, stan cywilny i edukacji:
Public Sub CreateOLAPMiningModel()
Dim dsoServer As New DSO.Server
Dim dsoDB As DSO.MDStore
Dim dsoDMM As DSO.MiningModel
Dim dsoColumn As DSO.Column
Dim dsoRole As DSO.Role
' Constants used for DataType property
' of the DSO.Column object.
' Note that these constants are identical to
' those used in ADO in the DataTypeEnum enumeration.
Const adInteger = 3
Const adWChar = 130
' Connect to the server on this computer.
dsoServer.Connect "LocalHost"
' Select the FoodMart 2000 database.
Set dsoDB = dsoServer.MDStores("FoodMart 2000")
' Check for the existence of the model on this computer.
If Not dsoDB.MiningModels("CustSalesModelOLAP") Is Nothing Then
' If this model exists, delete it.
dsoDB.MiningModels.Remove "CustSalesModelOLAP"
End If
' Create a new OLAP mining model
' called CustSalesModelOLAP.
Set dsoDMM = dsoDB.MiningModels.AddNew("CustSalesModelOLAP", _
sbclsOlap)
' Create a new mining model role called All Users
Set dsoRole = dsoDMM.Roles.AddNew("All Users")
' Set the needed properties for the new mining model.
With dsoDMM
.DataSources.AddNew "FoodMart", sbclsRegular
' Set the description of the model.
.Description = "Analyzes the salaries " & _
"of customers"
' Select the algorithm provider for the model.
.MiningAlgorithm = "Microsoft_Decision_Trees"
' Set the source cube for the model to the Sales cube.
.SourceCube = "Sales"
' Set the case dimension for the model to the
' Customers shared dimension.
.CaseDimension = "Customers"
' Let DSO define the training query.
.TrainingQuery = ""
' Let DSO add the cube structure to the
' data mining model structure, automatically
' creating needed data mining model columns.
.Update
End With
' Set the column properties pertinent to the new model.
' Note that, when columns are automatically added to
' the model in this fashion, the are disabled. You
' must choose which columns are to be enabled
' before you can process the
' model, and at least one column must be enabled,
' or an error will result.
' Enable the Name column. As this column is the
' lowest enabled level on the Customers case dimension,
' it becomes the case level for the data mining model.
Set dsoColumn = dsoDMM.Columns("Name")
dsoColumn.IsDisabled = False
' Enable the Gender column as an input column.
Set dsoColumn = dsoDMM.Columns("Gender")
dsoColumn.IsInput = True
dsoColumn.IsDisabled = False
' Enable the Marital Status column as an input column.
Set dsoColumn = dsoDMM.Columns("Marital Status")
dsoColumn.IsInput = True
dsoColumn.IsDisabled = False
' Enable the Education column as an input column.
Set dsoColumn = dsoDMM.Columns("Education")
dsoColumn.IsInput = True
dsoColumn.IsDisabled = False
' Enable the Unit Sales column as a predictable column.
Set dsoColumn = dsoDMM.Columns("Yearly Income")
dsoColumn.IsPredictable = True
dsoColumn.IsDisabled = False
' Save the data mining model.
With dsoDMM
' Set the LastUpdated property of the new mining model
' to the present date and time.
.LastUpdated = Now
' Save the model definition.
.Update
End With
' Process the data mining model.
With dsoDMM
' Lock the mining model for processing
.LockObject olapLockProcess, _
"Processing the data mining model in sample code"
' Fully process the new mining model.
' This may take up to several minutes.
.Process processFull
' Unlock the model after processing is complete.
.UnlockObject
End With
' Clean up objects and close server connection
Set dsoRole = Nothing
Set dsoColumn = Nothing
Set dsoDMM = Nothing
dsoServer.CloseServer
Set dsoServer = Nothing
End Sub
Tworzenie modelu wyszukiwania danych relacyjnych
Proces tworzenia danych relacyjnych model wyszukiwania jest podobny do procesu tworzenia danych OLAP model wyszukiwania, wymienionych wcześniej w tym temacie.Główna różnica między tymi dwoma inny niż typ danych modelu będzie przetwarzać, jest obsługa danych model wyszukiwania kolumny.W przeciwieństwie do danych OLAP model wyszukiwania, danych relacyjnych model wyszukiwania nie narysować jej struktury bezpośrednio ze przypadek i obsługi tabel.Natomiast każda kolumna ręcznie jest utworzone i zdefiniowane.Poniższy przykład kodu pokazuje różnicę w tworzeniu danych relacyjnych model wyszukiwania , tworząc model wyszukiwania , duplikaty analizy danych OLAP model wyszukiwania utworzony wcześniej.
Tego duplikowania jest projekt, aby nadać bezpośrednie porównanie różnice strukturalne między OLAP i relacyjnymi bazami danych model wyszukiwania.
Poniższy kod ilustruje tworzenie CustSalesModelRel w relacyjnej bazie danych model wyszukiwania , analizuje wynagrodzenia dla klientów w Customer Tabela oparta na płeć, stan cywilny i edukacji w FoodMart 2000 bazy danych:
Public Sub CreateRelMiningModel()
Dim dsoServer As New DSO.Server
Dim dsoDB As DSO.MDStore
Dim dsoDS As DSO.DataSource
Dim dsoDMM As DSO.MiningModel
Dim dsoColumn As DSO.Column
Dim dsoRole As DSO.Role
Dim strLQuote As String, strRQuote As String
Dim strFromClause As String
' Constants used for DataType property
' of the DSO.Column object.
' Note that these constants are identical to
' those used in ADO in the DataTypeEnum enumeration.
Const adInteger = 3
Const adWChar = 130
' Connect to the server on this computer.
dsoServer.Connect "LocalHost"
' Select the FoodMart 2000 database.
Set dsoDB = dsoServer.MDStores("FoodMart 2000")
' Retrieve the open and close quote characters for
' the FoodMart data source.
strLQuote = dsoDB.DataSources("FoodMart").OpenQuoteChar
strRQuote = dsoDB.DataSources("FoodMart").CloseQuoteChar
' The Customer table is the fact table for this
' relational data mining model; this variable will
' make it easier to understand the code that
' follows.
strFromClause = strLQuote & "customer" & strRQuote
' Check for the existence of the model on this computer.
If Not dsoDB.MiningModels("CustSalesModelRel") Is Nothing Then
' If this model exists, delete it.
dsoDB.MiningModels.Remove "CustSalesModelRel"
End If
' Create a new relational mining model
' called CustSalesModelRel.
Set dsoDMM = dsoDB.MiningModels.AddNew("CustSalesModelRel", _
sbclsRelational)
' Create a new mining model role called All Users
Set dsoRole = dsoDMM.Roles.AddNew("All Users")
' Set the needed properties for the new mining model.
With dsoDMM
.DataSources.AddNew "FoodMart", sbclsRegular
' Set the description of the model.
.Description = "Analyzes the salaries " & _
"of customers"
' Set the case table for the model to the
' Customer table.
.FromClause = strFromClause
' Select the algorithm provider for the model.
.MiningAlgorithm = "Microsoft_Decision_Trees"
' Let DSO define the training query.
.TrainingQuery = ""
' Save the existing structure.
.Update
End With
' Create the columns pertinent to the new model.
' Create the CustomerID column as a key column.
Set dsoColumn = dsoDMM.Columns.AddNew("CustomerID", _
sbclsRegular)
' Set the column properties for the new column.
With dsoColumn
' Set the source field from the case table for
' the column.
.SourceColumn = strFromClause & "." & strLQuote & _
"customer_id" & strRQuote
.DataType = adInteger
.IsKey = True
.IsDisabled = False
End With
' Create the Gender column as an attribute column.
Set dsoColumn = dsoDMM.Columns.AddNew("Gender", _
sbclsRegular)
With dsoColumn
.ContentType = "DISCRETE"
.SourceColumn = strFromClause & "." & strLQuote & _
"gender" & strRQuote
.DataType = adWChar
.IsDisabled = False
End With
' Create the Marital Status column as an attribute column.
Set dsoColumn = dsoDMM.Columns.AddNew("Marital Status", _
sbclsRegular)
With dsoColumn
.ContentType = "DISCRETE"
.SourceColumn = strFromClause & "." & strLQuote & _
"marital_status" & strRQuote
.DataType = adWChar
.IsDisabled = False
End With
' Create the Education column as an attribute column.
Set dsoColumn = dsoDMM.Columns.AddNew("Education", _
sbclsRegular)
With dsoColumn
.ContentType = "DISCRETE"
.SourceColumn = strFromClause & "." & strLQuote & _
"education" & strRQuote
.DataType = adWChar
.IsDisabled = False
End With
' Create the Yearly Income column as an predictable column.
Set dsoColumn = dsoDMM.Columns.AddNew("Yearly Income", _
sbclsRegular)
With dsoColumn
.ContentType = "DISCRETE"
.SourceColumn = strFromClause & "." & strLQuote & _
"yearly_income" & strRQuote
.DataType = adWChar
.IsInput = False
.IsPredictable = True
.IsDisabled = False
End With
' Save the data mining model.
With dsoDMM
' Set the LastUpdated property of the new mining model
' to the present date and time.
.LastUpdated = Now
' Save the model definition.
.Update
End With
' Process the data mining model.
With dsoDMM
' Lock the mining model for processing
.LockObject olapLockProcess, _
"Processing the data mining model in sample code"
' Fully process the new mining model.
' This may take up to several minutes.
.Process processFull
' Unlock the model after processing is complete.
.UnlockObject
End With
' Clean up objects and close server connection
Set dsoRole = Nothing
Set dsoColumn = Nothing
Set dsoDMM = Nothing
dsoServer.CloseServer
Set dsoServer = Nothing
End Sub