ParserComponent.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package org.dbsyncer.parser;
  2. import org.dbsyncer.common.model.Result;
  3. import org.dbsyncer.connector.model.MetaInfo;
  4. import org.dbsyncer.listener.ChangedEvent;
  5. import org.dbsyncer.parser.model.BatchWriter;
  6. import org.dbsyncer.parser.model.Mapping;
  7. import org.dbsyncer.parser.model.TableGroup;
  8. import org.dbsyncer.parser.model.Task;
  9. import org.dbsyncer.sdk.spi.ConvertContext;
  10. import java.util.Map;
  11. import java.util.concurrent.Executor;
  12. /**
  13. * <pre>
  14. * 实现全量和增量同步任务,以及连接器读写,插件转换,表元信息,心跳检测
  15. * </pre>
  16. *
  17. * @author AE86
  18. * @version 1.0.0
  19. * @date 2019/10/20 21:11
  20. */
  21. public interface ParserComponent {
  22. /**
  23. * 获取表元信息
  24. *
  25. * @param connectorId
  26. * @param tableName
  27. * @return
  28. */
  29. MetaInfo getMetaInfo(String connectorId, String tableName);
  30. /**
  31. * 获取映射关系执行命令
  32. *
  33. * @param mapping
  34. * @param tableGroup
  35. * @return
  36. */
  37. Map<String, String> getCommand(Mapping mapping, TableGroup tableGroup);
  38. /**
  39. * 获取总数
  40. *
  41. * @param connectorId
  42. * @param command
  43. * @return
  44. */
  45. long getCount(String connectorId, Map<String, String> command);
  46. /**
  47. * 全量同步
  48. *
  49. * @param task
  50. * @param mapping
  51. * @param tableGroup
  52. * @param executor
  53. */
  54. void execute(Task task, Mapping mapping, TableGroup tableGroup, Executor executor);
  55. /**
  56. * 增量同步
  57. *
  58. * @param tableGroupId 表关系ID
  59. * @param changedEvent 增量事件
  60. */
  61. void execute(String tableGroupId, ChangedEvent changedEvent);
  62. /**
  63. * 批执行
  64. *
  65. * @param context
  66. * @param batchWriter
  67. * @param executor
  68. * @return
  69. */
  70. Result writeBatch(ConvertContext context, BatchWriter batchWriter, Executor executor);
  71. }