次の方法で共有


クイックスタート: Bicep を使用して Azure Data Factory を作成する

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

このクイックスタートでは、Bicep を使用して Azure Data Factory を作成する方法について説明します。 このデータ ファクトリに作成されたパイプラインは、データを Azure BLOB ストレージ内のあるフォルダーから別のフォルダーにコピーします。 Azure Data Factory を使用してデータを変換する方法のチュートリアルについては、Spark を使用したデータ変換のチュートリアルを参照してください。

Bicep は、宣言型の構文を使用して Azure リソースをデプロイするドメイン固有言語 (DSL) です。 簡潔な構文、信頼性の高いタイプ セーフ、およびコードの再利用のサポートが提供されます。 Bicep により、Azure のコード ソリューションとしてのインフラストラクチャに最適な作成エクスペリエンスが実現します。

注意

この記事では、Data Factory サービスの概要については詳しく取り上げません。 Azure Data Factory サービスの概要については、「Azure Data Factory の概要」をご覧ください。

前提条件

Azure サブスクリプション

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

Bicep ファイルを確認する

このクイックスタートで使用される Bicep ファイルは、Azure クイックスタート テンプレートからのものです。

@description('Data Factory Name')
param dataFactoryName string = 'datafactory${uniqueString(resourceGroup().id)}'

@description('Location of the data factory.')
param location string = resourceGroup().location

@description('Name of the Azure storage account that contains the input/output data.')
param storageAccountName string = 'storage${uniqueString(resourceGroup().id)}'

@description('Name of the blob container in the Azure Storage account.')
param blobContainerName string = 'blob${uniqueString(resourceGroup().id)}'

var dataFactoryLinkedServiceName = 'ArmtemplateStorageLinkedService'
var dataFactoryDataSetInName = 'ArmtemplateTestDatasetIn'
var dataFactoryDataSetOutName = 'ArmtemplateTestDatasetOut'
var pipelineName = 'ArmtemplateSampleCopyPipeline'

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'

  properties: {
    minimumTlsVersion: 'TLS1_2'
    supportsHttpsTrafficOnly: true
    allowBlobPublicAccess: false
  }

  resource defaultBlobService 'blobServices' = {
    name: 'default'
  }
}

resource blobContainer 'Microsoft.Storage/storageAccounts/blobServices/containers@2023-01-01' = {
  parent: storageAccount::defaultBlobService
  name: blobContainerName
}

resource dataFactory 'Microsoft.DataFactory/factories@2018-06-01' = {
  name: dataFactoryName
  location: location
  identity: {
    type: 'SystemAssigned'
  }
}

resource dataFactoryLinkedService 'Microsoft.DataFactory/factories/linkedservices@2018-06-01' = {
  parent: dataFactory
  name: dataFactoryLinkedServiceName
  properties: {
    type: 'AzureBlobStorage'
    typeProperties: {
      connectionString: 'DefaultEndpointsProtocol=https;AccountName=${storageAccount.name};AccountKey=${storageAccount.listKeys().keys[0].value}'
    }
  }
}

resource dataFactoryDataSetIn 'Microsoft.DataFactory/factories/datasets@2018-06-01' = {
  parent: dataFactory
  name: dataFactoryDataSetInName
  properties: {
    linkedServiceName: {
      referenceName: dataFactoryLinkedService.name
      type: 'LinkedServiceReference'
    }
    type: 'Binary'
    typeProperties: {
      location: {
        type: 'AzureBlobStorageLocation'
        container: blobContainerName
        folderPath: 'input'
        fileName: 'emp.txt'
      }
    }
  }
}

resource dataFactoryDataSetOut 'Microsoft.DataFactory/factories/datasets@2018-06-01' = {
  parent: dataFactory
  name: dataFactoryDataSetOutName
  properties: {
    linkedServiceName: {
      referenceName: dataFactoryLinkedService.name
      type: 'LinkedServiceReference'
    }
    type: 'Binary'
    typeProperties: {
      location: {
        type: 'AzureBlobStorageLocation'
        container: blobContainerName
        folderPath: 'output'
      }
    }
  }
}

resource dataFactoryPipeline 'Microsoft.DataFactory/factories/pipelines@2018-06-01' = {
  parent: dataFactory
  name: pipelineName
  properties: {
    activities: [
      {
        name: 'MyCopyActivity'
        type: 'Copy'
        typeProperties: {
          source: {
            type: 'BinarySource'
            storeSettings: {
              type: 'AzureBlobStorageReadSettings'
              recursive: true
            }
          }
          sink: {
            type: 'BinarySink'
            storeSettings: {
              type: 'AzureBlobStorageWriteSettings'
            }
          }
          enableStaging: false
        }
        inputs: [
          {
            referenceName: dataFactoryDataSetIn.name
            type: 'DatasetReference'
          }
        ]
        outputs: [
          {
            referenceName: dataFactoryDataSetOut.name
            type: 'DatasetReference'
          }
        ]
      }
    ]
  }
}

output name string = dataFactoryPipeline.name
output resourceId string = dataFactoryPipeline.id
output resourceGroupName string = resourceGroup().name
output location string = location

Bicep ファイルでは、いくつかの Azure リソースが定義されます。

ファイルを作成する

メモ帳などのテキスト エディターを開き、次の内容を含む emp.txt という名前のファイルを作成します。

John, Doe
Jane, Doe

ファイルをローカルに保存します。 これは、このクイックスタートで後ほど使用します。

Bicep ファイルをデプロイする

  1. Azure クイックスタート テンプレート」からローカル コンピューターに main.bicep として Bicep ファイルを保存します。

  2. Azure CLI または Azure PowerShell のどちらかを使用して Bicep ファイルをデプロイします。

    az group create --name exampleRG --location eastus
    az deployment group create --resource-group exampleRG --template-file main.bicep
    

    デプロイが完了すると、デプロイが成功したことを示すメッセージが表示されます。

デプロイされているリソースを確認する

Azure CLI または Azure PowerShell を使用して、リソース グループ内のデプロイ済みリソースを一覧表示します。

az resource list --resource-group exampleRG

Azure portal を使用して、デプロイ済みリソースを確認することもできます。

  1. Azure portal にサインインします。
  2. リソース グループに移動します。
  3. リソースが一覧表示されます。 各リソースを選択すると、概要が表示されます。

ファイルをアップロードする

Azure portal を使用して emp.txt ファイルをアップロードします。

  1. リソース グループに移動し、作成したストレージ アカウントを選択します。 次に、左側のパネルで [コンテナー] タブを選択します。

    [コンテナー] タブ

  2. [コンテナー] ページで、作成した BLOB コンテナーを選択します。 名前は blob<uniqueid> という形式です。

    BLOB コンテナー

  3. [アップロード] を選択し、右側のウィンドウで [ファイル] ボックス アイコンを選択します。 前に作成した emp.txt ファイルに移動して選択します。

  4. [詳細設定] の見出しを展開します。

  5. [アップロード先のフォルダー] ボックスに「input」と入力します。

  6. [アップロード] ボタンを選択します。 一覧に emp.txt ファイルとアップロードの状態が表示されます。

  7. [閉じる] アイコン (X) を選択して、 [BLOB のアップロード] ページを閉じます。

    ファイルを入力フォルダーにアップロードする

コンテナー ページは開いたままにしてください。そのコンテナー ページを使用して、このクイックスタートの最後で出力を確認できるためです。

トリガーを開始する

  1. リソース グループ ページに移動し、作成したデータ ファクトリを選択します。

  2. [Open Azure Data Factory Studio](Azure Data Factory Studio を開く) タイルで [開く] を選択します。

    作成と監視

  3. [作成] タブ を選択します。

  4. 作成したパイプライン (ArmtemplateSampleCopyPipeline) を選択します。

    Bicep パイプライン

  5. [トリガーの追加]>[Trigger Now](今すぐトリガー) の順に選択します。

    トリガー

  6. [パイプラインの実行] の下の右側のウィンドウで、 [OK] を選択します。

パイプラインの監視

  1. [監視] タブを選択します。

  2. パイプラインの実行に関連付けられたアクティビティの実行が表示されます。 このクイックスタートでは、パイプラインに、Copy (コピー) という種類のアクティビティが 1 つのみ含まれます。 そのため、このアクティビティの実行が表示されます。

    正常に実行

出力ファイルを検証する

パイプラインでは、BLOB コンテナー内に出力フォルダーが自動的に作成されます。 その後、入力フォルダーから出力フォルダーに emp.txt ファイルがコピーされます。

  1. Azure portal の [コンテナー] ページで、[最新の情報に更新] を選択して出力フォルダーを表示します。

  2. フォルダー一覧で、 [output] を選択します。

  3. emp.txt が output フォルダーにコピーされていることを確認します。

    出力

リソースをクリーンアップする

不要になったら、Azure CLI または Azure PowerShell を使用して、リソース グループとそのすべてのリソースを削除します。

az group delete --name exampleRG

Azure portal を使用して、リソース グループを削除することもできます。

  1. Azure Portalで、リソース グループに移動します。
  2. [リソース グループの削除] を選択します。
  3. タブが表示されます。 リソース グループの名前を入力し、[削除] を選択します。

このクイックスタートでは、Bicep を使用して Azure Data Factory を作成し、デプロイを検証しました。 Azure Data Factory と Bicep について詳しく学習するために、引き続き以下の記事を参照してください。