Commit Graph

12028 Commits

Author SHA1 Message Date
Robert Schulze
c16707ff00
chore: delete obsolete modelEvaluate() function + SYSTEM.MODELS view
- The deleted function modelEvaluate() was superseded by
  catboostEvaluate().

- Also delete the external model repository, as modelEvaluate() was it's
  last user. Additionally remove the system view SYSTEM.MODELS for
  inspecting the repository.

- SYSTEM RELOAD MODELS is also obsolete. HOWEVER, it was retained and
  made a no-op instead of deleted.

  Why?
  The reason is that RBAC in distributed setups works by storing
  privileges (granted and revoked) as plain SQL statements in Keeper.
  Nodes read these statements at startup and parse them. If a privilege
  for SYSTEM RELOAD MODELS exists but parser doesn't recognize it
  nodes would fail to come up.

  Considered but rejected alternatives:
  - Ignore SYSTEM RELOAD MODELS during parsing RBAC privileges and
    return an error for regular SYSTEM RELOAD MODELS SQL. Special-case
    of no-op behavior, too brittle.
  - Remove SYSTEM RELOAD MODELS manually from Keeper via command-line
    manipulation of Keeper nodes or via SQL by dropping the privileges.
    Needs user intervention during upgrade.
2022-09-08 09:10:11 +00:00
Robert Schulze
60f9f6855d
feat: implement catboost in library-bridge
This commit moves the catboost model evaluation out of the server
process into the library-bridge binary. This serves two goals: On the
one hand, crashes / memory corruptions of the catboost library no longer
affect the server. On the other hand, we can forbid loading dynamic
libraries in the server (catboost was the last consumer of this
functionality), thus improving security.

SQL syntax:

  SELECT
    catboostEvaluate('/path/to/model.bin', FEAT_1, ..., FEAT_N) > 0 AS prediction,
    ACTION AS target
  FROM amazon_train
  LIMIT 10

Required configuration:

  <catboost_lib_path>/path/to/libcatboostmodel.so</catboost_lib_path>

*** Implementation Details ***

The internal protocol between the server and the library-bridge is
simple:

- HTTP GET on path "/extdict_ping":
  A ping, used during the handshake to check if the library-bridge runs.

- HTTP POST on path "extdict_request"
  (1) Send a "catboost_GetTreeCount" request from the server to the
      bridge, containing a library path (e.g /home/user/libcatboost.so) and
      a model path (e.g. /home/user/model.bin). Rirst, this unloads the
      catboost library handler associated to the model path (if it was
      loaded), then loads the catboost library handler associated to the
      model path, then executes GetTreeCount() on the library handler and
      finally sends the result back to the server. Step (1) is called once
      by the server from FunctionCatBoostEvaluate::getReturnTypeImpl(). The
      library path handler is unloaded in the beginning because it contains
      state which may no longer be valid if the user runs
      catboost("/path/to/model.bin", ...) more than once and if "model.bin"
      was updated in between.
  (2) Send "catboost_Evaluate" from the server to the bridge, containing
      the model path and the features to run the interference on. Step (2)
      is called multiple times (once per chunk) by the server from function
      FunctionCatBoostEvaluate::executeImpl(). The library handler for the
      given model path is expected to be already loaded by Step (1).

