Example #1
0
    def handle(self, *args, **options):
        try:
            series = []

            myclient = InfluxDBClient(settings.INFLUXDB_HOST,
                                      settings.INFLUXDB_PORT,
                                      settings.INFLUXDB_USER,
                                      settings.INFLUXDB_PASSWORD,
                                      settings.INFLUX_DB_NAME)
            print("writing to %s" % myclient._get_host())
            with open(options['file']) as f:
                for i, line in enumerate(f):
                    "['id', 'measurement_time', 'value', 'device_parameter_id']"
                    row = line.strip().split(',')
                    # print(row)

                    if i < int(options['start']):
                        continue
                    if i == int(options['final']):
                        break
                    dt = dateparse.parse_datetime(row[1])

                    point_values = {
                        "time": dt.replace(tzinfo=timezone.utc).isoformat(),
                        "measurement": DPMeasurements.INFLUX_MEASUREMENT_NAME,
                        'fields': {
                            'value': Decimal(row[2]),
                        },
                        'tags': {
                            DPMeasurements.DP_TAG: int(row[3]),
                        },
                    }
                    series.append(point_values)

                    batch_size = int(options['batch'])
                    if i % batch_size == 0:
                        print('writing batch {}'.format(i / batch_size))
                        if options['verbosity'] > 1:
                            print(series)
                        myclient.write_points(series)
                        series = []
                if series:
                    # write final batch
                    print('writing batch {}'.format(i / batch_size))
                    myclient.write_points(series)

        except Exception as e:
            print(e)
            raise e
    def handle(self, *args, **options):
        try:
            series = []

            myclient = InfluxDBClient(settings.INFLUXDB_HOST, settings.INFLUXDB_PORT, settings.INFLUXDB_USER,
                                      settings.INFLUXDB_PASSWORD, settings.INFLUX_DB_NAME)
            print("writing to %s" % myclient._get_host())
            with open(options['file']) as f:
                for i, line in enumerate(f):
                    "['id', 'measurement_time', 'value', 'device_parameter_id']"
                    row = line.strip().split(',')
                    # print(row)

                    if i < int(options['start']):
                        continue
                    if i == int(options['final']):
                        break
                    dt = dateparse.parse_datetime(row[1])

                    point_values = {
                        "time": dt.replace(tzinfo=timezone.utc).isoformat(),
                        "measurement": DPMeasurements.INFLUX_MEASUREMENT_NAME,
                        'fields': {
                            'value': Decimal(row[2]),
                        },
                        'tags': {
                            DPMeasurements.DP_TAG: int(row[3]),
                        },
                    }
                    series.append(point_values)

                    batch_size = int(options['batch'])
                    if i % batch_size == 0:
                        print('writing batch {}'.format(i / batch_size))
                        if options['verbosity'] > 1:
                            print(series)
                        myclient.write_points(series)
                        series = []
                if series:
                    # write final batch
                    print('writing batch {}'.format(i / batch_size))
                    myclient.write_points(series)

        except Exception as e:
            print(e)
            raise e