Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/nginx/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 如何在fluentd中更改time_iso8601的格式并发送到clickhouse?_Datetime_Nginx_Fluentd_Clickhouse - Fatal编程技术网

Datetime 如何在fluentd中更改time_iso8601的格式并发送到clickhouse?

Datetime 如何在fluentd中更改time_iso8601的格式并发送到clickhouse?,datetime,nginx,fluentd,clickhouse,Datetime,Nginx,Fluentd,Clickhouse,有nginx.conf 。。。。 http{ .... 日志格式主“$remote”地址“$time\u iso8601”; access\u log/var/log/nginx/access.log main; ..... } Logs access.log “127.0.0.1”“2019-12-28610:53:20+00:00” “127.0.0.1”“2019-12-28610:53:20+00:00” 有流利的(td代理) td-agent.conf @型尾 path/var/l

有nginx.conf

。。。。
http{
....
日志格式主“$remote”地址“$time\u iso8601”;
access\u log/var/log/nginx/access.log main;
.....
}
Logs access.log

“127.0.0.1”“2019-12-28610:53:20+00:00”
“127.0.0.1”“2019-12-28610:53:20+00:00”
有流利的(td代理)

td-agent.conf
@型尾
path/var/log/nginx/access.log
pos_文件/tmp/nginx-access-log.pos
标记nginx
格式/“(?[0-9,\.]*)”(?[^]*)”/
时间\u格式%Y-%m-%dT%H:%m:%S.%NZ
@型记录变压器
启用ruby
time_iso8601${time.strtime(记录['time_iso8601'],“%Y-%m-%d%H:%m:%S”).iso8601}
@键入clickhousejson
主机127.0.0.1
端口8123
数据库流畅
表格流畅
日期时间\名称时间\ iso8601
在clickhouse中,我创建了一个数据库和一个表

创建数据库fluent;
创建表格fluent.fluent(
日期物化日期toDate(日期时间),
remoteip字符串,
日期时间(日期时间)
引擎=合并树(日期,日期时间,8192);
日志被发送到clickhouse

│          │ 0000-00-00 00:00:00 │

如何将时间格式从时间iso8601更改为%Y-%m-%d%H:%m:%S(在fluentd(td代理)中)并发送到clickhouse?

当存在未知或不直接支持的日期格式时,您需要插入到clickhouse表中,而不是更改源文件中的日期,您可以尝试在clickhouse中对其进行解析,无论其格式如何

您可以使用该函数进行尝试

对于您的情况,您可以创建如下表:

CREATE TABLE fluent.fluent(
日期时间字符串,
remoteip字符串,
日期具体化为toDate(ParseDateTimeBestWork(DateTime)),
ParsedDateTime日期时间具体化ParseDateTimeBestWork(日期时间)
引擎=合并树(日期,ParsedDateTime,8192);
它将
DateTime
列存储为
String
列,然后使用
parseDateTimeBestEffort
将其具体化

如果这不起作用,您可以检查
DateTime
列中的格式,并尝试结合使用toDateTime函数和