Objeto Partitions (TMSL)
Aplica-se a: SQL Server 2016 e posteriores do Analysis Services Azure Analysis Services Fabric/Power BI Premium
Define uma partição, ou segmentação lógica, do conjunto de linhas da tabela. Uma partição consiste em uma consulta M ou SQL Power Query usada para importar dados, para dados de exemplo no ambiente de modelagem ou como uma consulta de dados completa para passar pela execução da consulta por meio do DirectQuery.
As propriedades na partição determinam como os dados são originados para a tabela. Na hierarquia de objetos, o objeto pai de uma partição é um objeto de tabela.
Definição do objeto
Todos os objetos têm um conjunto comum de propriedades, incluindo nome, tipo, descrição, uma coleção de propriedades e anotações. Os objetos de partição também têm as propriedades a seguir.
tipo
O tipo de partição. Os valores válidos são numéricos e incluem o seguinte:
Consulta (1) – os dados nessa partição são recuperados executando uma consulta em um DataSource. O DataSource deve ser uma fonte de dados definida no arquivo model.bim.
Calculado (2) – os dados nessa partição são preenchidos executando uma expressão calculada.
Nenhum (3) – os dados nessa partição são preenchidos enviando por push um conjunto de linhas de dados para o servidor como parte da operação Atualizar.
mode
Define o modo de consulta da partição. Os valores válidos são import, DirectQuery ou default (herdado). Esse valor é necessário.
Valor | Descrição |
---|---|
Importaçãoação | Indica que as solicitações de consulta são emitidas no mecanismo de análise na memória armazenando dados importados. |
DirectQuery | Passe a execução da consulta para um banco de dados relacional externo. O modo DirectQuery usa partições para fornecer dados de exemplo usados durante o design do modelo. Quando implantado em um servidor de produção, você deve voltar para Modo de exibição de dados completo. Lembre-se de que o modo DirectQuery requer uma partição por tabela e uma fonte de dados por modelo. |
default | Defina isso se você quiser alternar modos mais acima da árvore de objetos, no nível do modelo ou do banco de dados. Quando você escolher o padrão, o modo de consulta será importar ou DirectQuery. |
source
Identifica o local dos dados a serem consultados. Os valores válidos são consulta, calculado ou nenhum. Esse valor é necessário.
Valor | Descrição |
---|---|
nenhum | Usado para o modo de importação, em que os dados são carregados e armazenados na memória. |
consulta | Para o modo DirectQuery, essa é uma consulta SQL executada no banco de dados relacional especificado no DataSource do modelo. Consulte Objeto DataSources (TMSL). |
Calculado | As tabelas calculadas são originadas de uma expressão especificada quando a tabela é criada. Essa expressão é considerada a origem da partição criada para a tabela calculada. |
Dataview
Para partições DirectQuery, uma propriedade dataView adicional especifica ainda mais se a consulta que recupera dados é uma amostra ou o conjunto de dados completo. Os valores válidos são completos, de exemplo ou padrão (herdados). Conforme observado, os exemplos são usados somente durante a modelagem e o teste de dados.
Uso
Os objetos de partição são usados no comando Alter (TMSL),no comando Create (TMSL),no comando CreateOrReplace (TMSL), no comando Delete (TMSL), no comando Refresh (TMSL)e no comando MergePartitions (TMSL).
Ao criar, substituir ou alterar um objeto de partição, especifique todas as propriedades de leitura/gravação da definição do objeto. A omissão de uma propriedade de leitura/gravação é considerada uma exclusão. As propriedades de leitura/gravação incluem nome, descrição, modo e origem.
Exemplos
Exemplo 1 – uma estrutura de partição simples de uma tabela (não uma tabela de fatos).
"partitions": [
{
"name": "Customer",
"source": {
"query": "SELECT [dbo].[Customer].* FROM [dbo].[Customer]",
"dataSource": "SqlServer localhost FoodmartDB"
}
]
Exemplo 2 – Os dados de fato particionados normalmente são baseados em uma cláusula WHERE que cria partições não sobrepostas para dados da mesma tabela.
"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"
},
}
]
Exemplo 3 – uma tabela calculada baseada em uma expressão DAX.
"partitions": [
{
"name": "CalcTable1",
"source": {
"type": "calculated",
"expression": "'Product Class'"
},
}
]
Sintaxe completa
Abaixo está a representação de esquema de um objeto de partição.
"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
}
},