Condividi tramite


OPENROWSET (DMX)

Sostituisce la query sui dati dell'origine con una query su un provider esterno. Le istruzioni INSERT, SELECT FROM PREDICTION JOIN e SELECT FROM NATURAL PREDICTION JOIN supportano OPENROWSET. Per ulteriori informazioni sulla sintassi per provider specifici, vedere OPENROWSET (Transact-SQL).

Sintassi

OPENROWSET(provider_name,provider_string,query_syntax)

Argomenti

  • provider_name
    Nome di un provider OLE DB.

  • provider_string
    Stringa di connessione OLE DB per il provider specificato.

  • query_syntax
    Sintassi di una query che restituisce un set di righe.

Osservazioni

È possibile impostare una proprietà sul server Analysis Services per abilitare query ad hoc utilizzando OPENROWSET. Si consiglia tuttavia di utilizzare OPENQUERY in quanto, tramite OPENQUERY, è possibile controllare le origini dati alle quali gli utenti possono accedere, mentre con OPENROWSET gli utenti hanno la libertà di visualizzare le tabelle di database che non sono correlate ad attività di data mining.

Se si sceglie di abilitare query OPENROWSET ad hoc, è necessario limitare i provider che possono essere utilizzati per creare un'istanza di una connessione al server e al database specificando un ID di provider. Per ulteriori informazioni, vedere Proprietà di data mining.

La sintassi esatta di OPENROWSET dipende dal provider specificato. In generale, il provider di data mining stabilisce una connessione all'oggetto origine dati utilizzando provider_name e provider_string, ed esegue la query specificata in query_syntax per recuperare il set di righe dall'origine dati.

Esempi

Nell'esempio seguente viene mostrata un'istruzione PREDICTION JOIN che consente di recuperare dei dati dalla tabella ProspectiveBuyers del database AdventureWorksDW2008 tramite un'istruzione SELECT Transact-SQL e consente di stimare un cluster per ogni nuovo cliente.

L'ID utente, DMUser, è un account di accesso SQL dotato di autorizzazioni di sola lettura sulla tabella utilizzata per archiviare i nuovi clienti. Notare che in OPENROWSET le password sono presentate in testo non crittografato e pertanto presentano un problema di protezione. Si consiglia quindi di utilizzare OPENQUERY e di proteggere le origini dati relazionali con il livello di accesso più basso possibile.

I primi tre campi nella clausola SELECT dell'istruzione OPENROWSET non sono utilizzati dal modello per la stima, ma sono utili per l'identificazione dei clienti. Qualsiasi colonna utilizzata per la stima deve essere mappata a colonne di input nel modello aggiungendole alla clausola ON.

SELECT
  t.[ProspectiveBuyerKey], t.[LastName], t.[FirstName],
  Cluster()
FROM
  [TM_Clustering]
PREDICTION JOIN
  OPENROWSET('SQLOLEDB','localhost';'DMUser';'&IZqw3x&',
    'SELECT
      [ProspectiveBuyerKey], [FirstName],[LastName],
      [MaritalStatus],
      [Gender],
      [YearlyIncome],
      [TotalChildren],
      [NumberChildrenAtHome],
      [HouseOwnerFlag],
      [NumberCarsOwned]
    FROM
      [AdventureWorksDW2008].[dbo].[ProspectiveBuyer]
    ') AS t
ON
  [TM_Clustering].[Marital Status] = t.[MaritalStatus] AND
  [TM_Clustering].[Gender] = t.[Gender] AND
  [TM_Clustering].[Yearly Income] = t.[YearlyIncome] AND
  [TM_Clustering].[Total Children] = t.[TotalChildren] AND
  [TM_Clustering].[Number Children At Home] = t.[NumberChildrenAtHome] AND
  [TM_Clustering].[House Owner Flag] = t.[HouseOwnerFlag] AND
  [TM_Clustering].[Number Cars Owned] = t.[NumberCarsOwned]

Risultati dell'esempio: