clickhouse中插入查询中的正则表达式

Posted

技术标签:

【中文标题】clickhouse中插入查询中的正则表达式【英文标题】:regexp inside insert query in clickhouse 【发布时间】:2021-08-09 07:13:07 【问题描述】:

为什么内部插入提取部分表达式不起作用,但是:

select toDateTime(extract('2016-08-02 07:06:18+00:00', '\\d4-\\d2-\\d2 \\d2:\\d2:\\d2'))

SELECT toDateTime(extract('2016-08-02 07:06:18+00:00', '\\d4-\\d2-\\d2 \\d2:\\d2:\\d2'))

┌─toDateTime(extract('2016-08-02 07:06:18+00:00', '\\d4-\\d2-\\d2 \\d2:\\d2:\\d2'))─┐
│                                                                           2016-08-02 07:06:18 │
└───────────────────────────────────────────────────────────────────────────────────────────────┘

插入时出现此错误:

 DB::Exception: Cannot parse datetime: Cannot parse DateTime from String. 

【问题讨论】:

clickhouse 版本 20.3.20 我使用不带正则表达式的 parseDateTimeBestEffort 处理日期插入 【参考方案1】:

顺便说一句,关于插入 https://clickhouse.tech/docs/en/operations/settings/settings/#settings-date_time_input_format

$ cat /etc/clickhouse-server/users.d/date_time_input_format.xml
<?xml version="1.0"?>
<yandex>
   <profiles>
       <default>
           <date_time_input_format>1</date_time_input_format>
       </default>
   </profiles>
</yandex>

【讨论】:

以上是关于clickhouse中插入查询中的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

在 ClickHouse 中使用原始字符串

如何根据正则表达式查询将是或否值插入标志列

正则表达式中的插入操作

ClickHouse为什么这么快?3. 正则匹配算法 re 和 hyperscan 介绍

正则表达式中的插入符号

匹配c#中的正则表达式检查交叉连接查询