elasticsearch_writer.py 1.5 KB

12345678910111213141516171819202122232425262728
  1. # -*- coding:utf-8 -*-
  2. from configparser import ConfigParser
  3. from dw_base.datax.plugins.writer.writer import Writer
  4. # elasticsearch writer
  5. ES_WRITER_NAME = 'elasticsearch-writer'
  6. ES_WRITER_PARAMETER_NODES = 'nodes'
  7. ES_WRITER_PARAMETER_BATCH_SIZE = 'batchSize'
  8. ES_WRITER_PARAMETER_INDEX = 'index'
  9. ES_WRITER_PARAMETER_SPEED_PER_SECOND = 'speedPerSecond'
  10. ES_WRITER_PARAMETER_WRITE_MODE = 'writeMode'
  11. class ElasticsearchWriter(Writer):
  12. def __init__(self, base_dir: str, config_parser: ConfigParser, start_date: str = None, stop_date: str = None):
  13. super(ElasticsearchWriter, self).__init__(base_dir, config_parser, start_date, stop_date)
  14. self.plugin_name = ES_WRITER_NAME
  15. def load_others(self):
  16. self.parameter[ES_WRITER_PARAMETER_BATCH_SIZE] = self.config_parser.get(self.plugin_type,
  17. ES_WRITER_PARAMETER_BATCH_SIZE)
  18. self.parameter[ES_WRITER_PARAMETER_INDEX] = self.config_parser.get(self.plugin_type, ES_WRITER_PARAMETER_INDEX)
  19. self.parameter[ES_WRITER_PARAMETER_SPEED_PER_SECOND] = self.config_parser.get(self.plugin_type,
  20. ES_WRITER_PARAMETER_SPEED_PER_SECOND)
  21. self.parameter[ES_WRITER_PARAMETER_WRITE_MODE] = self.config_parser.get(self.plugin_type,
  22. ES_WRITER_PARAMETER_WRITE_MODE)