Partitions 物件 (TMSL)
適用於: SQL Server 2016 和更新版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium
定義數據表數據列集的數據分割或邏輯分割。 分割區包含用於匯入數據的Power Query M或 SQL 查詢、模型化環境中的範例數據,或做為透過 DirectQuery 傳遞查詢執行的完整數據查詢。
數據分割上的屬性會決定數據表的數據源。 在物件階層中,數據分割的父對像是數據表物件。
物件定義
所有物件都有一組通用的屬性,包括名稱、類型、描述、屬性集合和批注。 Partition 物件也有下列屬性。
類型
數據分割的類型。 有效值為數值,並包含下列專案:
查詢 (1) – 此分割區中的數據是針對 DataSource執行查詢來擷取。 DataSource 必須是 model.bim 檔案中定義的數據源。
匯出 (2) – 此分割區中的數據會藉由執行匯出表示式來填入。
無 (3) – 此分割區中的數據會藉由將數據列集推送至伺服器,以填入重新整理作業的一部分。
模式
定義數據分割的查詢模式。 有效值為
價值 | 描述 |
---|---|
匯入 | 指出針對儲存匯入數據的記憶體內部分析引擎發出查詢要求。 |
DirectQuery | 將查詢執行傳遞至外部關係資料庫。 DirectQuery 模式會使用分割區來提供模型設計期間所使用的範例數據。 在生產伺服器上部署時,您應該切換回 [完整數據] 檢視。 回想一下,DirectQuery 模式需要每個數據表一個數據分割,而每個模型需要一個數據源。 |
默認 | 如果您想要在模型或資料庫層級上切換物件樹狀結構較高的模式,請設定此選項。 當您選擇預設值時,查詢模式會是匯入或 DirectQuery。 |
源
識別要查詢的數據位置。 有效值為 查詢、計算或 無。 此值是必要的。
價值 | 描述 |
---|---|
無 | 用於匯入模式,其中數據會載入並儲存在記憶體中。 |
查詢 | 針對 DirectQuery 模式,這是針對模型 DataSource中指定的關係資料庫執行的 SQL 查詢。 請參閱 DataSources 物件 (TMSL)。 |
計算 | 匯出數據表是從建立數據表時所指定的表達式來源。 此表達式會被視為針對匯出數據表所建立之數據分割的來源。 |
dataview
對於 DirectQuery 分割區,其他 dataView 屬性會進一步指定擷取數據的查詢是範例還是完整數據集。 有效值會
用法
分割區對象用於 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
}
},