Команда Refresh (TMSL)
Применимо к: SQL Server 2016 и более поздних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium
Обрабатывает объекты в текущей базе данных.
Обновление всегда выполняется параллельно, если не регулировать его с помощью команды последовательности (TMSL).
Некоторые свойства некоторых объектов можно переопределить во время операции обновления данных:
Измените свойство QueryDefinition объекта Partition для импорта данных с помощью выражения фильтра на лету.
Укажите учетные данные источника данных в рамках команды Refresh в свойстве ConnectionString объекта DataSource . Этот подход можно считать более безопасным, так как учетные данные предоставляются и используются временно в течение операции, а не сохраняются.
- Переопределите политику добавочного обновления семантической модели Power BI по умолчанию.
Примеры этих переопределений см. в этом разделе.
Примечание
В отличие от многомерной обработки, нет специальной обработки ошибок обработки для табличной обработки.
Запрос
Обновление принимает параметр типа и определение объекта.
{
"refresh": {
"description": "Parameters of Refresh command of Analysis Services JSON API",
"properties": {
"type": {
"enum": [
"full",
"clearValues",
"calculate",
"dataOnly",
"automatic",
"add",
"defragment"
]
},
"objects": [
Параметр type задает область для операции обработки.
Тип обновления. | Применяется к | Описание |
---|---|---|
переполненные | Базы данных Таблице Секция |
Обновить данные и пересчитать все зависимые объекты для всех секций в указанной секции, таблице или базе данных. Для вычисления секции пересчитать раздел и все его зависимости. |
clearValues | Базы данных Таблице Секция |
Очистка значений в этом объекте и всех его зависимых элементах. |
Рассчитать | Базы данных Таблице Секция |
Пересчитать этот объект и все зависимые ресурсы только при необходимости. Это значение не приводит к принудительному повторному вычислению, за исключением временных формул. |
dataOnly | Базы данных Таблице Секция |
Обновление данных в этом объекте и очистка его зависимых элементов. |
automatic | Базы данных Таблице Секция |
Если объект необходимо обновить и пересчитать, обновить и пересчитать объект и все его зависимости. Применяется, если секция находится в состоянии, отличном от "Готово". |
add | Секция | Добавление данных в эту секцию и пересчет всех зависимых элементов. Эта команда может применяться только к обычным секциям, а не для вычисления секций. |
Дефрагментации | Базы данных Таблица |
Дефрагментировать данные в указанной таблице. По мере добавления или удаления данных из таблицы словари для каждого столбца могут заполниться значениями, которых на самом деле больше не существует в столбцах. Параметр дефрагментации приведет к очистке более не используемых значений в словарях. |
Вы можете обновить следующие объекты:
Объект Database (TMSL) Обработка базы данных.
{
"refresh": {
"type": "automatic",
"objects": [
{
"database": "AdventureWorksTabular1200"
}
]
}
}
Объект Tables (TMSL) Обработка одной таблицы.
{
"refresh": {
"type": "automatic",
"objects": [
{
"database": "AdventureWorksTabular1200",
"table": "Date"
}
]
}
}
Объект Partitions (TMSL) Обработка одной секции в таблице.
{
"refresh": {
"type": "automatic",
"objects": [
{
"database": "AdventureWorksTabular1200",
"table": "FactSalesQuota",
"partition": "FactSalesQuota"
},
{
"database": "AdventureWorksTabular1200",
"table": "FactSalesQuota",
"partition": "FactSalesQuota - 2011"
}
]
}
}
Необязательные параметры
Для семантических моделей Power BI в команду обновления TMSL можно добавить следующие параметры, чтобы переопределить поведение добавочного обновления по умолчанию:
applyRefreshPolicy — если для таблицы определена политика добавочного обновления, этот параметр определяет, применяется политика или нет. Если политика не применяется, полная операция обработки не приведет к изменению определений разделов и все разделы в таблице будут обновлены полностью. Значение по умолчанию — true.
effectiveDate — если применяется политика добавочного обновления, чтобы определить диапазоны скользящих интервалов для диапазона в прошлом и инкрементного диапазона, необходимо знать текущую дату. Параметр effectiveDate позволяет переопределить текущую дату. Это удобно при тестировании, демонстрации и в бизнес-сценариях, где используется инкрементное обновление данных до даты в прошлом или будущем (например, для бюджетов в будущем). Значение по умолчанию равно текущей дате.
{
"refresh": {
"type": "full",
"applyRefreshPolicy": true,
"effectiveDate": "12/31/2013",
"objects": [
{
"database": "IR_AdventureWorks",
"table": "FactInternetSales"
}
]
}
}
В следующей таблице показано влияние, когда applyRefreshPolicy имеет значение true (по умолчанию) на каждый из типов обновления для таблицы, содержащей политику добавочного обновления.
Тип обновления. | Влияние |
---|---|
переполненные | Политика применяется, как описано в разделе Добавочное обновление в Power BI. Предполагая, что исторические секции уже были созданы с помощью предыдущей операции обновления, ниже приведена сводка: — При необходимости в добавочный диапазон добавляются новые секции. — Если для обнаружения изменений данных не определен опросExpression, все секции в добавочном диапазоне обновляются полностью. — Если определен параметр pollingExpression, он вычисляется для каждой секции в добавочном диапазоне. Полностью обновляются только те, которые возвращают другой результат опроса по сравнению с предыдущей операцией обновления. — Исторические секции не обновляются независимо от того, были ли они очищены от данных. — удаляются исторические секции, выпадающие за пределы диапазона. — Пересчет затронутых секций и зависимых. |
clearValues | ApplyRefreshPolicy не влияет на поведение. |
Рассчитать | ApplyRefreshPolicy не влияет на поведение. |
dataOnly | То же, что и type=full, но без пересчета затронутых секций и зависимых. |
automatic | Аналогично type=full, но секции в добавочном диапазоне обновляются с помощью type=automatic. |
add | ApplyRefreshPolicy не влияет на поведение. |
Дефрагментации | ApplyRefreshPolicy не влияет на поведение. |
Ответ
Возвращает пустой результат при успешном выполнении команды. В противном случае возвращается исключение XMLA.
Примеры
Переопределите connectionString и QueryDefinition секции.
{
"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, метаданные остаются нетронутыми.
{
"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, которая предоставляется следующими способами:
Как окно XMLA в SQL Server Management Studio (SSMS)
Входной файл командлета PowerShell invoke-ascmd
В качестве входных данных для задачи служб SSIS или задания агент SQL Server
Вы можете создать готовый скрипт для этой команды из SSMS. Например, можно щелкнуть скрипт в диалоговом окне Обработка.