mintance / nginx-clickhouse

Simple nginx logs parser & transporter to ClickHouse database.
Apache License 2.0
149 stars 30 forks source link

Устаревший синтаксис #14

Closed yatakoi closed 3 years ago

yatakoi commented 3 years ago

Здравствуйте.

Этот синтаксис уже не работает.

CREATE TABLE metrics.nginx (
    RemoteAddr String,
    RemoteUser String,
    TimeLocal DateTime,
    Date Date DEFAULT toDate(TimeLocal),
    Request String,
    RequestMethod String,
    Status Int32,
    BytesSent Int64,
    HttpReferer String,
    HttpUserAgent String,
    RequestTime Float32,
    UpstreamConnectTime Float32,
    UpstreamHeaderTime Float32,
    UpstreamResponseTime Float32,
    Https FixedString(2),
    ConnectionsWaiting Int64,
    ConnectionsActive Int64
) ENGINE = MergeTree(Date, (Status, Date), 8192)

Пробовал последнюю строку сделать так, но все равно синтаксические ошибки. Прошу вас помочь. ENGINE = MergeTree() ORDER BY (Date, (Status, Date)) SETTINGS index_granularity=8192

vadim-zakharyan commented 3 years ago

Привет, попробуйте заменить последнюю строчку на ENGINE = MergeTree() PARTITION BY toYYYYMM(Date) ORDER BY (Date);

yatakoi commented 3 years ago

Я сделал так и сработало:

CREATE TABLE metrics.nginx
(
    RemoteAddr String,
    RemoteUser String,
    TimeLocal DateTime,
    Date Date DEFAULT toDate(TimeLocal),
    Request String,
    RequestMethod String,
    Status Int32,
    BytesSent Int64,
    HttpReferer String,
    HttpUserAgent String,
    RequestTime Float32,
    UpstreamConnectTime Float32,
    UpstreamHeaderTime Float32,
    UpstreamResponseTime Float32,
    Https FixedString(2),
    ConnectionsWaiting Int64,
    ConnectionsActive Int64
) ENGINE = MergeTree() 
PARTITION BY toYYYYMM(Date)
ORDER BY (Status, Date) 
SETTINGS index_granularity=8192

В любом случае спасибо большое за ответ.