數據採礦服務和數據源
適用於: SQL Server 2019 和舊版 Analysis Services Azure Analysis Services Fabric/Power BI Premium
重要
SQL Server 2017 Analysis Services 中已淘汰數據採礦,現在已在 SQL Server 2022 Analysis Services 中停止。 檔不會更新為已淘汰和已停止的功能。 若要深入瞭解,請參閱 Analysis Services 回溯相容性。
數據採礦需要連線到 SQL Server Analysis Services 的實例。 數據採礦不需要來自 Cube 的數據,而且建議使用關係型來源;不過,數據採礦會使用 SQL Server Analysis Services 引擎所提供的元件。
本主題提供連線到 SQL Server SQL Server Analysis Services 實例以建立、處理、部署或查詢數據採礦模型時必須知道的資訊。
數據採礦服務
MICROSOFT SQL Server SQL Server Analysis Services 的伺服器元件是 msmdsrv.exe 應用程式,通常會以 Windows 服務的形式執行。 此應用程式包含安全性元件、XML for Analysis (XMLA) 接聽程式元件、查詢處理器元件,以及執行下列功能的其他許多內部元件:
剖析從用戶端收到的語句
管理元數據
處理交易
處理計算
儲存維度和數據格數據
建立匯總
排程查詢
快取物件
管理伺服器資源
XMLA 接聽程式
XMLA 接聽程式元件會處理 SQL Server Analysis Services 與其客戶端之間的所有 XMLA 通訊。 msmdsrv.ini 檔案中的 SQL Server Analysis Services 埠 組態設定可用來指定 SQL Server Analysis Services 實例接聽的埠。 此檔案中的值 0 表示 SQL Server Analysis Services 會接聽預設埠。 除非另有指定,否則 SQL Server Analysis Services 會使用下列預設 TCP 連接埠:
港口 | 描述 |
---|---|
2383 | SQL Server SQL Server Analysis Services 的默認實例。 |
2382 | SQL Server SQL Server Analysis Services 其他實例的重新導向器。 |
在伺服器啟動時動態指派 | SQL Server SQL Server Analysis Services 的具名實例。 |
如需控制此服務所用埠的詳細資訊,請參閱 設定 Windows 防火牆以允許 Analysis Services 存取。
線上到數據源
每當您建立或更新數據採礦結構或模型時,就會使用數據源所定義的數據。 數據源不包含數據,其中可能包含 Excel 活頁簿、文字檔和 SQL Server 資料庫;它只會定義連接資訊。 數據源檢視 (DSV) 會做為該來源頂端的抽象層,修改或對應從來源取得的數據。
本主題的範圍超出描述每個來源的連線需求。 如需詳細資訊,請參閱提供者的檔。 不過,一般而言,在與提供者互動時,您應該注意 Analysis Services 的下列需求:
因為數據採礦是伺服器所提供的服務,SQL Server Analysis Services 實例必須獲得數據源的存取權。 存取有兩個層面:位置和身分識別。
位置 表示,如果您使用只儲存在計算機上的數據來建置模型,然後將模型部署到伺服器,模型將無法處理,因為找不到數據源。 若要解決此問題,您可能需要將數據傳輸到執行 SQL Server Analysis Services 的相同 SQL Server 實例,或將檔案移至共用位置。
身分識別 表示 SQL Server Analysis Services 上的服務必須能夠開啟具有適當認證的數據檔或數據源。 例如,當您建置模型時,可能會有無限制的許可權可檢視數據,但正在處理和更新伺服器上的模型的使用者可能會有有限的或沒有數據存取權,這可能會導致無法處理或影響模型的內容。 至少,用來連線到遠端數據源的帳戶必須具有數據的讀取許可權。
當您移動模型時,會套用相同的需求:您必須設定適當存取舊數據源的位置、複製數據源,或設定新的數據源。 此外,您必須傳輸登入和角色,或設定許可權,以允許在新位置中處理和更新數據採礦物件。
設定許可權和伺服器屬性
數據採礦需要 SQL Server Analysis Services 資料庫的其他許可權。 大部分的數據採礦屬性都可以使用 Analysis Server 屬性對話框 (Analysis Services)來設定。
如需您可以設定之屬性的詳細資訊,請參閱 analysis Services 中的 伺服器屬性。
下列伺服器屬性與資料採礦特別相關:
AllowAdHocOpenRowsetQueries 控制直接載入伺服器記憶體空間之 OLE DB 提供者的臨機操作存取。
重要
若要改善安全性,建議您將此屬性設定為 false。 預設值 false。 不過,即使此屬性設定為 false,使用者仍可繼續建立單一查詢,而且可以在允許的數據源上使用 OPENQUERY。
AllowedProvidersInOpenRowset 指定提供者,如果已啟用臨機操作存取。 您可以輸入以逗號分隔的 ProgID 清單來指定多個提供者。
MaxConcurrentPredictionQueries 控制預測所造成的伺服器上負載。 預設值 0 允許無限制的 SQL Server Enterprise 查詢,以及 SQL Server Standard 的五個並行查詢上限。 超出限制的查詢會串行化,而且可能會逾時。
伺服器提供其他屬性,可控制哪些數據採礦演算法可供使用,包括演算法的任何限制,以及所有數據採礦服務的預設值。 不過,沒有任何設定可讓您特別控制數據採礦預存程式的存取權。 如需詳細資訊,請參閱 資料採礦屬性。
您也可以設定屬性,讓您微調伺服器和控制用戶端使用的安全性。 如需詳細資訊,請參閱 功能屬性。
注意
如需 SQL Server 版本支援外掛程式演演算法的詳細資訊,請參閱 SQL Server 2012 版本支援的
以程式設計方式存取數據採礦物件
您可以使用下列物件模型來建立 Analysis Services 資料庫的連線,並使用數據採礦物件:
ADO 使用 OLE DB 連線到 Analysis Services 伺服器。 當您使用 ADO 時,用戶端會受限於架構資料列集查詢和 DMX 語句。
ADO.NET 比其他提供者更能與 SQL Server 提供者互動。 使用數據配接器來儲存動態數據列集。 使用數據集物件,這是儲存為可更新或儲存為 XML 之數據表之伺服器數據的快取。
ADOMD.NET 優化以處理數據採礦和 OLAP 的 Managed 數據提供者。 ADOMD.NET 比 ADO.NET 更快、更有記憶體效率。 ADOMD.NET 也可讓您擷取伺服器物件的元數據。 建議用於用戶端應用程式,但 .NET 無法使用時除外。
伺服器 ADOMD 物件模型,以直接存取伺服器上的 Analysis Services 物件。 Analysis Services 預存程序使用;不適用於用戶端使用。
AMO Analysis Services 的管理介面,以取代決策支援物件 (DSO)。 反覆運算物件等作業在使用 AMO 時,比使用其他介面時需要更高的許可權。 這是因為 AMO 會直接存取元數據,而 ADOMD.NET 和其他介面只會存取資料庫架構。
瀏覽和查詢伺服器的存取權
您可以使用 OLAP/數據採礦模式中的 Analysis Services 實例來執行各種預測,但有下列限制:
如果您使用伺服器 ADOMD,您可以使用 DMX 來存取伺服器,而不需建立連線。 然後,您可以將結果直接複製到數據表中。 不過,您無法搭配遠端實例使用伺服器 ADOMD;您只能查詢本地伺服器。
ADO.NET 不支持數據採礦的具名參數。 您必須使用 ADOMD.NET。
ADOMD.NET 可讓您傳遞整個數據表以做為 參數;因此,您可以在用戶端上使用數據,或伺服器無法使用的資料。 您也可以使用成形的數據表作為預測輸入。
使用數據採礦預存程式
預存程式的常見用法是封裝查詢以供重複使用。 用戶端可以使用 CALL 來執行預存程式,包括 SQL Server Analysis Services 系統預存程式。
如果程式傳回數據集,則用戶端會收到包含數據列之巢狀數據表的數據集或數據表。 例如,如果您針對模型內容建立查詢,查詢會傳回整個模型。 若要避免帶回太多數據列,您可以使用 ADOMD+ 物件模型來撰寫預存程式。
若要撰寫伺服器預存程式,您必須參考 Microsoft.AnalysisServices.AdomdServer 命名空間。 如需如何建立及使用預存程式的詳細資訊,請參閱
注意
預存程式無法用來變更資料伺服器物件的安全性。 當您執行預存程式時,會使用使用者的目前內容來判斷所有伺服器物件的存取權。 因此,用戶必須具有其存取之任何資料庫對象的適當許可權。
另請參閱
實體架構 (Analysis Services - 多維度數據)
實體架構 (Analysis Services - 數據採礦)
數據採礦方案和物件管理