Compartilhar via


OPENROWSET (DMX)

Substitui uma consulta de dados de origem por uma consulta a um provedor externo. As instruções INSERT, SELECT FROM PREDICTION JOIN e SELECT FROM NATURAL PREDICTION JOIN oferecem suporte a OPENROWSET. Para obter mais informações sobre sintaxes de provedores específicos, consulte OPENROWSET (Transact-SQL).

Sintaxe

OPENROWSET(provider_name,provider_string,query_syntax)

Argumentos

  • provider_name
    Nome de um provedor de OLE DB.

  • provider_string
    Cadeia de caracteres de conexão OLE DB para o provedor especificado.

  • query_syntax
    Sintaxe de consulta que retorna um conjunto de linhas.

Comentários

Você pode definir uma propriedade no servidor Analysis Services para habilitar consultas ad hoc que usam OPENROWSET. No entanto, nós recomendamos o uso de OPENQUERY. Usando OPENQUERY, você pode controlar as fontes de dados às quais os usuários têm acesso, como usuários com OPENROWSET podem potencialmente exibir tabela de banco de dados que não está relacionada a tarefas de mineração de dados.

Se você escolher habilitar consultas OPENROWSET ad hoc, você deverá limitar os provedores que podem ser usados para criar uma instância de uma conexão ao servidor e banco de dados especificando uma ID de provedor. Para obter mais informações, consulte Propriedades de mineração de dados.

A sintaxe exata para OPENROWSET depende do provedor que você especificou. Em geral, o provedor de mineração de dados estabelecerá uma conexão com o objeto da fonte de dados através do uso de provider_name e provider_string,, e executará a consulta especificada em query_syntax para recuperar o conjunto de linhas dos dados de origem.

Exemplos

Os exemplos a seguir mostram uma instrução PREDICTION JOIN que recupera dados da tabela ProspectiveBuyers do banco de dados AdventureWorksDW2008 usando uma instrução SELECT Transact-SQL e prevê um cluster para cada novo cliente.

A ID de usuário, DMUser, é um logon de SQL que recebeu permissões somente leitura na tabela de dados usada para armazenar novos clientes. Observe que as senhas são apresentadas em texto não criptografado em OPENROWSET e, portanto, apresentam um risco de segurança. Nós recomendamos que você use OPENQUERY e proteja as fontes de dados relacionais com o nível de acesso mais baixo possível.

Os três primeiros campos na cláusula SELECT da instrução OPENROWSET não são usados pelo modelo para previsão, mas são úteis para identificar clientes. Todas as colunas que são usadas para previsão devem ser mapeadas para colunas de entrada no modelo adicionando-as à cláusula 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]

Resultados do exemplo: