Поделиться через


Объект 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  
                }  
              },