Azure Data Factory を使用して Azure Blob Storage から SQL データベースにデータをコピーするCopy data from Azure Blob storage to a SQL database by using Azure Data Factory

このチュートリアルでは、Azure Data Factory ユーザー インターフェイス (UI) を使用してデータ ファクトリを作成します。In this tutorial, you create a data factory by using the Azure Data Factory user interface (UI). このデータ ファクトリのパイプラインでは、Azure Blob Storage から SQL データベースにデータをコピーします。The pipeline in this data factory copies data from Azure Blob storage to a SQL database. このチュートリアルの構成パターンは、ファイルベースのデータ ストアからリレーショナル データ ストアへのコピーに適用されます。The configuration pattern in this tutorial applies to copying from a file-based data store to a relational data store. ソースおよびシンクとしてサポートされているデータ ストアの一覧については、サポートされているデータ ストアに関する表を参照してください。For a list of data stores supported as sources and sinks, see the supported data stores table.

注意

このチュートリアルでは、以下の手順を実行します。In this tutorial, you perform the following steps:

  • データ ファクトリを作成します。Create a data factory.
  • コピー アクティビティを含むパイプラインを作成します。Create a pipeline with a copy activity.
  • パイプラインをテスト実行します。Test run the pipeline.
  • パイプラインを手動でトリガーします。Trigger the pipeline manually.
  • スケジュールに基づいてパイプラインをトリガーします。Trigger the pipeline on a schedule.
  • パイプラインとアクティビティの実行を監視します。Monitor the pipeline and activity runs.

前提条件Prerequisites

  • Azure サブスクリプションAzure subscription. Azure サブスクリプションをお持ちでない場合は、開始する前に無料の Azure アカウントを作成してください。If you don't have an Azure subscription, create a free Azure account before you begin.
  • Azure ストレージ アカウントAzure storage account. Blob Storage を "ソース" データ ストアとして使用します。You use Blob storage as a source data store. ストレージ アカウントがない場合の作成手順については、Azure のストレージ アカウントの作成に関するページを参照してください。If you don't have a storage account, see Create an Azure storage account for steps to create one.
  • Azure SQL データベースAzure SQL Database. データベースを "シンク" データ ストアとして使用します。You use the database as a sink data store. SQL データベースがない場合の作成手順については、「SQL Database の作成」を参照してください。If you don't have a SQL database, see Create a SQL database for steps to create one.

BLOB と SQL テーブルを作成するCreate a blob and a SQL table

ここからは、次の手順を実行して、チュートリアルで使用する Blob Storage と SQL データベースを準備します。Now, prepare your Blob storage and SQL database for the tutorial by performing the following steps.

ソース BLOB を作成するCreate a source blob

  1. メモ帳を起動します。Launch Notepad. 次のテキストをコピーし、emp.txt ファイルとしてディスクに保存します。Copy the following text, and save it as an emp.txt file on your disk:

    John,Doe
    Jane,Doe
    
  2. Blob Storage に adftutorial という名前のコンテナーを作成します。Create a container named adftutorial in your Blob storage. このコンテナーに input という名前のフォルダーを作成します。Create a folder named input in this container. 次に、input フォルダーに emp.txt ファイルをアップロードします。Then, upload the emp.txt file to the input folder. Azure Portal を使用するか、または Azure Storage Explorer などのツールを使用して、これらのタスクを実行します。Use the Azure portal or tools such as Azure Storage Explorer to do these tasks.

シンク SQL テーブルを作成するCreate a sink SQL table

  1. 次の SQL スクリプトを使用して、dbo.emp テーブルを SQL データベースに作成します。Use the following SQL script to create the dbo.emp table in your SQL database:

    CREATE TABLE dbo.emp
    (
        ID int IDENTITY(1,1) NOT NULL,
        FirstName varchar(50),
        LastName varchar(50)
    )
    GO
    
    CREATE CLUSTERED INDEX IX_emp_ID ON dbo.emp (ID);
    
  2. Azure サービスに SQL Server へのアクセスを許可します。Allow Azure services to access SQL Server. Data Factory から SQL Server にデータを書き込むことができるように、SQL Server で [Azure サービスへのアクセスを許可]オンになっていることを確認します。Ensure that Allow access to Azure services is turned ON for your SQL Server so that Data Factory can write data to your SQL Server. この設定を確認して有効にするには、Azure SQL サーバーで [概要] > [サーバー ファイアウォールの設定] に移動し、 [Azure サービスへのアクセスを許可][オン] に設定します。To verify and turn on this setting, go to Azure SQL server > Overview > Set server firewall> set the Allow access to Azure services option to ON.

