Fabric のデータ ウェアハウスを理解する

完了

data warehouseの基礎を理解したので、データ ウェアハウスにMicrosoft Fabricが提供する内容を見てみましょう。

ファブリックデータウェアハウスを説明する

Fabric data warehouseは、OneLake 上に構築されたフル マネージドのエンタープライズ規模のリレーショナル データベースです。 DDL ステートメント (CREATE、ALTER、DROP) や DML ステートメント (INSERT、UPDATE、DELETE、MERGE) を含む、完全なトランザクション T-SQL 機能が提供され、データの一貫性を確保するための完全な ACID 準拠が提供されます。

データは OneLake に開いている Delta 形式で格納されます。つまり、他の Fabric ワークロードは重複せずに同じデータをaccessできます。 T-SQL を使用すると、使い慣れた SQL エクスペリエンス内で、テーブルの作成、データの読み込み、ビューとストアド プロシージャの構築、変換の実行を行うことができます。

主な機能は次のとおりです。

  • 完全な T-SQL サポート - 使い慣れたSQL Server構文を使用して、アップサート シナリオの MERGE を含む DDL および DML ステートメントを記述します。
  • フル マネージド - 構成するインフラストラクチャがありません。 コンピューティングは、storageとは無関係に自動的にスケーリングされます。
  • OneLake 統合 - ウェアハウス データはDeltaフォーマットで格納され、重複せずに、他のFabricワークロードからアクセスできます。
  • データベース間クエリ - データをコピーせずに、ウェアハウスとレイクハウス間でデータのクエリを実行します。 3 部構成の名前付け (database.schema.table) を使用して、ウェアハウス テーブルと lakehouse テーブルを 1 つのクエリで結合します。
  • 使い慣れたツール - SQL Server Management Studio (SSMS)、Azure Data Studio、または標準の TDS 接続経由の任意の SQL クライアントと接続します。
  • Copilot assistance - Data Warehouse用の Copilot は自然言語から SQL クエリを生成し、入力時にコード補完を提供し、SQL エディターで既存のクエリを説明または修正できます。

ウェアハウスと SQL 分析エンドポイント

ファブリック ワークスペースには、異なる目的で機能する 2 種類の SQL ベースの項目を含めることができます。

能力 倉庫 SQL 分析エンドポイント
データの読み取り はい はい
データの書き込み (INSERT、UPDATE、DELETE、MERGE) はい いいえ
テーブルの作成 (DDL) はい いいえ
ビューとストアド プロシージャの作成 はい はい
データ ソース ネイティブ倉庫テーブル Lakehouse Delta テーブル

完全な読み取り/書き込み T-SQL 機能が必要な場合は、ウェアハウスを使用します。 sql analytics エンドポイントは、lakehouse データへの読み取り専用の SQL accessが必要な場合に使用します。

data warehouseを作成する

Fabric内の作成ハブまたはワークスペースでデータウェアハウスを作成できます。 空のウェアハウスを作成したら、テーブル、ビュー、およびその他のオブジェクトを追加できます。

作成ハブを指す矢印が表示された Fabric UI のスクリーンショット。

ウェアハウスが作成されたら、Fabric ポータルで SQL query editorを使用してテーブルの作成とデータの読み込みを開始できます。

データウェアハウスにデータを取り込む

Fabric data warehouseにデータを読み込むには、いくつかの方法があります。

  • COPY INTO - Azure storageの外部ファイル (CSV、Parquet) からウェアハウス テーブルにデータを一括読み込みします。
  • OPENROWSET - テーブルを最初に作成せずに、外部のstorageまたは OneLake の場所から直接、アドホック分析またはインジェストのためにファイルを照会します。
  • Pipelinesとデータフロー - 調整されたデータの移動と変換には、Data Factory pipelines または Dataflows Gen2 を使用します。
  • データベース間クエリ - データをコピーせずに、3 部構成の名前付けを使用して、ウェアハウスから lakehouse テーブルに直接クエリを実行します。

