datax_json.py 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. from typing import List, Optional
  2. from pydantic import BaseModel
  3. class HiveReaderParam(BaseModel):
  4. reader_path: str
  5. reader_default_fs: str
  6. reader_file_type: str
  7. reader_field_delimiter: Optional[str]
  8. reader_skip_header: Optional[str]
  9. class HiveWriterParam(BaseModel):
  10. writer_default_fs: str
  11. writer_file_type: str
  12. writer_path: str
  13. writer_filename: str
  14. write_mode: Optional[str]='append'
  15. write_field_delimiter: Optional[str]
  16. class RdbmsReaderParam(BaseModel):
  17. reader_split_pk: Optional[str] = ''
  18. where_param: Optional[str] = ''
  19. query_sql: Optional[str]
  20. class RdbmsWriterParam(BaseModel):
  21. pre_sql: Optional[str] = ''
  22. post_sql: Optional[str] = ''
  23. class DataXJsonParam(BaseModel):
  24. reader_datasource_id: int
  25. reader_tables: List[str] = []
  26. reader_columns: List[str] = []
  27. writer_datasource_id: int
  28. writer_tables: List[str] = []
  29. writer_columns: List[str] = []
  30. hive_reader: Optional[HiveReaderParam]
  31. hive_writer: Optional[HiveWriterParam]
  32. rdbms_reader: Optional[RdbmsReaderParam]
  33. rdbms_writer: Optional[RdbmsWriterParam]
  34. class Config:
  35. schema_extra = {
  36. 'examples': {
  37. 'mysql2mysql': {
  38. "reader_datasource_id": 18,
  39. "reader_tables": ["job_group_copy1"],
  40. "reader_columns": ["0:id:int", "1:app_name:varchar(20)", "2:title:varchar(20)", "3:address_type:varchar(20)"],
  41. "writer_datasource_id": 18,
  42. "writer_tables": ["job_group_copy2"],
  43. "writer_columns": ["0:id:int", "1:app_name:varchar(20)", "2:title:varchar(20)", "3:address_type:varchar(20)"],
  44. "rdbms_reader": {
  45. "reader_split_pk": "",
  46. "where_param": "",
  47. "query_sql": ""
  48. },
  49. "rdbms_writer": {
  50. "pre_sql": "delete from job_group_copy2",
  51. "post_sql": ""
  52. }
  53. },
  54. 'mysql2hive': {
  55. "reader_datasource_id": 18,
  56. "reader_tables": ["grades"],
  57. "reader_columns": ["id", "ssn", "test2"],
  58. "writer_datasource_id": 17,
  59. "writer_columns": ["0:id:int", "1:ssn:varchar", "2:test2:int"],
  60. "writer_tables": [],
  61. "rdbms_reader": {
  62. "reader_split_pk": "",
  63. "where_param": "",
  64. "query_sql": ""
  65. },
  66. "hive_writer": {
  67. "writer_default_fs": "hdfs://192.168.199.107:9000",
  68. "writer_file_type": "text",
  69. "writer_path": "/usr/hive/warehouse/test_1",
  70. "writer_filename": "test_1",
  71. "write_mode": "append",
  72. "write_field_delimiter": "|"
  73. }
  74. },
  75. 'hive2mysql': {
  76. "reader_datasource_id": 17,
  77. "reader_tables": ["grades"],
  78. "reader_columns": ["0:id:int", "3:ssn:varchar", "5:test2:int"],
  79. "writer_datasource_id": 18,
  80. "writer_tables": ["grades"],
  81. "writer_columns": ["0:id:int", "1:ssn:varchar", "2:test2:int"],
  82. "hive_reader": {
  83. "reader_default_fs": "hdfs://192.168.199.107:9000",
  84. "reader_file_type": "csv",
  85. "reader_path": "/usr/hive/warehouse/grades/*",
  86. "reader_field_delimiter": ",",
  87. "reader_skip_header": "true"
  88. },
  89. "rdbms_writer": {
  90. "pre_sql": "delete from grades;",
  91. "post_sql": ""
  92. }
  93. }
  94. }
  95. }
  96. # class Config:
  97. # schema_extra = {
  98. # "example": {
  99. # "reader_datasource_id": 18,
  100. # "reader_tables": ["job_group_copy1"],
  101. # "reader_columns": ["id", "app_name", "title", "address_type"],
  102. # "writer_datasource_id": 18,
  103. # "writer_tables": ["job_group_copy2"],
  104. # "writer_columns": ["id", "app_name", "title", "address_type"],
  105. # "rdbms_reader": {
  106. # "reader_split_pk": "",
  107. # "where_param": "",
  108. # "query_sql": ""
  109. # },
  110. # "rdbms_writer": {
  111. # "pre_sql": "delete from job_group_copy2",
  112. # "post_sql": ""
  113. # }
  114. # }
  115. # "example": {
  116. # "reader_datasource_id": 18,
  117. # "reader_tables": ["grades"],
  118. # "reader_columns": ["id", "ssn", "test2"],
  119. # "writer_datasource_id": 17,
  120. # "writer_columns": ["id:int", "ssn:string", "test2:int"],
  121. # "writer_tables": ["grades"],
  122. # "rdbms_reader": {
  123. # "reader_split_pk": "",
  124. # "where_param": "",
  125. # },
  126. # "hive_writer": {
  127. # "writer_default_fs": "hdfs://192.168.199.107:9000",
  128. # "writer_file_type": "text",
  129. # "writer_path": "/usr/hive/warehouse/test_1",
  130. # "writer_filename": "test_1",
  131. # "write_mode": "append",
  132. # "write_field_delimiter": "|"
  133. # }
  134. # }
  135. # }