Share via


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 例外狀況。

範例

覆寫分割區的 ConnectionStringQueryDefinition

{
  "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 為此命令產生現成的腳本。 例如,您可以按一下 [處理] 對話方塊中的 [ 腳本 ]。