適用対象:✅ Microsoft Fabric の倉庫
この記事では、Microsoft Fabricでテーブルを設計するための主要な概念について詳しく説明します。
テーブルでは、データが論理的に行と列の形式にまとめられます。 各行は一意なレコードを表し、各列はレコードのフィールドを表します。
テーブル カテゴリを決定する
スター スキーマ は、データを ファクト テーブル と ディメンション テーブル に編成します。 一部のテーブルは、ファクト テーブルまたはディメンション テーブルに移動する前に統合またはステージング データに使用されます。 テーブルを設計する際には、テーブルのデータがファクト、ディメンション、統合のいずれのテーブルに属するかを決定します。 この決定により、適切なテーブル構造体が通知されます。
ファクト テーブルには、一般にトランザクション システムで生成された後、データ ウェアハウスに読み込まれる定量的データが含まれています。 たとえば、小売業では販売トランザクションを毎日生成した後、そのデータを分析のためにデータ ウェアハウス ファクト テーブルに読み込みます。
ディメンション テーブルには、変化する可能性はあるが通常は変更頻度が低い属性データが含まれます。 たとえば、顧客の名前と住所はディメンション テーブルに格納され、その顧客のプロファイルが変更された場合にのみ更新されます。 大規模なファクト テーブルのサイズを最小限に抑えるために、ファクト テーブルのすべての行に顧客の名前と住所を格納する必要はありません。 代わりに、ファクト テーブルとディメンション テーブルで顧客 ID を共有できます。 クエリで 2 つのテーブルを結合して、顧客のプロファイルとトランザクションに関連付けることができます。
統合テーブルは、統合またはステージング データの場所を提供します。 たとえば、ステージング テーブルにデータを読み込み、ステージングでデータの変換を実行してから、データを運用環境テーブルに挿入できます。
テーブルは、ウェアハウスの一部として OneLake にデータを格納します。 テーブルとデータは、セッションが開かれているかどうかにかかわらず保持されます。
倉庫内のテーブル
テーブルの構成を表示するには、テーブル名のプレフィックスとして fact、dim、または int を使用できます。 次の表に、WideWorldImportersDW というサンプル データ ウェアハウスのスキーマ名とテーブル名の一部を示します。
| WideWorldImportersDW ソース テーブル名 | テーブルの種類 | データウェアハウスのテーブル名 |
|---|---|---|
| 市 | ディメンション | wwi.DimCity |
| 注文 | 事実 | wwi.FactOrder |
- テーブル名に
/や\を含めたり、末尾を.にしたりすることはできません。 - Fabric Data Warehouseではセッションスコープ付きの一時的(
#temp)テーブルを作成できます。 詳細については、Fabric Data Warehouseの一時テーブルを参照してください。
テーブルを作成する
テーブルは、新しい空のテーブルとして作成することができます、ウェアハウスでは。 テーブルを作成し、SELECT ステートメントの結果を使用して値を設定することもできます。 テーブルを作成するための T-SQL コマンドを次に示します。
| T-SQL ステートメント | 説明 |
|---|---|
| テーブルを作成 | すべてのテーブル列およびオプションを定義して空のテーブルを作成します。 |
| SELECT としてテーブルを作成する | SELECT ステートメントの結果を使用して新しいテーブルに値が設定されます。 テーブルの列とデータ型は、SELECT ステートメントの結果に基づきます。 データをインポートするには、このステートメントで外部テーブルから選択できます。 |
この例では、次の 2 つの列を含むテーブルを作成します。
CREATE TABLE MyTable (col1 int, col2 int );
Fabric Data Warehouse は、テーブル内のIDENTITY 列 (プレビュー)をサポートしており、インクリメントされる連番を自動的に挿入できます。
スキーマ名
Warehouse では、カスタム スキーマの作成がサポートされています。 SQL Serverと同様に、スキーマは、同様の方法で使用されるオブジェクトをグループ化するのに適した方法です。 次のコードは、ユーザー定義スキーマと呼ばれるschemaを作成します。
- スキーマ名に
/や\を含めたり、末尾を.にしたりすることはできません。
CREATE SCHEMA wwi;
データ型
Microsoft Fabricでは、最も一般的に使用される T-SQL データ型がサポートされています。
- データ型の詳細については、Fabric Data Warehouse のデータ型を参照してください。
- Warehouse でテーブルを作成する場合は、CREATE TABLE (Transact-SQL) のデータ型参照を確認してください。
- ウェアハウスでテーブルを作成するためのガイドについては、テーブルの作成に関するページを参照してください。
照合順序
Fabric ウェアハウスは、ワークスペースの照合順序設定に基づいて構成されます。既定では、大文字と小文字が区別される (CS) 照合順序Latin1_General_100_BIN2_UTF8。
新しいウェアハウスを作成するときに、ワークスペースの照合順序が使用されます。 詳細については、「Data Warehouse 照合順序」を参照してください。
サポートされているウェアハウスの照合順序は次のとおりです。
-
Latin1_General_100_BIN2_UTF8(既定値) Latin1_General_100_CI_AS_KS_WS_SC_UTF8
REST API を使用して、既定以外の照合順序を持つウェアハウスを作成できます。 詳細については、「ケースの区別をしない (CI) 照合順序でウェアハウスを作成する方法」を参照してください。
データベースの作成時に照合順序が設定されると、後続のすべてのオブジェクト (テーブル、列など) がこの既定の照合順序を継承します。 ウェアハウスが作成されると、照合順序の設定を変更することはできません。
Statistics
クエリ オプティマイザーでは、クエリ実行のプランの作成時に列レベルの統計が使用されます。 クエリのパフォーマンスを向上させるには、個々の列、特にクエリの結合で使用される列の統計を作成することが重要です。 ウェアハウスでは、統計の自動作成がサポートされます。
統計の更新は自動的には行われません。 大量の行が追加または変更された後に統計を更新します。 たとえば、読み込みの後に統計を更新します。 詳細については、Fabric Data Warehouse の統計情報を参照してください。
主キー、外部キー、一意キー
Warehouse の場合、 PRIMARY KEY 制約と UNIQUE 制約は、 NONCLUSTERED と NOT ENFORCED の両方が使用されている場合にのみサポートされます。
FOREIGN KEY は、 NOT ENFORCED が使用されている場合にのみサポートされます。
- 構文については、ALTER TABLE をご覧ください。
- 詳細については、「 主キー、外部キー、および一意キー」を参照してください。
ソース データをデータ ウェアハウスに配置する
ウェアハウス テーブルは、別のデータ ソースからデータを読み込むことで設定されます。 読み込みを成功させるには、ソース データ内の列の数とデータ型が、ウェアハウス内のテーブル定義と一致している必要があります。
データが複数のデータ ストアから送信される場合は、データをウェアハウスに移植し、統合テーブルに格納できます。 データが統合テーブルに入ったら、ウェアハウスの力を使って変換操作を実装できます。 データの準備ができたら、それを運用テーブルに挿入できます。
制限事項
ウェアハウスでは、他のデータベースで提供されるテーブル機能の多くがサポートされますが、すべてサポートされるわけではありません。
- グローバル一時テーブルは現在サポートされていません。
次の一覧は、現在サポートされていないテーブル機能の一部を示しています。
テーブルあたり最大 1,024 列
計算列
インデックス付きビュー
パーティション化されたテーブル
シークエンス
スパース列
シノニム
トリガー
一意のインデックス
ユーザー定義データ型
外部テーブル
ウェアハウス オブジェクトメタデータは、オブジェクトとその定義への高速アクセスを提供するために、Fabric Data Warehouseによってキャッシュされます。 オブジェクトが 750,000 を超える非常に大規模なウェアハウス (テーブル、ビュー、ストアド プロシージャ、関数など) の場合、メタデータはシステムによってキャッシュされなくなります。 代わりに、スキーマ操作はメタデータ ストアに直接クエリを実行します。 これにより、システムの安定性が確保され、非常に大規模なデータベースでのキャッシュの不足を防ぐことができます。 ただし、スキーマの更新操作は、メタデータ キャッシュが有効になっている小規模なウェアハウスに比べて時間がかかる場合があります。
重要
Fabric Warehouse DevelopmentでGit統合を使用する場合、テーブル制約や列を追加するには制限があります。