• Home
  • コーポレートブログ Geniee’s BLOG
コーポレートブログ

Geniee’s BLOG

ジーニーは最先端の広告テクノロジーで
顧客の収益を最大化します。

ジーニーが大切にしているValueの一つであるWell-being。ビジネスでの成功を組織に還元し、社員の経済やキャリア、そして健康や幸せを実現できる職場づくりを目指しています。
そんなWell-beingを象徴するのが、充実した福利厚生制度。そのなかで「働くパパママ支援制度」を活用し、仕事と育児を両立させながら活躍している社員をご紹介します。

■「働くパパママ支援制度」 概要
育児支援を目的として、
正社員または契約社員を対象にリモートワークを支援します。
ただし、原則として試用期間中は除きます。
活用できる範囲の主なイメージ
①妻の出産の場合
②子供がインフルエンザ等の感染力の高い病気にかかった場合 など

職場では部門のリーダーとして、家庭では小学3年生の母として忙しい毎日を送る前畑さん。仕事と子育てをどのように両立させているのでしょうか。ジーニーで活躍する働くママ代表・前畑さんにお伺いしました。

マーケティングクラウド統括本部 セールスプラットフォーム本部 カスタマーサクセス部 アカウントマネジメント インプリメント リーダー 前畑さん

責任感とお客様からの声がモチベーション

ーー前畑さんの部署はクライアントワークというところで納期もあって大変ですよね。

そうですね。カスタマーサクセス部という、その名のとおりお客様ありきの部署なので、期日内に責任を持ってお客様にシステムを納品するといったCommitmentには特にこだわっています。
そして、お客様の声を直接聞けるというのも、私たちの部署ならではのところでして。お客様の課題を伺いながら「こうしたらもっとうまく使えるんじゃないか」といったようにお話して作ったものが喜んでもらえたりすると、本当に嬉しくて。この部署にきてもう5年になりますが、お客様からの声がモチベーションになって続けられているんじゃないかなと思います。これからもそうやってお客様を増やしていきたいですね。

制度と周りの環境、その両方に守られている

ーーどのように「働くパパママ支援制度」を活用していますか

子供って小さいうちはしょっちゅう熱を出すんです。完全出社制の場合は、その都度家に帰ったり欠勤するしかないのですが、ジーニーに入社してからは子供の発熱時にはリモートワークできるようになったので有難いですね。
もちろん勤務の時間には含めないですが、仕事の合間に子供の看病をしたり病院に連れていって、またすぐ仕事を再開する…といったように融通がきくので助かっています。

子育てしながらでもキャリアアップを目指せる

ーージーニーは子育てと仕事を両立しやすい環境だと思いますか

子育てしながらキャリアアップを目指すのは大変なことです。相当の覚悟、気力と体力、そして周りからの理解や協力も必要だと思います。
ただ、ジーニーには「働くパパママ支援制度」といった福利厚生があるのはもちろん、周囲の方々の理解もあるので比較的働きやすいのではないでしょうか。
「目指しているのはここだから、もっとこういう仕事がしたい」といったことも、1on1があるので積極的に言いやすい環境が整っています。

ーー今後、子育てと仕事の両立を目指す後輩に向けて伝えたいことはありますか

カスタマーサクセス部で子育てしながら仕事をしているのは部長と育休中のイクメンリーダーと私だけなのですが、会社全体を見たらマネージャーをしながら仕事と家庭を両立させている方もいらっしゃいます。
ジーニーは子育てしているからといってキャリアを諦めないといけないということは一切なく、挑戦したいことがあるならどんどんチャレンジできる風土なので、あとは自分次第。本人の意思次第で自由にキャリアを選べるんだよということを伝えられたら嬉しいですね。

■ジーニーについて
ジーニーは、「誰もがマーケティングで成功できる世界を創る」「日本発の世界的なテクノロジー企業となり、日本とアジアに貢献する」というパーパス(企業の存在意義)のもと、企業の収益拡大・生産性向上など様々な課題解決につながるソリューションを開発・提供するマーケティングテクノロジーカンパニーです。

この春、ジーニーに67名の新卒メンバーが入社しました。
4/1に開催された「2024年度 入社式」の様子をお届けします。

代表取締役社長 工藤さんからの祝辞
「入社おめでとうございます。
ジーニーは、2010年に日本からGAFAのようなテクノロジー企業を作れないかという好奇心のもとに生まれました。そんな壮大な目標を達成するのはもちろんとても難しく、毎年、予定調和で終わらず楽しい大冒険ができています。
皆さんの世代の方は、日本にあまり未来を感じていないと思っていますがどうでしょうか?私はそんなのは嫌だと思っています。Purposeを叶える以外に、ジーニーに入社してくれた皆さんの人生が少しでも良くなるように、一人ひとりが「入社してよかった」と思えるように、皆さんのような優秀な若者が夢とやりがいを持って働ける会社にしたい、そう思って日々会社をどんどん良くしています。

私が新卒の頃に読んだ本から、自分の人生の礎になった2つの話を贈ります。
ひとつめは心をどう置くのかという話。上手くいかない時、自分自身の考えや方法を改善しようと内側に目を向けられるか。そして挑戦し続ける心を持つことができるか。『ウサギとカメ』の教訓どおり、最後にはズルをしないで努力を続けられるビジネスパーソンが勝ちます。
ふたつめは、人との“縁”が大事という話。いろんな幸運に恵まれて、ジーニーはここまで来れた。それは、これまで出会ってきたお客様や仲間を大事にしてきたからこそ。たくさんの強力な応援団がいて、成長を続けられている。結局、“運”は人の“縁”から来るものが多いです。

ジーニーは、これからも時代やAIに翻弄されるのではなく、自分たちの力で未来を作っていけるような会社になりたいですし、皆さん一人ひとりも自分たちの力で未来を作っていけるプロの社会人になってほしいと思います」

執行役員 マーケティングクラウド統括本部 CVG事業本部 事業本部長 井上さん からの祝辞
「ちょうど5年前、今の皆さんと同じように入社式を迎えました。当時は圧倒的に成長するぞと野心に燃えていたことを覚えています。
今でも仕事が嫌だ、つらいと思って出社したことはなく、仕事を楽しみ続けられています。勉強やスポーツにも通じますが、仕事は本気でやればやるほど楽しくなるという性質があります。本気で取り組むと自分の至らなさにぶつかりますが、誠実に向き合えば必ず成果は返ってくる。それを経験すると、また次の少し難しい仕事に取り組むなかで、提供できる価値が広がっていることを実感できるタイミングが訪れます。私にとっては、その体験が忘れられず、仕事を楽しむ理由になっています。

そしてジーニーは成果を出せば若手にも裁量を与えてくれる会社。だからこそ、自分よりひとつ上の仕事と向き合えて、仕事がどんどん楽しくなるという仕組みをもっています。これはジーニーが大切にしているValueの中のひとつCommitmentに通じます。皆さんは、Purposeやキャリアの実現に向けて本気でコミットして楽しめる人ばかりだと思うので、一緒に働けるのをとても楽しみにしています」

新入社員代表挨拶
新入社員を代表して、エンジニア職、ビジネス職からそれぞれ1名ずつ挨拶が行われました。

まずは、エンジニア職代表の山口さんから。「ジーニーのエンジニアとして技術を駆使し、社会の課題解決に貢献したい。また来年の今日、私を含め全ての新入社員がジーニーの社員としてふさわしい姿をしていることを心から願っています」

続いて、ビジネス職代表の山本さんが挨拶を述べました。
「今日から働く新入社員は全員、少しでも早く成長し、それをジーニーの成長につなげたいという気持ちを抱いています。多くの壁に直面するかと思いますが、日々、お客様や社員の皆様から学びを吸収すること、また、挑戦し続ける姿勢を忘れず、私たち自身と会社全体が成長する機会であると信じ、取り組んでまいります」

ふたりの挨拶の言葉からは、仕事への期待感と熱い意気込みが伝わってきました。

入社式では緊張の面持ちだった皆さんでしたが、記念撮影の時間になると、
ようやく笑顔がこぼれました。爽やかでとてもいい笑顔ですね!

社会人としての第一歩を踏み出した新入社員の皆さん、改めて、入社おめでとうございます!この日の初心を忘れず、頑張っていってください。ジーニーでのこれからの活躍を期待しています!

■ジーニーについて
ジーニーは、「誰もがマーケティングで成功できる世界を創る」
「日本発の世界的なテクノロジー企業となり、日本とアジアに貢献する」
というパーパス(企業の存在意義)のもと、企業の収益拡大・生産性向上など様々な課題解決につながるソリューションを開発・提供するマーケティングテクノロジーカンパニーです。

