みなさんこんにちは。
dstnを企画から半年、やっとこ公開まで辿りつけてだいぶほっとしている友松です。
まだまだご提供できる情報は少ないですが、今後充実させていきたいと考えていますのでお付き合いのほどよろしくお願いします。
さて、今日は「つなぐ」ソリューションを展開するアプレッソらしくクラウド時代にデータ連携をするときに考えるべき5つのポイントというのを個人的にまとめてみました。
抜けなどもあるかもしれませんが、よろしければ参考にしていただければと思います。
1.必要なときに必要な分だけのデータ連携に留める
何事も適量というのがあります。データ連携も「必要なときに必要な分だけ」に留めることが望ましいと思います。
よくオンプレミスでは今後必要になるかもわからないしとりあえず夜間バッチでテーブルごと対象データをまとめて連携してしまうという話を聞くことがあります。データが必要になった時の追加開発費用などを考えるとその方法の方がコストがかからないというパターンもあるからだと思いますがクラウド時代では以下のような問題点が出てきます。
・データ転送量の増加
当たり前ですが余計なデータを流すことでデータ転送量が増加します。
クラウドではネットワーク転送量に課金がかかる場合が多いので、その分
コストに跳ね返ってきます。また、データ量は処理時間にも影響しますの
で、利用方法にもよりますが稼働時間などにも影響が出て、必要以上に
コストが増加する可能性があります。
・ネットワークエラーのリスク
プライベートクラウドなどのようにVPN環境で利用できる場合を除く多くの
場合クラウドとの通信はインターネットを経由することになります。この場
合、一概にはいえませんが通信エラーや遅延などネットワーク環境に依存
した問題が発生する可能性が高くなると考えられます。
クラウド利用のメリットの一つであるコスト削減を実現するためには、「必要なときに必要な分だけ」利用することがポイントであると個人的には思っているのですが、データ連携についても同じことが言えるではと思います。
2.適切なインタフェースを選択する
例えば、ある程度容量のあるデータをクラウド上のDBに転送しようと考えた場合、オンプレミスと同じ感覚でJDBCなどのインターフェイスを利用すると思った以上にパフォーマンスがでない場合があります。その場合、一度CSVファイルなどに出力をし、ZIP圧縮をしてファイル転送した方が全体的なパフォーマンスとしても良い結果がでる場合があります。
このように、オンプレミスでは煩雑と思われる方法でも、クラウド環境では有効な場合もあります。従来の方式にとらわれず要件にあった適切な連携方式を選択することで効率のよいデータ連携が実現と思います。
3.予期せぬエラーを考慮する
1でも書きましたが、クラウド環境ではネットワーク環境に依存した問題が発生する可能性が高くなると考えられます。そのため、このような予期せぬ問題を想定し、問題が発生してもデータ連携処理自体をリトライさせるなどエラー処理を
考慮する必要があります。
また、リトライ処理の効率を考えると、可能な限り細かいデータ単位で連携するということも効果があるかもしれません。
4.パフォーマンスは期待しない
クラウド環境では、昨日1時間で終わった処理が今日も1時間で終わるとは限りません。もしかしたら2時間も3時間もかかるかもしれません。
マルチテナント型のクラウドサービスの場合、他ユーザの利用状況によってパフォーマンスが上下する可能性があります。この点を考慮すると処理時間は余裕をもって設定した方がよいでしょう。
5.ツールを利用する
手前味噌ですが、データ連携はツールを使った方が開発/メンテナンスが非常に楽です。
エラー処理やデータを分割して連携するなど、クラウド環境を考慮して処理をつくろうと考えた時、DataSpiderのようなGUIツールを利用した方が作り易く効率も良いです。
また、今はAmazonWebServicesと連携をしていたとしても、次のサービスはWindows Azureで作成した方がコストが安いかもしれません。SFAとしてSalesforceも利用する必要がでてくるかもしれません。このように新たクラウドサービスとの連携が必要になったときにも今までの利用していた処理を活かして連携を行っていくことができます。
メンテナンス性、拡張性、開発生産性に効果が期待できます。
以上、簡単ですがまとめてみました。
まだまだ、考えなければいけないポイントは出てきそうですが、データ連携に限らず、これからのクラウド時代では今までの概念をある程度無くして、新たにクラウド時代にあった考え方、方式というものを考えていく必要があるという点が大きなポイントかもしれません。我々も意識を変える必要があるということでしょうか。