MySQL to Doris データ同期システム(mysqltodoris)

Data

概要

mysqltodorisは、MySQLからApache Dorisへデータを移行・同期するためのエンタープライズ向けツールです。Python(3.7+)とFlaskを中心に構築され、Webベースの管理画面でジョブ管理やモニタリングが可能です。機能としては、テーブル構造の自動生成、スマートなキュー管理、負荷に応じたバッチ処理の自動調整、接続回復のためのパッチ適用、リアルタイムの処理状態監視などが含まれ、OLAP向けの高速集計基盤(Doris)への安定したデータ投入を目指しています。開発・運用を想定した設計で、MITライセンスの下で公開されています。

GitHub

リポジトリの統計情報

  • スター数: 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の実運用を視野に入れた実践的な同期ツール。拡張とドキュメント整備で運用価値が高まる期待大。

リポジトリ情報:

READMEの抜粋:

MySQL到Doris数据同步系统

License Python Flask MySQL Doris

一个功能完整、高性能的MySQL到Apache Doris数据同步解决方案,提供Web可视化管理界面、智能队列系统、自适应批次处理和实时监控功能。

功能特性快速开始Web界面API文档 • [部署…