2023年11月から12月にかけて開催されたインターンについてレポートします。ビジネス職を志望する学生の方向けに、ワークショップをメインとした、体験型1DAYインターンシップを実施しました。ジーニーやマーケティングに興味がある方はもちろん、若手から成長したいという方や事業開発に関心をお持ちの方にもおすすめです!

インターンの開催目的
アドテクノロジーとマーケティングテクノロジーを主軸に、多角的な事業を展開して次世代に求められるサービスを創出してきたジーニー。「誰もがマーケティングで成功できる世界を創る」というコーポレートパーパス(企業の存在意義)の達成を目指して、あらゆる企業の課題解決に取り組んでいます。スピード感のある社風と、若手から裁量を持って働ける環境が特徴で、「若手から成長したい」という気持ちが強い社員が多く在籍する会社です。そこでジーニーでは、将来を担う若き世代の方々と出会うために、来年度の入社を希望する学生に向けた1DAYインターンを毎年開催しています。インターンでは、会社説明や実際の業務を体験できるワークショップを通じて、ジーニーへの理解を深めてもらうことが主な目的となっています。

インターン当日の流れ

グループディスカッションをメインとしたワークショップ
ワークショップでは、事前にインプットされた概要を踏まえた上で、2種類のグループディスカッションを実施しました。ディスカッションテーマは「買収した3つの商材と既存の商材のなかから注力商材を選ぶ」「選んだ商材の売上を1年で20倍にするための戦略を事業部長にプレゼンする」です。いずれも正解のない難易度の高い課題ですが、ひとつのテーマのディスカッションごとに解説が行われるので、アウトプットからのインプットまでの時間が短く、その分参加者の理解も進んだようでした。

参加した学生からの声
インターン参加者からは充実感あふれる声をたくさんいただきました。

「資料がないなかで思考力やそれをまとめる力を試されるワークで面白いと感じた」
「多角的な視点から物事を考え、そこから一つに絞り込むことの難しさを味わえた」
「新規事業の種を育てるうえでの重要な考え方やプロセスを大まかに把握することができた」

確かに、事業開発の現場をリアルに体験できる機会はなかなかないかもしれませんね!また、メンター役の社員と接するなかで会社の雰囲気が自然と伝わってきたり、しかも事業内容も知れたりしたことで、実際にジーニーで働くイメージができた!という方も少なくありませんでした。

「実際のプロジェクトをもとにしており、貴社で実際に働く解像度が上がった」
「実際の職場を見ることができ、社員の雰囲気を知れたのでジーニーで働くイメージがついた」
「ジーニーは特に導入からサポートまで、自社開発のものを提供する強みがあるのだと知れた」

メンター役を務めた社員たちも、参加者の皆さんとしっかりコミュニケーションをとり、好印象だった様子です。

「社員さんとのコミュニケーションのなかで社風も知ることができた」
「社員の方々が休憩の時間にもいらっしゃって、気軽に質問できる環境だったのが良かったです!」
「メンターの方から分析の仕方をご教示いただけたので、勉強しながらワークできて楽しかった」

たった数時間のなかでも、ITベンチャーならではのスピード感や、事業会社だからこその意思決定の重要性を体感いただけたのではないでしょうか。ジーニーでは、26卒向けのインターンも実施する予定です。たくさんのご応募、お待ちしています。

 ■ジーニーについて
ジーニーは、「誰もがマーケティングで成功できる世界を創る」「日本発の世界的なテクノロジー企業となり、日本とアジアに貢献する」というPurpose(企業の存在意義)のもと、企業の収益拡大・生産性向上など様々な課題解決につながるソリューションを開発・提供するマーケティングテクノロジーカンパニーです。

2023年9月から10月にかけて開催されたインターンについてレポートします。バックエンドエンジニア/フロントエンドエンジニアを志望する学生に向けた2種のインターンが開催され、どちらもワークショップをメインとした、実践型の1DAYプログラムです。

インターンの開催目的
ジーニーは技術力に強みを持つテクノロジーカンパニーです。自社開発のプロダクトを10以上保有し、独自の機能や技術でお客様に価値を提供しています。従業員の約1/3をエンジニアが占めるジーニーでは、新卒エンジニアの方は、会社のプロダクト開発や成長に貢献する重要な存在。そこで、エンジニアを志望する学生に向けて、ジーニーの携わるアドテクノロジー業界やSaaS業界でのエンジニアの仕事を体験し、ジーニーへの理解を深めてもらうことを目的とした1DAYインターンを開催しました。

