from connectors.mysql_connector import MySQLConnector from connectors.clickhouse_connector import ClickHouseConnector from mappers.data_mapper import DataMapper from services.sync_service import SyncService from utils.logger import configure_logger logger = configure_logger() from config.db_config import MYSQL_CONFIG, CH_CONFIG if __name__ == "__main__": # 初始化组件 mysql_conn = MySQLConnector(MYSQL_CONFIG) ch_conn = ClickHouseConnector(CH_CONFIG) # 要处理的表名 tableName = 't_equipment_charge_order' # 创建同步服务 service = SyncService( mysql_conn=mysql_conn, ch_conn=ch_conn, mapper=DataMapper(ch_conn, tableName), schema_path="schemas/" + tableName + ".sql" ) try: # 创建ClickHouse表 service.create_ch_table() # 同步数据 service.sync_data(table=tableName, batch_size=5000) # 结束 print("同步完成") except Exception as e: logger.error(f"同步失败: {str(e)}", exc_info=True) finally: ch_conn.disconnect()