2017-07-17 2 views
0

Existe-t-il un moyen d'ajouter une balise à une entrée existante dans la mesure InfluxDB? Si ce n'est pas dans la mesure db existante, y a-t-il un moyen d'insérer les enregistrements avec une nouvelle étiquette dans une nouvelle mesure d'influx?Ajouter une balise au point de données existant dans InfulxDB

Actuellement, j'ai un ensemble de mesures qui devraient probablement être des entrées dans une seule mesure où leurs noms de mesure actuels devraient être des étiquettes-clés dans le sur-ensemble des mesures fusionnées.

par exemple.

show measurements 
measurement1 
measurement2 
measurement3 
measurement4 

devraient plutôt être des étiquettes sur les données incluses dans chaque mesure et de l'union pour former une seule mesure joinedmeasurement avec des étiquettes indexées measurment1, measurement2 ...

Répondre

1

Il devrait être fait manuellement via des requêtes.

Par exemple, en python utilisant le client officiel:

from influxdb import InfluxDBClient 

client = InfluxDBClient('localhost', database='my_db') 
measurement = 'measurement1' 
db_data = client.query('select value from %s' % (measurement)) 
data_to_write = [{'measurement': 'joinedmeasurement', 
        'tags': ['measurement1'], 
        'time': d['time'], 
        'fields': {'value': d['value']}, 
        } 
       for d in db_data.get_points()] 
client.write_points(data_to_write) 

Et ainsi de suite pour le reste des mesures. Peut courir le dessus dans une boucle pour faire tout d'un coup.

Envisagez d'utiliser des champs nommés en plus des balises. L'exemple ci-dessus utilise seulement un champ - peut en avoir autant que vous voulez.

Cela améliore encore les performances, même si les champs ne sont évidemment pas indexés, donc ne les utilisez pas pour les données sur lesquelles les requêtes doivent s'exécuter.

+0

Donc, interrogez essentiellement toutes les données de la base de données, ajoutez-les puis écrivez une nouvelle mesure. C'était toujours le plan de sauvegarde, mais espérait éviter cela si possible. Une punition juste pour un mauvais schéma de ma part. – theGreatKatzul