taolib.testing.data_sync#
数据同步管道模块。
MongoDB 到 MongoDB 的数据同步管道,支持: - 增量/全量同步 - 自定义 Python 转换函数 - 检查点恢复 - 失败记录追踪 - 定时/手动触发
使用方式:
from taolib.testing.data_sync.services import SyncOrchestrator, SyncJobService from taolib.testing.data_sync.repository import SyncJobRepository
# 创建服务 job_service = SyncJobService(job_repo) orchestrator = SyncOrchestrator(...)
# 运行同步作业 log = await orchestrator.run_job(job_id)
启动 Web 服务器:
from taolib.testing.data_sync.server.app import create_app
app = create_app() # 使用 uvicorn.run(app, host="0.0.0.0", port=8001)
Submodules#
Attributes#
Exceptions#
当 failure_action == abort 时达到阈值触发。 |
|
检查点损坏或更新失败。 |
|
无法连接到源/目标 MongoDB。 |
|
所有同步错误的基类。 |
|
同步作业不存在或已禁用。 |
|
用户转换函数抛出不可恢复的错误。 |
Classes#
失败处理动作。 |
|
失败记录文档模型。 |
|
同步检查点模型。 |
|
数据库连接配置。 |
|
创建同步作业的输入模型。 |
|
同步作业的 MongoDB 文档模型。 |
|
同步作业的 API 响应模型。 |
|
更新同步作业的输入模型(所有字段可选)。 |
|
创建同步日志的输入模型。 |
|
同步日志的 MongoDB 文档模型。 |
|
同步日志的 API 响应模型。 |
|
同步指标。 |
|
同步模式。 |
|
同步范围。 |
|
同步状态。 |
Package Contents#
- exception taolib.testing.data_sync.SyncAbortError#
Bases:
SyncError当 failure_action == abort 时达到阈值触发。
- class taolib.testing.data_sync.FailureAction#
Bases:
enum.StrEnum失败处理动作。
- SKIP = 'skip'#
- RETRY = 'retry'#
- ABORT = 'abort'#
- class taolib.testing.data_sync.FailureRecordDocument#
Bases:
pydantic.BaseModel失败记录文档模型。
- created_at: datetime.datetime#
- model_config#
- class taolib.testing.data_sync.SyncCheckpoint#
Bases:
pydantic.BaseModel同步检查点模型。
- last_synced_timestamp: datetime.datetime | None#
- updated_at: datetime.datetime#
- model_config#
- class taolib.testing.data_sync.SyncConnectionConfig#
Bases:
pydantic.BaseModel数据库连接配置。
- class taolib.testing.data_sync.SyncJobCreate#
Bases:
SyncJobBase创建同步作业的输入模型。
- class taolib.testing.data_sync.SyncJobDocument#
Bases:
SyncJobBase同步作业的 MongoDB 文档模型。
- created_at: datetime.datetime#
- updated_at: datetime.datetime#
- last_run_at: datetime.datetime | None = None#
- model_config#
- to_response() SyncJobResponse#
转换为 API 响应。
- class taolib.testing.data_sync.SyncJobResponse#
Bases:
SyncJobBase同步作业的 API 响应模型。
- created_at: datetime.datetime#
- updated_at: datetime.datetime#
- last_run_at: datetime.datetime | None = None#
- model_config#
- class taolib.testing.data_sync.SyncJobUpdate#
Bases:
pydantic.BaseModel更新同步作业的输入模型(所有字段可选)。
- scope: taolib.testing.data_sync.models.enums.SyncScope | None = None#
- mode: taolib.testing.data_sync.models.enums.SyncMode | None = None#
- source: SyncConnectionConfig | None = None#
- target: SyncConnectionConfig | None = None#
- failure_action: taolib.testing.data_sync.models.enums.FailureAction | None = None#
- class taolib.testing.data_sync.SyncLogCreate#
Bases:
SyncLogBase创建同步日志的输入模型。
- class taolib.testing.data_sync.SyncLogDocument#
Bases:
SyncLogBase同步日志的 MongoDB 文档模型。
- model_config#
- to_response() SyncLogResponse#
转换为 API 响应。
- class taolib.testing.data_sync.SyncMetrics#
Bases:
pydantic.BaseModel同步指标。
- class taolib.testing.data_sync.SyncMode#
Bases:
enum.StrEnum同步模式。
- FULL = 'full'#
- INCREMENTAL = 'incremental'#
- class taolib.testing.data_sync.SyncScope#
Bases:
enum.StrEnum同步范围。
- CONFIG_CENTER = 'config_center'#
- DATABASE = 'database'#
- FULL = 'full'#
- class taolib.testing.data_sync.SyncStatus#
Bases:
enum.StrEnum同步状态。
- PENDING = 'pending'#
- RUNNING = 'running'#
- COMPLETED = 'completed'#
- FAILED = 'failed'#
- CANCELLED = 'cancelled'#
- taolib.testing.data_sync.__version__ = '0.1.0'#