web-technical-blog

web開発に関する技術メモ

DeNAのデータ分析基盤

logmi.jp

  • Hadoopクラスタの運用は大変そうです。。
  • アナリスト側にYAML定義を理解してもらうのが大変なのは分かる。。

App -> LogGateway

  • LogGatewayで認証したサービスのログを受け取る
    • Log
      • Fluentd
    • DB SnapShot
      • オンプレの場合はApache Sqoopというもので収集

Hadoop

  • データレイクとして使用
    • HiveQL使用者のためにHue提供していたり
  • サービスごとに、分けて異なるHDFSパスへ

HDFS -> Vertica or BIgQuery

  • 内製のバルクロードツール「Medjed」を使用
    • EmbulkとEmbulkを管理するWebアプリケーション
    • アナリスト職やビジネス職の方にとっては、YAMLを理解していただくというハードルがある
    • ハードルを解消するために、Googleスプレッドシートに定義してもらうとYAMLが実行時に生成されるというような仕組みを持っている
    • Googleスプレッドシートベースではあるがスキーマ管理が行えるようになる

ダッシュボード

  • 柔軟な対応ができる内製ダッシュボード「Argus」を使用
  • クエリエンジン
  • 細かな要望に素早く対応できる
  • 社内に合わせた細かな権限管理を行える
  • ActiveDirectoryのグループに合わせた管理・編集・閲覧それぞれの権限を付与できる
  • 権限管理やグルーピングなどのかゆいところに手が届くのがポイント

ジョブスケジューラー

  • ジョブスケジューラーはJenkinsを使用
    • アナリストの方が慣れていたり、使いやすいというのが使い続けている理由
    • いろんなことができてしまう
    • 権限管理もプラグインを入れるとかなり柔軟に対応できる
  • Jenkinsで完結しない業務のために、LinuxのWorkstationも提供している
    • 普通のLinuxサーバーで、アナリストの方がSSHでログインして使用している