Comando Refresh (TMSL)
Se aplica a: SQL Server 2016 y versiones posteriores analysis Services Azure Analysis Services Fabric/Power BI Premium
Procesa objetos en la base de datos actual.
La actualización siempre se ejecuta en paralelo a menos que la 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 on-the-fly.
Proporcione credenciales de origen de datos como parte de un comando Refresh , en la propiedad ConnectionString de un objeto DataSource . Este enfoque se podría considerar más seguro, ya que se proporcionan credenciales y se usan temporalmente durante la operación, en lugar de almacenarse.
- Invalide la directiva de actualización incremental predeterminada del modelo semántico de Power BI.
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 de tipo establece un ámbito en la operación de procesamiento.
Tipo de actualización | Se aplica a | Descripción |
---|---|---|
full | Base Mesa Partition |
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 Partition |
Borre los valores de este objeto y todos los dependientes. |
Calcular | Base Mesa Partition |
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 Partition |
Actualice los datos de este objeto y borre todos los dependientes. |
automatic | Base Mesa Partition |
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 | Partition | 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 siguientes objetos:
Objeto Database (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
En el caso de los modelos semánticos de Power BI, se pueden agregar los parámetros siguientes a un comando tmSL refresh 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 han creado mediante una operación de actualización anterior, se describe un resumen aquí: - Las nuevas particiones se agregan al intervalo incremental si es necesario. - 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 una 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 por completo. - Las particiones históricas no se actualizan independientemente de si se han borrado de los datos. - Se eliminan las particiones históricas que se encuentran fuera del intervalo. - Actualización de particiones afectadas y dependientes. |
clearValues | applyRefreshPolicy no afecta al comportamiento. |
Calcular | applyRefreshPolicy no afecta al comportamiento. |
dataOnly | Igual que type=full, pero sin recalcular las particiones afectadas y los dependientes. |
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 específicas del ámbito estableciendo el parámetro de tipo en una actualización 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 siguientes maneras:
Como ventana XMLA en SQL Server Management Studio (SSMS)
Como archivo de entrada para el cmdlet de PowerShell invoke-ascmd
Como entrada para una tarea de SSIS o un trabajo de Agente SQL Server
Puede generar un script listo para este comando desde SSMS. Por ejemplo, puede hacer clic en el script en un cuadro de diálogo Procesamiento.