Closed4
任天堂のデータ分析基盤
このYouTube動画は、任天堂のデータ分析基盤に関する詳細な説明を提供しています。以下はその内容の要約です。
1. 概要
- 任天堂システムズのデータ分析基盤: 2023年から運用開始されたデータ分析基盤についての説明。
- スピーカー: ニンテンドーシステムズ株式会社の田中武夫氏と福岡将幸氏。
2. 基盤の概要
- 稼働開始: 2020年度から本格稼働。
- 利用者: グローバルの各拠点で使用。
- データウェアハウス: BigQueryを採用。
- データソース: 約50種類。任天堂アカウントのデータ、Nintendo Switch、Nintendo 3DS/Wii Uのプレイデータ、商品情報、販売情報、ユーザーからのフィードバックなど。
3. データ量と利用者
- データ量: 約900のテーブル、4.5兆レコード、約100のデータ連携処理。
- 利用者: 約250人のパワーユーザー(直接データベースに接続)、約900人のカジュアルユーザー(BIツール経由)。
- BIコンテンツ: 5000以上のコンテンツ。
4. システムアーキテクチャ
-
データパイプライン:
- データソースからGoogle Cloud Storageにデータを連携。
- データ処理は主にファイル連携で行い、将来的にはストリーミングインサートなども検討。
- ELT処理を中心に構成し、BigQueryのエクスターナルテーブルを利用。
-
データ変換:
- 初期にはデータフュージョンを使用していたが、性能要件を満たせず、バッチ処理に変更。
- 大量のファイル入出力にはクラウドコンポーザーを利用。
-
データ共有とアクセス管理:
- 承認済みデータセット機能を使用し、中間層で承認プロセスを設けて権限管理。
- データ変換はdbtを使用し、モデル単位でタスクに分解して管理。
5. BigQueryの利用
- エンタープライズエディションを利用し、オートスケーリング設定で運用。
- 初回データ投入にはDTS(BigQuery Data Transfer Service)を使用し、スキーマ定義などを手動で行うこともあり。
6. データ検証とカタログ管理
-
データ検証:
- データソースとの検証を実施し、統計値を比較。
- データバリデーションツールを一部修正して利用。
-
データカタログ:
- 現在はサードパーティーのツールを使用しているが、Googleデータカタログの利用も検討中。
7. システム管理と運用
-
プロジェクトのフォルダー構成:
- Google Cloudのフォルダー、プロジェクト、リソースレベルで権限付与を管理。
- 開発運用関係者、データ分析基盤の利用者については適切な権限を設定。
-
アカウント管理:
- クエリー実行権限やデータアクセス権限はGoogleグループを通じて管理。
- テラフォームを利用してフォルダーやプロジェクトレベルの設定を管理。
-
GitHub Actions:
- テラフォームのプランやアプライ、環境とのドリフト検出、構成情報の管理を実施。
この動画は、任天堂のデータ分析基盤の設計と運用の詳細を深く掘り下げており、システムアーキテクチャ、データ処理の手法、権限管理の実施方法などが詳細に説明されています。
感想
- エクスターナルテーブル、オブジェクトテーブルは知らんかった。BQにいちいちロードしなくても良い感じ手間ないね
- データセットを承認済みかそうでないかが使用者にわかる仕組みなってんのかなええね
- データ基盤もプラットフォームだからGAとかプレビューとかアリーアクセスとかあるべきかも
- Cloud coposerとdbtの組み合わせて使う方法になんかノウハウありそう
- bigquery dts知らんかった。不勉強が染みる
- プロジェクト管理すごいね。ユーザー数がこの規模だとGCPのプロジェクト管理の粒度が細かくなるのね
- プラットフォームとして利用申請は必要
- スロークエリは見つけないとね
データプラットフォームを考える
ChatGPT壁打ち
SaaSサービスを作る上でプラットフォームとして最低限必要な機能(ログイン機能、ユーザー管理機能など)
SaaS(Software as a Service)サービスを構築する際には、以下のような基本機能が必要です:
1. ユーザー管理
- ユーザー登録: ユーザーが新規にアカウントを作成できる機能。
- ログイン機能: ユーザーが認証情報を使用してサービスにアクセスする機能。
- パスワードリセット: ユーザーがパスワードを忘れた場合にリセットできる機能。
- アカウント管理: ユーザーが自分のアカウント情報を更新できる機能(メールアドレス、パスワード、プロフィール情報など)。
- ユーザーロールと権限管理: 異なるユーザーに異なるアクセス権を設定する機能(管理者、一般ユーザー、読み取り専用など)。
2. 認証と認可
- シングルサインオン(SSO): 外部の認証プロバイダー(Google、Facebookなど)を使用した認証機能。
- 多要素認証(MFA): セキュリティを強化するための二段階認証機能。
- OAuth、OpenID Connect: 外部サービスとの認証・認可を管理する標準プロトコルのサポート。
3. 請求と決済
- 料金プラン管理: サービスの異なる料金プランやサブスクリプションモデルの設定。
- 決済処理: クレジットカードやデビットカードによる決済機能。
- 請求書発行: ユーザーに対する請求書の生成と配信機能。
- 支払い履歴管理: ユーザーが自分の支払い履歴を確認できる機能。
4. データ管理
- データ保存とバックアップ: ユーザーデータを安全に保存し、定期的にバックアップする機能。
- データインポート・エクスポート: ユーザーがデータをインポートしたりエクスポートしたりできる機能。
- データセキュリティ: データの暗号化やアクセス制御を実施。
5. システム管理
- ログと監査: システムの使用状況やエラーを記録し、監査できる機能。
- パフォーマンスモニタリング: サービスのパフォーマンスを監視し、異常を検知する機能。
- 管理者ダッシュボード: 管理者がシステムの全体状況を把握し、設定を行うためのインターフェース。
6. サポートとコミュニケーション
- ヘルプデスク機能: ユーザーからの問い合わせを受け付ける機能。
- FAQとドキュメント: サポート情報や利用ガイドを提供する機能。
- 通知機能: システムからの重要な通知や更新情報をユーザーに届ける機能。
7. その他
- API: サービスの機能を外部と統合するためのAPIを提供する機能。
- カスタマイズと設定: ユーザーがサービスの設定をカスタマイズできる機能(ダッシュボードのカスタマイズ、テーマの変更など)。
これらの機能を適切に実装することで、ユーザーにとって使いやすく、セキュアで信頼性の高いSaaSサービスを提供することができます。
上記を社内向けのデータ分析プラットフォームに置き換えるとどうなるのか考える、、、いつか
このスクラップは4ヶ月前にクローズされました