このドキュメントでは、SQL Server Integration Service (SSIS) を使用して U-SQL ジョブを調整および作成する方法について説明します。
重要
Azure Data Lake Analytics は 2024 年 2 月 29 日に廃止されました。 このお知らせで詳細を学びましょう。
データ分析の場合、組織は Azure Synapse Analytics または Microsoft Fabric を使用できます。
前提条件
Integration Services 用 Azure Feature Pack には、 Azure Data Lake Analytics タスク と 、Azure Data Lake Analytics サービスへの接続に役立つ Azure Data Lake Analytics 接続マネージャーが用意されています。 このタスクを使用するには、次のコマンドをインストールしてください。
- Visual Studio 用 SQL Server Data Tools (SSDT) をダウンロードしてインストールする
- Integration Services 用 Azure Feature Pack (SSIS) をインストールする
Azure Data Lake Analytics タスク
Azure Data Lake Analytics タスクを使用すると、ユーザーは U-SQL ジョブを Azure Data Lake Analytics アカウントに送信できます。
Azure Data Lake Analytics タスクを構成する方法について説明します。
SSIS の組み込み関数とタスクを使用して、さまざまな場所から U-SQL スクリプトを取得できます。以下のシナリオでは、さまざまなユーザー ケースに対して U-SQL スクリプトを構成する方法を示します。
シナリオ 1- インライン スクリプトを使用して tvfs とストアド プロシージャを呼び出す
Azure Data Lake Analytics タスク エディターで 、SourceType を DirectInput として構成し、U-SQL ステートメントを USQLStatement に配置します。
メンテナンスとコード管理を容易に行うには、短い U-SQL スクリプトのみをインライン スクリプトとして配置します。たとえば、U-SQL データベース内の既存のテーブル値関数とストアド プロシージャを呼び出すことができます。
関連記事: ストアド プロシージャにパラメーターを渡す方法
シナリオ 2- Azure Data Lake Store で U-SQL ファイルを使用する
Azure Feature Pack の Azure Data Lake Store ファイル システム タスクを使用して、Azure Data Lake Store の U-SQL ファイルを使用することもできます。 この方法では、クラウドに格納されているスクリプトを使用できます。
Azure Data Lake Store ファイル システム タスクと Azure Data Lake Analytics タスクの間の接続を設定するには、次の手順に従います。
タスク制御フローの設定
SSIS パッケージのデザイン ビューで、 Azure Data Lake Store ファイル システム タスク、 Foreach ループ コンテナー 、および Azure Data Lake Analytics タスク を Foreach ループ コンテナーに追加します。 Azure Data Lake Store ファイル システム タスクは、ADLS アカウント内の U-SQL ファイルを一時フォルダーにダウンロードするのに役立ちます。 Foreach ループ コンテナーと Azure Data Lake Analytics タスクは、一時フォルダーのすべての U-SQL ファイルを U-SQL ジョブとして Azure Data Lake Analytics アカウントに送信するのに役立ちます。
Azure Data Lake Store ファイル システム タスクの構成
- CopyFromADLS に操作を設定します。
- AzureDataLakeConnection を設定し、Azure Data Lake Store 接続マネージャーの詳細を確認します。
- AzureDataLakeDirectory を設定します。 U-SQL スクリプトを格納しているフォルダーをポイントします。 Azure Data Lake Store アカウントのルート フォルダーに対する相対パスを使用します。
- ダウンロードした U-SQL スクリプトをキャッシュするフォルダーに Destination を設定します。 このフォルダー パスは、U-SQL ジョブの送信に Foreach ループ コンテナーで使用されます。
Azure Data Lake Store ファイル システム タスクの詳細について説明します。
フォーイーチループコンテナーを構成する
[コレクション] ページで、列挙子を Foreach ファイル列挙子に設定します。
列挙子構成グループの下のフォルダーを、ダウンロードした U-SQL スクリプトを含む一時フォルダーに設定します。
[列挙子の構成] で [ファイル] を
*.usql
に設定して、ループ コンテナーが.usql
で終わるファイルのみをキャッチするようにします。[ 変数マッピング] ページで、ユーザー定義の変数を追加して、各 U-SQL ファイルのファイル名を取得します。 ファイル名を取得するには、 インデックス を 0 に設定します。 この例では、
User::FileName
という変数を定義します。 この変数は、U-SQL スクリプト ファイル接続を動的に取得し、Azure Data Lake Analytics タスクで U-SQL ジョブ名を設定するために使用されます。
Azure Data Lake Analytics タスクの構成
SourceType を FileConnection に設定します。
FileConnection を、Foreach ループ コンテナーから返されるファイル オブジェクトを指すファイル接続に設定します。
このファイル接続を作成するには:
[ファイル接続] 設定で<[新しい接続を作成...]> を選択します。
[使用法の種類] を [既存のファイル] に設定し、[ファイル] を既存のファイルのファイル パスに設定します。
接続マネージャー ビューで、作成されたファイル接続を右クリックし、[プロパティ] を選択します。
[プロパティ] ウィンドウで [式] を展開し、ConnectionString を Foreach ループ コンテナーで定義されている変数 (たとえば、
@[User::FileName]
) に設定します。
ジョブを送信する Azure Data Lake Analytics アカウント に AzureDataLakeAnalyticsConnection を設定します。 Azure Data Lake Analytics 接続マネージャーの詳細を確認します。
その他のジョブ構成を設定します。 詳細については、こちらを参照してください。
式を使用して U-SQL ジョブ名を動的に設定する:
[ 式] ページで、 JobName の新しい式のキーと値のペアを追加します。
JobName の値を、foreach ループ コンテナーで定義されている変数 (たとえば、
@[User::FileName]
) に設定します。
シナリオ 3- Azure Blob Storage で U-SQL ファイルを使用する
Azure Feature Pack の Azure BLOB ダウンロード タスクを使用して、Azure Blob Storage の U-SQL ファイルを使用できます。 この方法では、クラウド上のスクリプトを使用できます。
手順は、 シナリオ 2: Azure Data Lake Store で U-SQL ファイルを使用する場合と同様です。 Azure Data Lake Store ファイル システム タスクを Azure BLOB ダウンロード タスクに変更します。 Azure BLOB ダウンロード タスクの詳細を確認します。
制御フローは次のようになります。
シナリオ 4- ローカル コンピューターで U-SQL ファイルを使用する
クラウドに格納されている U-SQL ファイルを使用するだけでなく、ローカル コンピューター上のファイルや、SSIS パッケージと共にデプロイされたファイルを使用することもできます。
SSIS プロジェクトで [接続マネージャー ] を右クリックし、[ 新しい接続マネージャー] を選択します。
[ファイルの種類] を選択し、[追加...] を選択します。
[使用法の種類] を [既存のファイル] に設定し、[ファイル] をローカル コンピューター上のファイルに設定します。
Azure Data Lake Analytics タスクを追加し、次の手順を実行します。
- SourceType を FileConnection に設定します。
- FileConnection を作成したファイル接続に設定します。
Azure Data Lake Analytics タスクの他の構成を完了します。
シナリオ 5 - SSIS 変数で U-SQL ステートメントを使用する
場合によっては、U-SQL ステートメントを動的に生成する必要があります。 SSIS 式や、スクリプト タスクなどの他の SSIS タスクと共に SSIS 変数を使用すると、U-SQL ステートメントを動的に生成できます。
SSIS >変数の最上位メニューから変数ツール ウィンドウを開きます。
SSIS 変数を追加し、値を直接設定するか、 式 を使用して値を生成します。
Azure Data Lake Analytics タスクを追加し、次の手順を実行します。
- SourceType を変数に設定します。
- SourceVariable を、ここで作成した SSIS 変数に設定します。
Azure Data Lake Analytics タスクの他の構成を完了します。
シナリオ 6-U-SQL スクリプトにパラメーターを渡す
場合によっては、U-SQL スクリプトで U-SQL 変数の値を動的に設定することが必要になる場合があります。 Azure Data Lake Analytics タスクのパラメーター マッピング機能は、このシナリオに役立ちます。 通常、次の 2 つの一般的なユーザー ケースがあります。
- 現在の日付と時刻に基づいて、入力と出力のファイル パス変数を動的に設定します。
- ストアド プロシージャのパラメーターを設定します。
U-SQL スクリプトのパラメーターを設定する方法の詳細について説明します。