インターン当日の流れ

広告配信システムの改善に挑戦!バックエンドインターン
テーマ:広告配信システムの高速化
対象:
・バックエンドエンジニアに興味がある方
・広告配信の裏側に興味がある方
・大量のデータをリアルタイムに処理する技術を体験したい方
参加者(1開催あたり):15~20名
使用言語:C++/Golang/Pythonのいずれか

まず9月には、バックエンドエンジニアを志望する学生対象のインターンが開催されました。
ワークショップでは、「DSP内のロジックを高速化する」というお題に挑戦してもらいました。ジーニーの主力プロダクトとして提供している「GENIEE DSP」を模した仕組みを改善するという内容です。
ジーニーのメンター社員と環境を構築したら、チームメンバーと協力して課題を進めていきます。課題は4つの難易度に分かれており、その後は社員エンジニアより解説がありました。最高難易度だと、約40万の広告リクエストがある状態を、10秒以内に処理してもらうような問題に挑戦いただきました。技術を用いて難題に取り組んだり、アルゴリズムを考えて実装することが好きな方や、テクノロジーでこれまでにできなかったことを実現したいという方は、楽しんで課題に取り組んでいただけたと思います。

※DSP(Demand Side Platform):広告主の広告効果最適化を目指すプラットフォームです。広告枠の買い付けや配信、クリエイティブ分析までを自動で行い、最適化を行います。

SaaSプロダクトの開発に挑戦!Webアプリインターン
テーマ:カレンダーアプリの改修
対象:
・Webエンジニアに興味がある方
・SaaS領域に興味がある方
・顧客課題の解決に強い興味がある方
参加者(1開催あたり):15~20名
使用言語:Golang,React(HTML / CSS、Typescript / Javascript)

10月にはWebアプリケーションインターンが開催されました。ワークショップでは、最低限の機能を有するカレンダーアプリが提供され、「修正要望に合わせて改修する」といったお題が出されました。6つの修正要望を機能に落とし込んでいく、実践的なワークによって、ジーニーでエンジニアとして働く疑似体験ができます。もちろん、専門的な分野についても事例をまじえた紹介があるので、基礎的な知識やその分野まわりの概要についても知ることができます。一日で顧客のビジネス課題からSaaSプロダクトの裏側まで学べる、充実のプログラムです。

・参加者の声
バックエンドとWebアプリどちらのインターンにおいても、ジーニーの社員が用意した高難度問題が出題されました。参加者にはそれぞれハイレベルな機能開発や機能改善にチャレンジしていただきましたが、その感想は好評だったようです。

人事部の中村さん
「ワークの課題はハイレベルに設定しましたが、成長意欲が高くスキルアップを求める学生が多かったので、参加者アンケートでは満足度5段階中、平均4.5以上の高評価を多くいただきました!」

その高い満足度を裏付けるポジティブなメッセージも寄せられています。

・参加した学生からの声
「難易度はあったけれどかなり楽しく、またレベルアップにも繋がる素晴らしい体験でした」
「ここまでパフォーマンスを気にしたWeb系プログラミングをしたことがなかったので為になった」
「コードレビューの時間があったインターンは初めてで、貴重な経験でした」
「プログラミングの技術力が向上するのが実感ができた」
「今後の勉強に向けての強いモチベーションになった」

当日は、社員のエンジニアたちがメンター役となってサポートにまわりました。

メンター役の社員をとおして、社風や社員に対して好印象を抱いた学生が多かった模様です。
ジーニーの会社や社員の雰囲気を自然に伝えられたのは良かったですね。参加いただいたインターンの皆様、本当にお疲れ様でした!
今年も、学生の方をワクワクさせられるようなコンテンツを用意してお待ちしています。
ジーニーでは、26卒向けのインターンも実施する予定です。26年卒で興味を持たれた方はぜひ、ジーニーへ濃密なエンジニア体験をしに来てください。

 ■ジーニーについて
ジーニーは、「誰もがマーケティングで成功できる世界を創る」「日本発の世界的なテクノロジー企業となり、日本とアジアに貢献する」というPurpose(企業の存在意義)のもと、企業の収益拡大・生産性向上など様々な課題解決につながるソリューションを開発・提供するマーケティングテクノロジーカンパニーです。

2017年からスタートしている「新卒bootcamp」は今年で7年目となります。
約2カ月の期間で新卒1年目のエンジニアが6月の本配属に向けて、基礎的な知識・技術を習得する導入研修です。
6/16に無事に終了した今年のbootcampを振り返って実行委員会から4名の方々にお話を聞きました。

