influxdata / influxdata/influxdb-client-python

ask question about field and value separate

オープン
#554 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
793
フォーク
186
平均マージ
3時間 2分
マージ済み PR(30日)
1

説明

version: influxdb v2.4

i have a question about ETL when i use ui filter search my data

I expected my result like this

filed,value
---
voltage:20
current:30

but result is

_filed,_value
---
_filed,voltage

_filed,_value
---
_value,20

How do I fix it

part of Code:
~~~
column_list=["Location","Service","RackName","PduSide"]
ip_to_mapping = {
'192.168.20.100': ["room1","storage","A01","R"],
'192.168.20.101': ["room2","CRM","A02","L"]
}
drop_colummns=['table','_measurement','_start','_stop','_time','result']
#mapping
def mapping_function(num):
feeback_dict={}
for x in range(len(empty)):
feeback_dict[f'{empty[x]}']=ip_to_mapping[empty[x]][num]

return(feeback_dict)

#instance
client = InfluxDBClient(url=url, token=token, org=org)
write_api = client.write_api(write_options=SYNCHRONOUS)
query_api = client.query_api()

#query
query = ''' from(bucket: "delta_pdu")
|> range(start:-1m)
|> filter(fn: (r) => r["_measurement"] == "snmp") '''
result = query_api.query_data_frame(org=org, query=query)

# for x in result:
# print(x.columns)

#ETL
empty=[]
for table in result:
a=list(set(table['agent_host']))
for x in a:
empty.append(x)
for x in range(len(column_list)):
table[f'{column_list[x]}']=table['agent_host'].map(mapping_function(x))
table.set_index(table['_time'], inplace=True)
# print(table)
clear_data=table.drop(columns=drop_colummns)
clear_data_columns=list(clear_data.columns)
print(clear_data)
print(clear_data_columns)
print('=----')
# print(clear_data_columns)
for x in clear_data_columns:

if x[0]=='_':
clear_data_columns.remove(x)
print(clear_data_columns)

write_api.write(bucket=bucket2, org=org, record=clear_data,
data_frame_measurement_name='SNMP',
data_frame_tag_columns=clear_data_columns,
data_frame_field_columns=["_filed","_value"])
~~~

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

query_api.query_data_frame と write_api.write を使用する Python クライアントコードから始め、InfluxDB v2.4 に対して変換を再現します。書き込み前に dataframe の列を調べ、提供された field と value の期待値と比較します。_field と _value が分離して出力される原因を特定し、明確な修正または文書化された制限を確立できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
data, databases
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。