• トップ
  • ブログ一覧
  • Azure Data Factoryのパイプラインでファイルのコピーをする
  • Azure Data Factoryのパイプラインでファイルのコピーをする

    前回、Azure Data Factory(以下、ADF) でSlack通知をしました。

    その後も相変わらず業務ではADFを触ってます。最近はファイルのコピーとかをいろいろ触っているので、よくあるシナリオを共有したいと思います。

    今回のシナリオ

    A Blobは毎日 file_yyyyMMddHH.csv が作成されます。そこから、B Blobにファイルを file_yyyyMMddHH_bk.csv というファイル名でコピーします。その後、元となったファイルは削除するようなケースです。

    ADFにパイプラインを作る

    データセットパラメタを作成します

    パイプラインを作成する前に、パイプラインに設定するデータセットパラメータを作成します。

    今回のシナリオだとコピー元のfile.jsonとコピー先のfile_bk.jsonを2つを作成する必要があります。

    コピー元のデータセット

    新しいデータセットで、Azure>Azure BLOB ストレージ>DelimitedTexと進みます。

    名前欄にfileと記入し、リンクサービスはコピー元のAzureBlobStorageを選択します。

    今回はAzureBlobStorageというblobのjapan/userからコピーします。

    @{concat('file_', getFutureTime(9,'Hour','yyyyMMdd'), '.csv')}

     

    コピー先のデータセット

    コピー元と同様にAzure>Azure BLOB ストレージ>DelimitedTexと進みます。

    名前欄にfileと記入し、リンクサービスはコピー元のAzureBlobStorageを選択します。

    今回はAzureBlobStorage_backupというblobのjapan/user/bkからコピーします。

    そして、パイプライン式ビルダーとして下記を登録します。

    @{concat('file_', getFutureTime(9,'Hour','yyyyMMdd'), '_bk.csv')}

    パイプラインを作成する

    まずは、Copy アクティビティを配置します。

    ソース欄のソースデータセットに先ほど作成したコピー元のデータセットを登録し、ファイルパスの種類で、データセット内のファイルパスを選択。

    シンク欄のシンクデータセットにコピー先のデータセットを登録します。

    次にコピー元のファイルを削除する処理を作ります。

    Deleteアクティビティを配置してCopyアクティビティとつなぎます。

    そしたらDeleteアクティビティに削除対象のデータセットを登録します。

    ソース欄のデータセットに、コピー元のfileを選択。ファイルパスの種類もデータセット内のファイルパスを選択します。

    これで、 A Blobのfile_yyyyMMddHH.csv からB Blobのfile_yyyyMMddHH_bk.csv にコピーし、A Blobのfile_yyyyMMddHH.scvを削除します。

    まとめ

    今回は、実際の業務でありそうなシナリオをベースに実装してみました。

    IfConditionアクティビティを利用してコピー元がない場合、前回のSlack通知などするのが良いと思います。

    次回は、DBからBlobのコピーにしようかな。でもベースは同じだからなぁ...

    会社的にはAWSとGCPを推していきたいようだけど。。。

     

    以上!!(前回のslackの時にそのまま動かしっぱなしでMSに3万円請求されました;;)

    ライトコードでは、エンジニアを積極採用中!

    ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。

    採用情報へ

    たかやん(エンジニア)
    たかやん(エンジニア)
    Show more...

    おすすめ記事

    エンジニア大募集中!

    ライトコードでは、エンジニアを積極採用中です。

    特に、WEBエンジニアとモバイルエンジニアは是非ご応募お待ちしております!

    また、フリーランスエンジニア様も大募集中です。

    background