東 哲志さん
2020年4月入社
CVG事業本部 CATS マネージャー

牛丸 創太郎さん
2020年4月入社
SFA/CRM事業本部

小林 誠明さん
2022年4月入社
テクノロジー戦略本部 Science

窪寺 壮哉さん
2021年7月インターン入社
SFA/CRM事業本部

ーーーbootcampの概要を教えてください。

小林:約2カ月の期間で各技術分野の研修とチーム研修を行います。
新卒の基礎的な知識・技術の向上やどのチームに配属されても必要となる知識を習得することを目的としています。

ーーー具体的な研修内容を教えてください。

牛丸:4/16~5/30は各分野(git、クラウド、コードレビューなど)の研修を、5/31~6/16ではチーム研修を行ないました。
各分野の研修は半日から三日程度の期間で基礎を学び、その後演習を体験し、チーム研修は全体を3チームに分けてそれぞれ別のサービスを作る形で行なわれました。
研修のメインの目的としては、基礎技術・能力の向上・どのチームに配属されても必要になる知識、技術を効率的に習得してもらう事です。

ーーー今年新たに導入された研修はありましたか?

牛丸:Copilot・ChatGPT研修や、ドキュメントライティング研修です。
Copilot・ChatGPT研修は、利用する際の注意点を学び、利用頻度を向上させることで全体の開発速度が上がることを目指した研修です。
ドキュメントライティング研修は書き方の基礎を学ぶことで、社内の資料の質を向上させることが目的です。

窪寺:それとは別に新たな取り組みとして、入社前にプレブートキャンプの課題をメールで送付しました。これにより、新入社員は最低限の技術知識を身につけ、本格的にbootcampへ臨む準備を整えることができたかと思います。

ーーー運営する中で大変だったことはありますか?

窪寺:各講義のクオリティーを担保するのがとても難しかったです。一律で守ってもらう基準を策定したものの、修正を依頼することも少なくありませんでした。来年以降は講義資料のテンプレートを作成することで、ある程度均質化できるのではないかと思います。

小林:難易度の高い研修は、 研修資料の作成にも多くの時間がかかるため、 工数の調整などで苦労しました。難易度が高くなりすぎている研修は一部簡略化し、 講師の負担を軽減することで改善されると考えています。

ーーー運営を通して気づきはありましたか?

牛丸:新卒の配属に関して、人事とHRBPの方々と協力できたおかげで、去年よりもスムーズかつ納得感のある配属になったのではないかと思います。

窪寺:エンジニアの仕事だけでは気付くことができなかった関係各所とのスケジュール調整や働きかけ、コネクションなどの大切さを実感しました。

ーーー今後の展望を教えてください。

東:単純に技術のレベルを底上げするための研修で終わるのではなく、新卒が配属後に即戦力として活躍できるようになるためのサポートを、総合的にできる組織の構築を目指していきたいです。
一方でbootcampの運営を担当してくれるメンバーには、横の連携や他部署の上司との繋がりなどを築き、社内全体への視野をもってリーダーシップを磨くための場として活用して行ってもらえるように業務フローの整備や評価体制を整えていきたいと考えています。

受講者の感想

富岡 真由さん
bootcamp後、GENIEE CVG事業本部へ配属
bootcampは今まで知らなかった様々な技術を学ぶことができた研修でした。その中で特に印象に残ったのはLEMP研修です。それまでの研修で各テーマに沿って学んできた技術を総合的に使用して課題を解いていくことで、自分の理解が甘かった部分などに気がつくことができ、技術者同士のつながりも感じることができました。

内藤 隼矢さん
bootcamp後、SFA/CRM事業本部へ配属
今まで触れたことのない様々な技術を幅広く経験でき、充実した楽しい期間でした。特に印象深いのはチーム研修です。自分を含むほぼ全員が初めての集団開発でしたが、チームリーダーを中心にメンバー全員が協力し合い、プロダクトを完成させられた事に達成感を感じました。

はじめに

GENIEE インフラチーム片岡です。2019年に新卒として入社し、最初の二年間は DSP のフロントチームで管理画面の開発をしていましたが、2021年中頃からチームを異動し、今はインフラ寄りのお仕事をしています。
そのころから、DSP のレポート集計基盤を刷新するプロジェクトが動いており、なんやかんやあって遂に数ヶ月前にリプレイスが終わりました。今回はこれについてお話をしたいと思います。

