Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
SQL Server 2019 e versioni precedenti di Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Importante
Il data mining è stato deprecato in SQL Server 2017 Analysis Services e ora è stato sospeso in SQL Server 2022 Analysis Services. La documentazione non viene aggiornata per le funzionalità deprecate e non più disponibili. Per altre informazioni, vedere Compatibilità con le versioni precedenti di Analysis Services.
In SQL Server SQL Server Analysis Services i dati devono essere inseriti in un algoritmo di data mining come una serie di casi contenuta in una tabella di casi. Tuttavia, non tutti i casi possono essere descritti da una singola riga di dati. Ad esempio, un caso può essere derivato da due tabelle: una tabella che contiene informazioni sui clienti e un'altra tabella contenente gli acquisti dei clienti. Un singolo cliente nella tabella delle informazioni sui clienti potrebbe avere più elementi nella tabella acquisti del cliente, che rende difficile descrivere i dati usando una singola riga. SQL Server Analysis Services fornisce un metodo univoco per la gestione di questi casi, usando tabelle nidificate. Il concetto di tabella nidificata è illustrato nella figura seguente.
In questo diagramma la prima tabella, ovvero la tabella padre, contiene informazioni sui clienti e associa un identificatore univoco per ogni cliente. La seconda tabella, la tabella figlio, contiene gli acquisti per ogni cliente. Gli acquisti nella tabella figlio sono correlati alla tabella padre in base all'identificatore univoco, la colonna CustomerKey . La terza tabella nel diagramma mostra le due tabelle combinate.
Una tabella nidificata viene rappresentata nella tabella del case come colonna speciale con un tipo di dati TABLE. Per qualsiasi riga del caso specifico, questo tipo di colonna contiene righe selezionate dalla tabella figlia relative alla tabella madre.
I dati in una tabella nidificata possono essere usati sia per la predizione che per l'input, o per entrambi. Ad esempio, in un modello potrebbero essere presenti due colonne di tabella nidificate: una colonna di tabella nidificata potrebbe contenere un elenco dei prodotti acquistati da un cliente, mentre l'altra colonna della tabella nidificata contiene informazioni sugli hobby e sugli interessi del cliente, possibilmente ottenuti da un sondaggio. In questo scenario, è possibile usare gli hobby e gli interessi del cliente come input per analizzare il comportamento di acquisto e stimare gli acquisti probabili.
Unione di tabelle di casi e tabelle nidificate
Per creare una tabella nidificata, le due tabelle di origine devono contenere una relazione definita in modo che gli elementi di una tabella possano essere correlati all'altra tabella. In SQL Server Data Tools è possibile definire questa relazione nella vista origine dati.
Annotazioni
Il campo CustomerKey è la chiave relazionale utilizzata per collegare la tabella dei casi e la tabella nidificata all'interno della definizione della vista della fonte dati e per stabilire la relazione delle colonne all'interno della struttura di data mining. Tuttavia, in genere non è consigliabile usare questa chiave relazionale nei modelli di data mining basati su tale struttura. In genere è consigliabile omettere la colonna chiave relazionale dal modello di data mining se serve solo per unire le tabelle e non fornisce informazioni interessanti per l'analisi.
È possibile creare tabelle nidificate a livello di codice utilizzando le Data Mining Extensions (DMX) o gli Analysis Management Objects (AMO), oppure è possibile utilizzare la Creazione guidata Data Mining e il Progettazione modelli di Data Mining in SQL Server Data Tools.
Utilizzo di colonne di tabella nidificate in un modello di data mining
Nella tabella del caso, la chiave è spesso un ID cliente, un nome di prodotto o una data in una serie: dati che identificano in modo univoco una riga nella tabella. . Nelle tabelle nidificate, tuttavia, la chiave non è in genere la chiave relazionale (o la chiave esterna) ma piuttosto la colonna che rappresenta l'attributo che si sta modellando.
Ad esempio, se la tabella dei casi contiene ordini e la tabella nidificata contiene elementi negli ordini, è necessario modellare la relazione tra gli elementi archiviati nella tabella nidificata in più ordini, archiviati nella tabella dei casi. Pertanto, anche se la tabella nidificata Items viene unita alla tabella case Orders dalla chiave relazionale OrderID, non dovresti usare OrderID come chiave della tabella nidificata. È invece necessario selezionare la colonna Items come chiave della tabella nidificata, poiché la colonna contiene i dati che si desidera modellare. Nella maggior parte dei casi, è possibile ignorare in modo sicuro OrderID nel modello di mining, perché la relazione tra la tabella dei casi e la tabella nidificata è già stata stabilita dalla definizione della vista dell'origine dati.
Quando si sceglie una colonna da usare come chiave della tabella nidificata, è importante assicurarsi che i valori in tale colonna siano univoci per ogni caso. Ad esempio, se la tabella dei casi rappresenta i clienti e la tabella nidificata rappresenta gli elementi acquistati dal cliente, è necessario assicurarsi che nessun elemento sia elencato più di una volta per cliente. Se un cliente ha acquistato lo stesso articolo più volte, è possibile creare una visualizzazione diversa con una colonna che aggrega il conteggio degli acquisti per ogni prodotto univoco.
Il modo di gestire i valori duplicati in una tabella nidificata dipende dal modello di data mining che stai creando e dal problema aziendale che stai risolvendo. In alcuni scenari potrebbe non interessare quante volte un cliente ha acquistato un determinato prodotto, ma si vuole verificare l'esistenza di almeno un acquisto. In altri scenari, la quantità e la sequenza di acquisti potrebbero essere molto importanti.
Se l'ordine degli elementi è importante, potrebbe essere necessaria una colonna aggiuntiva che indica la sequenza. Quando si usa l'algoritmo sequence clustering per creare un modello, è necessario scegliere una colonna di sequenza di chiavi aggiuntiva per rappresentare l'ordine degli elementi. La colonna della sequenza di chiavi è un tipo speciale di chiave annidata usata solo nei modelli sequence clustering e richiede un tipo di dati numerico univoco. Ad esempio, i numeri interi e le date possono essere usati entrambi come colonna della sequenza di chiavi, ma tutti i valori di sequenza devono essere univoci. Oltre alla colonna di sequenza chiave, un modello di clustering delle sequenze ha anche una chiave di tabella nidificata che rappresenta l'attributo che viene modellato, ad esempio i prodotti acquistati.
Uso di colonne annidate non chiave da una tabella nidificata
Dopo aver definito il join tra la tabella dei casi e la tabella nidificata e aver scelto una colonna che contiene attributi interessanti e univoci come chiave della tabella nidificata, è possibile includere altre colonne della tabella nidificata come input per il modello. Tutte le colonne della tabella nidificata possono essere utilizzate per input, previsione e input, o solo per previsione.
Ad esempio, se la tabella nidificata contiene le colonne Product, ProductQuantity e ProductPrice, è possibile scegliere Product come chiave di tabella nidificata, ma aggiungere ProductQuantity alla struttura di data mining da usare come input.
Filtrare i dati della tabella nidificata
In SQL Server 2017 è possibile creare filtri sui dati usati per eseguire il training o il test di un modello di data mining. Un filtro può essere usato per influire sulla composizione del modello o per testare il modello in un subset di case. I filtri possono essere applicati anche alle tabelle nidificate. Esistono tuttavia limitazioni sulla sintassi che è possibile usare con le tabelle nidificate.
Spesso quando si applica un filtro a una tabella nidificata, si esegue il test dell'esistenza o della nonesistenza di un attributo. Ad esempio, è possibile applicare un filtro che limita i casi usati nel modello solo per i casi con un valore specificato nella tabella nidificata. In alternativa, è possibile limitare i casi usati nel modello ai clienti che non hanno acquistato un determinato articolo.
Quando si creano filtri in una tabella nidificata, è anche possibile usare operatori come maggiore di o minore di. Ad esempio, è possibile limitare i casi usati nel modello ai clienti che avevano acquistato almeno n unità del prodotto target. La possibilità di filtrare gli attributi delle tabelle annidate offre una grande flessibilità nella personalizzazione dei modelli.
Per altre informazioni su come creare e usare filtri di modello, vedere Filtri per i modelli di data mining (Analysis Services - Data mining).
Vedere anche
Algoritmi di Data Mining (Analysis Services - Data Mining)
Strutture di Data Mining (Analysis Services - Data Mining)