クイックスタート: 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 リソースが定義されます。
- Microsoft.Storage/storageAccounts: ストレージ アカウントを定義します。
- Microsoft.DataFactory/factories:Azure Data Factory を作成します。
- Microsoft.DataFactory/factories/linkedServices:Azure Data Factory のリンクされたサービスを作成します。
- Microsoft.DataFactory/factories/datasets:Azure Data Factory データセットを作成します。
- Microsoft.DataFactory/factories/pipelines:Azure Data Factory パイプラインを作成します。
ファイルを作成する
メモ帳などのテキスト エディターを開き、次の内容を含む emp.txt という名前のファイルを作成します。
John, Doe
Jane, Doe
ファイルをローカルに保存します。 これは、このクイックスタートで後ほど使用します。
Bicep ファイルをデプロイする
「Azure クイックスタート テンプレート」からローカル コンピューターに main.bicep として Bicep ファイルを保存します。
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 を使用して、デプロイ済みリソースを確認することもできます。
- Azure portal にサインインします。
- リソース グループに移動します。
- リソースが一覧表示されます。 各リソースを選択すると、概要が表示されます。
ファイルをアップロードする
Azure portal を使用して emp.txt ファイルをアップロードします。
リソース グループに移動し、作成したストレージ アカウントを選択します。 次に、左側のパネルで [コンテナー] タブを選択します。
[コンテナー] ページで、作成した BLOB コンテナーを選択します。 名前は blob<uniqueid> という形式です。
[アップロード] を選択し、右側のウィンドウで [ファイル] ボックス アイコンを選択します。 前に作成した emp.txt ファイルに移動して選択します。
[詳細設定] の見出しを展開します。
[アップロード先のフォルダー] ボックスに「input」と入力します。
[アップロード] ボタンを選択します。 一覧に emp.txt ファイルとアップロードの状態が表示されます。
[閉じる] アイコン (X) を選択して、 [BLOB のアップロード] ページを閉じます。
コンテナー ページは開いたままにしてください。そのコンテナー ページを使用して、このクイックスタートの最後で出力を確認できるためです。
トリガーを開始する
リソース グループ ページに移動し、作成したデータ ファクトリを選択します。
[Open Azure Data Factory Studio](Azure Data Factory Studio を開く) タイルで [開く] を選択します。
[作成] タブ を選択します。
作成したパイプライン (ArmtemplateSampleCopyPipeline) を選択します。
[トリガーの追加]>[Trigger Now](今すぐトリガー) の順に選択します。
[パイプラインの実行] の下の右側のウィンドウで、 [OK] を選択します。
パイプラインの監視
[監視] タブを選択します。
パイプラインの実行に関連付けられたアクティビティの実行が表示されます。 このクイックスタートでは、パイプラインに、Copy (コピー) という種類のアクティビティが 1 つのみ含まれます。 そのため、このアクティビティの実行が表示されます。
出力ファイルを検証する
パイプラインでは、BLOB コンテナー内に出力フォルダーが自動的に作成されます。 その後、入力フォルダーから出力フォルダーに emp.txt ファイルがコピーされます。
Azure portal の [コンテナー] ページで、[最新の情報に更新] を選択して出力フォルダーを表示します。
フォルダー一覧で、 [output] を選択します。
emp.txt が output フォルダーにコピーされていることを確認します。
リソースをクリーンアップする
不要になったら、Azure CLI または Azure PowerShell を使用して、リソース グループとそのすべてのリソースを削除します。
az group delete --name exampleRG
Azure portal を使用して、リソース グループを削除することもできます。
- Azure Portalで、リソース グループに移動します。
- [リソース グループの削除] を選択します。
- タブが表示されます。 リソース グループの名前を入力し、[削除] を選択します。
関連するコンテンツ
このクイックスタートでは、Bicep を使用して Azure Data Factory を作成し、デプロイを検証しました。 Azure Data Factory と Bicep について詳しく学習するために、引き続き以下の記事を参照してください。
- Azure Data Factory のドキュメント
- Bicep について詳しく学習する