片岡 崇史/高知工科大学大学院を卒業後 2019 年に新卒入社。R&D アドプラットフォームサプライサイド開発部 DevOps チーム所属。

レポート集計基盤について

弊社では、オープンソースの列指向 DBMS のひとつである ClickHouse を使ってレポートデータを閲覧できるようにしています。
過去の ClickHouse の利用については以下をご覧ください。

レポート集計基盤は、弊社の DSP から配信された広告の成果ログから成果を集計し、最終的に ClickHouse のレポートテーブルに結果を入れます。

旧レポート集計基盤

旧レポート集計基盤は以下のような流れになっていました(図1)。ログを出力するサーバは、ログを Logstash によって Kafka に転送します(図1①)。Flink は Kafka からログを読んで集計処理を行います(図1②)。Flink アプリケーションの処理は大きく分けて、重複排除を行うステップ、数値を集約するステップ、ClickHouse のレポート DB に格納するデータの形に変換するステップがあります。各ステップの処理結果は kafka に転送され、次のステップは先のステップの結果を Kafka から読んで処理を行います。最後に ClickHouse は集計結果を Kafka から読み、レポートテーブルに格納します(図1③)。

↑図1

旧レポート集計基盤の辛かったところ

旧レポート集計基盤では主に以下が問題になっていました。

  1. 成果ログを使った調査が面倒
  2. Flink を運用保守できる人が少ない(再集計が必要になったときの作業が面倒)
  3. Logstash が何故か安定しない

運用上、生の成果ログを使った調査を行いたいことがしばしばあります。しかし、ログファイルは大きいので調査対象の期間が長くなると検索するだけで何十分と時間がかかることもあります。
2つ目の問題として、Flink アプリケーションの保守&運用が難しく、誰も触りたがらないものとなってしまっていてなんとかしなければいけません。
また、ログパイプライン上で何か問題が起きて流れているログが一部欠損したような場合は、その時間帯のログからレポートを再集計する必要がありますが、そのときの手順も複雑でかなり面倒なものとなっていました。この手順のミスで再び再集計作業が必要になることもありました。
ログパイプライン上で問題が起きやすかったのは、ログ転送エージェントとして利用していた Logstash です。突然ログの転送が停止し、「よくわからないが再起動したらなおったのでヨシ」ということもしばしばありました。バージョンアップやチューニング、Logstash のソースコード調査などを行いましたが、結局解決されず原因は謎のままです。

方針と期待する効果

新しいレポート集計基盤の方針としては以下のようになりました。

  1. Flink は撤廃し、成果ログをそのまま ClickHouse に流し、ClickHouse 上で集計を行う
    a. ClickHouse に成果ログを保持するテーブルを設けることで、成果ログの調査 が簡単になる
    b. Kafka のストレージ容量・通信量が削減される
  2. ログ転送エージェントを Logstash から td-agent-bit に変える
  3. ログ形式を JSON に変更する

まず Flink は撤廃することにします(さようなら)。代わりに成果ログの処理を行うのは ClickHouse で行うことにしました。弊社ではこれまで ClickHouse をレポート閲覧・分析用の DB としてのみ利用していたので新しい使い方にはなりますが、先輩方のこれまでの知見もありこれ自体に大きな問題もなく実現することができました。使い方としては基本的に普通の SQL なのでチームの人員に入れ替わりがあっても対応できそうです。
これに伴い、生の成果ログを ClickHouse に流すことになるわけですが、この成果ログを ClickHouse のログテーブルとして一定期間保持するようにすることにしました。これによって、その保持期間の間は調査に必要なログを SQL を使って取得することができます。成果ログを頻繁に調査する人にとっては結構嬉しい改善です。
先に述べたように、旧集計基盤の Flink アプリケーションは、各ステップの処理結果のデータが Flink と Kafka の間で往復していました。今回の変更はこのやりとりを無くすことになるので、Kafka のストレージ容量と通信量が大きく削減されます。
ログ転送エージェントの Logstash が安定しない問題の対策として、これを td-agent-bit (fluent-bit) に置き換えることにしました。弊社ではログ転送エージェントに td-agent (fluentd) を使っている部分が多いですが、以下の理由で td-agent-bit を選択しました。

  • Kafka にログ転送を行うにあたり、td-agent-bit は librdkafka のバージョンが新しいものが使われていてかつ細かい設定が可能である
  • CPU 使用率が大きく減少した。遅延が減ると期待できる

