注释CSV
您可以使用注释CSV和InfluxDB HTTP API将数据写入InfluxDB,或者通过InfluxDB UI 上传CSV文件。
CSV表必须以UTF-8和Unicode规范C编码,如UAX15中定义。InfluxDB删除换行符前的回车。
CSV响应格式
InfluxDB注释CSV支持以下编码。
表格
表格可能包含以下行和列。
行
注释行:描述列属性。
标题行:定义列标签(每个表格一个标题行)。
记录行:描述表中的数据(每行一个记录)。
示例
#group,false,false,true,true,false,false,true,true,true,true
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string
#default,mean,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,host,region
,,0,2022-12-31T05:41:24Z,2023-01-31T05:41:24.001Z,2023-01-01T00:52:00Z,15.43,mem,m,A,east
,,1,2022-12-31T05:41:24Z,2023-01-31T05:41:24.001Z,2023-01-01T00:52:00Z,59.25,mem,m,B,east
,,2,2022-12-31T05:41:24Z,2023-01-31T05:41:24.001Z,2023-01-01T00:52:00Z,52.62,mem,m,C,east
列
除了数据列外,表格可能还包含以下列
注释列:显示注释的名称。仅用于注释行,总是第一列。值可以是空或受支持的注释。响应格式使用逗号(
,
)来分隔注释名称和行中的值。因此,表格中的行以一个前导逗号开始;您会注意到整个表格的空列。结果列:包含由查询指定的结果名称。
表格列:包含结果集中每个表格的唯一ID。
多个表格和结果
如果一个文件或数据流包含多个表格或结果,必须满足以下要求
- 表格列指示行属于哪个表格。
- 一个表格中的所有行都是连续的。
- 在以下情况下,空行定义新的表格边界
- 在同一结果中但共享公共表格模式的表格之间。
- 连接的CSV文件之间。
- 每个新的表格边界都以新的注释和标题行开始。
示例
#group,false,false,true,true,false,false,true,true,true,true
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string
#default,_result,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,host,region
,,0,2022-12-31T05:41:24Z,2023-01-31T05:41:24.001Z,2023-01-01T00:00:00Z,15.43,mem,m,A,east
,,1,2022-12-31T05:41:24Z,2023-01-31T05:41:24.001Z,2023-01-01T00:00:00Z,59.25,mem,m,B,east
,,2,2022-12-31T05:41:24Z,2023-01-31T05:41:24.001Z,2023-01-01T00:00:00Z,52.62,mem,m,C,east
#group,false,false,true,true,true,true,false,false,true,true
#datatype,string,long,string,string,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,string,string
#default,_result,,,,,,,,,
,result,table,_field,_measurement,_start,_stop,_time,_value,host,region
,,3,mem_level,m,2022-12-31T05:41:24Z,2023-01-31T05:41:24.001Z,2023-01-01T00:00:00Z,ok,A,east
,,4,mem_level,m,2022-12-31T05:41:24Z,2023-01-31T05:41:24.001Z,2023-01-01T00:00:00Z,info,B,east
,,5,mem_level,m,2022-12-31T05:41:24Z,2023-01-31T05:41:24.001Z,2023-01-01T00:00:00Z,info,C,east
方言选项
Flux支持以下text/csv
格式的方言选项。
选项 | 描述 | 默认 |
---|---|---|
header | 如果为true,则包含标题行。 | true |
delimiter | 用于分隔列的字符。 | , |
quoteChar | 用于引用包含分隔符的值的字符。 | " |
annotations | 要编码的注释列表(数据类型、分组或默认)。 | empty |
commentPrefix | 用于识别注释的字符串前缀。始终添加到注释中。 | # |
注释
注释行描述列属性,并以#
(或commentPrefix值)开始。注释行中的第一列始终包含注释名称。后续列包含注释值,如表中所示。
注释名称 | 值 | 描述 |
---|---|---|
datatype | 数据类型或行协议元素 | 描述数据类型或列表示的行协议元素。 |
default | 列的数据类型的值 | 用于具有空值的行的值。 |
数据类型
Datatype | 描述 |
---|---|
boolean | “true”或“false” |
unsignedLong | 无符号64位整数 |
long | 有符号64位整数 |
double | IEEE-754 64位浮点数 |
string | UTF-8编码的字符串 |
base64Binary | 根据RFC 4648定义的base64编码的字节序列 |
dateTime | 时间点,可能后面跟着一个冒号 : 和格式描述(数字,RFC3339,RFC3339Nano) |
持续时间 | 时间长度表示为无符号64位整数,单位为纳秒 |
行协议元素
datatype
注释接受 数据类型 和 行协议元素。行协议元素标识在使用 influx write
命令 将注释的CSV写入InfluxDB时,如何将列转换为行协议。
行协议元素 | 描述 |
---|---|
测量值 | 列值是测量值 |
field (默认) | 列头是字段键,列值是字段值 |
tag | 列头是标签键,列值是标签值 |
时间 | 列值是时间戳 (alias for dateTime ) |
ignore 或 ignored | 列被忽略,不包含在行协议中 |
数据类型和行协议元素的混合
在 #datatype
注释中具有 数据类型(除 dateTime
之外)的列在转换为行协议时被视为 字段。未指定数据类型的列在转换为行协议时默认为 field
,且在行协议中 列值保持不变。请参见 以下示例 和 行协议数据类型和格式。
时间列
具有 time
或 dateTime
#datatype
注释的列在转换为行协议时用作时间戳。如果有多个 time
或 dateTime
列,则最右边的列用作行协议中的时间戳。其他时间列被忽略,并且 influx write
命令会输出警告。
时间列值应该是 Unix纳秒时间戳、RFC3339 或 RFC3339Nano。
在数据类型注释中示例行协议元素
#group false,false,false,false,false,false,false
#datatype measurement,tag,tag,field,field,ignored,time
#default ,,,,,,
m,cpu,host,time_steal,usage_user,nothing,time
cpu,cpu1,host1,0,2.7,a,1482669077000000000
cpu,cpu1,host2,0,2.2,b,1482669087000000000
生成的行协议
cpu,cpu=cpu1,host=host1 time_steal=0,usage_user=2.7 1482669077000000000
cpu,cpu=cpu1,host=host2 time_steal=0,usage_user=2.2 1482669087000000000
数据类型和行协议元素混合的示例
#group,false,false,false,false,false,false,false,false,false
#datatype,measurement,tag,string,double,boolean,long,unsignedLong,duration,dateTime
#default,test,annotatedDatatypes,,,,,,
,m,name,s,d,b,l,ul,dur,time
,,,str1,1.0,true,1,1,1ms,1
,,,str2,2.0,false,2,2,2us,2020-01-11T10:10:10Z
生成的行协议
test,name=annotatedDatatypes s="str1",d=1,b=true,l=1i,ul=1u,dur=1000000i 1
test,name=annotatedDatatypes s="str2",d=2,b=false,l=2i,ul=2u,dur=2000i 1578737410000000000
错误
如果在执行过程中发生错误,将返回一个表,其中包含
- 包含错误消息的错误列。
- 包含唯一参考代码的引用列,以识别有关错误的更多信息。
- 第二行包含错误属性。
如果发生错误
- 在结果出现之前,HTTP状态码指示错误。错误详细信息编码在csv表中。
- 在将部分结果发送到客户端之后,错误编码为下一个表,并且剩余的结果被丢弃。在这种情况下,HTTP状态码保持为200 OK。
示例
数据类型注释中错误的编码
#datatype,string,long
,error,reference
,Failed to parse query,897
这个页面有帮助吗?
感谢您的反馈!