Partitions, objet (TMSL)

S’applique à : SQL Server 2016 et ultérieur Analysis Services Azure Analysis Services Power BI Premium

Définit une partition, ou segmentation logique, de l’ensemble de lignes de table. une partition se compose d’une requête Power Query M ou SQL utilisée pour l’importation de données, pour des exemples de données dans l’environnement de modélisation, ou en tant que requête de données complète pour passer par l’exécution de la requête via DirectQuery.

Les propriétés de la partition déterminent la façon dont les données sont issues de la table. Dans la hiérarchie d’objets, l’objet parent d’une partition est un objet table.

Définition de l'objet

Tous les objets ont un ensemble commun de propriétés, notamment le nom, le type, la description, une collection de propriétés et des annotations. Les objets partition ont également les propriétés suivantes.

type
Type de partition. Les valeurs valides sont Numeric et incluent les éléments suivants :

  • Requête (1) : les données de cette partition sont récupérées en exécutant une requête sur une source de données. La source de données doit être une source de données définie dans le fichier Model. BIM.

  • Calculé (2) : les données de cette partition sont remplies en exécutant une expression calculée.

  • None (3) : les données de cette partition sont remplies en envoyant un ensemble de lignes de données au serveur dans le cadre de l’opération d’actualisation.

mode
Définit le mode de requête de la partition. Les valeurs valides sont Import, DirectQuery ou default (hérité). Cette valeur est requise.

Valeur Description
Importer Indique que les demandes de requête sont émises sur le moteur d’analyse en mémoire qui stocke les données importées.
DirectQuery Transmettez l’exécution de la requête à une base de données relationnelle externe. Le mode DirectQuery utilise des partitions pour fournir des exemples de données utilisés pendant la conception du modèle. Une fois déployé sur un serveur de production, vous devez revenir à la vue complète des données. Rappelez-vous que le mode DirectQuery requiert une partition par table et une source de données par modèle.
default Définissez cette option si vous souhaitez basculer les modes plus haut dans l’arborescence d’objets, au niveau du modèle ou de la base de données. Lorsque vous choisissez l’option par défaut, le mode de requête est importer ou DirectQuery.

source
Identifie l’emplacement des données à interroger. Les valeurs valides sont Query, calculé ou None. Cette valeur est requise.

Valeur Description
Aucune Utilisé pour le mode d’importation, où les données sont chargées et stockées en mémoire.
query pour le mode DirectQuery, il s’agit d’une requête SQL exécutée sur la base de données relationnelle spécifiée dans la source de données du modèle. Consultez objet datasources ()TMSL .
calculé Les tables calculées proviennent d’une expression spécifiée lors de la création de la table. Cette expression est considérée comme la source de la partition créée pour la table calculée.

DataView
Pour les partitions DirectQuery, une propriété dataView supplémentaire spécifie également si la requête qui récupère les données est un exemple ou le jeu de données complet. Les valeurs valides sont Full, Sample ou default (hérité). Comme indiqué, les exemples sont utilisés uniquement pendant la modélisation et le test des données.

Utilisation

Les objets partition sont utilisés dans la commande Alter (TMSL), create command (TMSL), CreateOrReplace Command (TMSL), Delete command (TMSL), Refresh Command (TMSL), et MergePartitions Command (TMSL).

Lors de la création, du remplacement ou de la modification d’un objet partition, spécifiez toutes les propriétés en lecture-écriture de la définition de l’objet. L’omission d’une propriété en lecture-écriture est considérée comme une suppression. Les propriétés en lecture/écriture incluent le nom, la description, le mode et la source.

Exemples

Exemple 1 : structure de partition simple d’une table (et non d’une table de faits).

"partitions": [  
          {  
            "name": "Customer",  
            "source": {  
              "query": "SELECT [dbo].[Customer].* FROM [dbo].[Customer]",  
              "dataSource": "SqlServer localhost FoodmartDB"  
            }  
]  

Exemple 2 : les données de faits partitionnées sont généralement basées sur une clause WHERE qui crée des partitions qui ne se chevauchent pas pour les données de la même table.

"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"  
            },  
          }  
        ]  

Exemple 3 : table calculée basée sur une expression Dax.

"partitions": [  
          {  
            "name": "CalcTable1",  
            "source": {  
              "type": "calculated",  
              "expression": "'Product Class'"  
            },  
            }  
]  

Syntaxe complète

Vous trouverez ci-dessous la représentation du schéma d’un objet partition.

"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  
                }  
              },