Fixes #27870
2022-09-08 09:01:32 +00:00
Alexey Milovidov
9544b8fdd6
Merge pull request #40996 from ClickHouse/vdimir/issue-40994
Minor update doc for mysql_port
2022-09-08 02:39:12 +03:00
Alexey Milovidov
84a00e3992
Merge pull request #41087 from peter279k/improve_clickhouse_start
Improve clickhouse start command
2022-09-08 02:35:02 +03:00
Denny Crane
a75eb5ad84
Update date-time-functions.md 2022-09-07 15:59:23 -03:00
Denny Crane
0071ef9e38
Update date-time-functions.md 2022-09-07 15:56:31 -03:00
peter279k
1ae54d3d16 Improve clickhouse start command 2022-09-08 01:18:27 +08:00
peter279k
b716988991 Remove non-existed released trains 2022-09-07 18:39:38 +08:00
DanRoscigno
3073da9ba5 move doc 2022-09-06 18:39:06 -04:00
DanRoscigno
7032a1b267 move title to frontmatter 2022-09-06 11:14:55 -04:00
Kruglov Pavel
582216a3ca
Merge pull request #39919 from pzhdfy/UniqSketch
UniqThetaSketch support set operation such as union/intersect/not
2022-09-05 13:42:14 +02:00
Vladimir C
8c3c3e7667
Minor update doc for mysql_port 2022-09-05 12:39:39 +02:00
Antonio Andelic
3a0581e990
Merge pull request #40543 from Lloyd-Pottiger/feat/support-read-only-for-embeddedrocksdb
Add read-only support for EmbeddedRocksDB
2022-09-05 09:31:07 +02:00
Alexey Milovidov
8ea7b9c978
Merge pull request #40980 from ClickHouse/alexey-milovidov-patch-5
Update replicated.md
2022-09-05 03:18:25 +03:00
Alexey Milovidov
f8e72eb7cb
Update replicated.md 2022-09-05 01:02:42 +03:00
Alexey Milovidov
053a2186b5
Update replicated.md 2022-09-05 01:01:23 +03:00
Alexey Milovidov
c4adc9ed8f Remove trash 2022-09-04 04:28:08 +02:00
Alexey Milovidov
deeaea004d
Merge pull request #40295 from cyber-moon/patch-1
Add description of {condition}-keyword
2022-09-04 04:57:30 +03:00
Alexey Milovidov
001733b6d0
Merge pull request #40921 from FrankChen021/mac_doc
Update doc about building on macOS
2022-09-04 04:05:34 +03:00
Alexey Milovidov
46f40c0c41
Merge pull request #40949 from AVMusorin/doc_generate_random_fix
Doc. optional params for GenerateRandom table
2022-09-04 03:54:51 +03:00
Alexey Milovidov
1963baa11e
Merge pull request #40964 from ClickHouse/fix-docs-formatting
Fix formatting of notes box in documentation
2022-09-04 03:39:39 +03:00
Denny Crane
dd19b0856e
Doc. mapApply, mapFilter, mapUpdate (#40961)
* Update tuple-map-functions.md

* Update tuple-map-functions.md
2022-09-04 00:43:39 +02:00
Denny Crane
f2de8ff8ff
Doc. commpressions http.md (#40959) 2022-09-04 00:42:47 +02:00
Robert Schulze
385427ade8
Fix formatting of notes box in documentation
Follow-up to PR #38435
2022-09-03 17:25:14 +00:00
Robert Schulze
5cff329439
Merge branch 'master' into typo-role-grants 2022-09-03 18:32:41 +02:00
Alexey Milovidov
1768a82a53 git checkout c4b8137d31 docs/en/getting-started/example-datasets/uk-price-paid.md 2022-09-03 06:45:18 +02:00
Aleksandr Musorin
69b9d34b10
docs. optional params for GenerateRandom table 2022-09-02 17:25:10 +02:00
Frank Chen
0f3003e37b Add ccache brew install list 2022-09-02 16:01:31 +02:00
Robert Schulze
53836bbeeb
Fix typo
The system view is called 'role*_*grants', documented on page
'role*-*grants.md'.
2022-09-02 12:49:50 +00:00
Lloyd-Pottiger
5a6b2106b5 Merge branch 'master' of github.com:ClickHouse/ClickHouse into feat/support-read-only-for-embeddedrocksdb 2022-09-02 18:10:00 +08:00
Lloyd-Pottiger
59dccd6e49 fix test
Signed-off-by: Lloyd-Pottiger <yan1579196623@gamil.com>
2022-09-02 11:14:49 +08:00
DanRoscigno
6efd07cbc8 correct statement 2022-09-01 20:32:06 -04:00
DanRoscigno
662eed214f correct statements 2022-09-01 20:28:25 -04:00
Dan Roscigno
a733381821
Merge branch 'master' into update-nav 2022-09-01 16:56:43 -04:00
DanRoscigno
3e9225aafa move title to frontmatter, remove orig article link 2022-09-01 12:24:03 -04:00
Ivan Blinkov
a947487afe
[docs] fix link markdown 2022-09-01 18:16:13 +03:00
Dan Roscigno
29ac78a92b
Update uk price paid (#40828) 2022-09-01 13:32:33 +02:00
Fangyuan Deng
bc7d661668
Merge branch 'master' into UniqSketch 2022-09-01 19:31:53 +08:00
Denny Crane
e3af5a7a11
Doc. Added ON CLUSTER cluster in couple places (#40874) 2022-09-01 13:31:22 +02:00
pzhdfy
acec516271 add docs 2022-09-01 19:31:01 +08:00
Robert Schulze
56eece40ec
Merge pull request #40736 from LevyCory/add-offset-to-formatDateTime
Add timezone offset support  to `formatDateTime`
2022-09-01 09:50:17 +02:00
Robert Schulze
912663b719
Revert "Move CatBoost evaluation into clickhouse-library-bridge" 2022-08-31 20:54:43 +02:00
robot-clickhouse
5309831a1a Update version_date.tsv and changelogs after v22.8.4.7-lts 2022-08-31 14:32:54 +00:00
Robert Schulze
ca01286028
Merge pull request #39629 from ClickHouse/catboost-bridge
Move CatBoost evaluation into clickhouse-library-bridge
2022-08-31 16:16:11 +02:00
DanRoscigno
50f9b12af8 review feedback 2022-08-31 09:12:48 -04:00
Dan Roscigno
ddac1b3f11
Merge pull request #40560 from DanRoscigno/add-backup
Add backup restore docs
2022-08-31 08:19:00 -04:00
Robert Schulze
40468d3304
Fix typo in docs 2022-08-30 20:45:31 +00:00
Denny Crane
0d7cc82267
Update string-functions.md 2022-08-30 11:08:23 -03:00
DanRoscigno
f72b341e8b add status info 2022-08-30 09:34:08 -04:00
Alexander Tokmakov
6fdfb964d0
Revert "Add Annoy index" 2022-08-30 15:10:10 +03:00