JJUG CCC 2021 Fall というイベントで発表してきました!
https://ccc2021fall.java-users.jp/僕の発表は「Debeziumで変更データキャプチャを学ぼう」と言うものでした
-
応募したPaper
https://fortee.jp/jjug-ccc-2021-fall/proposal/1aa15a9d-cd26-40cb-b78e-1cc36e1c073a -
スライド
https://speakerdeck.com/yyyank/debeziumdebian-geng-detakiyaputiyawoxue-bou-number-jjug-ccc
手前味噌https://t.co/Buym1Vmx8O
— やんく✌('ω')✌ (@yy_yank) November 21, 2021
日本語READMEhttps://t.co/pIEJISsvoi
サンプルコードhttps://t.co/AFT4wPJaG2#jjug_ccc #jjug_ccc_c
オンライン勉強会での発表についての難しさ
今までの開催とは違い、最近はオンライン開催になっているため発表する側としてもいろいろ準備の仕方が異なっていました。
なので、(ライブ配信でない限り)動画編集のスキルはおのずと必要になってきています(カット編集と動画圧縮ぐらいは少なくとも)。
そういった意味で今までオフラインで勉強会発表していた人にとっては、
少しハードルが高くなっている印象です(インターネット上で顔や声を見せたくない残したくない人類も多くいると思いますしその辺りも含め)。
オンラインでの開催は今後も残るだろうと割り切った
しかしオンラインでの開催ってのも今後も根強く残るような気がしていて、
ここは潔く割り切って動画編集などのスキルも付けた方がいいかなと思い今回は発表させてもらいました。
動画を作る上で気をつけていたことはいかに聞く側を退屈させないかということです。
また目や耳が聞こえなかったりであったりとか、音だけ聞いたり目だけで見てる人もいると思っていたので
そういった人にも聞きやすい見やすいものにしようという努力はしました。
もちろんふざける方に全力で走ると技術的な発表というのはできないので、少し飽きさせないのエッセンスを入れるぐらいの意識で作りました。
発表中に使用したサンプルコードについて
サンプルコードも準備したのですが、なるべく実際のシステムで使うイメージを持ってもらうようなサンプルにしたつもりです。
一方気になったのはまだこちらは商用では確かめていない、実際のプロダクト乗せていないサンプルです。
なので、実運用の苦しみという部分は現実的なところが話せなかったのかなというところがあるのでそこは留意が必要かなと思っています。
行変更ログを吐くことが RDB 本体に影響を与える件について
一応おことわりしておくと、僕はデベジウムを手放しでオススメはしていないです。
実際、見かけたツイートでこんなものがありました。
CDC+RDS(Aurora)でbinlogコンシュームする構成はよくみるけど、binlog有効にするとFail overの時間が伸びたりするので要注意ですよ。僕は怖く使いませんが…。SQLでポーリングしたほうがよいと思いますけどね。#jjug_ccc
— かとじゅん (@j5ik2o) November 21, 2021
行変更のbinlogなどを出力することで、RDS 本体に影響を与えるというものです。
データキャプチャは強力で、リアルタイム性も高く変更検知に強い一方でこういったログの出力による本体の影響を与えるという部分は忘れてはいけないかもしれないです。
Debeziumに代わるコネクターとしては JDBCコネクターみたいなものがあります。
両者の違いについては Stack Overflow やDebeziumの公式ブログなどが詳しいです。
https://stackoverflow.com/questions/60908891/kafka-connect-jdbc-vs-debezium-cdc
要点だけ書くと、JDBCコネクターが JDBCを介してポーリングすることで差分を検知するのに対してデベジウムは行レベルの変更ログで変更を検知します。
また JDBCコネクタは削除の検知ができないようです。
ポーリングでの差分検知で削除を考えるの結構難しいのですよね…。
過去、差分検知をポーリングで自作する案件がありましたが削除に対しての処理に苦労した覚えがあります。
そういった意味で個人的には非機能的な要件が叶うのであれば
Debeziumを選んでおきたいところではあります。
RDS への負荷など考える時にDebeziumに代わるコネクターとして選べない場合は JDBCコネクタを選んだりすることもあるでしょう。
またバッチやイベントソーシングなどの手段を取ることも要件次第では全然あると思っています。
オンライン開催の難しさとオンライン開催への慣れ
ここからは、だいぶ個人的な話になります(ここ1〜2年、至るところでいろんな人がこういった話をしてるかと思いますが、一応書いておきます)。
オンライン開催となると、家に子供や妻がいるのでどうしてもそちらの育児や家事などの方法を優先してしまいなかなか他の方の発表を聞くことができませんでした。
その分、家庭に負担をかけるということは減ってオンラインの良さが出ているのかもしれませんが…
以前であればオフライン開催で物理的にも場所を移動すること強制されて家族を意識することもなかったのでそういったこともありませんでした。
育児スペースなど提供してくれていたりとかJJUGは大変色々親切だったの覚えています。
特に、他の参加者との交流っていうのはなかなか難しいなーと感じた次第です。
本来の毎回の課題だと思うんですが、
今回のrebakoなどのように音声ビデオチャットツール使ってうまくやっていければいいなといつも思っています(難しいけど)。
特に個人的にはビールや寿司が目の前にない辛さが大きいです(実際辛くはない)。
オフライン or オンラインで今後も続いていって欲しい
とまぁ、オフラインでの開催を懐かしんだところであれなのですが
オンライン開催というのもしっかりと運営の方々が形を作っていて素晴らしいなと思っています。
今後も引き続きJJUG CCC 開催してもらえると助かります!
自分の学びの場にもなっていますし、他の人の何かのきっかけになっていれば幸いと思っています。
ということで、お疲れさまでした && ありがとうございました!
0 件のコメント:
コメントを投稿