T-SQL を使用してデータを読み込む

完了

SQL 開発者または市民開発者は、多くの場合、SQL エンジンに精通し、T-SQL の使用に熟練しており、Microsoft Fabric 内のウェアハウスに対して好意的でしょう。

これは、このウェアハウスには開発者たちが慣れ親しんだものと同じ SQL エンジンが使用されており、それによって複雑なクエリとデータ操作を実行することができるためです。 これらの操作には、さまざまなテーブルからのデータのフィルター処理、並べ替え、集計、結合が含まれます。 この SQL エンジンの幅広い機能と演算子により、データベース レベルでの洗練されたデータ分析と変換がさらに可能となります。

COPY ステートメントを使用する

COPY ステートメントは、ウェアハウス内にデータをインポートするためのメイン メソッドとして機能します。 これにより、外部の Azure ストレージ アカウントからの効率的なデータ インジェストが容易になります。

これにより、柔軟性が提供され、ソース ファイルの形式を指定したり、そのインポート プロセス中に拒否される行を格納する場所を指定したり、ヘッダー行をスキップしたりすることができます。その他にも、構成することができる複数のオプションがあります。

拒否された行を個別に格納するそのオプションは、データのクリーニングと品質制御に役立ちます。 これにより、正常にインポートされなかったデータに関する問題を、簡単に特定して調査することができます。

Azure ストレージ アカウントに接続するには、Shared Access Signature (SAS) またはストレージ アカウント キー (SAK) のいずれかを使用する必要があります。

Note

現在、COPY ステートメントは、PARQUET および CSV ファイル形式をサポートします。

エラーを処理する

ERRORFILE の場所 (REJECTED_ROW_LOCATION) に別のストレージ アカウントを使用するオプションを使用すると、エラー処理とデバッグを向上させることができます。 これにより、データの読み込みプロセス中に発生する何らかの問題を、より簡単に特定して調査することができます。 ERRORFILE は CSV にのみ適用されます。

複数のファイルを読み込む

ストレージの場所のパス内でワイルドカードと複数のファイルを指定する機能により、COPY ステートメントで一括データ読み込みを効率的に処理することができます。 これは、複数のファイルに分散された大規模なデータセットを処理する場合に便利です。

複数のファイルの場所は、同じストレージ アカウントおよびコンテナーから、コンマ区切りのリストを使用してのみ指定することができます。

COPY my_table
FROM 'https://myaccount.blob.core.windows.net/myblobcontainer/folder0/*.csv, 
    https://myaccount.blob.core.windows.net/myblobcontainer/folder1/'
WITH (
    FILE_TYPE = 'CSV',
    CREDENTIAL=(IDENTITY= 'Shared Access Signature', SECRET='<Your_SAS_Token>')
    FIELDTERMINATOR = '|'
)

次の例では、PARQUET ファイルを読み込む方法を示します。

COPY INTO test_parquet
FROM 'https://myaccount.blob.core.windows.net/myblobcontainer/folder1/*.parquet'
WITH (
    CREDENTIAL=(IDENTITY= 'Shared Access Signature', SECRET='<Your_SAS_Token>')
)

すべてのファイルが同じ構造 (つまり、同じ順序で同じ列) をしており、この構造がターゲット テーブルの構造と確実に一致するようにします。

他のウェアハウスやレイクハウスからテーブルを読み込む

他のウェアハウスやレイクハウスなど、ワークスペース内のさまざまなデータ資産からデータを読み込むことができます。

データ資産を参照するには、3 部構成の名前付けを確実に使用して、これらのワークスペース資産上のテーブルからデータを結合します。 それから、CREATE TABLE AS SELECT (CTAS) および INSERT...SELECT を使用して、そのデータをウェアハウス内に読み込むことができます。

SQL ステートメント 説明
CREATE TABLE AS SELECT SELECT ステートメントの出力に基づいて、新しいテーブルを作成することができます。 この操作は、多くの場合、テーブルのコピーを作成したり、複雑なクエリの結果を変換および読み込んだりするために使用されます。
INSERT...SELECT 1 つのテーブルから別のテーブルにデータを挿入することができます。 これは、新しいテーブルを作成せずに、1 つのテーブルから別のテーブルにデータをコピーする場合に便利です。

アナリストが、ウェアハウスとレイクハウスの両方のデータを必要とするシナリオでは、この機能を使用してデータを結合することができます。 それから、この結合されたデータを、分析のためにウェアハウス内に読み込むことができます。 この機能は、ワークスペース内の多くの資産にデータが分散されている場合に便利です。

次のクエリは、product_id を共通キーとして使用し、sales_warehousesocial_lakehouse からのデータを結合して、新しいテーブルを analysis_warehouse 内に作成します。 それから、その新しいテーブルを使用してさらに分析することができます。

CREATE TABLE [analysis_warehouse].[dbo].[combined_data]
AS
SELECT 
FROM [sales_warehouse].[dbo].[sales_data] sales
INNER JOIN [social_lakehouse].[dbo].[social_data] social
ON sales.[product_id] = social.[product_id];

同じワークスペースを共有するすべてのウェアハウスは、同じ論理 SQL サーバー内に統合されます。 SQL Server Management Studio などの SQL クライアント ツールを使用する場合は、任意の SQL Server インスタンスと同様に、データベース間クエリを簡単に実行することができます。

Animated GIF showing how to reference other Warehouses in a workspace from SQL Server Management Studio.

MyWarehouseSales は、両方とも同じワークスペースを共有するウェアハウス資産です。

ワークスペースからオブジェクト エクスプローラーを使用しており、ウェアハウスにクエリを実行する場合は、それらを明示的に追加する必要があります。 追加されたそれらのウェアハウスは、ビジュアル クエリ エディターからも表示されます。

Animated GIF showing how to query other Warehouses in a workspace from the Fabric workspace.

T-SQL を使用する場合、COPY ステートメントを使用して、または同じワークスペース内の他のウェアハウスやレイクハウスから、Microsoft Fabric 内のウェアハウス内にデータを効率的に読み込むことができるため、シームレスなデータ管理と分析ができるようになります。