MySQL to Doris データ同期システム(mysqltodoris)
概要
mysqltodorisは、MySQLからApache Dorisへデータを移行・同期するためのエンタープライズ向けツールです。Python(3.7+)とFlaskを中心に構築され、Webベースの管理画面でジョブ管理やモニタリングが可能です。機能としては、テーブル構造の自動生成、スマートなキュー管理、負荷に応じたバッチ処理の自動調整、接続回復のためのパッチ適用、リアルタイムの処理状態監視などが含まれ、OLAP向けの高速集計基盤(Doris)への安定したデータ投入を目指しています。開発・運用を想定した設計で、MITライセンスの下で公開されています。
リポジトリの統計情報
- スター数: 3
- フォーク数: 0
- ウォッチャー数: 3
- コミット数: 6
- ファイル数: 17
- メインの言語: Python
主な特徴
- Webベースの可視化管理:ジョブ登録・実行状況・モニタリングをブラウザで操作可能。
- 自動テーブル生成とスキーマ変換:MySQLスキーマをDoris向けに自動変換してテーブルを作成。
- スマートキュー&自適応バッチ処理:負荷や遅延に応じてバッチサイズや並列度を調整。
- 接続回復・堅牢性向上パッチ:長時間実行や接続断に備えたリカバリ処理を組み込み。
技術的なポイント
mysqltodorisは、データ移行処理を実運用で安定稼働させるための実務的な工夫が凝らされています。アプリケーションはPython/FlaskをベースにAPIと管理UIを提供し、バックエンドではMySQLからの抽出→変換→Dorisへのロードという典型的なETLパイプラインをシンプルに実装しています。auto_create_all_tables.pyはMySQLのメタ情報を読み取り、DorisのDDLへ変換して自動作成するためのユーティリティで、文字コードや型マッピング(VARCHAR→STRING/CHAR->固定長など)、パーティション/分区キーの扱いといった差分を吸収します。connection_recovery_patch.pyはMySQL接続やDorisクライアントの長期実行時に起きる切断を自動復旧するパッチで、再接続ロジックやトランザクションロールバック検知、リトライ戦略を含んでいる点が注目されます。また、スマートキュー実装によりジョブの優先度管理、再試行回数、失敗時の処理(DLQ的扱い)を用意し、バッチ処理はレコード数・サイズ・所要時間などのメトリクスに基づき動的にバッチ幅を調整します。監視面ではFlask経由で稼働状況やエラーログを可視化し、Prometheus等へのメトリクス出力を組み込めば運用監視とアラート連携が可能です。設計的には、単一プロセスでのPoCから複数ワーカー構成まで拡張できる構造になっており、Doris特有の書き込み方式(stream load / broker load 等)やスキーマ最適化を考慮した実装が行われています。一方、現状はドキュメントやテストが限定的で、Kubernetes等でのコンテナデプロイや大規模ベンチマーク、セキュリティ検証(認証・権限管理)の整備が今後の導入ポイントになります。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- README.md: file
- auto_create_all_tables.py: file
- connection_recovery_patch.py: file
…他 12 ファイル
まとめ
MySQL→Dorisの実運用を視野に入れた実践的な同期ツール。拡張とドキュメント整備で運用価値が高まる期待大。
リポジトリ情報:
- 名前: mysqltodoris
- 説明: mysqltodoris是一个企业级的数据迁移和同步工具,专为大规模数据处理场景设计。系统采用现代化的Web架构,提供直观的可视化管理界面,支持实时监控、智能队列管理和自动化表结构转换。
- スター数: 3
- 言語: Python
- URL: https://github.com/HY356/mysqltodoris
- オーナー: HY356
- アバター: https://avatars.githubusercontent.com/u/203634777?v=4
READMEの抜粋: