Refresh 命令 (TMSL)
適用于:SQL Server 2016 和更新版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium
處理目前資料庫中的物件。
除非您使用Sequence 命令 (TMSL) 進行節流,否則重新整理一律會以平行方式執行。
您可以在資料重新整理作業期間覆寫某些物件的某些屬性:
變更Partition物件的QueryDefinition屬性,以使用即時篩選運算式匯入資料。
在DataSource物件的ConnectionString屬性中,提供資料來源認證作為Refresh命令的一部分。 此方法可視為更安全,因為會提供認證並暫時用於作業期間,而不是儲存。
- 覆寫預設的 Power BI 語意模型累加式重新整理原則。
如需這些屬性覆寫的圖例,請參閱本主題中的範例。
注意
與多維度處理不同,表格式處理沒有特殊處理錯誤。
要求
重新 整理會採用類型參數和物件定義。
{
"refresh": {
"description": "Parameters of Refresh command of Analysis Services JSON API",
"properties": {
"type": {
"enum": [
"full",
"clearValues",
"calculate",
"dataOnly",
"automatic",
"add",
"defragment"
]
},
"objects": [
類型參數會在處理作業上設定範圍。
重新整理類型 | 適用於 | Description |
---|---|---|
完整 | 資料庫 表 分割區 |
在指定分割區、資料表或資料庫中的所有分割區內,重新整理資料並重新計算所有相依性。 若是計算分割區,請重新計算分割區和所有相依性。 |
clearValues | 資料庫 表 分割區 |
清除此物件及其所有相依性中的值。 |
計算 | 資料庫 表 分割區 |
重新計算此物件及其所有的相依性,但是只有在需要時進行。 除了動態公式之外,此值不會強制重新計算。 |
dataOnly | 資料庫 表 分割區 |
重新整理此物件中的資料,並清除所有相依性。 |
automatic | 資料庫 表 分割區 |
如果物件需要重新整理與重新計算,請重新整理並重新計算物件,以及其所有的相依性。 若分割區處於 Ready 以外的狀態,則適用。 |
add | 分割區 | 將資料附加至此分割區,並重新計算所有相依性。 只有在一般分割區而非計算分割區時,此命令才有效。 |
整理 | 資料庫 資料表 |
重組指定資料表中的資料。 當從資料表中新增或移除資料時,每個資料行字典可能被不再存在於實際資料行值的值所干擾。 重組選項將會清除字典中不再使用的值。 |
您可以重新整理下列物件:
資料庫物件 (TMSL) 處理資料庫。
{
"refresh": {
"type": "automatic",
"objects": [
{
"database": "AdventureWorksTabular1200"
}
]
}
}
TABLES 物件 (TMSL) 處理單一資料表。
{
"refresh": {
"type": "automatic",
"objects": [
{
"database": "AdventureWorksTabular1200",
"table": "Date"
}
]
}
}
TMSL) (Partitions 物件 處理資料表內的單一資料分割。
{
"refresh": {
"type": "automatic",
"objects": [
{
"database": "AdventureWorksTabular1200",
"table": "FactSalesQuota",
"partition": "FactSalesQuota"
},
{
"database": "AdventureWorksTabular1200",
"table": "FactSalesQuota",
"partition": "FactSalesQuota - 2011"
}
]
}
}
選擇性參數
針對 Power BI 語意模型,可以將下列參數新增至 TMSL 重新整理命令,以覆寫預設累加式重新整理行為:
applyRefreshPolicy - 如果資料表已定義累加式重新整理原則,applyRefreshPolicy 會判斷是否已套用此原則。 如果未套用此原則,則處理完整作業會將資料分割定義保留不變,而且會完整重新整理資料表中的所有資料分割。 預設值為 true。
effectiveDate - 如果套用累加式重新整理原則,其必須知道目前的日期,以判斷歷程記錄範圍和累加式範圍的滾動時段範圍。 effectiveDate 參數可讓您覆寫目前的日期。 這適用於測試、示範和商務案例,其中資料會以累加方式重新整理至過去或未來的日期 (例如,未來的預算)。 預設值是目前日期。
{
"refresh": {
"type": "full",
"applyRefreshPolicy": true,
"effectiveDate": "12/31/2013",
"objects": [
{
"database": "IR_AdventureWorks",
"table": "FactInternetSales"
}
]
}
}
下表顯示 當 applyRefreshPolicy 為 true 時的影響, (包含累加式重新整理原則之資料表的每個重新整理類型的預設) :
重新整理類型 | 影響 |
---|---|
完整 | 原則會套用,如 Power BI 中的累加式重新整理中所述。 假設先前的重新整理作業已經建立歷程記錄資料分割,此處會說明摘要: - 如有需要,會將新的分割區新增至累加範圍。 - 如果未定義 pollingExpression 來偵測資料變更,累加範圍中的所有分割區都會完整重新整理。 - 如果已定義 pollingExpression,則會針對累加範圍中的每個資料分割進行評估。 相較于先前的重新整理作業,只傳回不同輪詢結果的重新整理結果會完整重新整理。 - 不論是否已清除資料,歷程記錄資料分割都不會重新整理。 - 刪除超出範圍的歷史分割區。 - 重新計算受影響的分割區和相依專案。 |
clearValues | applyRefreshPolicy 不會影響行為。 |
計算 | applyRefreshPolicy 不會影響行為。 |
dataOnly | 與 type=full 相同,但未重新計算受影響的分割區和相依專案。 |
automatic | 與 type=full 相同,但累加範圍中的資料分割會使用 type=automatic 重新整理。 |
add | applyRefreshPolicy 不會影響行為。 |
整理 | applyRefreshPolicy 不會影響行為。 |
回應
當命令成功時,傳回空的結果。 否則會傳回 XMLA 例外狀況。
範例
覆寫分割區的 ConnectionString 和 QueryDefinition 。
{
"refresh": {
"type": "dataOnly",
"objects": [
{
"database": "AdventureWorksDW2017",
"table": "DimCustomer"
}
],
"overrides": [
{
"dataSources": [ // Bindings for DataSources
{
"originalObject": {
"database": "AdventureWorksDW2017",
"dataSource": "SqlServer localhost"
},
"connectionString": "Provider=SQLNCLI11.1;Data Source=.;Persist Security Info=True;User ID=YourSQLLogin;Password=YourPassword;Initial Catalog=AdventureWorksDW2017"
}
],
"partitions": [ // Bindings for Partitions
{
"originalObject": {
"database": "AdventureWorksDW2017",
"table": "DimCustomer",
"partition": "DimCustomer"
},
"source": {
"query": "SELECT * FROM [dbo].[DimCustomer]"
}
}
]
}
]
}
}
將類型參數設定為 dataOnly 重新整理,以限定特定覆寫的範圍,中繼資料會保持不變。
{
"refresh": {
"type": "dataOnly",
"objects": [
{
"database": "TMTestDB",
"table": "Customer"
},
{
"database": "TMTestDB",
"table": "Sales"
}
],
"overrides": [
{
"scope": {
"database": "TMTestDB",
"table": "Sales"
},
"dataSources": [
{
"originalObject": {
"dataSource": "SqlServer sqlcldb2 AS_foodmart_2000"
},
"connectionString": "Provider=SQLNCLI11;Data Source=sqlcldb2;Initial Catalog=AS_foodmart_2000;Integrated Security=SSPI;Persist Security Info=false"
}
]
}
]
}
}
使用量 (端點)
此命令元素用於 Execute 方法的語句中, (XMLA) 透過 XMLA 端點呼叫,以下列方式公開:
SQL SERVER MANAGEMENT STUDIO (SSMS) 中的 XMLA 視窗
作為 invoke-ascmd PowerShell Cmdlet 的輸入檔
作為 SSIS 工作或SQL Server Agent作業的輸入
您可以從 SSMS 為此命令產生現成的腳本。 例如,您可以按一下 [處理] 對話方塊中的 [ 腳本 ]。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應