COPY INTO T-SQL コマンドを使用して、ファイルからデータを一括読み込みできます。 たとえば、次のステートメントは、CSV ファイルからテーブルにデータを読み込みます。

COPY INTO dbo.Region
FROM 'https://mystorageaccount.blob.core.windows.net/data/Region.csv'
WITH (
    FILE_TYPE = 'CSV',
    CREDENTIAL = (
        IDENTITY = 'Shared Access Signature',
        SECRET = 'xxx'
    ),
    FIRSTROW = 2
)
GO

クエリが開いているSQLクエリエディターのスクリーンショット。

ヒント

変更を加えずにウェアハウスからクエリを実行するテーブルがレイクハウスにある場合は、代わりにデータベース間クエリを使用します。 データをコピーする必要はありません。

テーブルの作成とデータの読み込み

ウェアハウスを作成し、インジェスト方法を選択した後、次の手順は、テーブルを定義してデータを読み込みます。

T-SQL CREATE TABLE ステートメントを使用してテーブルを作成します。 分析ワークロードに適したデータ型を持つ列を定義します。

CREATE TABLE dbo.DimCustomer
(
    CustomerKey INT NOT NULL,
    CustomerAltKey NVARCHAR(10) NOT NULL,
    CustomerName NVARCHAR(100) NOT NULL,
    Region NVARCHAR(50) NULL
);
GO

CREATE TABLE dbo.FactSales
(
    SalesKey INT NOT NULL,
    CustomerKey INT NOT NULL,
    ProductKey INT NOT NULL,
    DateKey INT NOT NULL,
    SalesAmount DECIMAL(10,2) NOT NULL,
    Quantity INT NOT NULL
);
GO

精度とstorage効率のバランスを取るデータ型を選択します。 キー列には INT 、特殊文字を含むテキストには NVARCHAR 、精度を必要とする財務値には DECIMAL を使用します。

データ読み込みにステージング テーブルを使用する

データ ウェアハウスの一般的なパターンは、最終ディメンション テーブルとファクト テーブルに変換して読み込む前に、ステージング テーブルに生データを配置することです。 ステージング テーブルは、ソース データの構造を反映し、一時的な保持領域として機能します。

COPY INTO またはpipelinesを使用してステージング テーブルにデータを読み込んだ後、それを変換してディメンション モデルに挿入します。

INSERT INTO dbo.FactSales (SalesKey, CustomerKey, ProductKey, DateKey, SalesAmount, Quantity)
SELECT
    s.OrderID,
    c.CustomerKey,
    p.ProductKey,
    d.DateKey,
    s.Amount,
    s.Qty
FROM dbo.StgSales AS s
INNER JOIN dbo.DimCustomer AS c ON s.CustomerID = c.CustomerAltKey
INNER JOIN dbo.DimProduct AS p ON s.ProductID = p.ProductAltKey
INNER JOIN dbo.DimDate AS d ON s.OrderDate = d.DateValue;
GO

このパターンでは、読み込みプロセス中にビジネス ルールとキー参照を適用するときに、ソース データはそのまま保持されます。

テーブルの複製を理解する

ファブリック データ ウェアハウスでは、ゼロコピーのテーブルクローンを作成できます。 OneLake で同じ基になるデータ ファイルを参照しながら、テーブル メタデータをクローンします。 データ自体は重複しないため、storageコストが低くなります。

次のコード例は、T-SQL を使用してクローンを作成する方法を示しています。

--Clone creation within the same schema
CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA;

テーブルクローンは、開発とテスト、リリース失敗後のデータ復旧、履歴レポートの特定の時点でのデータの保持に役立ちます。

ヒント

詳細については、Microsoft Fabric のドキュメントの Clone テーブル を参照してください。

Fabric のウェアハウス機能を理解したので、データのクエリと変換の方法を見てみましょう。