Share via


OPENROWSET (DMX)

Remplace la requête de données source par une requête vers un fournisseur externe. Les instructions INSERT, SELECT FROM PREDICTION JOIN et SELECT FROM NATURAL PREDICTION JOIN prennent en charge OPENROWSET. Pour plus d'informations sur la syntaxe pour des fournisseurs spécifiques, consultez OPENROWSET (Transact-SQL).

Syntaxe

OPENROWSET(provider_name,provider_string,query_syntax)

Arguments

  • provider_name
    Nom d'un fournisseur OLE DB

  • provider_string
    Chaîne de connexion OLE DB pour le fournisseur spécifié.

  • query_syntax
    Syntaxe de requête qui retourne un ensemble de lignes.

Notes

Vous pouvez définir une propriété sur le serveur Analysis Services pour activer des requêtes ad hoc en utilisant OPENROWSET. Il est toutefois conseillé d'utiliser plutôt OPENQUERY. En utilisant OPENQUERY, vous pouvez contrôler les sources de données auxquelles les utilisateurs ont accès, comme les utilisateurs avec OPENROWSET peuvent éventuellement afficher une table de base de données sans relation avec les tâches d'exploration de données.

Si vous choisissez d'activer des requêtes OPENROWSET ad hoc, vous devez limiter les fournisseurs qui peuvent être utilisés pour instancier une connexion au serveur et à la base de données en spécifiant un ID de fournisseur. Pour plus d'informations, consultez Propriétés de l'exploration de données.

La syntaxe exacte d'OPENROWSET dépend du fournisseur que vous avez spécifié. En général, le fournisseur d'exploration de données établit une connexion à l'objet source de données en utilisant les arguments provider_name et provider_string,, puis exécute la requête spécifiée dans query_syntax pour récupérer l'ensemble de lignes des données sources.

Exemples

L'exemple suivant illustre une instruction PREDICTION JOIN qui récupère des données de la table ProspectiveBuyers de la base de données AdventureWorksDW2008 en utilisant une instruction SELECT Transact-SQL et prédit un cluster pour chaque nouveau client.

L'ID d'utilisateur, DMUser, est une connexion SQL qui dispose d'autorisations d'accès en lecture seule sur la table de données utilisée pour le stockage de nouveaux clients. Notez que les mots de passe s'affichent en texte en clair dans OPENROWSET et présentent par conséquent un risque pour la sécurité. Nous conseillons d'utiliser plutôt OPENQUERY et de sécuriser les sources de données relationnelles avec le niveau d'accès le plus bas possible.

Les trois premiers champs de la clause SELECT de l'instruction OPENROWSET ne sont pas utilisés par le modèle de prédiction, mais sont utiles pour identifier les clients. Toutes les colonnes utilisées pour la prédiction doivent être mappées sur les colonnes d'entrée du modèle en les ajoutant à la clause 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]

Résultats de l'exemple :