Поделиться через


OPENROWSET (расширения интеллектуального анализа данных)

Заменяет запрос источника данных на запрос к внешнему поставщику. Инструкции INSERT, SELECT FROM PREDICTION JOIN и SELECT FROM NATURAL PREDICTION JOIN поддерживают OPENROWSET. Дополнительные сведения о синтаксисе для отдельных поставщиков см. в разделе OPENROWSET (Transact-SQL).

Синтаксис

OPENROWSET(provider_name,provider_string,query_syntax)

Аргументы

  • provider_name
    Имя поставщика OLE DB.

  • provider_string
    Строка соединения OLE DB для определенного поставщика.

  • query_syntax
    Синтаксис запроса, возвращающего набор строк.

Замечания

Можно установить свойство сервера служб Analysis Services для поддержки нерегламентированных запросов с помощью OPENROWSET, однако вместо этого рекомендуется использовать OPENQUERY. С помощью OPENQUERY можно определять, к каким источникам данных пользователи имеют доступ, поскольку пользователи с OPENROWSET потенциально могут просматривать таблицу базы данных, не связанную с задачами интеллектуального анализа данных.

Если включены нерегламентированные запросы OPENROWSET, следует ограничить набор поставщиков, которые могут использоваться для установления соединения с сервером и базой данных, указав идентификатор поставщика. Дополнительные сведения см. в разделе Свойства интеллектуального анализа данных.

Точный синтаксис OPENROWSET зависит от указанного поставщика. Обычно поставщик интеллектуального анализа данных устанавливает соединение с исходным объектом данных с помощью аргументов provider_name и provider_string, и выполняет запрос, указанный в аргументе query_syntax, для получения набора строк из исходных данных.

Примеры

В следующем примере показана инструкция PREDICTION JOIN, которая получает данные из таблицы ProspectiveBuyers базы данных AdventureWorksDW2008, используя инструкцию Transact-SQL SELECT, и прогнозирует кластер для каждого нового клиента.

Идентификатор пользователя DMUser служит именем входа SQL, которому предоставляются разрешения только для чтения на таблицу данных, используемую для хранения данных о новых клиентах. Заметьте, что пароли в OPENROWSET записываются открытым текстом, что представляет угрозу безопасности. Вместо этого рекомендуется использовать OPENQUERY и защитить реляционные источники данных, указав минимальный из возможных уровней доступа.

Первые три поля предложения SELECT инструкции OPENROWSET не используются моделью для составления прогноза, но они полезны для определения клиентов. Все столбцы, используемые в прогнозировании, необходимо сопоставить с входными столбцами модели. Для этого их нужно добавить в предложение 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]

Результаты примера.