文档

注释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位整数
doubleIEEE-754 64位浮点数
stringUTF-8编码的字符串
base64Binary根据RFC 4648定义的base64编码的字节序列
dateTime时间点,可能后面跟着一个冒号 : 和格式描述(数字,RFC3339,RFC3339Nano)
持续时间时间长度表示为无符号64位整数,单位为纳秒

行协议元素

datatype 注释接受 数据类型行协议元素。行协议元素标识在使用 influx write 命令 将注释的CSV写入InfluxDB时,如何将列转换为行协议。

行协议元素描述
测量值列值是测量值
field (默认)列头是字段键,列值是字段值
tag列头是标签键,列值是标签值
时间列值是时间戳 (alias for dateTime
ignoreignored列被忽略,不包含在行协议中

数据类型和行协议元素的混合

#datatype 注释中具有 数据类型(除 dateTime 之外)的列在转换为行协议时被视为 字段。未指定数据类型的列在转换为行协议时默认为 field,且在行协议中 列值保持不变。请参见 以下示例行协议数据类型和格式

时间列

具有 timedateTime #datatype 注释的列在转换为行协议时用作时间戳。如果有多个 timedateTime 列,则最右边的列用作行协议中的时间戳。其他时间列被忽略,并且 influx write 命令会输出警告。

时间列值应该是 Unix纳秒时间戳RFC3339RFC3339Nano

在数据类型注释中示例行协议元素
#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

这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 将进入维护模式。您可以在不更改代码的情况下继续使用它。

了解更多

InfluxDB v3 增强功能和 InfluxDB 集群版现已上市

新功能包括更快的查询性能和管理工具,推动了 InfluxDB v3 产品线的进步。InfluxDB 集群版现已上市。

InfluxDB v3 性能和功能

InfluxDB v3 产品线在查询性能方面取得了显著提升,并提供了新的管理工具。这些增强包括一个操作仪表板来监控您的 InfluxDB 集群的健康状况,InfluxDB Cloud Dedicated 中的单点登录(SSO)支持,以及新的令牌和数据库管理 API。

了解新的 v3 增强功能


InfluxDB 集群版上市

InfluxDB 集群版现已上市,并为您在自管理的堆栈中提供了 InfluxDB v3 的功能。

与我们谈谈 InfluxDB 集群版

InfluxDB Cloud Serverless