Objeto Partitions (TMSL)
Se aplica a: SQL Server 2016 y versiones posteriores Analysis Services Azure Analysis Services Fabric/Power BI Premium
Define una partición, o segmentación lógica, del conjunto de filas de tabla. Una partición consta de una consulta M o SQL de Power Query usada para importar datos, para datos de ejemplo en el entorno de modelado o como una consulta de datos completa para pasar a través de la ejecución de consultas a través de DirectQuery.
Las propiedades de la partición determinan cómo se crean los datos para la tabla. En la jerarquía de objetos, el objeto primario de una partición es un objeto de tabla.
Definición del objeto
Todos los objetos tienen un conjunto común de propiedades, incluidos el nombre, el tipo, la descripción, una colección de propiedades y las anotaciones. Los objetos partition también tienen las siguientes propiedades.
tipo
Tipo de partición. Los valores válidos son numéricos e incluyen lo siguiente:
Consulta (1): los datos de esta partición se recuperan mediante la ejecución de una consulta en un datasource. DataSource debe ser un origen de datos definido en el archivo model.bim.
Calculado (2): los datos de esta partición se rellenan ejecutando una expresión calculada.
Ninguno (3): los datos de esta partición se rellenan insertando un conjunto de filas de datos en el servidor como parte de la operación de actualización.
mode
Define el modo de consulta de la partición. Los valores válidos son import, DirectQuery o default (heredado). Este valor es necesario.
Valor | Descripción |
---|---|
Importar | Indica que las solicitudes de consulta se emiten en el motor de análisis en memoria que almacena los datos importados. |
DirectQuery | Pase la ejecución de consultas a una base de datos relacional externa. El modo DirectQuery usa particiones para proporcionar datos de ejemplo usados durante el diseño del modelo. Cuando se implementa en un servidor de producción, debe volver a la vista Datos completos. Recuerde que el modo DirectQuery requiere una partición por tabla y un origen de datos por modelo. |
default | Establézcalo si desea cambiar los modos más arriba del árbol de objetos, en el nivel de modelo o base de datos. Al elegir el valor predeterminado, el modo de consulta será import o DirectQuery. |
source
Identifica la ubicación de los datos que se van a consultar. Los valores válidos son query, calculated o none. Este valor es necesario.
Valor | Descripción |
---|---|
Ninguna | Se usa para el modo de importación, donde los datos se cargan y almacenan en memoria. |
consulta | En el modo DirectQuery, se trata de una consulta SQL ejecutada en la base de datos relacional especificada en el dataSource del modelo. Vea Objeto DataSources (TMSL) . |
Calculado | Las tablas calculadas proceden de una expresión especificada cuando se crea la tabla. Esta expresión se considera el origen de la partición creada para la tabla calculada. |
Dataview
Para las particiones de DirectQuery, una propiedad dataView adicional especifica aún más si la consulta que recupera datos es un ejemplo o el conjunto de datos completo. Los valores válidos son completos, de ejemplo o predeterminados (heredados). Como se indicó, los ejemplos solo se usan durante el modelado y las pruebas de datos.
Uso
Los objetos partition se usan en el comando Alter (TMSL),Create command (TMSL), CreateOrReplace command (TMSL), Delete command (TMSL), Refresh command (TMSL), and MergePartitions command (TMSL)).
Al crear, reemplazar o modificar un objeto de partición, especifique todas las propiedades de lectura y escritura de la definición de objeto. La omisión de una propiedad de lectura y escritura se considera una eliminación. Las propiedades de lectura y escritura incluyen el nombre, la descripción, el modo y el origen.
Ejemplos
Ejemplo 1 : estructura de partición simple de una tabla (no una tabla de hechos).
"partitions": [
{
"name": "Customer",
"source": {
"query": "SELECT [dbo].[Customer].* FROM [dbo].[Customer]",
"dataSource": "SqlServer localhost FoodmartDB"
}
]
Ejemplo 2 : los datos de hechos con particiones normalmente se basan en una cláusula WHERE que crea particiones no superpuestas para los datos de la misma tabla.
"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"
},
}
]
Ejemplo 3 : una tabla calculada basada en una expresión DAX.
"partitions": [
{
"name": "CalcTable1",
"source": {
"type": "calculated",
"expression": "'Product Class'"
},
}
]
Sintaxis completa
A continuación se muestra la representación de esquema de un objeto de partición.
"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
}
},