Объект Partitions (TMSL)
Применимо к: SQL Server 2016 и более поздних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium
Определяет секцию или логическую сегментацию набора строк таблицы. Секция состоит из Power Query M или SQL-запроса, используемого для импорта данных, для примера данных в среде моделирования или в качестве полного запроса данных для выполнения запроса через DirectQuery.
Свойства секции определяют источник данных для таблицы. В иерархии объектов родительским объектом секции является объект таблицы.
Определение объекта
Все объекты имеют общий набор свойств, включая имя, тип, описание, коллекцию свойств и заметки. Объекты секционирования также имеют следующие свойства.
тип
Тип секции. Допустимые значения являются числовыми и включают следующие:
Запрос (1) — данные в этой секции извлекаются путем выполнения запроса к источнику данных. DataSource должен быть источником данных, определенным в файле model.bim.
Вычисляется (2) — данные в этой секции заполняются путем выполнения вычисляемого выражения.
Нет (3) — данные в этой секции заполняются путем отправки набора строк данных на сервер в рамках операции обновления.
mode
Определяет режим запроса секции. Допустимые значения: import, DirectQuery или default (наследуется). Это значение обязательно.
Значение | Описание |
---|---|
Импорт | Указывает, что запросы отправляются к подсистеме аналитики в памяти, в котором хранятся импортированные данные. |
DirectQuery | Передача выполнения запроса во внешнюю реляционную базу данных. Режим DirectQuery использует секции для предоставления примеров данных, используемых во время разработки модели. При развертывании на рабочем сервере следует вернуться к полному представлению данных. Помните, что для режима DirectQuery требуется одна секция на таблицу и один источник данных для каждой модели. |
default | Установите этот параметр, если вы хотите переключить режимы выше дерева объектов на уровне модели или базы данных. Если выбрано значение по умолчанию, режим запроса будет либо импорт, либо DirectQuery. |
source
Определяет расположение запрашиваемых данных. Допустимые значения: query, calculated или none. Это значение обязательно.
Значение | Описание |
---|---|
Нет | Используется для режима импорта, в котором данные загружаются и хранятся в памяти. |
запрос | Для режима DirectQuery это SQL-запрос, выполняемый к реляционной базе данных, указанной в dataSource модели. См. раздел Объект DataSources (TMSL). |
Рассчитывается | Вычисляемые таблицы получаются из выражения, указанного при создании таблицы. Это выражение считается источником секции, созданной для вычисляемой таблицы. |
Dataview
Для секций DirectQuery дополнительное свойство dataView дополнительно указывает, является ли запрос, извлекающий данные, примером или полным набором данных. Допустимые значения: full, sample или default (наследуется). Как уже отмечалось, примеры используются только во время моделирования и тестирования данных.
Использование
Объекты секционирования используются в команде Alter (TMSL),команде Create (TMSL),команде CreateOrReplace (TMSL),команде Delete (TMSL),команде Refresh (TMSL) и команде MergePartitions (TMSL).
При создании, замене или изменении объекта секционирования укажите все свойства определения объекта для чтения и записи. Пропуск свойства чтения и записи считается удалением. К свойствам чтения и записи относятся имя, описание, режим и источник.
Примеры
Пример 1 . Простая структура секционирования таблицы (не таблица фактов).
"partitions": [
{
"name": "Customer",
"source": {
"query": "SELECT [dbo].[Customer].* FROM [dbo].[Customer]",
"dataSource": "SqlServer localhost FoodmartDB"
}
]
Пример 2 . Секционированные данные фактов обычно основаны на предложении WHERE, которое создает неперекрывающихся секций для данных из одной таблицы.
"partitions": [
{
"name": "sales_fact_2015",
"source": {
"query": "SELECT [dbo].[sales_fact_2015].* FROM [dbo].[sales_fact_2015] WHERE [dbo].[sales_fact_2015].[Quarter]=4",
"dataSource": "SqlServer localhost FoodmartDB"
},
}
]
Пример 3 . Вычисляемая таблица на основе выражения DAX.
"partitions": [
{
"name": "CalcTable1",
"source": {
"type": "calculated",
"expression": "'Product Class'"
},
}
]
Полный синтаксис
Ниже приведено представление схемы объекта секционирования.
"partitions": {
"type": "array",
"items": {
"description": "Partition object of Tabular Object Model (TOM)",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"mode": {
"enum": [
"import",
"directQuery",
"default"
]
},
"dataView": {
"enum": [
"full",
"sample",
"default"
]
},
"source": {
"anyOf": [
{
"description": "QueryPartitionSource object of Tabular Object Model (TOM)",
"type": "object",
"properties": {
"type": {
"enum": [
"query",
"calculated",
"none"
]
},
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"dataSource": {
"type": "string"
}
},
"additionalProperties": false
},
{
"description": "CalculatedPartitionSource object of Tabular Object Model (TOM)",
"type": "object",
"properties": {
"type": {
"enum": [
"query",
"calculated",
"none"
]
},
"expression": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
},
"additionalProperties": false
}
]
},
"annotations": {
"type": "array",
"items": {
"description": "Annotation object of Tabular Object Model (TOM)",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
},