运费等指标从Telegraf至BigQuery

问题描述 投票:0回答:1

我想从Telegraf出货指标,GCP的BigQuery的。

我应该怎么办呢?什么是陷阱?

google-bigquery telegraf
1个回答
4
投票

已经研究这个,我认为解决这个问题的最好方法是使用谷歌的数据流。这里的总体思路:

  1. 使用Telegraf的cloud_pubsub输出插件出货JSON格式的标准来谷歌的发布订阅服务
  2. 使用谷歌的数据流服务从发布 - 订阅和船舶摄取到谷歌的BigQuery的
  3. 利润!

这看起来似乎容易,但需要相当多关于这些工具的知识。下面是一些你需要记住的事情:

  1. 搞清楚你的​​指标是什么样子开始 - 并为他们创造一个匹配模式。 BigQuery是基于模式,你必须在高级否则加载数据定义成将失败。我发现,定义为我的客户Telegraf一个额外的“文件”输出是看到什么JSON指标我在装运到BiqQuery有益。请注意,您还可以使用Telegraf的measurement_filter删除/编辑指标
  2. 使用Telegraf的cloud_pubsub插件。正如我在写这个答案(2月19日),它很新,只包含在主分支。我相信这是用于Telegraf版本1.10。
  3. 创建一个发布订阅的话题,一个BigQuery资料表(用模式)和谷歌存储桶 - 你需要的所有三个项目创建一个数据流的项目。您还需要您的GCP生成,然后在点你Telegraf客户端证书文件。
  4. 一旦这样做,在GCP中建立一个数据流的项目。这些不能被编辑一旦创建和烦人的,它们不能被删除(但他们可以停止)。所以,你可能最终会创建多个项目,直到你得到它的权利。我发现,几乎所有的东西我也需要一个新的项目(例如,删除,然后重新创建一个BigQuery资料表具有相同的名称需要一个新的项目)。
  5. 如果你看到在数据流的错误,你应该能够确定这是否是在数据流日志子窗口错综复杂的堆栈跟踪的模式问题。你的指标必须完全匹配的方案,否则它不会加载到表中。
  6. 我无法加载涌入格式指标,但有人告诉我应该是可以的。我用了“JSON”格式,而且工作。
  7. 如果你有嵌套的JSON领域{“人”:{“直呼其名”:“约翰”等}},定义嵌套字段使用BigQuery模式记录类型,并在它的巢域。它不是很明显,除非你已经知道的BigQuery。
  8. 我发现,编辑在GCP控制台的BigQuery架构是非常有限 - 尤其是对嵌套的JSON领域。我不得不重新创建从头几次因为UI不会允许在初始表配置后编辑嵌套领域。
© www.soinside.com 2019 - 2024. All rights reserved.