我查看了Clickhouse的文档,我没有看到UPDATE或DELETE的选项.在我看来它只是一个附加系统.是否有可能更新现有记录,或者是否有一些解决方法,例如截断包含已更改的记录的分区,然后重新存入该分区的整个数据?
我希望一列在每次插入时都有唯一的值。在 SQL 中,我们可以使用自动增量来实现此功能,在 Clickhouse 中,我们可以使用自动增量或任何其他类型等任何类型来实现此功能吗?我是 Clickhouse 的新手,因此可能存在术语错误。
在 1,3b 行数据库上运行查询时,我收到“读取超时”消息。
这不是将推文中的主题标签分组在一起的特定高级查询:
SELECT case when match(hashtag,
'[Cc]orona.*|COVID.*|[Cc]ovid.*|[Cc]oVID_19.*|[Cc]orvid19.*|COVD19.*|CORONA.*|KILLTHEVI.*|SARSCoV.*|ChineseVi.*|WuhanVir.*|ChinaVir.*|[Vv]irus.*|
[Qq]uarantine|[Pp]andemic.*|[Cc]linical[Tt]rial.*|FlattenTheCurve.*|SocialDistancing.*|StayHome.*|StayTheFHome.*|StayAtHome.*|stopthespread.*|
SafeHands.*|WashYourHands.*|SelfIsolation.*') then 'COVID19'
when match(hashtag, '[Jj]anta[Cc]urfew.*|[Jj]anata[Cc]urfew.*') then 'JantaCurfew'
when match(hashtag, 'Bhula.*') then 'Bhula'
when match(hashtag, '[Ss]t[Pp]atrick.*|HappyStPatrick') then 'StPatricks day'
when match(hashtag, '[Cc]hina.*') then 'China'
when match(hashtag, '[Ii]taly.*') then 'Italy'
when match(hashtag, '[Ii]ran.*') then 'Iran'
when match(hashtag, '[Ii]ndia.*') then 'India'
when match(hashtag, '[Hh]appy[Mm]others[Dd]ay.*|[Mm]others[Dd]ay.*') then 'MothersDay'
else hashtag END
as Hashtag,
SUM(CASE WHEN created >= '2020-05-14 00:00:00' AND created <= '2020-03-14 23:59:59' THEN 1 END) "May 14th'20",
SUM(CASE WHEN created >= '2020-05-13 …Run Code Online (Sandbox Code Playgroud) 是否可以像MySQL中那样更改 clickhouse 表中的表引擎,如下所示:
CREATE TABLE example_table (id UInt32, data String) ENGINE=MergeTree() ORDER BY id;
ALTER example_table ENGINE=SummingMergeTree();
Run Code Online (Sandbox Code Playgroud)
因为我在文档中没有找到这样的功能。
如果不可能,是否有计划在不久的将来实现它,或者哪些架构限制阻止这样做?
我想节省事件时间和每 30 秒产生的总电量。总金额不会每次都重置为零。这只是从仪表开始到现在的总数,而不是30秒内产生的总数。
有没有办法查询生成的电柱总量的每日、每周或每月聚合(也许不仅仅是 sum 或 avg)?
还是通过设计一张AggregatingMergeTree桌子?
我不需要保留每条记录,只需要每天、每周和每月的聚合。
例如 :
create table meter_record (
event_time Datetime,
generated_total Int64
)
Run Code Online (Sandbox Code Playgroud) 我有一个带有时间戳的字符串字段,如下所示:“2020-01-13T07:34:25.804445Z”。我想将其解析为日期时间(例如,在 Grafana 过滤器中使用)。但我收到此错误:
SELECT SELECT "@timestamp" AS timestamp, CAST(timestamp AS DateTime) as datetime from table
Cannot parse string '2020-01-13T06:55:05.704Z' as DateTime: syntax error at position 19 (parsed just '2020-01-13T06:55:05').
Run Code Online (Sandbox Code Playgroud)
我在“允许扩展解析”的文档中找到了变量date_time_input_format。但它表示此设置不适用于日期和时间函数。那么如何将带时区的字符串日期转换为 DateTime?
如果 JSON 消息是平面 JSON 文档,Clickhouse 绝对可以从 Kafka 读取 JSON 消息。
我们kafka_format = 'JSONEachRow'在 Clickhouse 中用它来表示这一点。
这是我们目前使用的方式:
CREATE TABLE topic1_kafka
(
ts Int64,
event String,
title String,
msg String
) ENGINE = Kafka
SETTINGS kafka_broker_list = 'kafka1test.intra:9092,kafka2test.intra:9092,kafka3test.intra:9092',
kafka_topic_list = 'topic1', kafka_num_consumers = 1, kafka_group_name = 'ch1',
kafka_format = 'JSONEachRow'
Run Code Online (Sandbox Code Playgroud)
只要生产者将平面 JSON 发送到topic1_kafka. 但并非所有生产者都会发送平面 JSON,大多数应用程序都会生成如下所示的嵌套 JSON 文档:
{
"ts": 1598033988,
"deviceId": "cf060111-dbe6-4aa8-a2d0-d5aa17f45663",
"location": [39.920515, 32.853708],
"stats": {
"temp": 71.2,
"total_memory": 32,
"used_memory": 21.2
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,上面的 JSON 文档与 …
尝试在 macOS Catalina 中安装 ClickHouse 时,执行以下命令:
\n\xe2\x9e\x9c ~ curl -O 'https://builds.clickhouse.tech/master/macos/clickhouse' && chmod a+x ./clickhouse
尝试执行后,sudo ./clickhouse install它将抱怨以下消息:
Copying ClickHouse binary to /usr/bin/clickhouse.new\nCode: 76. DB::ErrnoException: Cannot open file /usr/bin/clickhouse.new, errno: 1, strerror: Operation not permitted. (CANNOT_OPEN_FILE) (version 21.10.1.7886 (official build))\nRun Code Online (Sandbox Code Playgroud)\n为什么即使我执行 sudo 命令还是失败?在尝试安装 ClickHouse 之前是否还需要任何其他命令?
\n我用这个语句创建表:
CREATE TABLE event(
date Date,
src UInt8,
channel UInt8,
deviceTypeId UInt8,
projectId UInt64,
shows UInt32,
clicks UInt32,
spent Float64
) ENGINE = MergeTree(date, (date, src, channel, projectId), 8192);
Run Code Online (Sandbox Code Playgroud)
原始数据看起来像:
{ "date":"2016-03-07T10:00:00+0300","src":2,"channel":18,"deviceTypeId ":101, "projectId":2363610,"shows":1232,"clicks":7,"spent":34.72,"location":"Unknown", ...}
...
Run Code Online (Sandbox Code Playgroud)
包含以下命令的数据的文件:
cat *.data|sed 's/T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]+0300//'| clickhouse-client --query="INSERT INTO event FORMAT JSONEachRow"
Run Code Online (Sandbox Code Playgroud)
clickhouse-client抛出异常:
Code: 117. DB::Exception: Unknown field found while parsing JSONEachRow format: location: (at row 1)
Run Code Online (Sandbox Code Playgroud)
是否可以跳过表格描述中未提供的JSON对象中的字段?