OPENROWSET (DMX)
以對外部提供者的查詢取代來源資料查詢。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 陳述式,此陳述式會使用 Transact-SQL SELECT 陳述式從 AdventureWorksDW2008 資料庫的 ProspectiveBuyers 資料表中擷取資料,並為每一個新的客戶預測叢集。
使用者識別碼 DMUser 是一個 SQL 登入,此登入已經被授與用來儲存新客戶之資料表的唯讀權限。請注意,密碼會以純文字格式呈現在 OPENROWSET 中,因此會有安全性風險。我們建議您改用 OPENQUERY,並使用最低可能的存取層級來維護關聯式資料來源的安全。
此模型不會使用 OPENROWSET 陳述式之 SELECT 子句中的前三個欄位來進行預測,但是這些欄位對於識別客戶非常有用。用於預測的任何資料行都必須新增到 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]
範例結果: