Partitions オブジェクト (TMSL)

適用対象:SQL Server 2016 以降の Analysis Services Azure Analysis Services Fabric/Power BI Premium

テーブル行セットのパーティション (論理セグメント化) を定義します。 パーティションは、データのインポート、モデリング環境でのサンプル データ、または DirectQuery を使用したパススルー クエリ実行の完全なデータ クエリとして使用される、Power Query M または SQL クエリで構成されます。

パーティションのプロパティによって、テーブルのデータのソース方法が決まります。 オブジェクト階層では、パーティションの親オブジェクトはテーブル オブジェクトです。

オブジェクト定義

すべてのオブジェクトには、名前、型、説明、プロパティ コレクション、注釈など、共通のプロパティ セットがあります。 パーティション オブジェクトには、次のプロパティもあります。


パーティションの種類。 有効な値は数値であり、次のものが含まれます。

  • クエリ (1) – このパーティション内のデータは、 DataSource に対してクエリを実行することによって取得されます。 DataSource は、model.bim ファイルで定義されているデータ ソースである必要があります。

  • 計算 (2) – このパーティション内のデータは、計算式を実行することによって設定されます。

  • なし (3) – このパーティション内のデータは、更新操作の一環としてデータの行セットをサーバーにプッシュすることによって設定されます。

mode
パーティションのクエリ モードを定義します。 有効な値は、 インポートDirectQuery、または 既定値 (継承) です。 この値は必須です。

説明
[インポート] インポートされたデータを格納するメモリ内分析エンジンに対してクエリ要求が発行されたことを示します。
DirectQuery クエリ実行を外部リレーショナル データベースに渡します。 DirectQuery モードでは、パーティションを使用して、モデルの設計時に使用されるサンプル データが提供されます。 運用サーバーにデプロイする場合は、フル データ ビューに戻る必要があります。 DirectQuery モードでは、テーブルごとに 1 つのパーティションと、モデルごとに 1 つのデータ ソースが必要であることを思い出してください。
default モデルまたはデータベース レベルでオブジェクト ツリーの上位にモードを切り替える場合は、これを設定します。 既定を選択すると、クエリ モードはインポートまたは DirectQuery になります。

source
クエリを実行するデータの場所を識別します。 有効な値は 、クエリ、計算、または なしです。 この値は必須です。

説明
"なし" データが読み込まれ、メモリに格納されるインポート モードに使用されます。
query 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  
                }  
              },