また、元々のログ形式は LTSV でしたが、これを JSON にすることにしました。多少ログのサイズが大きくなることが予想されましたが、代わりにログを扱いやすくすることを目指しました。

新しいログパイプラインとレポート集計系

以上を踏まえて設計すると以下のようになりました。(図2)

↑図2Kafka にログを流すところまでは、ログ転送エージェントが変わったこと以外は基本的に同じです。
上で述べたように、生ログの処理も ClickHouse で行うのですが、これまでレポート閲覧に使っていた ClickHouse クラスタ(以下、閲覧用クラスタと呼ぶ)とは別に、新しくログ処理のための ClickHouse クラスタ(以下、ログ処理用クラスタと呼ぶ)を作りました。Kafka からログを読むのはこのログ処理用クラスタのみになります(図2②)。このクラスタは Kafka から読んだログをパースして一定期間保持します。また、パース済みログを ClickHouse の Materialized View を利用して結果を閲覧用クラスタのレポートテーブルに挿入します(図2③)。このレポートテーブルはテーブルエンジンに SummingMergeTree を使っており、ここで数値が集計されます(後にもう少し詳しく説明します)。このようにクラスタを分けることにより、多くのレポート分析クエリが走って負荷が大きくなってもログ処理系に影響が出ないようにしました(その逆も同様)。
旧レポート集計系の良くなかったところとして、広告配信コストの計算のようなビジネスロジックの一部を Flink で行っていたということがあります。基本的にビジネスロジックは、ログを作るアプリケーション側で処理をして結果をログに落とすという形を取っていたので、ビジネスロジックを処理する場所が分散していました。そのため、今回 Flink に残っているビジネスロジックは全てログを作るアプリケーション側に寄せる変更を行いました。これによって、ClickHouse の集計はログに書いてある値を集約するだけで可能になりました。

ClickHouse 上でのレポート集計に使った機能

簡単にですが、ClickHouse 上でのレポート集計を支える機能の一部をご紹介します。

Kafka table engine

Kafka からログを読むのは Kafka table engine を利用しています。このテーブルを select することで Kafka のデータを consume して読むことができます。consume するので同じデータが読めるのは一度だけで、実際には以下で説明する Materialized View を使ってデータを読みます。

Materialized View

一般的な DB の Materialized View は、クエリ結果を期限付きでキャッシュする形で動作しますが、ClickHouse はそうではありません。ClickHouse の Materialized View は参照しているテーブルにレコードが挿入されたのをトリガーとして、そのレコードのみに対して処理を行い、結果をその Materialized View または指定する別テーブルに挿入します(別テーブルに挿入した結果はもちろん消えることはありません)。差分に対してのみ処理が行われるため高速に処理してくれます。

新レポート集計基盤では主に以下の用途で Materialized View を使っています。

  1. 生ログテーブルを読み、パースしてパース済みのログテーブルに挿入する
  2. パース済みのログテーブルを読み、レポートテーブル(SummingMergeTree table engine)に挿入する

1 では JSON 形式のログをパースして、必要なプロパティをカラムにしてログテーブルに挿入しています。
最終的なレポートテーブルは SummingMergeTree table engine を使っています。SummingMergeTree table engine は、挿入されたレコードを、テーブル定義の中で明示的に指定した特定のカラム(数値の型)のみ足し上げてくれます。2 の Materialized View が各成果情報を SummingMergeTree のレポートテーブルに挿入することによって、レポートテーブル上で必要な各種広告配信の指標(インプレッション数やクリック数、その他配信費など)が足し上げられ、結果が閲覧できます。

JSON を扱うための関数群

ClickHouse では JSON を扱うための SQL の関数が用意されており、我々はこれを利用して JSON のパースを行っています。C++ や simdjson を使って実装されているため、大量のログも高速に処理できています。

改善されたこと

当初の狙いだった以下のことについては達成することができました。

  1. 成果ログの調査が楽になった
  2. レポート集計基盤が安定し、再集計が必要になることがなくなった
  3. Flink を完全撤廃することができた(以前より運用しやすい状態になった)

