/home/by-natures/dev*

ソフトウェア開発者としての技術的なメモと、たまに普通の日記。

2019/03/25 Avro と Protocol Buffers

オフィスが4月から移転するので、今週はバタバタしそうです。移転先では多くの部署が集約されるのですが、そのせいで人が多く、エレベータが長蛇の列・・・という噂もちらほら。駅からも遠いし少し憂鬱ですが、ランチする場所は増えそうなのでお昼は楽しみです。

Apache Avro

システム間でデータをやりとりするためのシリアライズの仕組みです。あまり深く調べてこなかったので、いくつかブログや発表資料などを読みました。

bufferings.hatenablog.com

Avro Sink / Avro Source を利用すると、Avro プロトコルでシステム間のデータ転送が実現できます。

www.slideshare.net

Protocol Buffers との違い

Protocol Buffers も同様の文脈で登場するなと思って調べると、比較資料がありました。とても分かりやすかったです。

www.slideshare.net

パフォーマンスはともかくとして、スキーマ情報の管理の仕方が異なるようです。Protocol Buffers だとモデルクラスを追加しないといけないため、様々なスキーマが現れた場合にどういう運用になるんでしょうか。。Schema Registry でスキーマ管理できる Avro の方が、データの大規模なワークフローを構築する場合は分かりやすい気がします。ただ速度面では Protocol Buffers に軍配が上がります。また、アプリケーション間での通信はスキーマファイルをやりとりしなくてよい Protocol Buffers の方がよさそうです。

データマネジメントについて

「データマネジメント 業務改善の正攻法 戦略から実践」という書籍を同僚に教えてもらったので読み進めています。堅い本のように見えますが序章からかなり面白くて、技術の革新と共にデータは分散され、統一して管理することが難しくなったということです。技術の発展によって利便性が高まると、データの管理面ではネガティブに働くというのは直感に反している気がしますが理解できます。だからこそ「データモデル」を作成して業務をモデリングし、データに基づいた事業戦略などを進めていかなければいけないんですね。

データ総研が2015年に出版しているのですが、値段も良心的で内容もたっぷりです。。輪読向きのような気がしますが、ひとまず一人で読み進めてみます。

https://www.amazon.co.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88-%E6%A5%AD%E5%8B%99%E6%94%B9%E5%96%84%E3%81%AE%E6%AD%A3%E6%94%BB%E6%B3%95-%E6%88%A6%E7%95%A5%E3%81%8B%E3%82%89%E5%AE%9F%E8%B7%B5-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%83%87%E3%83%BC%E3%82%BF%E7%B7%8F%E7%A0%94/dp/4822237001:embed:link