最新のデータ ワークフローに T-SQL と Python を組み合わせて使用すると、両方の言語の長所を組み合わせた強力で柔軟なアプローチが提供されます。 SQL は構造化データのクエリ、フィルター処理、結合を行う最も効率的で読みやすい方法であり、Python はデータ変換、統計分析、機械学習、視覚化に優れています。 T-SQL と Python を組み合わせることにより、データ エンジニアは両方の長所を活用して、効率的で保守可能で複雑なデータ処理タスクを処理できる堅牢なパイプラインを構築できます。
Microsoft Fabric Python ノートブックでは、T-SQL マジック コマンドと呼ばれる新機能が導入されました。 この機能を使用すると、完全な構文の強調表示とコード補完を使用して、Python ノートブックで直接 T-SQL コードを実行できます。 つまり、Python ノートブックで T-SQL コードを記述でき、T-SQL セルであるかのように実行されます。 この機能は、Python ノートブックの柔軟性を引き続き使用しながら T-SQL の機能を使用するデータ エンジニアに役立ちます。
この記事では、Microsoft Fabric ノートブックの T-SQL マジック コマンドについて説明します。 このコマンドを有効にする方法、使用するウェアハウスを指定する方法、および T-SQL クエリの結果を Python 変数にバインドする方法について説明します。
この機能は、Fabric Python ノートブックで使用できます。 ノートブックで言語を Python に設定し、セルの種類を T-SQL に設定する必要があります。
Important
この機能は プレビュー段階です。
T-SQL マジック コマンドを使用して Fabric データ ウェアハウスにクエリを実行する
Fabric ノートブックで T-SQL マジック コマンドを有効にするには、セルの先頭に %%tsql magic コマンドを設定する必要があります。 このコマンドは、そのセル内のコードを T-SQL コードとして扱う必要があることを示します。
この例では、T-SQL マジック コマンドを使用して Fabric Data Warehouse のクエリを実行しています。 このコマンドは、次のパラメーターを受け取ります。
-
-artifactパラメーターは、使用するデータ ウェアハウスの名前を指定します。 セル内の T-SQL コードは、Fabric の指定されたデータ ウェアハウスに対して実行されます。 -
-typeパラメーターは、Fabric アイテムの種類を指定します。 Fabric Data Warehouse の場合は、Warehouseを使用します。 -
-bindパラメーターは、T-SQL クエリの結果をバインドする変数の名前を指定します。 次の例では、クエリの結果は、df1と呼ばれる Python 変数に格納されます。 df1 変数に変換を適用する必要がある場合は、次のセルの Python コードを使用して適用できます。-bindパラメーターは省略可能ですが、T-SQL クエリの結果を Python 変数にバインドすることをお勧めします。 このパラメーターを使用すると、Python コードを使用して結果を簡単に操作および分析できます。 -
-workspaceパラメーターは省略可能であり、ウェアハウスが別のワークスペースにある場合に使用されます。 このパラメーターを指定しない場合、ノートブックは現在のワークスペースを使用します。
%%tsql -artifact dw1 -type Warehouse -bind df1
SELECT TOP (10) [GeographyID],
[ZipCodeBKey],
[County],
[City],
[State],
[Country],
[ZipCode]
FROM [dw1].[dbo].[Geography]
-artifactパラメーターと-type パラメーターの両方がスキップされた場合、ノートブックは現在のノートブックの既定のウェアハウス項目を使用します。
T-SQL マジック コマンドを使用して SQL データベースにクエリを実行する
T-SQL マジック コマンドを使用して、Fabric の SQL データベースに対してクエリを実行することもできます。 構文はデータ ウェアハウスのクエリに似ていますが、 -type パラメーターを SQLDatabase に設定する必要があります。
-bind パラメーターは、T-SQL クエリの結果をバインドする変数の名前を指定します。
次の例では、クエリの結果は、 df2と呼ばれる Python 変数に格納されます。
%%tsql -artifact sqldb1 -type SQLDatabase -bind df2
SELECT TOP (10) [AddressID]
,[AddressLine1]
,[AddressLine2]
,[City]
,[StateProvince]
,[CountryRegion]
,[PostalCode]
,[rowguid]
,[ModifiedDate]
FROM [SalesLT].[Address];
T-SQL マジック コマンドを使用して Lakehouse SQL 分析エンドポイントにクエリを実行する
T-SQL マジック コマンドを使用して、SQL 分析エンドポイントのクエリを実行することもできます。 構文はデータ ウェアハウスのクエリに似ていますが、 -type パラメーターを Lakehouse に設定する必要があります。
T-SQL マジック コマンドをライン マジックとして使用する
%%tsqlを使用して完全なコード セルで T-SQL を実行する代わりに、セッションの接続を宣言したら、%tsqlを行マジックとして 1 行で実行できます。
%%tsqlマジック コマンドを使用するセルに、パラメーター-sessionを含めます。 例えば次が挙げられます。%%tsql -artifact ContosoDWH -type Warehouse -session SELECT TOP(10) * FROM [ContosoDWH].[dbo].[Geography];次のセルでは、
%tsqlは-sessionと-artifactを提供することなく、-type接続を想定します。 たとえば、次の行コマンドを使用すると、完全なコード セルを作成することなく、クイック クエリを実行できます。df = %tsql SELECT TOP(10) * FROM [ContosoDWH].[dbo].[Geography];
T-SQL での Python 変数の参照
T-SQL コードで Python 変数を参照することもできます。 これを行うには、 {} 記号の後に Python 変数の名前を付けて使用します。 たとえば、 countという Python 変数がある場合は、T-SQL コードで次のように参照できます。
count = 10
df = %tsql SELECT TOP({count}) * FROM [dw1].[dbo].[Geography];
完全な構文を表示するには、 %tsql? コマンドを使用します。 このコマンドは、使用可能なパラメーターとその説明など、T-SQL マジック コマンドのヘルプ情報を表示します。
Note
データ ウェアハウスまたは SQL データベースに対して完全な DML および DDL コマンドを実行できますが、lakehouse SQL エンドポイントに対する読み取り専用クエリのみ実行できます。
関連コンテンツ
Fabric ノートブックの詳細については、次の記事を参照してください。
- Questions? Fabric コミュニティで質問してみてください。
- Suggestions? Fabric 改善のアイデアを投稿してください。