上記以外では、Kafka の転送量が減ったことによって Kafka のサーバ台数も減らすことができました。Kafka サーバは約半数減、Flink サーバ全台撤廃、ClickHouse の集計用クラスタに数台のサーバを追加となり、全体のサーバの増減としては 10 台以上のサーバ減となりました。
また、ログが落ちてからレポートに反映されるまでの遅延が大幅に短くなりました。旧レポート集計基盤ではピークタイムに約 30 分の遅延がありましたが、新レポート集計基盤では基本的に 2 分以内に収まっています。

おわりに

レポート集計基盤の刷新した件について、新旧の違いと改善できたこと等を説明しました。と、まあ全てが上手くいったような書き方をしてきましたが、間で多々問題があったので着手から完了までかなり時間がかかり、関係各所にはご迷惑をおかけしました。今回は多くの勉強・反省することがあったので、今後これを活かして頑張っていきたいと思います。

こんにちは、DSP開発部の藤原です。
GENIEEに新卒で入社してもうすぐ1年になります。

藤原 碧/早稲田大学卒業後、2021年入社。デマンドサイド事業本部 DSP開発部 DSPグループ LAMPBackチーム所属

今日は自分が所属する部活動、競技プログラミング部について書きたいと思います。

目次

1.競技プログラミング部での活動について

  • コンテスト後の感想戦
  • バーチャルコンテスト
  • チームでのコンテスト参加
  • 社内勉強会

2.部活動発足までの経緯

3.今後の展望

1.競技プログラミング部での活動について

一年を通して主に行ってきた活動について記したいと思います。

  • コンテスト後の感想戦

社員が競技プログラミングのコンテストに参加した後にSlack上で各問題の要点を解説したり解法、提出について分からないところの相談などを行っています。
競技プログラミングの場合、大多数はTwitterで頻繁に感想戦を行っていると思いますが、そちらの縮小版といったところですね。

  • バーチャルコンテスト

コンテストサイトによってはバーチャルコンテスト(コンテストの模擬戦のようなもの)の機能があるものがあります。
その機能を利用して社員がコンテストに参加し、上述の感想戦を行うという形式です。
この場合は集まって行うことも多いため、Slackだけではなくホワイトボードに書きながら実地で(主にAtCoder暖色の方が)解説を行っています。

  • チームでのコンテスト参加

例えば、Xmas Contest (https://atcoder.jp/contests/xmascon22) などチームでの参加が可能となるコンテストへ出場をしています。

  • 社内勉強会

各社員が学んだアルゴリズムをGoogle Slide等を用いて解説していきます。
参加者のレベルに合わせて様々なもの(ABC-Exでよく見られる高度典型であることが多いです)を取り扱っています。昨年ですと、形式的冪級数の逆元やワイルドカードを含むパターンマッチングなどのテーマを取り扱いました。

2.部活動発足までの経緯

競技プログラミング部はまだ発足から1年経っていません。

自分を含めた新卒の方々で、競技プログラミングができ、話し合える場を社内に作りたいという意から部活動を作るに至りました。

新入社員は入社してしばらくの間、様々な研修があります。そこで部活動の存在を知り、同期と話を纏めて、休憩時間に現部長の杉野さんに声をかけました。
結果として1ヶ月後に部活動発足となりました。

当時は手探り状態に近く、バーチャルコンテストを立てるにも日程や難易度調整に難航していました。昔はやっていたが今は離れて久しい方やまだ参加されたことが無い方をどうやって競技プログラミングの沼に嵌らせるか。巷でよく聞く競プロの新規層取り込み問題に悩むことが多かったです。
根気強く誘ってみる、ご飯(ピザとか)で釣ってみるなどでどうにか部員を増やしていました。強い方が大勢いる中で競技プログラミングを体験してみる、というのが一番モチベーションに繋がりやすかったかな、と思います。

3.今後の展望

今後は2023年卒の取り込み、isuconやヒューリスティックなコンテスト等への参加、海外コンテストでの感想戦活発化、社内チームでのコンテスト入賞に取り組みます。

isuconには部員1名が参加となりました。今年はチームで参加し、本選に出場したいです。

海外コンテストは深夜帯であることもあり、翌日を考えると敬遠される方が多いのですが、実力向上には避けては通れない道だと考えています。土日祝日だけでも参加される方が増えると嬉しいです。

2023年卒の方は競技プログラミングを嗜まれている方が多いため今から更なる活発化を楽しみにしています。

優秀な人材が入ってくることもあり、社内コンテストなどの開催もできたらいいなと考えています。

社会人となり競技プログラミングに携われる時間はやや減ったものの、今後も部員一同精進していければと考えています。

Back to top