DatastreamによるMySQLデータの分析環境改善
株式会社TVer / 黒瀬祐平
メンバー / データエンジニア
利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
MySQLからBigQueryへのテーブルの同期機能 | 10名以下 | 2023年4月 | B to C |
利用機能 | MySQLからBigQueryへのテーブルの同期機能 |
---|---|
ツールの利用規模 | 10名以下 |
ツールの利用開始時期 | 2023年4月 |
事業形態 | B to C |
アーキテクチャ
アーキテクチャの意図・工夫
- MySQLへのアクセス経路としてSSHの踏み台だけを許可し、Datastreamにもその経路を利用させることで、セキュリティを向上させました。
- MySQLのリードレプリカを参照させることで、同期実行時にMySQLにかかる負荷の影響を低減させました。
- DatastreamがMySQLにアクセスするときに利用するMySQLのユーザには、同期の対象となるテーブルだけを読み取れるように権限およびviewを用意することで、セキュリティとプライバシー保護を向上させました。
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
TVerでは、基本的にBigQueryにデータを集約し、BIツールとしてRedashを利用することで各種分析を行なっています。
取り扱うデータの一つとしてTVer IDの会員マスタ情報があるのですが、これはAmazon RDSで構築したMySQLでホストしています。従来、RedashからはEC2による踏み台経由でMySQLへアクセスすることで、随時更新される最新のデータを分析できるようにしていました。
この従来の構成では、以下のような課題がありました。
- Redashで作成するクエリは大部分がBigQueryのSQLであるにも関わらず、BigQueryとMySQLをJOINするような分析が行えないという制約がありました。
- 当時のMySQLインスタンスのスペック上の制約でもありますが、従来の構成ではMySQLに対して実行したクエリのレスポンスに数時間かかっていました。結果、分析担当者がRedashで実行したクエリの実行状況を見に行く必要があったりRedashのワーカーを長時間占有したりするなど、分析が滞る原因となっていました。
どのような状態を目指していたか
BigQueryに会員マスタ情報のデータを同期することで、下記2点の実現を目指しました。
- 会員マスタ情報の分析を全てBigQueryのクエリで完結させられるようにすること
- BigQueryのサーバレスなコンピューティングリソースを活用することによる、会員マスタ情報の分析業務のリードタイムの短縮
比較検討したサービス
- AWSで稼働しているMySQLのダンプをバッチでエクスポートした後にGoogle Cloudへ転送する方式
比較した軸
導入および運用が簡単であること
選定理由
- MySQLとの接続に必要な設定が簡単にできること
- リソースの監視やエラー時のデータ取り込み直しなどの運用が簡単であること
導入の成果
従来のように、RedashからMySQLのテーブルに直接アクセスする構成では、
- MySQLのテーブルとBigQueryのテーブルのJOINができないため、一つのクエリでは、会員マスタ情報に閉じた分析しかできませんでした。
- また、一つのクエリ実行に数時間かかっていたため、会員マスタ情報の分析のリードタイムが実用的ではありませんでした。
Datastreamを導入することにより、BigQueryにMySQLのテーブルを同期させることで、
- 会員マスタ情報の分析は全てBigQueryで完結させられるようになりました。
- サーバレスであるBigQueryのコンピューティングリソースを活かして会員マスタ情報を分析できるようになりました。
その結果、成果としては、
- MySQLにあるデータと既存のBigQueryにあるデータを一つのクエリの中でJOINすることが可能になり、より幅広い分析ができるようになりました。
- また、一つのクエリ実行が十数秒で完了するようになり、会員マスタ情報の分析業務のリードタイムが大幅に短縮されました。
導入に向けた社内への説明
上長・チームへの説明
バッチで出力したダンプを転送する方式と比較して、構成や日々の運用を簡素化できる点でDatastreamの導入効果がある、という旨をチームに共有しました。
活用方法
よく使う機能
MySQLからBigQueryへのテーブルの同期機能
ツールの良い点
- 認証情報を入れるだけで接続ができる点
- 認証に利用しているユーザから見えるテーブルのうち同期対象を選択できる点
- サーバレスのためコンピューティングリソースの負荷を気にしなくてよい点
- SSHの踏み台設定にも対応している点
ツールの課題点
- Connection ProfileなどDatastream特有のリソースの体系を学習する初期コストが多少かかる点
今後の展望
従来、同期先のテーブルには変更内容をmergeする機能しかありませんでした。最近追加されたappend-onlyのモードを利用すると、レコード追加・変更・削除といったイベントが同期先のテーブルに追記されていくようになります。これにより、過去の任意の時点の同期元のテーブルの状態を、同期先で復元できるようになります。Datastreamの利用の幅が広がる機能です。
https://cloud.google.com/blog/products/data-analytics/understanding-datastream-append-only-mode
株式会社TVer / 黒瀬祐平
メンバー / データエンジニア
よく見られているレビュー
株式会社TVer / 黒瀬祐平
メンバー / データエンジニア
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法