3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Azure Data Factory で従来型 ETLソリューション (Informatica, CData 等) 使わずシステム連携ができた話

3
Posted at

オンプレのSQLとAzure SQL、オンプレのSQLとSalesforceと連携とか・・・どうしよう?

コロナ真っ只中の2020年4月から現職に就任してから Azure IaaS, PaaS や Salesforce といったSaaSの導入が始まった。それまでは良くも悪くもレガシーなシステム、システム開発体制だったのを過去の経験(特にフランス系企業の日本のITヘッドをしていたときの経験が大きい)もあり提案して変え始めた。良くも悪くも言い出しっぺの私に必要となる開発、運用のボールも来たのだが、そんな中で構築をし始めたAzure Virtual Machines, Azure SQL Database (月額500円程度の最低価格で本番動かしています。安い。)やSalesforceとマスタやトランザクションデータの連携を考え始めなくてはいけなくなってきた。世の中移り変わりが激しいもので5年前には思いもしなかった Azure Data Factory というクラウドETLツールがあるのを発見。日本語も英語もまだまだ始まったばかりで情報が乏しい気がするが、意外に使えたので記録しておこうと思う。

Azure Data Factoryとは https://azure.microsoft.com/ja-jp/services/data-factory/

一言で言うとクラウドETLツール。コネクターが非常に多く(発展途上なのか正確な一覧が見つからない)オーソドックスなSQLのODBC接続からテキストファイル、Excel、BlobストレージやNo SQLデータベース、Salesforceなどなどとにかくコネクターが多い。ニッチなコネクターも追加料金なしで標準料金で使えるので(少なくとも現在は)うれしい。オンプレミスのSQLサーバー等に対してはオンプレサーバー上にAzure Integration Runtime インストーラーでインストールを行いAzureのData Factoryと接続する必要がある。Azure の Data Factories でSelf-Hostedオンプレ用インテグレーションランタイムを作成すると2つのキーの発行がされるのでそのうちの1つをオンプレのサーバーのインストール後に表示されるキー入力画面で入力することでつながる。
Azure Data Factory.png
サブスクリプション、リソースグループなどを指定しリージョン、名前を決める。Versionは新しいV2で問題ないはず。なお、Git ConfigurationとなりGithubやAzure DevOpsと連携ができるようだが、使用しないチェックマークがあるのでそれを
選べばGitのような開発環境なしで入れ物が作成でき続行ができる。
Azure Data Factory Integration Runtime2.png

Azure Data Factory Integration Runtime1.pngAzure Data Factory Integration Runtime1-3.png

入れ物を作ったあとはパイプラインを作成、データフローを作成、データコピーをするなどいろいろ表示されるがまず最初にやらなければならないのはLink Serviceの作成。ここで接続したいオンプレ、クラウドサーバーとの接続情報を登録する。
Azure Data Factory4.png
Azure IRと呼ばれるインテグレーションランタイムも作成しておかなければならない。デフォルトで作成されているものはSalesforceとの接続が仕様で使えないことが判明した(デフォルトで作成されているIRは実行環境のリージョンが自動判定になっているがSalesforceとの連携ではAzure実行環境をどこにするのか指定が必要、Salesforceのサーバーに近い場所が短時間で終わることになり無難なようなのであえて作成を促している様子)。
リンクサーバーとインテグレーションランタイムができればようやくETL編集といった感じだ。
IntegrationRuntime.png
ETL編集画面でテーブルを選択しInsert、Upsertなどの選択をしていくことになる。
Azure Data Factory3.png

Debugボタンで都度実行、Triggerでスケジュール設定ができる。
一つのパイプラインと呼ばれる実行単位に複数のETL(アクティビティと呼ばれている)を入れ込むことができる。
上記画像は3つのアクティビティを実行を処理させる場合の例。

一つ一つのアクティビティにIN、Outを設定していく。
Query.png
Sink.png
mapping.png

あとはDebugで問題なければスケジュールして終わりだった。
Debug実行.png

備考

一応、設定内容はJSON形式で作成、保存されるようだがGUIで完結することが多いので非常に便利。AzureはAWSよりUIにかなり力を入れている気がした。下図の設定はオンプレSQLからSalesforceに連携する際に使ったUpsertの設定画面の例。
AzureUIイメージ.png

1時間で3種類ほどETLが組めた。従来はInformaticaやCDataといったETLソリューションを活用していたし思い浮かべることが多かったが、Azure Data Factoryのようなソリューションが登場し知れば知るほどこのあたりのツールのプレーヤーが変わっていくと感じた。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?