Data Factory の作成Create a data factory

この手順では、データ ファクトリを作成するほか、Data Factory UI を起動してそのデータ ファクトリにパイプラインを作成します。In this step, you create a data factory and start the Data Factory UI to create a pipeline in the data factory.

  1. Microsoft Edge または Google Chrome を開きます。Open Microsoft Edge or Google Chrome. 現在、Data Factory の UI がサポートされる Web ブラウザーは Microsoft Edge と Google Chrome だけです。Currently, Data Factory UI is supported only in Microsoft Edge and Google Chrome web browsers.

  2. 左側のメニューで、 [リソースの作成] > [分析] > [データ ファクトリ] を選択します。On the left menu, select Create a resource > Analytics > Data Factory:

    [新規] ウィンドウでの [Data Factory] の選択

  3. [新しいデータ ファクトリ] ページで、 [名前] に「ADFTutorialDataFactory」と入力します。On the New data factory page, under Name, enter ADFTutorialDataFactory.

    Azure データ ファクトリの名前は グローバルに一意にする必要があります。The name of the Azure data factory must be globally unique. データ ファクトリの名前の値に関するエラー メッセージが表示された場合は、別の名前を入力してください。If you receive an error message about the name value, enter a different name for the data factory. (yournameADFTutorialDataFactory など)。(for example, yournameADFTutorialDataFactory). Data Factory アーティファクトの名前付け規則については、Data Factory の名前付け規則に関するページを参照してください。For naming rules for Data Factory artifacts, see Data Factory naming rules.

    新しいデータ ファクトリ

  4. データ ファクトリを作成する Azure サブスクリプションを選択します。Select the Azure subscription in which you want to create the data factory.

  5. [リソース グループ] で、次の手順のいずれかを行います。For Resource Group, take one of the following steps:

    a.a. [Use existing (既存のものを使用)] を選択し、ドロップダウン リストから既存のリソース グループを選択します。Select Use existing, and select an existing resource group from the drop-down list.

    b.b. [新規作成] を選択し、リソース グループの名前を入力します。Select Create new, and enter the name of a resource group.

    リソース グループの詳細については、リソース グループを使用した Azure のリソースの管理に関するページを参照してください。To learn about resource groups, see Use resource groups to manage your Azure resources.

  6. [バージョン] で、 [V2] を選択します。Under Version, select V2.

  7. [場所] で、データ ファクトリの場所を選択します。Under Location, select a location for the data factory. サポートされている場所のみがドロップダウン リストに表示されます。Only locations that are supported are displayed in the drop-down list. データ ファクトリによって使用されるデータ ストア (Azure Storage、SQL Database など) やコンピューティング (Azure HDInsight など) は、他のリージョンに存在していてもかまいません。The data stores (for example, Azure Storage and SQL Database) and computes (for example, Azure HDInsight) used by the data factory can be in other regions.

  8. 作成 を選択します。Select Create.

  9. 作成が完了すると、その旨が通知センターに表示されます。After the creation is finished, you see the notice in Notifications center. [リソースに移動] を選択して、Data factory ページに移動します。Select Go to resource to navigate to the Data factory page.

  10. [Author & Monitor](作成と監視) を選択して、別のタブで Data Factory (UI) を起動します。Select Author & Monitor to launch the Data Factory UI in a separate tab.

パイプラインを作成する。Create a pipeline

この手順では、コピー アクティビティが含まれたパイプラインをデータ ファクトリに作成します。In this step, you create a pipeline with a copy activity in the data factory. コピー アクティビティによって、Blob Storage から SQL Database にデータがコピーされます。The copy activity copies data from Blob storage to SQL Database. クイックスタート チュートリアルでは、次の手順でパイプラインを作成しました。In the Quickstart tutorial, you created a pipeline by following these steps:

  1. リンクされたサービスを作成します。Create the linked service.
  2. 入力データセットと出力データセットを作成します。Create input and output datasets.
  3. パイプラインを作成します。Create a pipeline.

