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 .