ログ調査のためのDuckDB
株式会社アドウェイズ / 中村拡幹
フロントエンドエンジニア / 従業員規模: 1,001〜5,000名 / エンジニア組織: 51名〜100名
ツールの利用規模 |
---|
10名以下 |
ツールの利用規模 | 10名以下 |
---|
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
アドウェイズの広告事業本部が開発している社内向けのシステムは、ジョブサーバー、ウェブサーバーからログサーバーへログを収集し、さらにS3に保管するという構成をとっています。
ログサーバーは、利用者からの問い合わせや、障害が発生した際の調査に利用していますが、現状、サーバーにSSHで接続し、grepやjqを使ってログを絞り込んでおり、手間もかかる上に検索性も低い状態です。
また、ログサーバーとして専用のEC2インスタンスを立ち上げているため、コストの観点からも最適化を行いたいと考えていました。
どのような状態を目指していたか
- ログ確認に費やす時間を削減
- ログ確認時の利便性向上
- 低コストでの運用
比較検討したサービス
- Datadog Logs
- Cloudwatch Logs Insights
比較した軸
- 低コストで運用可能であること
- 開発コストが少ないこと
選定理由
試験運用をするに至った大きなポイントは以下です。 ※本レビュー執筆時点では、調査・試験運用段階であり、実際に本番導入するには至っておりません。
- DuckDB UIという拡張機能がリリースされ、フロントの実装が不要のため低コストで導入が可能
- 無料で利用が可能
導入の成果
改善したかった課題はどれくらい解決されたか
本番運用されることで、運用上頻繁にアクセスする情報をカラム化し早期に問題の特定ができるようになり、さらに副次的にはログサーバーの削除が可能になりコスト削減が可能になる見込みです。
導入に向けた社内への説明
上長・チームへの説明
導入時の説明内容
DuckDB導入に向けて、以下のメリットを説明しました。
手軽なデータ準備: 特定のスクリプトを用意することで、取得日時や対象ログを選択するだけでローカル環境にDuckDBで利用可能なデータセットを準備できることを説明しました。
直感的なUI: 準備されたデータセットはDuckDB UIを介して操作でき、過去に実行したクエリも保存できることを説明しました。
チームからのフィードバックと改善点
導入後、チームからは以下のフィードバックが寄せられました。
データセット準備の時間: 「該当のデータセットを準備するまでに時間がかかるため、急ぎの場合は従来通りの確認方法で済ませることがある」という声がありました。これはDuckDBがログファイルを処理するのに時間がかかっているわけではなく、複数のログを取得しているスクリプトの処理起因によるものです。
スキーマ自動推測の課題: 「DuckDBによるスキーマの自動推測により絞り込みたいカラムが絞り込めない」というフィードバックも受けました。このため、事前にスキーマ定義を行ったり、ログフォーマット自体の標準化なども検討する必要があります。
活用方法
よく使う機能
DuckDB UIによる絞り込み操作
ツールの良い点
- ローカルリソースを利用可能
- クエリ性能の高さ
- 拡張性の高さ(parquet,csv,jsonなどのファイルフォーマットに対応)
ツールの課題点
- DuckDB UIの画面をカスタマイズする機能はないため、用途に特化した画面を用意するならWasmの実装が必要
- jsonなどでネストされたデータのスキーマ自動推測ができない
ツールを検討されている方へ
構造の深いデータでは、それ自体の整備が一定必要になりますが、複雑な用途が必要でなければ、DuckDB UIを活用することで低コストでの導入が可能なので、検討してみてください。
株式会社アドウェイズ / 中村拡幹
フロントエンドエンジニア / 従業員規模: 1,001〜5,000名 / エンジニア組織: 51名〜100名
よく見られているレビュー
株式会社アドウェイズ / 中村拡幹
フロントエンドエンジニア / 従業員規模: 1,001〜5,000名 / エンジニア組織: 51名〜100名
レビューしているツール
目次
- 導入の背景・解決したかった問題
- 活用方法