Comando Refresh (TMSL)

Se aplica a: SQL Server 2016 y versiones posteriores Analysis Services Azure Analysis Services Power BI Premium

Procesa objetos de la base de datos actual.
La actualización siempre se ejecuta en paralelo a menos que se limite con el comando Sequence (TMSL).

Puede invalidar algunas propiedades de algunos objetos durante una operación de actualización de datos:

  • Cambie la propiedad QueryDefinition de un objeto Partition para importar datos mediante una expresión de filtro sobre la marcha.

  • Proporcione las credenciales del origen de datos como parte de un comando Refresh, en la propiedad ConnectionString de un objeto DataSource. Este enfoque podría considerarse más seguro, ya que las credenciales se proporcionan y se usan temporalmente durante la operación, en lugar de almacenarse.

  • Invalide el valor Power BI directiva de actualización incremental del conjunto de datos.

Vea los ejemplos de este tema para obtener una ilustración de estas invalidaciones de propiedad.

Nota

A diferencia del procesamiento multidimensional, no hay ningún control especial de los errores de procesamiento para el procesamiento tabular.

Solicitud

La actualización toma un parámetro de tipo y una definición de objeto.

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

El parámetro type establece un ámbito en la operación de procesamiento.

Tipo de actualización Se aplica a Descripción
full Base
Mesa
Partición
Para todas las particiones en la partición, tabla o base de datos especificada, actualice los datos y actualice todos los elementos dependientes. Para una partición de cálculo, actualice la partición y todos sus elementos dependientes.
clearValues Base
Mesa
Partición
Borre los valores de este objeto y todos los dependientes.
Calcular Base
Mesa
Partición
Actualice este objeto y todos sus elementos dependientes, pero solo si es necesario. Este valor no fuerza la actualización, excepto en el caso de fórmulas volátiles.
dataOnly Base
Mesa
Partición
Actualice los datos de este objeto y borre todos los dependientes.
automatic Base
Mesa
Partición
Si el objeto se debe actualizar, actualice el objeto y todos sus elementos dependientes. Se aplica si la partición se encuentra en un estado que no sea Ready.
add Partición Anexe datos a esta partición y vuelva a calcular todos los dependientes. Este comando es válido solo para particiones normales y no para particiones de cálculo.
Desfragmentar Base
Tabla
Desfragmente los datos de la tabla especificada. Ya que los datos se agregan a una tabla o se quitan de ella, los diccionarios de cada columna pueden contaminarse con valores que ya no existen en los valores de columna reales. La opción de desfragmentar limpiará los valores de los diccionarios que ya no se usan.

Puede actualizar los objetos siguientes:

Objeto de base (tmsl) Procesar una base de datos.

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

Objeto Tables (TMSL) Procesar una sola tabla.

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

Objeto partitions (TMSL) Procesar una sola partición dentro de una tabla.

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

Parámetros opcionales

Para Power BI conjuntos de datos, se pueden agregar los parámetros siguientes a un comando de actualización de TMSL para invalidar el comportamiento de actualización incremental predeterminado:

  • applyRefreshPolicy: si una tabla tiene definida una directiva de actualización incremental, applyRefreshPolicy determinará si la directiva se aplica o no. Si no se aplica la directiva, una operación de proceso completo dejará las definiciones de partición sin cambios y todas las particiones de la tabla se actualizarán por completo. El valor predeterminado es true.

  • effectiveDate: si se está aplicando una directiva de actualización incremental, debe conocer la fecha actual para determinar los intervalos de periodos acumulados para el intervalo histórico y el intervalo incremental. El parámetro effectiveDate permite invalidar la fecha actual. Esto resulta útil para pruebas, demostraciones y escenarios empresariales en los que los datos se actualizan incrementalmente hasta una fecha anterior o posterior (por ejemplo, presupuestos en el futuro). El valor predeterminado es la fecha actual.

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

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

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

En la tabla siguiente se muestra el impacto cuando applyRefreshPolicy es true (valor predeterminado) en cada uno de los tipos de actualización de una tabla que contiene una directiva de actualización incremental:

Tipo de actualización Impacto
full La directiva se aplica como se describe en Actualización incremental en Power BI. Suponiendo que las particiones históricas ya se hayan creado mediante una operación de actualización anterior, aquí se describe un resumen:
- Si es necesario, se agregan nuevas particiones al intervalo incremental.
- Si no se define pollingExpression para la detección de cambios de datos, todas las particiones del intervalo incremental se actualizan en su totalidad.
- Si se define pollingExpression, se evalúa para cada partición del intervalo incremental. Solo los que devuelven un resultado de sondeo diferente en comparación con la operación de actualización anterior se actualizan en su totalidad.
- Las particiones históricas no se actualizan independientemente de si se han borrado de los datos.
- Se eliminan las particiones históricas que están fuera del intervalo.
- Recálculo de particiones y dependientes afectados.
clearValues applyRefreshPolicy no afecta al comportamiento.
Calcular applyRefreshPolicy no afecta al comportamiento.
dataOnly Igual que type=full, pero sin recalcular las particiones y dependientes afectadas.
automatic Igual que type=full, pero las particiones del intervalo incremental se actualizan mediante type=automatic.
add applyRefreshPolicy no afecta al comportamiento.
Desfragmentar applyRefreshPolicy no afecta al comportamiento.

Response

Devuelve un resultado vacío cuando el comando se realiza correctamente. De lo contrario, se devuelve una excepción XMLA.

Ejemplos

Invalide ConnectionString y QueryDefinition de una partición.

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

Las invalidaciones concretas del ámbito estableciendo el parámetro de tipo en una actualización de dataOnly, los metadatos permanecen intactos.

{
  "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 (puntos de conexión)

Este elemento de comando se usa en una instrucción de la llamada al método Execute (XMLA) a través de un punto de conexión XMLA, expuesto de las maneras siguientes:

  • Como una ventana XMLA en SQL Server Management Studio (SSMS)

  • Como archivo de entrada para el cmdlet de PowerShell invoke-ascmd

  • Como entrada a una tarea de SSIS o a un SQL Server agente

Puede generar un script listo para este comando desde SSMS. Por ejemplo, puede hacer clic en el cuadro de diálogo Script en un procesamiento .