次の方法で共有


Fabric Python ノートブックで T-SQL コードを実行する

最新のデータ ワークフローに 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]

データ ウェアハウスを使用した tsql マジック コマンドを示すスクリーンショット。

-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];

sql database を使用した tsql magic コマンドを示すスクリーンショット。

T-SQL マジック コマンドを使用して Lakehouse SQL 分析エンドポイントにクエリを実行する

T-SQL マジック コマンドを使用して、SQL 分析エンドポイントのクエリを実行することもできます。 構文はデータ ウェアハウスのクエリに似ていますが、 -type パラメーターを Lakehouse に設定する必要があります。

T-SQL マジック コマンドをライン マジックとして使用する

%%tsqlを使用して完全なコード セルで T-SQL を実行する代わりに、セッションの接続を宣言したら、%tsqlを行マジックとして 1 行で実行できます。

  1. %%tsqlマジック コマンドを使用するセルに、パラメーター -sessionを含めます。 例えば次が挙げられます。

    %%tsql -artifact ContosoDWH -type Warehouse -session
    SELECT TOP(10) * FROM [ContosoDWH].[dbo].[Geography];
    
  2. 次のセルでは、%tsql-session-artifactを提供することなく、-type接続を想定します。 たとえば、次の行コマンドを使用すると、完全なコード セルを作成することなく、クイック クエリを実行できます。

    df = %tsql SELECT TOP(10) * FROM [ContosoDWH].[dbo].[Geography];
    

tsql magic コマンドとライン マジックを示すスクリーンショット。

T-SQL での Python 変数の参照

T-SQL コードで Python 変数を参照することもできます。 これを行うには、 {} 記号の後に Python 変数の名前を付けて使用します。 たとえば、 countという Python 変数がある場合は、T-SQL コードで次のように参照できます。

count = 10

df = %tsql SELECT TOP({count}) * FROM [dw1].[dbo].[Geography];

参照 python 変数を含む tsql magic コマンドを示すスクリーンショット。

完全な構文を表示するには、 %tsql? コマンドを使用します。 このコマンドは、使用可能なパラメーターとその説明など、T-SQL マジック コマンドのヘルプ情報を表示します。

Note

データ ウェアハウスまたは SQL データベースに対して完全な DML および DDL コマンドを実行できますが、lakehouse SQL エンドポイントに対する読み取り専用クエリのみ実行できます。

Fabric ノートブックの詳細については、次の記事を参照してください。