共用方式為


Write-Enabled 維度

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

這項功能將會在下一版的 SQL Server Microsoft中移除。 請避免在新的開發工作中使用此功能,並計劃修改目前使用此功能的應用程式。

維度中的數據通常是唯讀的。 不過,在某些案例中,您可能想要撰寫啟用維度。 在 Microsoft SQL Server SQL Server Analysis Services 中,啟用寫入功能維度可讓商務使用者修改維度的內容,並查看變更對維度階層的立即影響。 任何以單一數據表為基礎的維度都可以進行寫入。 在啟用寫入的維度中,商務使用者和系統管理員可以在維度內變更、移動、新增和刪除屬性成員。 這些更新會統稱為 維度回寫

SQL Server Analysis Services 支援所有維度屬性的維度回寫,而且可以修改維度的任何成員。 對於啟用寫入的 Cube 或分割區,更新會儲存在與 Cube 源數據表分開的回寫數據表中。 不過,針對啟用寫入的維度,更新會直接記錄在維度的數據表中。 此外,如果已啟用寫入的維度包含在具有多個數據分割的 Cube 中,其中的部分或所有數據源都有維度數據表的複本,則回寫程式期間只會更新原始維度數據表。

啟用寫入的維度和啟用寫入的 Cube 具有不同但互補的功能。 啟用寫入的維度可讓商務使用者更新成員,而啟用寫入的 Cube 可讓他們更新數據格值。 雖然這兩個功能互補,但您不需要同時使用這兩個功能。 維度不需要包含在 Cube 中,才會發生維度回寫。 啟用寫入的維度也可以包含在未啟用寫入的 Cube 中。 您可以使用不同的程式來撰寫啟用維度和 Cube,並維護其安全性。

下列限制適用於維度回寫:

  • 當您建立新的成員時,您必須在維度中包含每個屬性。 您無法在未指定維度索引鍵屬性的值的情況下插入成員。 因此,建立成員受限於維度數據表上定義的任何條件約束(例如非 Null 索引鍵值)。

  • 維度回寫僅支援星型架構。 換句話說,維度必須以與事實數據表直接相關的單一維度數據表為基礎。 在寫入啟用維度之後,當您部署至現有的 SQL Server Analysis Services 資料庫或建置 SQL Server Analysis Services 專案時,SQL Server Analysis Services 會驗證這項需求。

回寫維度的任何現有成員都可以修改或刪除。 刪除成員時,刪除會串聯至所有子成員。 例如,在包含 CountryRegion、Province、City 和 Customer 屬性的客戶維度中,刪除國家/地區將會刪除屬於已刪除國家/地區的所有省、市和客戶。 如果國家/地區只有一個省,則刪除該省也會刪除國家/地區。

回寫維度的成員只能在相同的層級內移動。 例如,城市可以移至不同國家/地區或省的 City 層級,但無法將城市移至省或 CountryRegion 層級。 在父子式階層中,所有成員都是分葉成員,因此成員可以移至 (All) 層級以外的任何層級。

如果刪除父子式階層的成員,成員的子系就會移至成員的父系。 已刪除成員上需要關係型數據表的更新許可權,但移動成員上不需要任何許可權。 當應用程式移動父子式階層中的成員時,應用程式可以在 UPDATE 作業中指定成員的子系是與成員一起移動,還是移至成員的父系。 若要以遞歸方式刪除父子式階層中的成員,用戶必須擁有成員和所有成員子系關係型數據表的更新許可權。

注意

父子式階層中父屬性的更新不得包含任何其他屬性或屬性的更新。

維度的所有變更都會修改維度結構。 維度的每個變更都會被視為單一交易,需要累加處理來更新維度結構。 啟用寫入的維度具有與任何其他維度相同的處理需求。

注意

連結維度不支持維度回寫。

安全

唯一可以更新已啟用寫入維度的商務使用者,就是 SQL Server Analysis Services 資料庫角色中已授與維度讀取/寫入許可權的企業使用者。 對於每個角色,您可以控制哪些成員可以且無法更新。 若要讓商務使用者更新已啟用寫入的維度,其用戶端應用程式必須支援這項功能。 對於這類使用者,啟用寫入的維度必須包含在自上次變更維度之後處理的 Cube 中。 如需詳細資訊,請參閱 授權存取物件和作業 (Analysis Services)

系統管理員角色中包含的使用者和群組可以更新已啟用寫入維度的屬性成員,即使維度未包含在 Cube 中也一樣。

另請參閱

資料庫維度屬性
Write-Enabled 分割區
維度 (Analysis Services - 多維度數據)