Reasons:
1. The original Gorilla paper proposed a compression schema for pairs of
time stamps and double-precision FP values. ClickHouse's Gorilla
codec only implements compression of the latter and it does not
impose any data type restrictions.
- Data types != Float* or (U)Int* (e.g. Decimal, Point etc.) are
definitely not supposed to be used with Gorilla.
- (U)Int* types are debatable. The paper only considers
integers-stored-as-FP-values, a practical use case for which
Gorilla works well. Standalone integers are not considered which
makes them at least suspicious.
2. Achieve consistency with FPC, another specialized floating-point
timeseries codec, which rejects non-float data.
3. On practical datasets, ZSTD is often "good enough" (**) so it should
be okay to disincentive non-ZSTD codecs a little bit. If needed,
Delta and DoubleDelta codecs are viable alternative for slowly
changing (time-series-like) integer sequences.
Since on-prem and hosted users may still have Gorilla-compressed
non-float data, this combination is only deprecated for now. No warning
or error will be emitted. Users are encouraged to migrate
Gorilla-compressed non-float data to an alternative codec. It is planned
to treat Gorilla-compressed non-float columns as "suspicious" six months
after this commit (i.e. in v23.6). Even then, it will still be possible
to set "allow_suspicious_codecs = true" and read and write
Gorilla-compressed non-float data.
(*) Sec. 4.1.2, "Gorilla restricts the value element in its tuple to a
double floating point type.", https://doi.org/10.14778/2824032.2824078
(**) https://clickhouse.com/blog/optimize-clickhouse-codecs-compression-schema
The example statement for `REPLACE TABLE` using a `SELECT` query does not run as written. The example was missing a query engine, engine options, and the `AS` keyword, all of which seem required to replace a table with the output of some query.
* Add a codec Encrypted() for encrypting columns on disk
While this is implemented as a compression codec, it does not actually compress data. It instead encrypts data on disk. The key is obtained by executing a user-specified command at the server startup, or if it's not specified the codec refuses to process any data. For now the only supported cipher is 'AES-128-GCM-SIV'.
* DOCSUP-2806: Add meta intro.
* DOCSUP-2806: Update meta intro.
* DOCSUP-2806: Fix meta.
* DOCSUP-2806: Add quotes for meta headers.
* DOCSUP-2806: Remove quotes from meta headers.
* DOCSUP-2806: Add meta headers.
* DOCSUP-2806: Fix quotes in meta headers.
* DOCSUP-2806: Update meta headers.
* DOCSUP-2806: Fix link to nowhere in EN.
* DOCSUP-2806: Fix link (settings to tune)
* DOCSUP-2806: Fix links.
* DOCSUP-2806:Fix links EN
* DOCSUP-2806: Fix build errors.
* DOCSUP-2806: Fix meta intro.
* DOCSUP-2806: Fix toc_priority in examples datasets TOC.
* DOCSUP-2806: Fix items order in toc.
* DOCSUP-2806: Fix order in toc.
* DOCSUP-2806: Fix toc order.
* DOCSUP-2806: Fix order in toc.
* DOCSUP-2806: Fix toc index in create
* DOCSUP-2806: Fix toc order in create.
Co-authored-by: romanzhukov <romanzhukov@yandex-team.ru>
Co-authored-by: alexey-milovidov <milovidov@yandex-team.ru>