Partitions-Objekt (TMSL)
Gilt für: SQL Server 2016 und höher analysis Services Azure Analysis Services Fabric/Power BI Premium
Definiert eine Partition oder logische Segmentierung des Tabellenrowsets. Eine Partition besteht aus einer Power Query M- oder SQL-Abfrage, die zum Importieren von Daten, für Beispieldaten in der Modellierungsumgebung oder als vollständige Datenabfrage für die Passthrough-Abfrageausführung über DirectQuery verwendet wird.
Eigenschaften auf der Partition bestimmen, wie die Daten für die Tabelle bezogen werden. In der Objekthierarchie ist das übergeordnete Objekt einer Partition ein Tabellenobjekt.
Objektdefinition
Alle Objekte verfügen über einen gemeinsamen Satz von Eigenschaften, einschließlich Name, Typ, Beschreibung, einer Eigenschaftenauflistung und Anmerkungen. Partitionsobjekte verfügen außerdem über die folgenden Eigenschaften.
Typ
Der Partitionstyp. Gültige Werte sind numerisch und umfassen Folgendes:
Abfrage (1): Daten in dieser Partition werden durch Ausführen einer Abfrage für eine Datenquelle abgerufen. Die DataSource muss eine in der Datei model.bim definierte Datenquelle sein.
Berechnet (2): Die Daten in dieser Partition werden durch Ausführen eines berechneten Ausdrucks aufgefüllt.
Keine (3): Die Daten in dieser Partition werden aufgefüllt, indem ein Rowset von Daten im Rahmen des Aktualisierungsvorgangs auf den Server gepusht wird.
Modus
Definiert den Abfragemodus der Partition. Gültige Werte sind import, DirectQuery oder default (geerbt). Dieser Wert ist erforderlich.
Wert | Beschreibung |
---|---|
Importieren | Gibt an, dass Abfrageanforderungen für die In-Memory-Analyse-Engine ausgegeben werden, die importierte Daten speichert. |
DirectQuery | Übergeben Sie die Abfrageausführung an eine externe relationale Datenbank. Im DirectQuery-Modus werden Partitionen verwendet, um Beispieldaten bereitzustellen, die während des Modellentwurfs verwendet werden. Wenn Sie auf einem Produktionsserver bereitgestellt werden, sollten Sie zurück zur Vollständigen Datenansicht wechseln. Beachten Sie, dass der DirectQuery-Modus eine Partition pro Tabelle und eine Datenquelle pro Modell erfordert. |
default | Legen Sie dies fest, wenn Sie die Modi höher in der Objektstruktur auf Modell- oder Datenbankebene wechseln möchten. Wenn Sie standard auswählen, lautet der Abfragemodus entweder import oder DirectQuery. |
source
Gibt den Speicherort der abzufragenden Daten an. Gültige Werte sind abfrage, berechnet oder keine. Dieser Wert ist erforderlich.
Wert | BESCHREIBUNG |
---|---|
keine | Wird für den Importmodus verwendet, in dem Daten geladen und im Arbeitsspeicher gespeichert werden. |
Frage | Im DirectQuery-Modus ist dies eine SQL-Abfrage, die für die relationale Datenbank ausgeführt wird, die in der DataSource des Modells angegeben ist. Weitere Informationen finden Sie unter DataSources-Objekt (TMSL). |
Berechnet | Berechnete Tabellen stammen aus einem Ausdruck, der beim Erstellen der Tabelle angegeben wird. Dieser Ausdruck gilt als Quelle der Partition, die für die berechnete Tabelle erstellt wurde. |
Dataview
Für DirectQuery-Partitionen gibt eine zusätzliche dataView-Eigenschaft weiter an, ob die Abfrage, die Daten abruft, ein Beispiel oder das vollständige Dataset ist. Gültige Werte sind full, sample oder default (geerbt). Wie bereits erwähnt, werden Beispiele nur während der Datenmodellierung und -tests verwendet.
Verbrauch
Partitionsobjekte werden in den Befehlen Alter (TMSL),Create Command (TMSL),CreateOrReplace Command (TMSL),Delete Command (TMSL),Refresh command (TMSL) und MergePartitions command (TMSL) verwendet.
Geben Sie beim Erstellen, Ersetzen oder Ändern eines Partitionsobjekts alle Lese-/Schreibeigenschaften der Objektdefinition an. Das Weglassen einer Eigenschaft mit Lese-/Schreibzugriff wird als Löschvorgang betrachtet. Zu den Lese-/Schreibeigenschaften gehören Name, Beschreibung, Modus und Quelle.
Beispiele
Beispiel 1 : Eine einfache Partitionsstruktur einer Tabelle (keine Faktentabelle).
"partitions": [
{
"name": "Customer",
"source": {
"query": "SELECT [dbo].[Customer].* FROM [dbo].[Customer]",
"dataSource": "SqlServer localhost FoodmartDB"
}
]
Beispiel 2 : Partitionierte Faktendaten basieren in der Regel auf einer WHERE-Klausel, die nicht überlappende Partitionen für Daten aus derselben Tabelle erstellt.
"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"
},
}
]
Beispiel 3 : Eine berechnete Tabelle, die auf einem DAX-Ausdruck basiert.
"partitions": [
{
"name": "CalcTable1",
"source": {
"type": "calculated",
"expression": "'Product Class'"
},
}
]
Vollständige Syntax
Im Folgenden finden Sie die Schemadarstellung eines Partitionsobjekts.
"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
}
},