SELECT domain_name, http_port, DATE_FORMAT(FROM_UNIXTIME(TIME), '%Y-%m-%d') AS day, COUNT(*) AS count, SUM(ll) / (1024 * 1024) AS ll, SUM(llsd) / (1024 * 1024) AS llsd, SUM(cksj) / (1024 * 1024) AS cksj FROM video_traffic_record GROUP BY domain_name, http_port, day ORDER BY day DESC LIMIT 10 OFFSET 2如何转换成elasticsearch-sql?
时间: 2024-03-08 08:50:02 浏览: 12
如果您使用的是 Elasticsearch-sql 插件,可以使用类似 SQL 的查询语句来查询 Elasticsearch 数据。
以下是与原始查询语句相对应的 Elasticsearch-sql 查询语句:
```
POST /_xpack/sql
{
"query": "SELECT domain_name, http_port, date_format(date_trunc('day', to_timestamp(TIME)), 'YYYY-MM-DD') AS day, COUNT(*) AS count, SUM(ll) / (1024 * 1024) AS ll, SUM(llsd) / (1024 * 1024) AS llsd, SUM(cksj) / (1024 * 1024) AS cksj FROM video_traffic_record GROUP BY domain_name, http_port, day ORDER BY day DESC LIMIT 2,10"
}
```
注意,Elasticsearch-sql 插件支持类似 SQL 的查询语句,但是并不支持所有的 SQL 语法,因此有些查询语句可能无法转换为 Elasticsearch-sql 查询语句。另外,Elasticsearch-sql 插件已经不再是一个独立的插件,而是包含在 Elasticsearch 的核心功能中。如果您使用的是较新版本的 Elasticsearch,可以直接使用 Elasticsearch 的 SQL 查询语法。
相关问题
from_unixtime(timestamp,'%y-%m-%d')
from_unixtime(timestamp,'%y-%m-%d')是一种将Unix时间戳转换为日期的函数。Unix时间戳是从1970年1月1日00:00:00以来经过的秒数。
这个函数有两个参数。第一个参数是时间戳,可以是整数或浮点数。第二个参数是表示日期格式的字符串,其中'%y'代表两位数的年份,'%m'代表两位数的月份,'%d'代表两位数的日期。
函数的作用是将给定的时间戳转换为指定格式的日期。例如,如果时间戳是1612345678,那么函数的结果将是'21-02-03'。这意味着从1970年1月1日00:00:00到2021年2月3日的间隔是1612345678秒。
这个函数在处理时间戳时非常有用,可以将其转换为可读性更好的日期格式。它在许多计算机程序和数据库系统中都有提供。在处理时间相关的数据时,使用这个函数可以方便地将时间戳转换为日期。
SELECT domain_name, http_port, DATE_FORMAT(FROM_UNIXTIME(TIME), '%Y-%m-%d') AS day, COUNT(*) AS count, SUM(ll) / (1024 * 1024) AS ll, SUM(llsd) / (1024 * 1024) AS llsd, SUM(cksj) / (1024 * 1024) AS cksj FROM video_traffic_record GROUP BY domain_name, http_port, day ORDER BY day DESC LIMIT 10 OFFSET 2如何转换成elasticsearch-sql6.2.3.0?
如果您使用的是 Elasticsearch-sql6.2.3.0 插件,可以使用类似 SQL 的查询语句来查询 Elasticsearch 数据。
以下是与原始查询语句相对应的 Elasticsearch-sql6.2.3.0 查询语句:
```
POST /_sql?format=txt
{
"query": "SELECT domain_name, http_port, DATE_FORMAT(FROM_UNIXTIME(TIME), '%Y-%m-%d') AS day, COUNT(*) AS count, SUM(ll) / (1024 * 1024) AS ll, SUM(llsd) / (1024 * 1024) AS llsd, SUM(cksj) / (1024 * 1024) AS cksj FROM video_traffic_record GROUP BY domain_name, http_port, day ORDER BY day DESC LIMIT 2,10"
}
```
注意,Elasticsearch-sql6.2.3.0 支持类似 SQL 的查询语句,但是并不支持所有的 SQL 语法,因此有些查询语句可能无法转换为 Elasticsearch-sql6.2.3.0 查询语句。另外,Elasticsearch-sql6.2.3.0 插件已经停止维护,建议使用更新的 Elasticsearch 版本自带的 SQL 查询语法。