TL;DR InfluxDB 技术提示 - SHOW 查询的语法整合

导航到

 在这篇文章中,我们回顾了您可能在最新 InfluxDB 版本中错过的一些新功能,包括 SHOW 查询的语法整合。请在下周查看更多关于 InfluxDB 和 TICK-stack 相关问题的有趣内容、解决方法、操作指南以及来自 GitHub、IRC 和 InfluxDB Google Group 的问答。

您可能听说过我们最近发布了 InfluxDB v1.1。除了各种性能和稳定性改进之外,版本 1.1 还提供了几个新功能和语法开发。以下是您可能错过的一些更新

SHOW 查询的语法整合

在 1.1 之前的版本中,SHOW 查询的语法不一致。一些查询,例如 SHOW RETENTION POLICIES,需要 ON <database_name> 子句,但其他查询,例如 SHOW MEASUREMENTS,会自动查询 HTTP APIdb 查询字符串参数或 CLIUSE 数据库指定的数据库。

在 1.1+ 版本中,所有 SHOW 查询都支持 ON <database_name> 子句,并且该子句是可选的。如果 SHOW 查询未指定 ON 子句,则必须在 CLI 中使用 USE <database_name> 或在 HTTP API 请求中使用 db 查询字符串参数来指定数据库。有关相关的 SHOW 查询以及有关更新语法的更多信息,请参阅模式探索页面。

一些示例

# HTTP API request with the ON clause

~# curl -G "http://localhost:8086/query?pretty=true" --data-urlencode 'q=SHOW MEASUREMENTS ON "thanksgiving"'
{
    "results": [
        {
            "series": [
                {
                    "name": "measurements",
                    "columns": [
                        "name"
                    ],
                    "values": [
                        [
                            "cornucopia"
                        ],
                        [
                            "cornbread"
                        ],
                        [
                            "pie"
                        ],
                        [
                            "sweet_potatoes"
                        ],
                        [
                            "turkey"
                        ]
                    ]
                }
            ]
        }
    ]
}

# HTTP API request without the ON clause

~# curl -G "http://localhost:8086/query?db=thanksgiving&pretty=true" --data-urlencode 'q=SHOW MEASUREMENTS'
{
    "results": [
        {
            "series": [
                {
                    "name": "measurements",
                    "columns": [
                        "name"
                    ],
                    "values": [
                        [
                            "cornucopia"
                        ],
                        [
                            "cornbread"
                        ],
                        [
                            "pie"
                        ],
                        [
                            "sweet_potatoes"
                        ],
                        [
                            "turkey"
                        ]
                    ]
                }
            ]
        }
    ]
}

新函数:SAMPLE()

新的 SAMPLE() 函数 从指定数据返回 N 个点的随机样本。它使用 蓄水池抽样 来生成随机样本,并且支持所有 字段类型

示例

> SELECT * FROM "pies"
name: pies
time                  pumpkin
----                  -------
2016-11-21T17:00:00Z  34
2016-11-21T18:00:00Z  33
2016-11-21T19:00:00Z  2
2016-11-21T20:00:00Z  0
2016-11-21T21:00:00Z  1

> SELECT SAMPLE("pumpkin",2) FROM "pies"
name: pies
time                  sample
----                  ------
2016-11-21T18:00:00Z  33
2016-11-21T21:00:00Z  1

新函数:CUMULATIVE_SUM()

新的 CUMULATIVE_SUM() 函数 返回连续字段值的累积和。该函数支持 int64 和 float64 字段类型

示例

> SELECT * FROM "couch_naps"
name: couch_naps
time                  value
----                  -----
2016-11-21T17:00:00Z  2
2016-11-21T17:10:00Z  3
2016-11-21T17:20:00Z  16

> SELECT CUMULATIVE_SUM("value") FROM "couch_naps"
name: couch_naps
time                  cumulative_sum
----                  --------------
2016-11-21T17:00:00Z  2
2016-11-21T17:10:00Z  5
2016-11-21T17:20:00Z  21

下一步是什么

  • 下载适用于 TICK-stack 的下载已在我们的“下载”页面上线
  • 在云端部署:开始免费试用 InfluxDB Cloud,其中包含完全托管的集群、Kapacitor 和 Grafana。
  • 在您的服务器上部署:想在您的服务器上运行 InfluxDB 集群吗?免费试用 14 天的 InfluxDB Enterprise,其中包含用于部署、监控和重新平衡集群以及管理备份和恢复的直观 UI。
  • 讲述您的故事:超过 100 家公司分享了他们关于 InfluxDB 如何帮助他们取得成功的故事。提交您的客户评价,即可获得限量版连帽衫作为感谢。