influxdb插⼊数据_如何将数据从CSV写⼊到InfluxDB中
Python部落(python.freelycode)组织翻译,禁⽌转载,欢迎转发。
Telegraf 是 InfluxData 的插件驱动的服务器代理,⽤于收集和报告指标。⽬前有超过200个输⼊插件,这意味着有很多⽅法可以将数据写⼊到InfluxDB中。然⽽,我经常看到新 Influx ⽤户在 InfluxData 社区站点上询问如何将数据从CSV写⼊到InfluxDB。从⼀个CSV⽂件来写⼊数据是将同样的数据插⼊到 InfluxDB 的⼀种简单⽅法,这可以使你更容易地熟悉这个平台。
将数据从CSV 导⼊到InfluxDB中的需求和设置
在Telegraf⽂件输⼊插件从CSV中写⼊数据的指南。Telegraf⽂件输⼊插件写⼊数据的速度⽐Python脚本快,这在执⾏批量导⼊时⾮常有⽤。通过它,我希望消除新⽤户可能产⽣的任何困惑。我假设你是⼀个MacOS⽤户,并且使⽤Homebrew安装了InfluxDB 和 Telegraf,因为这是在本地启动和运⾏它们的最快⽅式(或者,你可以从我们的下载页⾯下载⼆进制⽂件,或者运⾏sandbox)。
随附的这篇博客⽂章的仓库源可以在
要求:
Telegraf 1.8.0 或更⾼版本
InfluxDB 1.7.0或更⾼版本
安装完成后,在终端中键⼊以下命令,确保InfluxDB正在运⾏并且Telegraf已经停⽌运⾏: brew services list。
如果你没有看到InfluxDB正在运⾏,请执⾏brew services start influxdb来启动它。类似地,如果Telegraf正在运⾏,你可以使⽤brew services stop telegraf来停⽌该服务。
⾸先,我需要下载⼀个带有合适的输⼊和输出插件的Telegraf配置⽂件。根据Telegraf⽂档的“开始使⽤Telegraf”章节,我将在我选择的⽬录的终端中使⽤以下命令。
-sample-config标记将⽣成telegraf配置⽂件。-input-filter和-output-filter标记分别指定数据的输⼊源和输出源。>后⾯的⽂本⽤来命名配置⽂件。我发现在我正在使⽤的telegraf插件后⾯使⽤它来命名我的telegraf配置⽂件⾮常有⽤,这样我以后就能很容易地区分我的配置⽂件了。运⾏命令后,我打开f。我发现我的telegraf配置总共有454⾏,并已经配置好了⽂件输⼊插件和InfluxDB输出插件。
通过四步来将CSV数据提取到InfluxDB中
第⼀步: 我对配置⽂件所做的第⼀个更改位于Output Plugins部分。我想为我的CSV数据指定⽬标数据库。我将把第97⾏从默认的# database = "telegraf"更改为database = csv(或者我选择的任何数据库的
名称,以便我可以轻松地到csv数据)。
我的csv数据看起来像这样:
python怎么读csv数据第⼀⾏和第⼀列都是junk。我还把最后⼀⾏注释掉了。我的时间戳是Unix时间,精度为纳秒(ns)。在第⼆步中,我通过在配置⽂件中添加⼀些⾏来确保不会在数据提取中包含这些⾏和列。
第⼆步:接下来,我想对配置⽂件中的Input Plugins部分进⾏配置。⾸先,我将在telegraf配置⽂件的第455⾏中指定我的csv⽂件的所在路径。因为我的配置⽂件与csv在同⼀个⽬录中,所以第455⾏只是我的⽂件名:files = ["example"](否则请确保引⼊完整的$pwd)。我还将在我的配置⽂件底部的Input Plugins部分添加以下⼏⾏,以确保只提取我关⼼的数据:
额外的配置选项: 还是有必要在配置⽂件中查看⼀下⼏个其他变量。
第36⾏默认为metric_batch_size = 1000。它控制Telegraf发送到InfluxDB的写⼊数据的⼤⼩。如果要执⾏批量数据导⼊,可能需要增加该值。要确定合适的metric_batch_size,我建议你查看这些“TSI。启⽤TSI可以提⾼⼀系列cardinality(基数)性能。查看这个
第69⾏默认为debug = false。如果你在将数据点写⼊到InfluxDB时遇到问题,请将debug变量设置为true来获取调试⽇志消息。
第三步:在你的终端中复制粘贴以下代码来⽤我们刚刚编辑的配置⽂件运⾏Telegraf:
如果你设置了debug = true,那么你会看到以下输出:
第四步:现在我们准备好来查询数据了。你可以在终端中运⾏influx来启动influx shell。
运⾏use csv来选择数据库,并通过以下查询来验证数据插⼊是否成功: select * from measure rement_name limit 3。使⽤precision rfc3339将时间戳转换为⼈可读的格式。
这就是配置⽂件输⼊插件并从CSV⽂件中将数据写⼊到InfluxDB的全部过程。请注意,⽂件输⼊插件接受许多其他数据格式,包括:json、⾏协议和collectd,仅举⼏个例⼦。如果你需要更多有关使⽤CLI的帮助,请参阅
结论
最后,我强烈推荐使⽤Telegraf插件来将数据写⼊你的数据库,因为Telegraf是⽤Go编写的。Go⽐Python快得多,但是如果你决⼼使⽤Python,我建议你查看这个csv-to-influxdb仓库源。最后,Telegraf有tagpass/tagdrop/ fieldpass /fielddrop配置参数,这些参数可以⽤于任何输⼊来筛选并指定哪些标签和字段将被传递。它们还允许你选择将哪些数据包含在提取结果中。⽽且,Telegraf是完全开源的。我⿎励你学习如何编写⾃⼰的Telegraf插件,并贡献新的插件,如果你愿意的话!
译者:天天向上

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。