このチュートリアルでは、最初にパイプラインを作成します。In this tutorial, you start with creating the pipeline. その後、パイプラインの構成に必要な場合にリンクされたサービスとデータセットを作成します。Then you create linked services and datasets when you need them to configure the pipeline.

  1. [Let's get started](始めましょう) ページで [Create pipeline](パイプラインの作成) を選択します。On the Let's get started page, select Create pipeline.

    パイプラインの作成

  2. パイプラインの [全般] タブで、パイプラインの名前として「CopyPipeline」と入力します。In the General tab for the pipeline, enter CopyPipeline for Name of the pipeline.

  3. [アクティビティ] ツール ボックスで [Move and Transform](移動と変換) カテゴリを展開し、ツール ボックスからパイプライン デザイナー画面に [データのコピー] アクティビティをドラッグ アンド ドロップします。In the Activities tool box, expand the Move and Transform category, and drag and drop the Copy Data activity from the tool box to the pipeline designer surface. [名前] に「CopyFromBlobToSql」と指定します。Specify CopyFromBlobToSql for Name.

    コピー アクティビティ

ソースの構成Configure source

  1. [ソース] タブに移動します。 [+ 新規] を選択して、ソース データセットを作成します。Go to the Source tab. Select + New to create a source dataset.

  2. [新しいデータセット] ダイアログ ボックスで [Azure Blob Storage] を選択し、 [続行] をクリックします。In the New Dataset dialog box, select Azure Blob Storage, and then select Continue. ソース データは Blob Storage にあるので、ソース データセットには Azure Blob Storage を選択します。The source data is in Blob storage, so you select Azure Blob Storage for the source dataset.

  3. [形式の選択] ダイアログ ボックスで、データの形式の種類を選択して、 [続行] を選択します。In the Select Format dialog box, choose the format type of your data, and then select Continue.

    データの形式の種類

  4. [プロパティの設定] ダイアログ ボックスで、[名前] に「SourceBlobDataset」を入力します。In the Set Properties dialog box, enter SourceBlobDataset for Name. [リンクされたサービス] ボックスの横にある [+ 新規] をクリックします。Next to the Linked service text box, select + New.

  5. [New Linked Service (Azure Blob Storage)](新しいリンクされたサービス (Azure Blob Storage)) ダイアログ ボックスで、名前として「AzureStorageLinkedService」と入力し、 [ストレージ アカウント名] の一覧からご自身のストレージ アカウントを選択します。In the New Linked Service (Azure Blob Storage) dialog box, enter AzureStorageLinkedService as name, select your storage account from the Storage account name list. 接続をテストし、 [完了] を選択して、リンクされたサービスをデプロイします。Test connection, then select Finish to deploy the linked service.

  6. リンクされたサービスが作成されると、 [プロパティの設定] ページに戻ります。After the linked service is created, it's navigated back to the Set properties page. [ファイル パス] の横にある [参照] を選択します。Next to File path, select Browse.

  7. adftutorial/input フォルダーに移動し、emp.txt ファイルを選択して、 [完了] を選択します。Navigate to the adftutorial/input folder, select the emp.txt file, and then select Finish.

  8. 自動的にパイプライン ページに移動します。It automatically navigates to the pipeline page. [ソース] タブで、 [SourceBlobDataset] が選択されていることを確認します。In Source tab, confirm that SourceBlobDataset is selected. このページのデータをプレビューするには、 [データのプレビュー] を選択します。To preview data on this page, select Preview data.

    ソース データセット

シンクの構成Configure sink

  1. [シンク] タブに移動し、 [+ 新規] を選択してシンク データセットを作成します。Go to the Sink tab, and select + New to create a sink dataset.

  2. [新しいデータセット] ダイアログ ボックスで、検索ボックスに「SQL」と入力してコネクタをフィルター処理し、 [Azure SQL Database] を選択して、 [続行] を選択します。In the New Dataset dialog box, input "SQL" in the search box to filter the connectors, select Azure SQL Database, and then select Continue. このチュートリアルでは、SQL データベースにデータをコピーします。In this tutorial, you copy data to a SQL database.

  3. [プロパティの設定] ダイアログ ボックスで、[名前] に「OutputSqlDataset」を入力します。In the Set Properties dialog box, enter OutputSqlDataset for Name. [リンクされたサービス] ボックスの横にある [+ 新規] をクリックします。Next to the Linked service text box, select + New. データセットをリンクされたサービスに関連付ける必要があります。A dataset must be associated with a linked service. リンクされたサービスには、Data Factory が実行時に SQL データベースに接続するために使用する接続文字列が含まれています。The linked service has the connection string that Data Factory uses to connect to the SQL database at runtime. データセットは、コンテナー、フォルダー、データのコピー先のファイル (オプション) を指定します。The dataset specifies the container, folder, and the file (optional) to which the data is copied.

  4. [New Linked Service (Azure SQL Database)](新しいリンクされたサービス (Azure SQL Database)) ダイアログ ボックスで、次の手順を実行します。In the New Linked Service (Azure SQL Database) dialog box, take the following steps:

    a.a. [名前] に「AzureSqlDatabaseLinkedService」と入力します。Under Name, enter AzureSqlDatabaseLinkedService.

    b.b. [サーバー名] で、使用する SQL Server インスタンスを選択します。Under Server name, select your SQL Server instance.

    c.c. [データベース名] で、使用する SQL データベースを選択します。Under Database name, select your SQL database.

    d.d. [ユーザー名] に、ユーザーの名前を入力します。Under User name, enter the name of the user.

    e.e. [パスワード] に、ユーザーのパスワードを入力します。Under Password, enter the password for the user.

    f.f. [テスト接続] を選択して接続をテストします。Select Test connection to test the connection.

    g.g. [完了] を選択して、リンクされたサービスをデプロイします。Select Finish to deploy the linked service.

    新しいリンクされたサービスの保存

  5. [プロパティの設定] ダイアログ ボックスに自動的に移動します。It automatically navigates to the Set Properties dialog box. [テーブル][dbo].[emp] を選択します。In Table, select [dbo].[emp]. 続けて、 [完了] を選択します。Then select Finish.

  6. パイプラインがあるタブに移動し、 [Sink Dataset](シンク データセット)OutputSqlDataset が選択されていることを確認します。Go to the tab with the pipeline, and in Sink Dataset, confirm that OutputSqlDataset is selected.

    パイプラインのタブ

パイプラインを検証するValidate the pipeline

パイプラインを検証するには、ツール バーから [検証] を選択します。To validate the pipeline, select Validate from the tool bar.

パイプラインに関連付けられている JSON コードを確認するには、右上にある [コード] をクリックします。You can see the JSON code associated with the pipeline by clicking Code on the upper right.

パイプラインをデバッグして発行するDebug and publish the pipeline

Data Factory または独自の Azure Repos Git リポジトリにアーティファクト (リンクされたサービス、データセット、パイプライン) を発行する前に、パイプラインをデバッグできます。You can debug a pipeline before you publish artifacts (linked services, datasets, and pipeline) to Data Factory or your own Azure Repos Git repository.

  1. パイプラインをデバッグするには、ツール バーで [デバッグ] を選択します。To debug the pipeline, select Debug on the toolbar. ウィンドウ下部の [出力] タブにパイプラインの実行の状態が表示されます。You see the status of the pipeline run in the Output tab at the bottom of the window.

  2. パイプラインを適切に実行できたら、上部のツール バーで [すべて発行] を選択します。Once the pipeline can run successfully, in the top toolbar, select Publish All. これにより、作成したエンティティ (データセットとパイプライン) が Data Factory に発行されます。This action publishes entities (datasets, and pipelines) you created to Data Factory.

  3. [正常に発行されました] というメッセージが表示されるまで待機します。Wait until you see the Successfully published message. 通知メッセージを表示するには、右上にある [通知の表示] (ベル ボタン) をクリックします。To see notification messages, click the Show Notifications on the top-right (bell button).

パイプラインを手動でトリガーするTrigger the pipeline manually

この手順では、前の手順で発行したパイプラインを手動でトリガーします。In this step, you manually trigger the pipeline you published in the previous step.

  1. ツール バーの [トリガーの追加] を選択し、 [Trigger Now](今すぐトリガー) を選択します。Select Add Trigger on the toolbar, and then select Trigger Now. [Pipeline Run](パイプラインの実行) ページで [完了] を選択します。On the Pipeline Run page, select Finish.

  2. 左側の [監視] タブに移動します。Go to the Monitor tab on the left. 手動トリガーによってトリガーされたパイプラインの実行が表示されます。You see a pipeline run that is triggered by a manual trigger. [アクション] 列のリンクを使用して、アクティビティの詳細を表示したりパイプラインを再実行したりできます。You can use links in the Actions column to view activity details and to rerun the pipeline.

    パイプラインの実行を監視する

  3. パイプラインの実行に関連付けられているアクティビティの実行を表示するには、 [アクション] 列の [View Activity Runs](アクティビティの実行の表示) リンクを選択します。To see activity runs associated with the pipeline run, select the View Activity Runs link in the Actions column. この例では、アクティビティが 1 つだけなので、一覧に表示されるエントリは 1 つのみです。In this example, there's only one activity, so you see only one entry in the list. コピー操作の詳細を確認するために、 [アクション] 列にある [詳細] リンク (眼鏡アイコン) を選択します。For details about the copy operation, select the Details link (eyeglasses icon) in the Actions column. 再度パイプラインの実行ビューに移動するには、一番上にある [Pipeline Runs](パイプラインの実行) を選択します。Select Pipeline Runs at the top to go back to the Pipeline Runs view. 表示を更新するには、 [最新の情報に更新] を選択します。To refresh the view, select Refresh.

    アクティビティの実行を監視する

  4. SQL データベースの emp テーブルに 2 つの行が追加されていることを確認します。Verify that two more rows are added to the emp table in the SQL database.

スケジュールに基づいてパイプラインをトリガーするTrigger the pipeline on a schedule

このスケジュールでは、パイプラインのスケジュール トリガーを作成します。In this schedule, you create a schedule trigger for the pipeline. このトリガーは、指定されたスケジュール (1 時間に 1 回、毎日など) に基づいてパイプラインを実行します。The trigger runs the pipeline on the specified schedule, such as hourly or daily. ここでは、指定された終了日時まで毎分実行されるようトリガーを設定します。Here you set the trigger to run every minute until the specified end datetime.

  1. [監視] タブの上にある左側の [作成者] タブに移動します。Go to the Author tab on the left above the monitor tab.

  2. パイプラインに移動し、ツール バーの [トリガーの追加] をクリックして、 [新規/編集] を選択します。Go to your pipeline, click Add Trigger on the tool bar, and select New/Edit.

  3. [トリガーの追加] ダイアログ ボックスで、 [Choose trigger](トリガーの選択) 領域の [+ 新規] を選択します。In the Add Triggers dialog box, select + New for Choose trigger area.

  4. [新しいトリガー] ウィンドウで、次の手順を実行します。In the New Trigger window, take the following steps:

    a.a. [名前] に「RunEveryMinute」と入力します。Under Name, enter RunEveryMinute.

    b.b. [終了][指定日] を選択します。Under End, select On Date.

    c.c. [End On](終了日) のドロップダウン リストを選択します。Under End On, select the drop-down list.

    d.d. 現在の日付のオプションを選択します。Select the current day option. 既定では、終了日は翌日に設定されています。By default, the end day is set to the next day.

    e.e. [終了時刻] の部分を現在の日時の数分後に変更します。Update the End Time part to be a few minutes past the current datetime. トリガーは、変更を発行した後にのみアクティブ化されます。The trigger is activated only after you publish the changes. これをわずか数分後に設定し、それまでに発行しなかった場合、トリガー実行は表示されません。If you set it to only a couple of minutes apart, and you don't publish it by then, you don't see a trigger run.

    f.f. [適用] を選択します。Select Apply.

    g.g. [アクティブ化] オプションで [はい] を選択します。For Activated option, select Yes.

    h.h. [次へ] を選択します。Select Next.

    [アクティブ化] ボタン

    重要

    パイプラインの実行ごとにコストが関連付けられるため、終了日は適切に設定してください。A cost is associated with each pipeline run, so set the end date appropriately.

  5. [Trigger Run Parameters](トリガー実行のパラメーター) ページで、警告を確認し、 [完了] を選択します。On the Trigger Run Parameters page, review the warning, and then select Finish. この例のパイプラインにはパラメーターはありません。The pipeline in this example doesn't take any parameters.

  6. [すべて発行] をクリックして、変更を発行します。Click Publish All to publish the change.

  7. 左側の [モニター] タブに移動して、トリガーされたパイプラインの実行を確認します。Go to the Monitor tab on the left to see the triggered pipeline runs.

    トリガーされたパイプラインの実行

  8. パイプラインの実行ビューからトリガーの実行ビューに切り替えるには、ウィンドウ上部の [Trigger Runs](トリガーの実行) を選択します。To switch from the Pipeline Runs view to the Trigger Runs view, select Trigger Runs on the top of the window.

  9. トリガーの実行が一覧で表示されます。You see the trigger runs in a list.

  10. 指定された終了日時まで、(各パイプライン実行について) 1 分ごとに 2 つの行が emp テーブルに挿入されていることを確認します。Verify that two rows per minute (for each pipeline run) are inserted into the emp table until the specified end time.

次の手順Next steps

このサンプルのパイプラインは、Blob Storage 内のある場所から別の場所にデータをコピーします。The pipeline in this sample copies data from one location to another location in Blob storage. 以下の方法について学習しました。You learned how to:

  • データ ファクトリを作成します。Create a data factory.
  • コピー アクティビティを含むパイプラインを作成します。Create a pipeline with a copy activity.
  • パイプラインをテスト実行します。Test run the pipeline.
  • パイプラインを手動でトリガーします。Trigger the pipeline manually.
  • スケジュールに基づいてパイプラインをトリガーします。Trigger the pipeline on a schedule.
  • パイプラインとアクティビティの実行を監視します。Monitor the pipeline and activity runs.

オンプレミスからクラウドにデータをコピーする方法について学習するには、次のチュートリアルに進んでください。Advance to the following tutorial to learn how to copy data from on-premises to the cloud: