テラデータの大規模なデータウェアハウスとHadoopのデータレイクを併用
多くのユーザーがサービスを利用することで、Yahoo! Japanでは日々膨大なデータが生まれている。Webサイトやアプリケーションには1日に約610億ものリクエストが発生、そこから日々125テラバイトを越えるデータが生成される。これらユーザーのアクセスから生まれる大量データは、当然ながらYahoo! Japanのビジネスを最適化し、利用者の利便性の向上に使われる。
Yahoo! Japanがデータウェアハウスを構築したのは、2002年のことだった。当時のデータ量は6テラバイトほど、分析スキルの高いユーザーにのみアドホック分析の環境が公開された。
その後、Yahoo! Japanのデータウェアハウスは徐々に成長する。2016年には扱うデータ量は1.7ペタバイトにまで拡大、ユーザーからのデータ処理リクエストは、1日に30万クエリーにもなった。さらに2018年には、データウェアハウスは3.3ペタバイト規模に拡大、1日当たりのクエリー数は100万を超える。Yahoo! Japanの極めて大規模なデータウェアハウスは、主に2つのテラデータのシステムで構築されている。さらにデータレイクとして、大規模なHadoopクラスターシステムも運用している。
2018年10月、米国ラスベガスで開催されたテラデータのユーザーカンファレンス「Teradata Analytics Universe」では、ヤフー株式会社 データプラットフォーム本部 データウェアハウスチームの櫻井史彦氏が、Yahoo! Japanのデータウェアハウスについてブレークアウトセッションで解説した。セッション後のインタビューで櫻井氏は、Teradata Database (以下 Teradata)で構築されているデータウェアハウスは「SQLさえ憶えれば、エンジニアではなくても誰でも使える環境です」と語る。
Yahoo! Japanには、SQLを書きデータウェアハウスから必要なデータを分析・抽出できるスキルを持つユーザーが1,000人ほどいる。さらにTableauなどのBIツールを使いアクセスするユーザーも1,000人ほど、合わせて2,000人強のユーザーがTeradataのデータウェアハウスを活用している。
一方でデータレイクとなっているHadoopのクラスター環境は「すべてのデータの受け皿という位置づけになります」と櫻井氏。Teradataに全てのデータを蓄積するとコストも上がる。Hadoopならば、同じコストで何10倍ものデータを置くことができる。そのため、日々大量に発生するログデータを最初に置くのが、Hadoopのシステムになっているのだ。
Yahoo! Japanにとって、データレイクを効率的に運用することは最大の課題だ。「スケールすることが非常に重要です。手間のかかるデータの移行はしたくありません」と語るのは、ヤフー株式会社 データ&サイエンスソリューション統括本部 データプラットフォーム本部 開発1部 部長の小林直哉氏だ。
とはいえHadoopは、巨大で拡張性のあるストレージとして利用しているだけではない。Hadoopの環境には分散処理のHive、SparkやPrestoといった多様なクエリーエンジンがあり「ストレージとしてだけでなく、コンピューティングでもあり、データ処理を適材適所で行っています。これからもYahoo! JapanにとってHadoopは大切なものの1つです」と櫻井氏は言う。