当社ではインターネット、新聞、テレビなど様々なメディア様向けのスポーツデータ速報配信事業を行っていますが、そのまさに「心臓部」であり「源流」である、スポーツデータの入力からデータ配信までの仕組みをご紹介します。
全体像を図に描くと下の図のような感じでしょうか。
今回は、野球を例に、データを入力するフェーズ、データを蓄積するフェーズ、データを配信するフェーズに分けてご紹介します。
データを入力する
例えばプロ野球のデータ入力ですが、データスタジアムではオリジナルの入力システムを独自開発、運用しています。
上の図が、その入力システムの画面のコピーになります。試合の進行に合わせてリアルタイムで全てのイベント(1球毎)を正確にかつスピーディに入力することができるように、ボタンの配置や入力補助機能など、細部までこだわったものになっています。
この入力システムにおいて技術的に重要な要素としては、とにかく「実際の試合進行から遅れてしまわないこと」。
集計処理や、画面遷移、またはサーバーとのやりとりで処理時間が掛かってしまい、入力(=配信)が遅延するようなことがあってはサービスとしては致命的です。そのために、出来るだけクライアントとサーバ間のデータの通信をシンプルかつ結合度の低い状態を保つように設計されています。
具体的には、クライアント(入力システム)とサーバ(集計・配信など)の間にキューの仕組みを配置し、非同期処理を実現しています。またそのキューも商用ソフトウェアやサードパーティのものではなく、独自開発したものになります。
データを蓄積する
入力されたデータはデータベースに蓄積されます。
一番粒度が小さいデータは上記入力システムで入力した1球毎の情報になります。そして、その1球毎のデータ入力をトリガーに様々なデータがデータベース上で自動集計されていきます。
分かりやすいもので言うと、チームの順位表や個人成績(打率や防御率)など。最近はセイバーメトリクスなどの指標データも一般的になってきたので、それらのデータも集計されます。
また、毛色の違うところで言うと、テキスト速報(「◯◯選手、追い込まれてからの三球目のつり球を強振して先制ホームラン!」のような文章データ)もこのデータベース上で自動生成されており、それこそ一度に紹介しきれない種類と量のデータが蓄積されています。
技術的には、入力システム同様に、処理スピードが求められますので、データベース自身の性能を最大化する設計が求められるのはもちろんですが、一部処理時間が掛かるものは別のデータベースに処理を受け渡したり(スケールアウト)、集計処理を並列実行出来るような工夫を施してします。
データを配信する
入力、蓄積された試合データは、FTPやHTTP(API)などのプロトコルを通じて、様々なメディア様のサーバへ配信されます。フォーマットはXMLやjson形式が主ですが、要件に応じてhtmlや画像ファイルにカスタマイズしての配信も行います。
このデータ配信のシステムも多分に漏れず、独自開発のシステムになっているのですが、様々な工夫とナレッジが詰まったアーキテクチャになっています。
例えば、大量の速報データを試合中に遅延なく複数の配信先に提供(配信)する仕組み。FTP配信を例にとっても、1試合あたり、膨大な数の配信処理が発生しますし、またそれを遅延無く複数のサーバ(お客様)へ同時に配信しなければなりません。
この配信処理を前述の入力システムやデータベース集計の仕組みとは非同期に、かつ並列に実行出来るような仕組みを実装しています。
また、ハードウェアやネットワーク障害に備え、自動リトライ処理などアプリケーションレイヤーでの対応だけではなく、配信サーバの冗長化や通信経路の自動切り替えなどのインフラレベルでの障害にも対応されています。
かつ、毎年扱う配信データ量の増加を見越し、この配信サーバーは容易にスケールアウト出来るようになっており、また、他競技における速報配信でも使用出来るような汎用性を確保しているのが特徴です。
まとめと今後に向けて
以上、簡単かつ一部ですが、データスタジアムの速報配信サービスにおけるデータ入力から配信までの流れをご紹介しました。
本当はもっと泥臭い業務や、データ監視&アラートの仕組みなど、ご紹介したいことは沢山あるのですが、それはまた次の機会にお話させていただければと思います。
データスタジアムには、プロチーム向けの各種分析ソリューションや映像サービスなど様々なシステムを開発・運用を行っていますが、それらと比べると今回ご紹介したデータ入力とメディア向け配信システムは社内業務システム寄りであり、比較的地味に映ってしまうかもしれません(バッチ系の処理が多く図やキャプチャでお見せ出来るものも少ないです)。
ただ、社内的位置付けとして重要なシステム群であるのは間違いなく、また今まで行ってきた速報データ配信事業のナレッジが詰まったものになっています。
またそれに加え、ここ数年は機械学習やトラッキングデータなど、手動生成の範疇を超えたデータを扱うことも増えてきました。
これらの新しい技術の導入や連携を行いつつ、如何に新しい価値を創り出し続けるかをこれからも技術スタッフ全員で考え続けていきたいと思います。
エンジニア積極募集中!
データスタジアムでは一緒に働いていただけるエンジニアを絶賛募集中です!
野球、サッカー、バスケをはじめとして色々なスポーツの仕事があります。
AWSやAzure、動画やAIなど技術的にもチャレンジできる職場です。
テクノロジーの力で、日本のスポーツを一緒に発展させていきましょう!
<現在募集中のポジションはこちらから>
https://www.wantedly.com/companies/company_9277271/projects