OPENROWSET (DMX)

Reemplaza la consulta de datos de origen por una consulta a un proveedor externo. Las instrucciones INSERT, SELECT FROM PREDICTION JOIN y SELECT FROM NATURAL PREDICTION JOIN admiten OPENROWSET. Para obtener más información sobre la sintaxis de proveedores específicos, vea OPENROWSET (Transact-SQL).

Sintaxis

OPENROWSET(provider_name,provider_string,query_syntax)

Argumentos

  • provider_name
    Nombre de proveedor OLE DB.

  • provider_string
    Cadena de conexión OLE DB para el proveedor especificado.

  • query_syntax
    Sintaxis de consulta que devuelve un conjunto de filas.

Notas

Puede establecer una propiedad en el servidor de Analysis Services para habilitar las consultas ad hoc mediante OPENROWSET. Sin embargo, se recomienda utilizar OPENQUERY en su lugar. Utilizando OPENQUERY, puede controlar los orígenes de datos a los que los usuarios tienen acceso, ya que los usuarios con OPENROWSET podrían ver tablas de la base de datos que no están relacionadas con las tareas de minería de datos.

Si decide habilitar consultas OPENROWSET ad hoc, debe limitar los proveedores que se pueden utilizar para crear instancias de una conexión con el servidor y la base de datos especificando el identificador de un proveedor. Para obtener más información, vea Propiedades de minería de datos.

La sintaxis exacta de OPENROWSET depende del proveedor que haya especificado. En general, el proveedor de minería de datos establece una conexión con el objeto de origen de datos con provider_name y provider_string, y ejecuta la consulta especificada en query_syntax para recuperar el conjunto de filas de los datos de origen.

Ejemplos

En el ejemplo siguiente, se muestra una instrucción PREDICTION JOIN que recupera datos de la tabla ProspectiveBuyers de la base de datos AdventureWorksDW2008 utilizando una instrucción SELECT de Transact-SQL y predice un clúster para cada nuevo cliente.

El identificador de usuario, DMUser, es un inicio de sesión de SQL al que se han concedido permisos de sólo lectura en la tabla de datos utilizada para almacenar nuevos clientes. Tenga en cuenta que las contraseñas se presentan en texto sin cifrar en OPENROWSET y, por consiguiente, presentan un riesgo de seguridad. Es recomendable que use OPENQUERY y que proteja los orígenes de datos relacionales mediante el nivel de acceso más bajo posible.

El modelo no utiliza los tres primeros campos en la cláusula SELECT de la instrucción OPENROWSET para la predicción, pero resultan útiles para identificar a los clientes. Todas las columnas que se utilicen para la predicción se deben asignar a las columnas de entrada del modelo; para ello, se deben agregar a la 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 del ejemplo: