Comando Refresh (TMSL)Refresh command (TMSL)

Aplica-se a: SQL Server 2016 e posterior Analysis Services Azure Analysis Services Power bi Premium

Processa objetos no banco de dados atual.Processes objects in the current database.
Atualizar sempre é executado em paralelo, a menos que você o limite com o comando de sequência (TMSL).Refresh always runs in parallel unless you throttle it with Sequence command (TMSL).

Você pode substituir algumas propriedades de alguns objetos durante uma operação de atualização de dados:You can override some properties of some objects during a data refresh operation:

  • Altere a propriedade QueryDefinition de um objeto de partição para importar dados usando uma expressão de filtro em tempo real.Change the QueryDefinition property of a Partition object to import data using an on-the-fly filter expression.

  • Forneça as credenciais da fonte de dados como parte de um comando de atualização , na propriedade ConnectionString de um objeto DataSource .Provide data source credentials as part of a Refresh command, in the ConnectionString property of a DataSource object. Essa abordagem pode ser considerada mais segura, pois as credenciais são fornecidas e usadas temporariamente durante a operação, em vez de armazenadas.This approach could be considered more secure, as credentials are provided and used temporarily for the duration of the operation, rather than stored.

  • Substituir a política de atualização incremental do conjunto de Power BI padrão.Override default Power BI dataset incremental refresh policy.

Consulte os exemplos neste tópico para obter uma ilustração dessas substituições de propriedade.See the examples in this topic for an illustration of these property overrides.

Observação

Ao contrário do processamento multidimensional, não há nenhuma manipulação especial de erros de processamento para o processamento tabular.Unlike multidimensional processing, there is no special handling of processing errors for tabular processing.

SolicitaçãoRequest

A atualização usa um parâmetro de tipo e uma definição de objeto.Refresh takes a type parameter and object definition.

    {  
        "refresh": {  
            "description": "Parameters of Refresh command of Analysis Services JSON API",  
            "properties": {  
            "type": {  
                "enum": [  
                "full",  
                "clearValues",  
                "calculate",  
                "dataOnly",  
                "automatic",  
                "add",  
                "defragment"  
                ]  
            },  
            "objects": [  

O parâmetro de tipo define um escopo na operação de processamento.The type parameter sets a scope on the processing operation.

Tipo de atualizaçãoRefresh type Aplica-se aApplies to DescriçãoDescription
completafull BancoDatabase,
TabelaTable,
PartiçãoPartition
Para todas as partições na partição, tabela ou banco de dados especificado, atualize os dados e recalcule todos os dependentes.For all partitions in the specified partition, table, or database, refresh data and recalculate all dependents. Para uma partição de cálculo, recalcule a partição e todos os seus dependentes.For a calculation partition, recalculate the partition and all its dependents.
clearValuesclearValues BancoDatabase,
TabelaTable,
PartiçãoPartition
Limpe os valores nesse objeto e todos os seus dependentes.Clear values in this object and all its dependents.
calculadocalculate BancoDatabase,
TabelaTable,
PartiçãoPartition
Recalcule este objeto e todos os seus dependentes, mas somente se necessário.Recalculate this object and all its dependents, but only if needed. Esse valor não força o recálculo, exceto fórmulas voláteis.This value does not force recalculation, except for volatile formulas.
dataOnlydataOnly BancoDatabase,
TabelaTable,
PartiçãoPartition
Atualize os dados neste objeto e limpe todos os dependentes.Refresh data in this object and clear all dependents.
automáticoautomatic BancoDatabase,
TabelaTable,
PartiçãoPartition
Se o objeto precisar ser atualizado e recalculado, atualize e recalcule o objeto e todos os seus dependentes.If the object needs to be refreshed and recalculated, refresh and recalculate the object and all its dependents. Será aplicado se a partição estiver em um estado diferente de Ready.Applies if the partition is in a state other than Ready.
addadd PartiçãoPartition Acrescente dados a esta partição e recalcule todos os dependentes.Append data to this partition and recalculate all dependents. Este comando é válido apenas para partições regulares, e não para partições de cálculo.This command is valid only for regular partitions and not for calculation partitions.
Fragmentdefragment BancoDatabase,
TabelaTable
Desfragmente os dados na tabela especificada.Defragment the data in the specified table. Como os dados são adicionados ou removidos de uma tabela, os dicionários de cada coluna podem ficar poluídos com valores que não existem mais nos valores de coluna reais.As data is added to or removed from a table, the dictionaries of each column can become polluted with values that no longer exist in the actual column values. A opção de desfragmentar limpará os valores nos dicionários que não são mais usados.The defragment option will clean up the values in the dictionaries that are no longer used.

Você pode atualizar os seguintes objetos:You can refresh the following objects:

Objeto de banco de dados (TMSL) Processar um banco de dados.Database object (TMSL) Process a database.

{  
  "refresh": {  
    "type": "automatic",  
    "objects": [  
      {  
        "database": "AdventureWorksTabular1200"  
      }  
    ]  
  }  
}  

Objeto de tabelas (TMSL) Processar uma única tabela.Tables object (TMSL) Process a single table.

{  
  "refresh": {  
    "type": "automatic",  
    "objects": [  
      {  
        "database": "AdventureWorksTabular1200",  
        "table": "Date"  
      }  
    ]  
  }  
}  

Objeto de partições (TMSL) Processar uma única partição dentro de uma tabela.Partitions object (TMSL) Process a single partition within a table.

{  
  "refresh": {  
    "type": "automatic",  
    "objects": [  
      {  
        "database": "AdventureWorksTabular1200",  
        "table": "FactSalesQuota",  
        "partition": "FactSalesQuota"  
      },  
      {  
        "database": "AdventureWorksTabular1200",  
        "table": "FactSalesQuota",  
        "partition": "FactSalesQuota - 2011"  
      }  
    ]  
  }  
}  

Parâmetros opcionaisOptional parameters

Para Power BI conjuntos de valores, os seguintes parâmetros podem ser adicionados a um comando TMSL Refresh para substituir o comportamento de atualização incremental padrão:For Power BI datasets, the following parameters can be added to a TMSL refresh command to override the default incremental refresh behavior:

  • applyRefreshPolicy – se uma tabela tiver uma política de atualização incremental definida, applyRefreshPolicy determinará se a política será aplicada ou não.applyRefreshPolicy – If a table has an incremental refresh policy defined, applyRefreshPolicy will determine if the policy is applied or not. Se a política não for aplicada, uma operação de processo completa deixará as definições de partição inalteradas e todas as partições na tabela serão totalmente atualizadas.If the policy is not applied, a process full operation will leave partition definitions unchanged and all partitions in the table will be fully refreshed. O valor padrão é true.Default value is true.

  • effectiveDate – se uma política de atualização incremental estiver sendo aplicada, ela precisará saber a data atual para determinar os intervalos de janela sem interrupção para o intervalo histórico e o intervalo incremental.effectiveDate – If an incremental refresh policy is being applied, it needs to know the current date to determine rolling window ranges for the historical range and the incremental range. O parâmetro effectiveDate permite que você substitua a data atual.The effectiveDate parameter allows you to override the current date. Isso é útil para testes, demonstrações e cenários de negócios em que os dados são atualizados incrementalmente em datas passados ou futuras (por exemplo, orçamentos futuros).This is useful for testing, demos, and business scenarios where data is incrementally refreshed up to a date in the past or the future (for example, budgets in the future). O valor padrão é a data atual.The default value is the current date.

{
  "refresh": {
    "type": "full",

    "applyRefreshPolicy": true,
    "effectiveDate": "12/31/2013",

    "objects": [
      {
        "database": "IR_AdventureWorks", 
        "table": "FactInternetSales" 
      }
    ]
  }
}

A tabela a seguir mostra o impacto quando applyRefreshPolicy é verdadeiro (padrão) em cada um dos tipos de atualização de uma tabela que contém uma política de atualização incremental:The following table shows the impact when applyRefreshPolicy is true (default) on each of the refresh types for a table that contains an incremental refresh policy:

Tipo de atualizaçãoRefresh type ImpactoImpact
completafull A política é aplicada conforme descrito em atualização incremental no Power bi.The policy is applied as described in Incremental refresh in Power BI. Supondo que as partições históricas já tenham sido criadas por uma operação de atualização anterior, um resumo é descrito aqui:Assuming historical partitions have already been created by a prior refresh operation, a summary is described here:
-Novas partições são adicionadas ao intervalo incremental, se necessário.- New partitions are added to the incremental range if needed.
-Se nenhuma sondagem for definida para detecção de alterações de dados, todas as partições no intervalo incremental serão atualizadas de forma completa.- If no pollingExpression is defined for detection of data changes, all partitions in the incremental range are refreshed in full.
-Se uma sondagem for definida, ela será avaliada para cada partição no intervalo incremental.- If a pollingExpression is defined, it is evaluated for each partition in the incremental range. Somente aqueles que retornam um resultado de sondagem diferente em comparação com a operação de atualização anterior são atualizados de forma completa.Only those that return a different polling result compared to the previous refresh operation are refreshed in full.
-As partições históricas não são atualizadas, independentemente de terem sido limpas de dados.- Historical partitions are not refreshed regardless of whether they have been cleared of data.
-As partições históricas que estão fora do intervalo são excluídas.- Historical partitions that fall out of range are deleted.
-Recálculo de partições afetadas e dependentes.- Recalculation of affected partitions and dependents.
clearValuesclearValues applyRefreshPolicy não afeta o comportamento.applyRefreshPolicy does not affect behavior.
calculadocalculate applyRefreshPolicy não afeta o comportamento.applyRefreshPolicy does not affect behavior.
dataOnlydataOnly O mesmo que Type = Full, mas sem recálculo de partições afetadas e dependentes.Same as type=full, but without recalculation of affected partitions and dependents.
automáticoautomatic O mesmo que Type = Full, mas as partições no intervalo incremental são atualizadas usando Type = Automatic.Same as type=full, but partitions in the incremental range are refreshed using type=automatic.
addadd applyRefreshPolicy não afeta o comportamento.applyRefreshPolicy does not affect behavior.
Fragmentdefragment applyRefreshPolicy não afeta o comportamento.applyRefreshPolicy does not affect behavior.

RespostaResponse

Retorna um resultado vazio quando o comando é executado com sucesso.Returns an empty result when the command succeeds. Caso contrário, uma exceção XMLA será retornada.Otherwise, an XMLA exception is returned.

ExemplosExamples

Substitua o ConnectionString e o QueryDefinition de uma partição.Override both the ConnectionString and QueryDefinition of a partition.

{
  "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]"
            }
          }
        ]
      }
    ]
  }
}

O escopo de substituições específicas definindo o parâmetro de tipo como uma atualização somente de data, os metadados permanecem intactos.Scope particular overrides by setting the type parameter to a dataOnly refresh, metadata stays intact.

{
  "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"
          }
        ]
      }
    ]
  }
}

Uso (pontos de extremidade)Usage (endpoints)

Esse elemento Command é usado em uma instrução da chamada do método Execute (XMLA) em um ponto de extremidade XMLA, exposto das seguintes maneiras:This command element is used in a statement of the Execute Method (XMLA) call over an XMLA endpoint, exposed in the following ways:

  • Como uma janela XMLA no SQL Server Management Studio (SSMS)As an XMLA window in SQL Server Management Studio (SSMS)

  • Como um arquivo de entrada para o cmdlet Invoke-ascmd do PowerShellAs an input file to the invoke-ascmd PowerShell cmdlet

  • Como uma entrada para uma tarefa do SSIS ou SQL Server Agent trabalhoAs an input to an SSIS task or SQL Server Agent job

Você pode gerar um script pronto para este comando do SSMS.You can generate a ready-made script for this command from SSMS. Por exemplo, você pode clicar no script em uma caixa de diálogo de processamento.For example, you can click the Script in a Processing dialog box.