influxdata / influxdata/influxdb-client-python
ask question about field and value separate
- 主要语言
- Python
- 星标
- 793
- 派生
- 186
- 平均合并
- 3 小时 2 分钟
- 30 天内合并 PR
- 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