WHERE NOT IN () = 0` は、本来プライマリインデックスを使用できるにもかかわらず、いずれもフルテーブルスキャンを行ってしまいます。 [#62142](https://github.com/ClickHouse/ClickHouse/pull/62142) ([josh-hildred](https://github.com/josh-hildred)).
* `system.remote_data_paths` からのチャンクを、全結果を 1 つの大きなチャンクに蓄積するのではなく、チャンクのストリームとして返すようにしました。これにより、メモリ使用量を抑えつつ、途中経過を表示し、クエリをキャンセルできるようになります。 [#62613](https://github.com/ClickHouse/ClickHouse/pull/62613) ([Alexander Gololobov](https://github.com/davenger)).
-
-
#### 実験的機能 {#experimental-feature-6}
* `azure_allow_parallel_part_upload` 設定で制御される Azure Blob Storage 向けの並列書き込みバッファをサポートしました。 [#62534](https://github.com/ClickHouse/ClickHouse/pull/62534) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* ユーザ空間ページキャッシュが静的 Web ストレージ(`disk(type = web)`)でも動作するようになりました。有効にするにはクライアント設定 `use_page_cache_for_disks_without_file_cache=1` を使用してください。 [#61911](https://github.com/ClickHouse/ClickHouse/pull/61911) ([Michael Kolupaev](https://github.com/al13n321)).
@@ -1439,8 +1337,6 @@ doc_type: 'changelog'
* JSONExtract 関数で `Variant` をサポートしました。 [#62014](https://github.com/ClickHouse/ClickHouse/pull/62014) ([Kruglov Pavel](https://github.com/Avogar)).
* 型 `Variant` を比較可能としてマークし、主キーで使用できるようにしました。 [#62693](https://github.com/ClickHouse/ClickHouse/pull/62693) ([Kruglov Pavel](https://github.com/Avogar)).
-
-
#### 改善 {#improvement-8}
* 利便性のため、`SELECT * FROM numbers()` は、`SELECT * FROM system.numbers` と同様に、制限なしで動作するようになりました。 [#61969](https://github.com/ClickHouse/ClickHouse/pull/61969) ([YenchangChan](https://github.com/YenchangChan))。
@@ -1480,8 +1376,6 @@ doc_type: 'changelog'
-
-
#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-4}
* Rust の依存関係をベンダリングし、(遊び目的の小規模な機能に使っている)Rust コードを、C++ と同様にまともな方法でビルドできるようにしました。 [#62297](https://github.com/ClickHouse/ClickHouse/pull/62297) ([Raúl Marín](https://github.com/Algunenano)).
@@ -1494,8 +1388,6 @@ doc_type: 'changelog'
-
-
#### バグ修正(公式安定版リリースにおけるユーザー可視の不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-6}
* クォーラム挿入トランザクションの取り消し時に発生するロジックエラーを修正。[#61953](https://github.com/ClickHouse/ClickHouse/pull/61953)([Han Fei](https://github.com/hanfei1991))。
@@ -1564,12 +1456,8 @@ doc_type: 'changelog'
* MongoDB エンジンで SSL ハンドシェイク用のサーバー名を設定 [#63122](https://github.com/ClickHouse/ClickHouse/pull/63122) ([Alexander Gololobov](https://github.com/davenger))。
* MongoDB のワイヤプロトコルバージョンチェックで、データベース名 "config" の代わりにユーザー指定のデータベースを使用するようにした [#63126](https://github.com/ClickHouse/ClickHouse/pull/63126) ([Alexander Gololobov](https://github.com/davenger))。
-
-
### ClickHouse 24.3 LTS リリース, 2024-03-27 {#a-id243a-clickhouse-release-243-lts-2024-03-27}
-
-
#### アップグレード時の注意事項 {#upgrade-notes-1}
* `allow_experimental_analyzer` 設定はデフォルトで有効になっており、クエリ解析を互換性と機能面がより充実した新しい実装に切り替えます。「analyzer」機能は experimental ではなく beta とみなされます。従来の動作に戻したい場合は、`compatibility` を `24.2` に設定するか、`allow_experimental_analyzer` 設定を無効にしてください。[YouTube の動画を視聴する](https://www.youtube.com/watch?v=zhrOYQpgvkk)。
@@ -1583,8 +1471,6 @@ doc_type: 'changelog'
* `MergeTree` テーブルの `ORDER BY` 句で `SimpleAggregateFunction` をデフォルトで禁止しました(`AggregateFunction` が禁止されているのと同様ですが、`SimpleAggregateFunction` が禁止される理由は、それらが比較不能なためです)。これらを許可するには `allow_suspicious_primary_key` を使用してください。 [#61399](https://github.com/ClickHouse/ClickHouse/pull/61399) ([Azat Khuzhin](https://github.com/azat)).
* `Ordinary` データベースエンジンは非推奨になりました。サーバーがこれを使用している場合、clickhouse-client で警告が表示されます。この変更により [#52229](https://github.com/ClickHouse/ClickHouse/issues/52229) がクローズされました。[#56942](https://github.com/ClickHouse/ClickHouse/pull/56942)([shabroo](https://github.com/shabroo))。
-
-
#### 新機能 {#new-feature-9}
* バックアップの読み書きで `zip` に加えて `tar` をサポートしました。[#59535](https://github.com/ClickHouse/ClickHouse/pull/59535) ([josh-hildred](https://github.com/josh-hildred)).
* S3 Express バケットのサポートを実装しました。[#59965](https://github.com/ClickHouse/ClickHouse/pull/59965) ([Nikita Taranov](https://github.com/nickitat)).
@@ -1599,8 +1485,6 @@ doc_type: 'changelog'
* `DateTime` または `DateTime64` 型の値についてミリ秒部分を返す関数 `toMillisecond` を追加しました。[#60281](https://github.com/ClickHouse/ClickHouse/pull/60281) ([Shaun Struwig](https://github.com/Blargian)).
* clickhouse-server 向けに HTTP リダイレクトハンドラを設定できるようにしました。たとえば、`/` を Play UI にリダイレクトさせることができます。[#60390](https://github.com/ClickHouse/ClickHouse/pull/60390) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### パフォーマンスの向上 {#performance-improvement-9}
* 不要で高コストなメモリコピーを省くために、`dotProduct` 関数を最適化しました。[#60928](https://github.com/ClickHouse/ClickHouse/pull/60928)([Robert Schulze](https://github.com/rschu1ze))。
@@ -1621,8 +1505,6 @@ doc_type: 'changelog'
* 単一の値に対する IN 演算子を最適化する新しい analyzer パスを追加しました。 [#61564](https://github.com/ClickHouse/ClickHouse/pull/61564) ([LiuNeng](https://github.com/liuneng1994)).
* DNSResolver は、解決済み IP アドレスの集合をシャッフルし、AWS S3 の複数エンドポイントを一様に利用できるようにします。 [#60965](https://github.com/ClickHouse/ClickHouse/pull/60965) ([Sema Checherinda](https://github.com/CheSema))。
-
-
#### 実験的機能 {#experimental-feature-7}
* Azure Blob Storage 向けの並列読み取りをサポートしました。これにより、実験的な Azure オブジェクトストレージのパフォーマンスが向上します。 [#61503](https://github.com/ClickHouse/ClickHouse/pull/61503) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* S3 と同様に、Azure Blob Storage 向けの非同期 `WriteBuffer` を追加しました。これにより、実験的な Azure オブジェクトストレージのパフォーマンスが向上します。 [#59929](https://github.com/ClickHouse/ClickHouse/pull/59929) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
@@ -1630,8 +1512,6 @@ doc_type: 'changelog'
* 並列レプリカで `IN` 句のサブクエリを使用できるようにする設定 `parallel_replicas_allow_in_with_subquery = 1` を追加しました。 [#60950](https://github.com/ClickHouse/ClickHouse/pull/60950) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* 「ゼロコピー」レプリケーションに関する変更: テーブルが削除されるとき、そのテーブルに関連するすべてのゼロコピー ロックを削除する必要があります。これらのロックを含むディレクトリも削除する必要があります。 [#57575](https://github.com/ClickHouse/ClickHouse/pull/57575) ([Sema Checherinda](https://github.com/CheSema)).
-
-
#### 改善 {#improvement-9}
* デフォルトのテーブルエンジンとして `MergeTree` を使うようにしました。 [#60524](https://github.com/ClickHouse/ClickHouse/pull/60524) ([Alexey Milovidov](https://github.com/alexey-milovidov))
@@ -1685,16 +1565,12 @@ doc_type: 'changelog'
* MySQL 互換のために `current_user` 関数を互換エイリアスとして追加しました。 [#61770](https://github.com/ClickHouse/ClickHouse/pull/61770) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* x86-64 / ARM 混在クラスタにおける浮動小数点の集約関数状態の不整合を修正 [#60610](https://github.com/ClickHouse/ClickHouse/pull/60610) ([Harry Lee](https://github.com/HarryLeeIBM)).
-
-
#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-5}
* リアルタイムクエリプロファイラが AArch64 でも動作するようになりました。以前のバージョンでは、プログラムが syscall 内で時間を費やしていない場合にのみ動作していました。 [#60807](https://github.com/ClickHouse/ClickHouse/pull/60807) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* ClickHouse のバージョンが Docker ラベルに追加されました。これにより [#54224](https://github.com/ClickHouse/ClickHouse/issues/54224) がクローズされました。 [#60949](https://github.com/ClickHouse/ClickHouse/pull/60949) ([Nikolay Monkov](https://github.com/nikmonkov)).
* `prqlc` を 0.11.3 にアップグレードしました。 [#60616](https://github.com/ClickHouse/ClickHouse/pull/60616) ([Maximilian Roos](https://github.com/max-sixty)).
* `clickhouse-local` に汎用的なクエリテキストファザーを追加しました。 [#61508](https://github.com/ClickHouse/ClickHouse/pull/61508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### バグ修正(公式安定版リリースにおけるユーザー可視の不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-7}
* MergeTree において finished_mutations_to_keep=0 の動作を修正(ドキュメントでは 0 はすべてを保持することを意味するとされているため)[#60031](https://github.com/ClickHouse/ClickHouse/pull/60031)([Azat Khuzhin](https://github.com/azat))。
@@ -1757,8 +1633,6 @@ doc_type: 'changelog'
* 不正な UTF-8 に関する `multiSearchAllPositionsCaseInsensitiveUTF8` の sanitizer からのレポートを修正 [#61749](https://github.com/ClickHouse/ClickHouse/pull/61749)([pufit](https://github.com/pufit))。
* Nullable カラムで RANGE フレームがサポートされていないという不具合を修正。 [#61766](https://github.com/ClickHouse/ClickHouse/pull/61766) ([YuanLiu](https://github.com/ditgittube)).
-
-
### ClickHouse リリース 24.2, 2024-02-29 {#a-id242a-clickhouse-release-242-2024-02-29}
#### 後方互換性のない変更 {#backward-incompatible-change-8}
@@ -1768,8 +1642,6 @@ doc_type: 'changelog'
* ALTER 操作を丸括弧で囲めるようにしました。括弧の出力は設定 `format_alter_operations_with_parentheses` で制御できます。デフォルトでは、フォーマット済みクエリにおいて括弧は出力されます。これは、フォーマット済みの ALTER 操作をメタデータ(例: ミューテーション)として一部の箇所に保存しているためです。この新しい構文により、ALTER 操作がリストで終わる一部のクエリが明確になります。例: `ALTER TABLE x MODIFY TTL date GROUP BY a, b, DROP COLUMN c` は、旧構文では正しくパースできません。新しい構文では、クエリ `ALTER TABLE x (MODIFY TTL date GROUP BY a, b), (DROP COLUMN c)` は明確です。旧バージョンはこの新しい構文を読み取れないため、新しい構文を使用すると、単一のクラスター内で新旧バージョンの ClickHouse を混在させている場合に問題が発生する可能性があります。[#59532](https://github.com/ClickHouse/ClickHouse/pull/59532)([János Benjamin Antal](https://github.com/antaljanosbenjamin))。
* マテリアライズドビューに関するセキュリティ問題を修正しました。この問題により、ユーザーは必要な権限なしにテーブルへ挿入できていました。この修正では、ユーザーがマテリアライズドビューだけでなく、その背後にあるすべてのテーブルへの挿入権限も持っているかを検証します。これは、以前は動作していた一部のクエリが、現在は `Not enough privileges` で失敗し得ることを意味します。この問題に対処するため、本リリースではビュー向けの新機能として SQL セキュリティを導入しています https://clickhouse.com/docs/sql-reference/statements/create/view#sql_security 。[#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439)([pufit](https://github.com/pufit))。
-
-
#### 新機能 {#new-feature-10}
* ビューやマテリアライズドビューで定義者ユーザーを指定できる新しい構文を追加しました。これにより、基礎となるテーブルに対して明示的に権限を付与しなくても、ビューからの SELECT/INSERT を実行できるようになります。つまり、ビュー側で権限をカプセル化できるようになります。 [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)).
@@ -1790,8 +1662,6 @@ doc_type: 'changelog'
* `user` キーを使用して、config 内の特定の S3 設定ごとに許可するユーザーのセットを指定できるようにしました。 [#60144](https://github.com/ClickHouse/ClickHouse/pull/60144) ([Antonio Andelic](https://github.com/antonio2368))。
* テーブル関数 `mergeTreeIndex` を追加しました。`MergeTree` テーブルの index ファイルおよび marks ファイルの内容を表し、テーブルの内部構造を調査する用途で使用できます。構文: `mergeTreeIndex(database, table, [with_marks = true])`。ここで `database.table` は、`MergeTree` エンジンを持つ既存のテーブルです。[#58140](https://github.com/ClickHouse/ClickHouse/pull/58140)([Anton Popov](https://github.com/CurtizJ))。
-
-
#### 実験的機能 {#experimental-feature-8}
* Tukey's fences アルゴリズムを使用して系列データの外れ値を検出する関数 `seriesOutliersDetectTukey` を追加しました。[#58632](https://github.com/ClickHouse/ClickHouse/pull/58632) ([Bhavna Jindal](https://github.com/bhavnajindal))。この関数の動作は次回のパッチリリースで変更される予定であることに注意してください。
* 各行に対して Variant 型名を持つ Enum を返す関数 `variantType` を追加しました。[#59398](https://github.com/ClickHouse/ClickHouse/pull/59398) ([Kruglov Pavel](https://github.com/Avogar))。
@@ -1800,8 +1670,6 @@ doc_type: 'changelog'
* `Variant` 値に対する比較演算子と、`Variant` カラムへの適切な Field の挿入を実装しました。デフォルトでは、類似した Variant 型を持つ `Variant` 型の作成は許可されません(設定 `allow_suspicious_variant_types` により許可できます)。[#59996](https://github.com/ClickHouse/ClickHouse/issues/59996) をクローズしました。[#59850](https://github.com/ClickHouse/ClickHouse/issues/59850) をクローズしました。[#60198](https://github.com/ClickHouse/ClickHouse/pull/60198) ([Kruglov Pavel](https://github.com/Avogar))。
* CTE を用いた並列レプリカ JOIN(analyzer 未使用)を無効化しました。[#59239](https://github.com/ClickHouse/ClickHouse/pull/59239) ([Raúl Marín](https://github.com/Algunenano))。
-
-
#### パフォーマンスの向上 {#performance-improvement-10}
* Primary keyのメモリ使用量が少なくなりました。 [#60049](https://github.com/ClickHouse/ClickHouse/pull/60049) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -1825,8 +1693,6 @@ doc_type: 'changelog'
-
-
#### 改善 {#improvement-10}
* 出力形式が `Pretty` フォーマットで、ブロックが 100 万を超える単一の数値のみで構成されている場合、読みやすい形式の数値がテーブルの右側に表示されます。 [#60379](https://github.com/ClickHouse/ClickHouse/pull/60379) ([rogeryk](https://github.com/rogeryk))。
@@ -1867,8 +1733,6 @@ doc_type: 'changelog'
* MySQL ポート経由の接続では、QuickSight をそのまま利用できるようにするために、設定 `prefer_column_name_to_alias = 1` が自動的に有効化されて動作するようになりました。あわせて、設定 `mysql_map_string_to_text_in_show_columns` および `mysql_map_fixed_string_to_text_in_show_columns` もデフォルトで有効になり、こちらも MySQL 接続にのみ影響します。これにより、より多くの BI ツールとの互換性が向上します。 [#60365](https://github.com/ClickHouse/ClickHouse/pull/60365) ([Robert Schulze](https://github.com/rschu1ze)).
* チャートが互いに重なって表示される問題を引き起こしていた JavaScript コード内のレースコンディションを修正。 [#60392](https://github.com/ClickHouse/ClickHouse/pull/60392) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### ビルド / テスト / パッケージングの改善 {#buildtestingpackaging-improvement-6}
* イントロスペクション付きでカバレッジ収集を行うビルドおよびテストを追加しました。[#56102](https://github.com/ClickHouse/ClickHouse/issues/56102) の継続です。[#58792](https://github.com/ClickHouse/ClickHouse/pull/58792) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* CMake のクロスコンパイル用ツールチェーン変数が設定されている場合に、`corrosion-cmake` 内の Rust ツールチェーンを更新するようにしました。[#59309](https://github.com/ClickHouse/ClickHouse/pull/59309) ([Aris Tritas](https://github.com/aris-aiven)).
@@ -1878,8 +1742,6 @@ doc_type: 'changelog'
* Query fuzzer は、クエリ内の SETTINGS もファジング対象とするようになりました。[#60087](https://github.com/ClickHouse/ClickHouse/pull/60087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* clang-19(master)で ClickHouse をビルドするためのサポートを追加しました。[#60448](https://github.com/ClickHouse/ClickHouse/pull/60448) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### バグ修正(公式安定版リリースにおけるユーザー可視の不具合) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-8}
* TTL WHERE で発生していた「Non-ready set」エラーを修正。 [#57430](https://github.com/ClickHouse/ClickHouse/pull/57430) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
@@ -1932,8 +1794,6 @@ doc_type: 'changelog'
* null 引数を扱う際の `OptimizeDateOrDateTimeConverterWithPreimageVisitor` を修正 [#60453](https://github.com/ClickHouse/ClickHouse/pull/60453) ([Raúl Marín](https://github.com/Algunenano))。
* KQL または PRQL 方言のクライアントから送信された分散テーブルクエリがレプリカ上で実行できない軽微なバグを修正しました。 [#59674](https://github.com/ClickHouse/ClickHouse/issues/59674)。 [#60470](https://github.com/ClickHouse/ClickHouse/pull/60470) ([Alexey Milovidov](https://github.com/alexey-milovidov)) [#59674](https://github.com/ClickHouse/ClickHouse/pull/59674) ([Austin Kothig](https://github.com/kothiga))。
-
-
### ClickHouse リリース 24.1, 2024-01-30 {#a-id241a-clickhouse-release-241-2024-01-30}
#### 後方互換性のない変更 {#backward-incompatible-change-9}
@@ -1946,8 +1806,6 @@ doc_type: 'changelog'
* 次の 2 つのバグが修正されるまで、`Kusto` 方言は無効化されています: [#59037](https://github.com/ClickHouse/ClickHouse/issues/59037) および [#59036](https://github.com/ClickHouse/ClickHouse/issues/59036)。 [#59305](https://github.com/ClickHouse/ClickHouse/pull/59305) ([Alexey Milovidov](https://github.com/alexey-milovidov)). `Kusto` を使用しようとすると、必ず例外が発生します。
* `FINAL` 修飾子のより効率的な実装では、`max_threads = 1` の場合であっても順序が保持されることはもはや保証されません。以前の挙動に依存している場合は、`enable_vertical_final` を 0 に設定するか、`compatibility` を `23.12` 以下に設定してください。
-
-
#### 新機能 {#new-feature-11}
* 他のデータ型の共用体(ユニオン)を表す Variant データ型を実装。型 `Variant(T1, T2, ..., TN)` は、この型の各行が `T1`、`T2`、…、`TN` のいずれかの型、またはいずれの型でもない(`NULL` 値)を値として持つことを意味します。Variant 型は設定 `allow_experimental_variant_type` を有効にすると利用できます。参考: [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864)。[#58047](https://github.com/ClickHouse/ClickHouse/pull/58047)([Kruglov Pavel](https://github.com/Avogar))。
@@ -1978,8 +1836,6 @@ doc_type: 'changelog'
-
-
#### パフォーマンスの向上 {#performance-improvement-11}
* 並列レプリカのためのコーディネーションが、より高い並列性とキャッシュ局所性を実現するように書き換えられました。数百のレプリカにおける線形スケーラビリティについてテスト済みです。さらに、順序どおりの読み取りもサポートされました。[#57968](https://github.com/ClickHouse/ClickHouse/pull/57968)([Nikita Taranov](https://github.com/nickitat))。
@@ -2007,8 +1863,6 @@ doc_type: 'changelog'
-
-
#### 改善 {#improvement-11}
* すべての system テーブルのカラムにコメント(簡潔な説明)を追加しました。これにはいくつか理由があります。- system テーブルは頻繁に利用しており、特定のカラムの目的や意味を開発者が理解するのが非常に難しい場合があります。- system テーブルは(新しいものを追加したり既存のものを変更したりと)頻繁に変更されるため、そのドキュメントは常に最新ではありません。たとえば、[`system.parts`](/operations/system-tables/parts) のドキュメントページを見てください。多くのカラムが記載されていません。- 将来的には、ClickHouse から直接ドキュメントを生成できるようにしたいと考えています。[#58356](https://github.com/ClickHouse/ClickHouse/pull/58356)([Nikita Mikhaylov](https://github.com/nikitamikhaylov))。
@@ -2057,8 +1911,6 @@ doc_type: 'changelog'
* `BACKUP` および `RESTORE` クエリで `FORMAT` 句がサポートされるようになりました。 [#59338](https://github.com/ClickHouse/ClickHouse/pull/59338) ([Vitaly Baranov](https://github.com/vitlibar)).
* 関数 `concatWithSeparator` は、これまで `String` と `FixedString` 型の引数のみをサポートしていましたが、任意の引数型をサポートするようになりました。たとえば、`SELECT concatWithSeparator('.', 'number', 1)` は `number.1` を返すようになりました。 [#59341](https://github.com/ClickHouse/ClickHouse/pull/59341)([Robert Schulze](https://github.com/rschu1ze))。
-
-
#### ビルド/テスト/パッケージングの改善 {#buildtestingpackaging-improvement-7}
* clickhouse バイナリのエイリアスを改善しました(現在は、渡された引数に応じて `ch` / `clickhouse` が `clickhouse-local` または `clickhouse` になります)、さらに新しいエイリアス向けの bash 補完を追加しました。 [#58344](https://github.com/ClickHouse/ClickHouse/pull/58344) ([Azat Khuzhin](https://github.com/azat)).
* すべての設定変更が設定変更履歴に反映されていることを確認するため、CI に設定変更チェックを追加しました。 [#58555](https://github.com/ClickHouse/ClickHouse/pull/58555) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -2069,8 +1921,6 @@ doc_type: 'changelog'
#### バグ修正(公式安定版リリースにおけるユーザーから見て明らかな誤動作) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-9}
-
-
* ネストされた LowCardinality 用の結合キーの変換を追加 [#51550](https://github.com/ClickHouse/ClickHouse/pull/51550) ([vdimir](https://github.com/vdimir))。
* flatten_nested=1 の場合、すべての Array(Tuple) ではなく、ネイティブな Nested 型のみをフラット化するようにしました [#56132](https://github.com/ClickHouse/ClickHouse/pull/56132) ([Kruglov Pavel](https://github.com/Avogar))。
* 挿入時にプロジェクションと `aggregate_functions_null_for_empty` 設定の組み合わせで発生するバグを修正しました。 [#56944](https://github.com/ClickHouse/ClickHouse/pull/56944) ([Amos Bird](https://github.com/amosbird))。
@@ -2121,6 +1971,4 @@ doc_type: 'changelog'
-
-
## [2023 年の変更履歴](/whats-new/changelog/2023) {#changelog-for-2023}
diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/security-changelog.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/security-changelog.md
index 146759b1cf2..1b5f3083f16 100644
--- a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/security-changelog.md
+++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/security-changelog.md
@@ -8,12 +8,8 @@ doc_type: 'changelog'
keywords: ['セキュリティ', 'CVE', '脆弱性', 'セキュリティ修正', 'パッチ']
---
-
-
# セキュリティに関する変更履歴 {#security-changelog}
-
-
## ClickHouse v25.1.5.5 にて修正済み、2025-01-05 {#fixed-in-clickhouse-release-2025-01-05}
### [CVE-2025-1385](https://github.com/ClickHouse/ClickHouse/security/advisories/GHSA-5phv-x8x4-83x5) {#CVE-2025-1385}
@@ -26,8 +22,6 @@ ClickHouse Cloud はこの脆弱性の影響を受けません。
クレジット:[Arseniy Dugin](https://github.com/ZerLes)
-
-
## ClickHouse v24.5 で修正、2024-08-01 {#fixed-in-clickhouse-release-2024-08-01}
### [CVE-2024-6873](https://github.com/ClickHouse/ClickHouse/security/advisories/GHSA-432f-r822-j66f) {#CVE-2024-6873}
@@ -40,8 +34,6 @@ ClickHouse Cloud は異なるバージョニング方式を使用しており、
謝辞: malacupa(独立系リサーチャ)
-
-
## ClickHouse v24.1 で修正済み、2024-01-30 {#fixed-in-clickhouse-release-24-01-30}
### [CVE-2024-22412](https://github.com/ClickHouse/ClickHouse/security/advisories/GHSA-45h5-f7g3-gr8r) {#CVE-2024-22412}
@@ -54,8 +46,6 @@ ClickHouse Cloud は異なるバージョン体系を使用しており、この
クレジット: Runreveal チームの Evan Johnson 氏および Alan Braithwaite 氏 - 詳細は [彼らのブログ記事](https://blog.runreveal.com/cve-2024-22412-behind-the-bug-a-classic-caching-problem-in-the-clickhouse-query-cache/) を参照してください。
-
-
## ClickHouse v23.10.5.20 で修正済み、2023-11-26 {#fixed-in-clickhouse-release-23-10-5-20-2023-11-26}
### [CVE-2023-47118](https://github.com/ClickHouse/ClickHouse/security/advisories/GHSA-g22g-p6q2-x39v) {#CVE-2023-47118}
@@ -88,8 +78,6 @@ ClickHouse Cloud は異なるバージョン体系を使用しており、この
謝辞:malacupa(独立系リサーチャー)
-
-
## ClickHouse 22.9.1.2603 で修正(2022-09-22) {#fixed-in-clickhouse-release-22-9-1-2603-2022-9-22}
### CVE-2022-44011 {#CVE-2022-44011}
@@ -108,8 +96,6 @@ ClickHouse サーバーにおいて、ヒープバッファオーバーフロー
クレジット: Kiojj(独立研究者)
-
-
## ClickHouse 21.10.2.15 で修正済み、2021-10-18 {#fixed-in-clickhouse-release-21-10-2-215-2021-10-18}
### CVE-2021-43304 {#cve-2021-43304}
@@ -154,8 +140,6 @@ ClickHouse サーバーにおいて、ヒープバッファオーバーフロー
クレジット: JFrog Security Research Team
-
-
## ClickHouse 21.4.3.21 で修正済み、2021-04-12 {#fixed-in-clickhouse-release-21-4-3-21-2021-04-12}
### CVE-2021-25263 {#cve-2021-25263}
@@ -166,8 +150,6 @@ CREATE DICTIONARY 権限を持つ攻撃者は、許可されたディレクト
謝辞: [Vyacheslav Egoshin](https://twitter.com/vegoshin)
-
-
## ClickHouse リリース 19.14.3.3 で修正済み(2019-09-10) {#fixed-in-clickhouse-release-19-14-3-3-2019-09-10}
### CVE-2019-15024 {#cve-2019-15024}
@@ -188,8 +170,6 @@ ZooKeeper への書き込みアクセス権を持ち、かつ ClickHouse が稼
謝辞: Yandex Information Security Team の Eldar Zaitov
-
-
## ClickHouse リリース 19.13.6.1 で修正済み(2019-09-20) {#fixed-in-clickhouse-release-19-13-6-1-2019-09-20}
### CVE-2019-18657 {#cve-2019-18657}
@@ -198,8 +178,6 @@ ZooKeeper への書き込みアクセス権を持ち、かつ ClickHouse が稼
謝辞: [Nikita Tikhomirov](https://github.com/NSTikhomirov)
-
-
## ClickHouse リリース 18.12.13 で修正済み, 2018-09-10 {#fixed-in-clickhouse-release-18-12-13-2018-09-10}
### CVE-2018-14672 {#cve-2018-14672}
@@ -208,8 +186,6 @@ CatBoost モデルを読み込むための関数において、パストラバ
クレジット: Yandex Information Security Team の Andrey Krasichkov
-
-
## ClickHouse リリース 18.10.3 で修正済み(2018-08-13) {#fixed-in-clickhouse-release-18-10-3-2018-08-13}
### CVE-2018-14671 {#cve-2018-14671}
@@ -218,8 +194,6 @@ unixODBC はファイルシステムから任意の共有オブジェクトを
謝辞: Yandex Information Security Team の Andrey Krasichkov 氏および Evgeny Sidorov 氏
-
-
## ClickHouse リリース 1.1.54388 にて修正済み(2018-06-28) {#fixed-in-clickhouse-release-1-1-54388-2018-06-28}
### CVE-2018-14668 {#cve-2018-14668}
@@ -228,8 +202,6 @@ unixODBC はファイルシステムから任意の共有オブジェクトを
謝辞: Yandex Information Security Team の Andrey Krasichkov
-
-
## ClickHouse リリース 1.1.54390 で修正、2018-07-06 {#fixed-in-clickhouse-release-1-1-54390-2018-07-06}
### CVE-2018-14669 {#cve-2018-14669}
@@ -238,8 +210,6 @@ ClickHouse の MySQL クライアントでは "LOAD DATA LOCAL INFILE" 機能が
クレジット: Yandex Information Security Team の Andrey Krasichkov 氏および Evgeny Sidorov 氏
-
-
## ClickHouse リリース 1.1.54131 で修正済み、2017-01-10 {#fixed-in-clickhouse-release-1-1-54131-2017-01-10}
### CVE-2018-14670 {#cve-2018-14670}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_add_superset_detail.md b/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_add_superset_detail.md
index c7cb02c1071..0af3e1f6a1e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_add_superset_detail.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_add_superset_detail.md
@@ -13,7 +13,6 @@
Приведенные ниже команды необходимо выполнять из корневой директории репозитория GitHub `superset`.
:::
-
## Официальный драйвер ClickHouse Connect {#official-clickhouse-connect-driver}
Чтобы драйвер ClickHouse Connect был доступен в развертывании Superset, добавьте его в локальный файл `requirements`:
@@ -22,7 +21,6 @@
echo "clickhouse-connect" >> ./docker/requirements-local.txt
```
-
## Mapbox {#mapbox}
Этот шаг необязателен: вы можете отображать геоданные в Superset без ключа API Mapbox, но при этом увидите сообщение с рекомендацией добавить ключ, а фоновое изображение карты будет отсутствовать (вы увидите только точки данных, но не подложку карты). Mapbox предоставляет бесплатный тарифный план, если вы хотите им воспользоваться.
@@ -35,7 +33,6 @@ echo "clickhouse-connect" >> ./docker/requirements-local.txt
echo "MAPBOX_API_KEY=pk.SAMPLE-Use-your-key-instead" >> docker/.env-non-dev
```
-
## Развертывание Superset версии 2.0.0 {#deploy-superset-version-200}
Для развертывания релиза 2.0.0 выполните:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_users-and-roles-common.md b/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_users-and-roles-common.md
index b601e689537..5641b63b691 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_users-and-roles-common.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_users-and-roles-common.md
@@ -32,7 +32,6 @@ DROP TABLE db1.table1;
DROP DATABASE db1;
```
-
## Пользователи без прав администратора {#non-admin-users}
Пользователи должны обладать только необходимыми привилегиями, и не все должны быть администраторами. В остальной части документа приведены примеры сценариев и требуемые роли.
@@ -172,14 +171,12 @@ CREATE USER row_user IDENTIFIED BY 'password';
ON db1.table1 FOR SELECT USING 1 TO clickhouse_admin, column1_users;
```
-
:::note
При привязке политики к таблице система применит её, и только указанные в ней пользователи и роли смогут выполнять операции с таблицей — всем остальным будет запрещён любой доступ. Чтобы ограничительная политика строк не распространялась на других пользователей, необходимо определить дополнительную политику, предоставляющую им стандартный или иной тип доступа.
:::
-
## Проверка {#verification}
### Тестирование привилегий роли с пользователем, ограниченным по столбцам {#testing-role-privileges-with-column-restricted-user}
@@ -293,8 +290,6 @@ CREATE USER row_user IDENTIFIED BY 'password';
-
-
## Изменение пользователей и ролей {#modifying-users-and-roles}
Пользователю можно назначить несколько ролей для получения нужной комбинации привилегий. При использовании нескольких ролей система объединяет их при определении привилегий, в результате права, предоставляемые ролями, будут суммироваться.
@@ -365,8 +360,6 @@ CREATE USER row_user IDENTIFIED BY 'password';
```
-
-
## Устранение неполадок {#troubleshooting}
Иногда привилегии пересекаются или комбинируются, что приводит к неожиданным результатам. Следующие команды можно использовать для уточнения причины проблемы при работе под учетной записью администратора.
@@ -429,7 +422,6 @@ Query id: 0d3b5846-95c7-4e62-9cdd-91d82b14b80b
└─────────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## Примеры команд для управления ролями, политиками и пользователями {#example-commands-to-manage-roles-policies-and-users}
Следующие команды можно использовать, чтобы:
@@ -474,7 +466,6 @@ DROP ROLE A_rows_users;
DROP USER row_user;
```
-
## Итоги {#summary}
В этой статье были рассмотрены основы создания SQL-пользователей и ролей, а также приведены шаги по назначению и изменению привилегий для пользователей и ролей. Для получения более подробной информации по каждой теме обратитесь к нашим руководствам для пользователей и справочной документации.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md b/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md
index d296744ecbf..429e9ead11a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md
@@ -46,7 +46,6 @@ doc_type: 'reference'
{/*AUTOGENERATED_START*/ }
-
## Параметры бета-версии {#beta-settings}
| Имя | По умолчанию |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/about-us/cloud.md b/i18n/ru/docusaurus-plugin-content-docs/current/about-us/cloud.md
index 32db6edff95..8ece54f8473 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/about-us/cloud.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/about-us/cloud.md
@@ -8,15 +8,11 @@ keywords: ['ClickHouse Cloud', 'облачная база данных', 'упр
doc_type: 'reference'
---
-
-
# ClickHouse Cloud {#clickhouse-cloud}
ClickHouse Cloud — это облачный сервис, созданный создателями популярной OLAP‑базы данных с открытым исходным кодом ClickHouse.
Вы можете опробовать ClickHouse Cloud, [оформив бесплатный пробный период](https://console.clickhouse.cloud/signUp).
-
-
## Преимущества ClickHouse Cloud {#clickhouse-cloud-benefits}
Ниже описаны некоторые преимущества использования ClickHouse Cloud:
@@ -28,8 +24,6 @@ ClickHouse Cloud — это облачный сервис, созданный с
- **Совокупная стоимость владения**: Лучшее соотношение цена/производительность и низкие операционные затраты на администрирование.
- **Широкая экосистема**: Используйте привычные вам коннекторы данных, инструменты визуализации, SQL‑клиенты и клиенты для различных языков.
-
-
{/*
## Сравнение OSS и ClickHouse Cloud
@@ -51,7 +45,6 @@ ClickHouse Cloud — это облачный сервис, созданный с
| **Managed services** | Благодаря облачному управляемому сервису команды могут сосредоточиться на бизнес-результатах и ускорить вывод решений на рынок, не беспокоясь об операционных накладных расходах на подбор ресурсов, настройку и обслуживание ClickHouse. | ❌ | ✅ |
*/ }
-
## Какую версию ClickHouse использует ClickHouse Cloud? {#what-version-of-clickhouse-does-clickhouse-cloud-use}
ClickHouse Cloud постоянно обновляет ваш сервис до более новой версии. После публикации основной версии базы данных в open source мы выполняем дополнительное тестирование в нашей облачной staging-среде, что обычно занимает 6–8 недель до вывода версии в продакшен-среду. Внедрение обновлений выполняется поэтапно в зависимости от облачного провайдера, типа сервиса и региона.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/about-us/distinctive-features.md b/i18n/ru/docusaurus-plugin-content-docs/current/about-us/distinctive-features.md
index d9b383d972e..2283de23083 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/about-us/distinctive-features.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/about-us/distinctive-features.md
@@ -8,12 +8,8 @@ keywords: ['compression', 'secondary-indexes','column-oriented']
doc_type: 'guide'
---
-
-
# Ключевые особенности ClickHouse {#distinctive-features-of-clickhouse}
-
-
## Настоящая столбцово-ориентированная система управления базами данных {#true-column-oriented-database-management-system}
В настоящей столбцово-ориентированной СУБД вместе с хранимыми значениями не сохраняются дополнительные данные. Это означает, что необходимо поддерживать значения фиксированной длины, чтобы не приходилось отдельно хранить их длину в виде числа. Например, миллиард значений типа UInt8 должен занимать около 1 ГБ в несжатом виде, в противном случае это сильно повлияет на использование CPU. Крайне важно хранить данные компактно (без какого-либо «мусора») даже в несжатом виде, поскольку скорость декомпрессии (нагрузка на CPU) в основном зависит от объёма несжатых данных.
@@ -22,38 +18,28 @@ doc_type: 'guide'
Наконец, ClickHouse — это система управления базами данных, а не одна отдельная база данных. Она позволяет создавать таблицы и базы данных во время работы, загружать данные и выполнять запросы без переконфигурирования и перезапуска сервера.
-
-
## Сжатие данных {#data-compression}
Некоторые столбцовые СУБД не используют сжатие данных. Однако сжатие данных играет ключевую роль в достижении высокой производительности.
Помимо эффективных универсальных кодеков сжатия с различным балансом между занимаемым на диске пространством и потреблением процессорного времени, ClickHouse предоставляет [специализированные кодеки](/sql-reference/statements/create/table.md#specialized-codecs) для определённых типов данных, что позволяет ClickHouse конкурировать и превосходить более нишевые базы данных, например базы данных временных рядов.
-
-
## Хранение данных на диске {#disk-storage-of-data}
Физическая сортировка данных по первичному ключу позволяет извлекать данные по конкретным значениям или диапазонам значений с низкой задержкой — менее чем за несколько десятков миллисекунд. Некоторые колоночные СУБД, такие как SAP HANA и Google PowerDrill, могут работать только в оперативной памяти. Такой подход требует выделения большего бюджета на аппаратное обеспечение, чем действительно необходимо для анализа в режиме реального времени.
ClickHouse спроектирован для работы на обычных жестких дисках, что означает низкую стоимость хранения данных в расчёте на 1 ГБ, но при наличии SSD и дополнительной оперативной памяти они также используются в полной мере.
-
-
## Параллельная обработка на нескольких ядрах {#parallel-processing-on-multiple-cores}
Большие запросы автоматически распараллеливаются, задействуя все необходимые ресурсы, доступные на текущем сервере.
-
-
## Распределённая обработка на нескольких серверах {#distributed-processing-on-multiple-servers}
Почти ни одна из упомянутых выше колоночных СУБД не поддерживает распределённую обработку запросов.
В ClickHouse данные могут храниться на разных шардах. Каждый шард может представлять собой группу реплик, используемых для отказоустойчивости. Все шарды используются для параллельного выполнения запроса; это прозрачно для пользователя.
-
-
## Поддержка SQL {#sql-support}
ClickHouse поддерживает [декларативный язык запросов](/sql-reference/), основанный на SQL и в основном совместимый со стандартом ANSI SQL.
@@ -62,40 +48,28 @@ ClickHouse поддерживает [декларативный язык зап
Коррелированные (зависящие) подзапросы на момент написания этой документации не поддерживаются, но могут появиться в будущем.
-
-
## Векторный вычислительный движок {#vector-engine}
Данные не только хранятся по столбцам, но и обрабатываются векторами (частями столбцов), что обеспечивает высокую эффективность использования процессорных ресурсов.
-
-
## Вставка данных в режиме реального времени {#real-time-data-updates}
ClickHouse поддерживает таблицы с первичным ключом. Чтобы быстро выполнять запросы по диапазону первичного ключа, данные постепенно сортируются с использованием дерева слияний (MergeTree). Благодаря этому данные могут непрерывно добавляться в таблицу. При приёме новых данных блокировки не устанавливаются.
-
-
## Первичные индексы {#primary-index}
Физическая сортировка данных по первичному ключу позволяет извлекать данные по конкретным значениям или диапазонам значений с низкой задержкой — менее нескольких десятков миллисекунд.
-
-
## Вторичные индексы {#secondary-indexes}
В отличие от других систем управления базами данных, вторичные индексы в ClickHouse не указывают на конкретные строки или диапазоны строк. Вместо этого они позволяют системе заранее определить, что все строки в отдельных частях данных не будут удовлетворять условиям фильтрации запроса, и не читать эти части вовсе, поэтому такие индексы называются [индексами пропуска данных](../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-data_skipping-indexes).
-
-
## Подходит для онлайн-запросов {#suitable-for-online-queries}
Большинство OLAP-систем управления базами данных не ориентированы на онлайн-запросы с задержкой менее секунды. В альтернативных системах время построения отчёта в десятки секунд или даже минуты часто считается приемлемым. Иногда это занимает ещё больше времени, что вынуждает системы подготавливать отчёты офлайн (заранее или отвечая сообщением «зайдите позже»).
В ClickHouse под «малой задержкой» понимается, что запросы могут обрабатываться без промедления и без предварительной подготовки ответа, прямо в момент загрузки страницы пользовательского интерфейса — другими словами, *онлайн*.
-
-
## Поддержка приближённых вычислений {#support-for-approximated-calculations}
ClickHouse предоставляет различные способы пожертвовать точностью ради повышения производительности:
@@ -104,28 +78,20 @@ ClickHouse предоставляет различные способы поже
2. Выполнение запроса на основе части данных ([SAMPLE](../sql-reference/statements/select/sample.md)) и получение приближённого результата. В этом случае с диска считывается пропорционально меньше данных.
3. Выполнение агрегации для ограниченного числа случайных ключей вместо всех ключей. При определённых условиях распределения ключей в данных это обеспечивает достаточно точный результат при меньшем потреблении ресурсов.
-
-
## Адаптивный алгоритм соединения {#adaptive-join-algorithm}
ClickHouse адаптивно выбирает способ выполнения операции [JOIN](../sql-reference/statements/select/join.md) над несколькими таблицами, отдавая предпочтение hash join и переходя к merge join, если более чем одна таблица имеет большой размер.
-
-
## Поддержка репликации и целостности данных {#data-replication-and-data-integrity-support}
ClickHouse использует асинхронную многомастерную репликацию. После записи данных на любую доступную реплику все остальные реплики в фоновом режиме получают свою копию. Система поддерживает идентичное состояние данных на разных репликах. Восстановление после большинства сбоев выполняется автоматически или полуавтоматически в более сложных случаях.
Подробнее см. раздел [Репликация данных](../engines/table-engines/mergetree-family/replication.md).
-
-
## Контроль доступа на основе ролей {#role-based-access-control}
ClickHouse реализует управление учетными записями пользователей посредством SQL‑запросов и поддерживает [настройку контроля доступа на основе ролей](/guides/sre/user-management/index.md), аналогичную предусмотренной стандартом ANSI SQL и реализованной в популярных реляционных СУБД.
-
-
## Особенности, которые можно рассматривать как недостатки {#clickhouse-features-that-can-be-considered-disadvantages}
1. Отсутствие полноценных транзакций.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/_snippets/_async_inserts.md b/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/_snippets/_async_inserts.md
index 98b6544ed93..35e28fe8e79 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/_snippets/_async_inserts.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/_snippets/_async_inserts.md
@@ -43,7 +43,6 @@ import async_inserts from '@site/static/images/bestpractices/async_inserts.png';
На практике, если дедупликация включена и одна и та же вставка повторяется — например, из-за тайм-аута или обрыва сети — ClickHouse может безопасно проигнорировать дубликат. Это помогает сохранять идемпотентность и избегать повторной записи данных. Тем не менее стоит учитывать, что проверка вставок и разбор схемы выполняются только во время сброса буфера — поэтому ошибки (например, несоответствие типов) проявятся только в этот момент.
-
### Включение асинхронных вставок {#enabling-asynchronous-inserts}
Асинхронные вставки можно включить для конкретного пользователя или для определённого запроса:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/json_type.md b/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/json_type.md
index 79a2ee59426..b6eb5d53ab6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/json_type.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/json_type.md
@@ -11,8 +11,6 @@ doc_type: 'reference'
ClickHouse теперь предлагает нативный тип столбца JSON, предназначенный для полуструктурированных и динамических данных. Важно уточнить, что **это тип столбца, а не формат данных** — вы можете вставлять JSON в ClickHouse как строку или с помощью поддерживаемых форматов, таких как [JSONEachRow](/interfaces/formats/JSONEachRow), но это само по себе не означает использование типа столбца JSON. Пользователям следует использовать тип JSON только в тех случаях, когда структура их данных является динамической, а не просто потому, что данные хранятся в формате JSON.
-
-
## Когда использовать тип JSON {#when-to-use-the-json-type}
Используйте тип JSON, когда ваши данные:
@@ -29,8 +27,6 @@ ClickHouse теперь предлагает нативный тип столб
Вы также можете комбинировать подходы — например, использовать статические столбцы для предсказуемых полей верхнего уровня и один столбец типа JSON для динамической части полезной нагрузки.
-
-
## Рекомендации и советы по использованию JSON {#considerations-and-tips-for-using-json}
Тип JSON обеспечивает эффективное колонночное хранение за счёт разворачивания путей в подстолбцы. Но вместе с гибкостью приходит и ответственность. Чтобы использовать его эффективно:
@@ -43,8 +39,6 @@ ClickHouse теперь предлагает нативный тип столб
Подсказки типов дают больше, чем просто способ избежать ненужного вывода типов — они полностью устраняют уровень косвенности при хранении и обработке. Пути JSON с подсказками типов всегда хранятся так же, как традиционные столбцы, обходясь без [**дискриминаторных столбцов**](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse#storage-extension-for-dynamically-changing-data) или динамического разрешения при выполнении запроса. Это означает, что при хорошо заданных подсказках типов вложенные поля JSON достигают той же производительности и эффективности, как если бы они с самого начала были смоделированы как поля верхнего уровня. В результате для наборов данных, которые в основном однородны, но всё ещё выигрывают от гибкости JSON, подсказки типов предоставляют удобный способ сохранить производительность без необходимости переработки схемы или конвейера приёма данных.
:::
-
-
## Расширенные возможности {#advanced-features}
* Столбцы JSON **могут использоваться в первичных ключах**, как и любые другие столбцы. Для подстолбцов нельзя указывать кодеки.
@@ -54,8 +48,6 @@ ClickHouse теперь предлагает нативный тип столб
Для получения дополнительной информации см. [документацию по JSON в ClickHouse](/sql-reference/data-types/newjson) или ознакомьтесь с нашей статьёй в блоге [A New Powerful JSON Data Type for ClickHouse](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse).
-
-
## Примеры {#examples}
Рассмотрим следующий образец JSON, представляющий строку из [набора данных Python PyPI](https://clickpy.clickhouse.com/):
@@ -159,7 +151,6 @@ ORDER BY update_date
Снова вставим данные в формате JSON:
-
```sql
INSERT INTO arxiv FORMAT JSONEachRow
{"id":"2101.11408","submitter":"Daniel Lemire","authors":"Daniel Lemire","title":"Number Parsing at a Gigabyte per Second","comments":"Software at https://github.com/fastfloat/fast_float and\n https://github.com/lemire/simple_fastfloat_benchmark/","journal-ref":"Software: Practice and Experience 51 (8), 2021","doi":"10.1002/spe.2984","report-no":null,"categories":"cs.DS cs.MS","license":"http://creativecommons.org/licenses/by/4.0/","abstract":"With disks and networks providing gigabytes per second ....\n","versions":[{"created":"Mon, 11 Jan 2021 20:31:27 GMT","version":"v1"},{"created":"Sat, 30 Jan 2021 23:57:29 GMT","version":"v2"}],"update_date":"2022-11-07","authors_parsed":[["Lemire","Daniel",""]]}
@@ -236,7 +227,6 @@ ORDER BY doc.update_date
Мы можем выполнить вставку в эту таблицу и просмотреть впоследствии автоматически выведенную схему с помощью функции [`JSONAllPathsWithTypes`](/sql-reference/functions/json-functions#JSONAllPathsWithTypes) и формата вывода [`PrettyJSONEachRow`](/interfaces/formats/PrettyJSONEachRow):
-
```sql
INSERT INTO arxiv FORMAT JSONAsObject
{"id":"2101.11408","submitter":"Daniel Lemire","authors":"Daniel Lemire","title":"Парсинг чисел со скоростью гигабайт в секунду","comments":"Программное обеспечение: https://github.com/fastfloat/fast_float и\n https://github.com/lemire/simple_fastfloat_benchmark/","journal-ref":"Software: Practice and Experience 51 (8), 2021","doi":"10.1002/spe.2984","report-no":null,"categories":"cs.DS cs.MS","license":"http://creativecommons.org/licenses/by/4.0/","abstract":"Учитывая, что диски и сети обеспечивают гигабайты в секунду ....\n","versions":[{"created":"Mon, 11 Jan 2021 20:31:27 GMT","version":"v1"},{"created":"Sat, 30 Jan 2021 23:57:29 GMT","version":"v2"}],"update_date":"2022-11-07","authors_parsed":[["Lemire","Daniel",""]],"tags":{"tag_1":{"name":"Пользователь ClickHouse","score":"A+","comment":"Полезное чтение, применимо к ClickHouse"},"28_03_2025":{"name":"professor X","score":10,"comment":"Мало что нового узнал","updates":[{"name":"professor X","comment":"Росомаха счёл более интересным"}]}}}
@@ -305,7 +295,6 @@ INSERT INTO arxiv FORMAT JSONEachRow
{"id":"2101.11408","submitter":"Daniel Lemire","authors":"Daniel Lemire","title":"Number Parsing at a Gigabyte per Second","comments":"Software at https://github.com/fastfloat/fast_float and\n https://github.com/lemire/simple_fastfloat_benchmark/","journal-ref":"Software: Practice and Experience 51 (8), 2021","doi":"10.1002/spe.2984","report-no":null,"categories":"cs.DS cs.MS","license":"http://creativecommons.org/licenses/by/4.0/","abstract":"With disks and networks providing gigabytes per second ....\n","versions":[{"created":"Mon, 11 Jan 2021 20:31:27 GMT","version":"v1"},{"created":"Sat, 30 Jan 2021 23:57:29 GMT","version":"v2"}],"update_date":"2022-11-07","authors_parsed":[["Lemire","Daniel",""]],"tags":{"tag_1":{"name":"Пользователь ClickHouse","score":"A+","comment":"Полезное чтение, применимо к ClickHouse"},"28_03_2025":{"name":"professor X","score":10,"comment":"Мало что нового узнал","updates":[{"name":"professor X","comment":"Росомаха счёл более интересным"}]}}}
```
-
Теперь мы можем определить типы подколонки `tags`.
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/sizing-and-hardware-recommendations.md b/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/sizing-and-hardware-recommendations.md
index 6d611bf8ed9..d3494a82a84 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/sizing-and-hardware-recommendations.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/sizing-and-hardware-recommendations.md
@@ -8,8 +8,6 @@ doc_type: 'guide'
keywords: ['размерирование', 'аппаратное обеспечение', 'планирование емкости', 'лучшие практики', 'производительность']
---
-
-
# Рекомендации по выбору размера кластера и оборудования {#sizing-and-hardware-recommendations}
В этом руководстве рассматриваются наши общие рекомендации по конфигурации оборудования, вычислительных ресурсов, памяти и дисков для пользователей open source. Если вы хотите упростить свою инфраструктуру, мы рекомендуем использовать [ClickHouse Cloud](https://clickhouse.com/cloud), так как этот сервис автоматически масштабируется и адаптируется к вашим нагрузкам, минимизируя затраты, связанные с управлением инфраструктурой.
@@ -23,8 +21,6 @@ keywords: ['размерирование', 'аппаратное обеспеч
- Стоимость оборудования
- Затраты на обслуживание
-
-
## Диск {#disk}
Типы дисков, которые следует использовать с ClickHouse, зависят от объёма данных и требований к задержке и пропускной способности.
@@ -39,8 +35,6 @@ keywords: ['размерирование', 'аппаратное обеспеч
Вы также можете реализовать многоуровневое хранилище, используя SSD и HDD в [архитектуре hot/warm/cold](/guides/developer/ttl#implementing-a-hotwarmcold-architecture). В качестве альтернативы можно использовать [AWS S3](https://aws.amazon.com/s3/) для хранения данных, чтобы разделить вычисления и хранение. См. наше руководство по использованию ClickHouse с открытым исходным кодом с разделением вычислений и хранения [здесь](/guides/separation-storage-compute). Разделение вычислений и хранения доступно по умолчанию в ClickHouse Cloud.
-
-
## CPU {#cpu}
### Какой CPU следует использовать? {#which-cpu-should-i-use}
@@ -75,8 +69,6 @@ keywords: ['размерирование', 'аппаратное обеспеч
Например, при использовании CPU типа M мы рекомендуем выделять 100 ГБ памяти на 25 ядер CPU. Чтобы определить объём памяти, подходящий для вашего приложения, необходимо профилировать использование памяти. Вы можете прочитать [это руководство по отладке проблем с памятью](/guides/developer/debugging-memory-issues) или использовать [встроенную панель наблюдаемости](/operations/monitoring) для мониторинга ClickHouse.
-
-
## Память {#memory}
Как и выбор процессора, выбор соотношений «память–хранилище» и «память–CPU» зависит от вашего сценария использования.
@@ -96,8 +88,6 @@ keywords: ['размерирование', 'аппаратное обеспеч
Для сценариев с частым доступом, например для клиентских (customer-facing) нагрузок, мы рекомендуем использовать больше памяти при соотношении «память–хранилище» от 1:30 до 1:50.
-
-
## Реплики {#replicas}
Мы рекомендуем использовать как минимум три реплики на шард (или две реплики при использовании [Amazon EBS](https://aws.amazon.com/ebs/)). Кроме того, мы советуем сначала вертикально масштабировать все реплики, прежде чем добавлять дополнительные реплики (горизонтальное масштабирование).
@@ -106,8 +96,6 @@ ClickHouse не выполняет автоматическое шардиров
Рассмотрите возможность использования [ClickHouse Cloud](https://clickhouse.com/cloud), который масштабируется автоматически и позволяет с лёгкостью управлять количеством реплик под ваши задачи.
-
-
## Примеры конфигураций для крупных нагрузок {#example-configurations-for-large-workloads}
Конфигурации ClickHouse существенно зависят от требований вашего приложения. [Свяжитесь с отделом продаж](https://clickhouse.com/company/contact?loc=docs-sizing-and-hardware-recommendations), если вы хотите, чтобы мы помогли оптимизировать вашу архитектуру с точки зрения стоимости и производительности.
@@ -178,8 +166,6 @@ ClickHouse не выполняет автоматическое шардиров
### Телеком-оператор из списка Fortune 500 для сценария логирования {#fortune-500-telecom-operator-for-a-logging-use-case}
-
-
Хранилище
@@ -236,8 +222,6 @@ ClickHouse не выполняет автоматическое шардиров
-
-
## Дополнительные материалы {#further-reading}
Ниже приведены опубликованные в блогах материалы об архитектурных решениях компаний, использующих open‑source ClickHouse:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/using_data_skipping_indices.md b/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/using_data_skipping_indices.md
index d2ad01fdd01..48898072928 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/using_data_skipping_indices.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/using_data_skipping_indices.md
@@ -50,7 +50,6 @@ ClickHouse предоставляет мощный механизм под на
Более подробное руководство по индексам пропуска данных смотрите [здесь](/sql-reference/statements/alter/skipping-index).
-
## Пример {#example}
Рассмотрим следующую оптимизированную таблицу. Она содержит данные Stack Overflow, по одной строке на каждую публикацию.
@@ -142,7 +141,6 @@ LIMIT 1
Простой анализ показывает, что `ViewCount` коррелирует с `CreationDate` (первичным ключом), как и следовало ожидать — чем дольше существует пост, тем больше времени есть, чтобы его просмотреть.
-
```sql
SELECT toDate(CreationDate) AS day, avg(ViewCount) AS view_count FROM stackoverflow.posts WHERE day > '2009-01-01' GROUP BY day
```
@@ -217,7 +215,6 @@ FROM stackoverflow.posts
WHERE (CreationDate > '2009-01-01') AND (ViewCount > 10000000)
```
-
┌─explain────────────────────────────────────────────────────────────┐
│ Выражение ((Project names + Projection)) │
│ Агрегирование │
@@ -259,7 +256,6 @@ WHERE (CreationDate > '2009-01-01') AND (ViewCount > 10000000)
```
-
## Связанные материалы {#related-docs}
- [Руководство по индексам пропуска данных](/optimize/skipping-indexes)
- [Примеры индексов пропуска данных](/optimize/skipping-indexes/examples)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/getting-started.md b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/getting-started.md
index 308740e1e9d..c2a9fd0a64e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/getting-started.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/getting-started.md
@@ -7,16 +7,12 @@ keywords: ['chdb', 'embedded', 'clickhouse-lite', 'in-process', 'in process']
doc_type: 'guide'
---
-
-
# Начало работы с chDB {#getting-started-with-chdb}
В этом руководстве мы разберёмся, как быстро начать работу с вариантом chDB для Python.
Мы начнём с выполнения запроса к JSON‑файлу в S3, затем создадим таблицу в chDB на основе этого JSON‑файла и выполним несколько запросов к данным.
Мы также посмотрим, как возвращать результаты запросов в различных форматах, включая Apache Arrow и Pandas, и, наконец, узнаем, как выполнять запросы к DataFrame библиотеки Pandas.
-
-
## Настройка {#setup}
Сначала создадим виртуальное окружение:
@@ -51,7 +47,6 @@ ipython
pip install pandas pyarrow
```
-
## Запрос к JSON‑файлу в S3 {#querying-a-json-file-in-s3}
Теперь рассмотрим, как выполнять запросы к JSON‑файлу, который хранится в бакете S3.
@@ -149,7 +144,6 @@ chdb.query(
Это допустимо делать с переменными, определёнными в вашей программе, но не делайте этого с пользовательским вводом, иначе ваш запрос будет подвержен SQL‑инъекциям.
:::
-
## Настройка формата вывода {#configuring-the-output-format}
Формат вывода по умолчанию — `CSV`, но его можно изменить с помощью параметра `output_format`.
@@ -202,7 +196,6 @@ is_live_content: [[false,true]]
count(): [[315746,20686]]
```
-
## Создание таблицы из JSON-файла {#creating-a-table-from-json-file}
Теперь рассмотрим, как создать таблицу в chDB.
@@ -309,7 +302,6 @@ sess.query(f"""
)
```
-
## Выполнение запроса к таблице {#querying-a-table}
Теперь давайте сделаем запрос к таблице:
@@ -348,7 +340,6 @@ df
df["likeDislikeRatio"] = df["likeCount"] / df["dislikeCount"]
```
-
## Выполнение запросов к DataFrame Pandas {#querying-a-pandas-dataframe}
Затем мы можем выполнять запросы к этому DataFrame из chDB:
@@ -379,7 +370,6 @@ chdb.query(
Также вы можете подробнее узнать о выполнении запросов к DataFrame в Pandas в [руководстве для разработчиков по запросам в Pandas](guides/querying-pandas.md).
-
## Дальнейшие шаги {#next-steps}
Надеемся, это руководство дало вам хорошее общее представление о chDB.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/guides/jupysql.md b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/guides/jupysql.md
index b0daf4ff263..ee1ff608af3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/guides/jupysql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/guides/jupysql.md
@@ -95,7 +95,7 @@ conn = dbapi.connect(path="atp.chdb")
%config SqlMagic.displaylimit = None
```
-## Запрос данных из CSV-файлов
+## Запрос данных из CSV-файлов {#querying-data-in-csv-files}
Мы скачали набор файлов с префиксом `atp_rankings`.
Давайте используем конструкцию `DESCRIBE`, чтобы разобраться со схемой:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/guides/query-remote-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/guides/query-remote-clickhouse.md
index aeb7c879b81..8332e434792 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/guides/query-remote-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/guides/query-remote-clickhouse.md
@@ -9,8 +9,6 @@ doc_type: 'guide'
В этом руководстве мы рассмотрим, как выполнять запросы к удалённому серверу ClickHouse из chDB.
-
-
## Настройка {#setup}
Сначала создадим виртуальное окружение:
@@ -41,7 +39,6 @@ ipython
Вы также можете использовать этот код в Python-скрипте или в вашем любимом ноутбуке (например, Jupyter Notebook).
-
## Введение в ClickPy {#an-intro-to-clickpy}
Удалённый сервер ClickHouse, к которому мы будем выполнять запросы, — это [ClickPy](https://clickpy.clickhouse.com).
@@ -50,8 +47,6 @@ ClickPy отслеживает все загрузки пакетов PyPI и п
Подробнее о ClickPy вы можете узнать в [его репозитории на GitHub](https://github.com/ClickHouse/clickpy).
-
-
## Выполнение запросов к сервису ClickPy ClickHouse {#querying-the-clickpy-clickhouse-service}
Давайте импортируем chDB:
@@ -133,7 +128,6 @@ sklearn_df.sort_values(by=["x"], ascending=False).head(n=10)
2383 2024-09-23 1777554
```
-
## Объединение датафреймов в pandas {#merging-pandas-dataframes}
Теперь у нас есть два датафрейма, которые мы можем объединить по дате (это столбец `x`) следующим образом:
@@ -172,7 +166,6 @@ df.head(n=5)
4 2018-03-02 5 23842 0.000210
```
-
## Выполнение запросов к фреймам данных Pandas {#querying-pandas-dataframes}
Далее предположим, что мы хотим найти даты с наилучшим и наихудшим отношением.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/index.md
index d2d1efd90c2..4e9e7f87b9c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/index.md
@@ -10,14 +10,11 @@ doc_type: 'guide'
import Image from '@theme/IdealImage';
import dfBench from '@site/static/images/chdb/df_bench.png';
-
# chDB {#chdb}
chDB — это быстрый встроенный SQL OLAP-движок на базе [ClickHouse](https://github.com/clickhouse/clickhouse).
Вы можете использовать его, когда вам нужна мощь ClickHouse в вашем коде, без необходимости подключаться к серверу ClickHouse.
-
-
## Ключевые возможности {#key-features}
- **Внутрипроцессный OLAP-движок SQL** — Работает на базе ClickHouse, не требует установки сервера ClickHouse
@@ -26,8 +23,6 @@ chDB — это быстрый встроенный SQL OLAP-движок на
- **Глубокая интеграция с экосистемой Python** — Нативная поддержка Pandas, Arrow, DB API 2.0, органично встраивается в существующие data science‑процессы
- **Никаких внешних зависимостей** — Не требуется установка отдельной внешней СУБД
-
-
## Какие языки поддерживает chDB? {#what-languages-are-supported-by-chdb}
chDB поддерживает следующие языковые привязки:
@@ -39,8 +34,6 @@ chDB поддерживает следующие языковые привязк
* [Bun](install/bun.md)
* [C и C++](install/c.md)
-
-
## С чего начать? {#how-do-i-get-started}
* Если вы используете [Go](install/go.md), [Rust](install/rust.md), [NodeJS](install/nodejs.md), [Bun](install/bun.md) или [C и C++](install/c.md), ознакомьтесь с соответствующими страницами для этих языков.
@@ -53,8 +46,6 @@ chDB поддерживает следующие языковые привязк
* [Выполнение запросов к удалённому ClickHouse](guides/query-remote-clickhouse.md)
* [Использование базы данных clickhouse-local](guides/clickhouse-local.md)
-
-
## Вводное видео {#an-introductory-video}
Вы можете посмотреть краткое введение в проект chDB от Алексея Миловидова, создателя ClickHouse:
@@ -63,24 +54,16 @@ chDB поддерживает следующие языковые привязк
-
-
## Бенчмарки производительности {#performance-benchmarks}
chDB демонстрирует исключительную производительность в самых разных сценариях:
-
-
* **[ClickBench встраиваемых движков](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQXRoZW5hIChwYXJ0aXRpb25lZCkiOnRydWUsIkF0aGVuYSAoc2luZ2xlKSI6dHJ1ZSwiQXVyb3JhIGZvciBNeVNRTCI6dHJ1ZSwiQXVyb3JhIGZvciBQb3N0Z3JlU1FMIjp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIiOnRydWUsIkNpdHVzIjp0cnVlLCJjbGlja2hvdXNlLWxvY2FsIChwYXJ0aXRpb25lZCkiOnRydWUsImNsaWNraG91c2UtbG9jYWwgKHNpbmdsZSkiOnRydWUsIkNsaWNrSG91c2UiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoenN0ZCkiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQiOnRydWUsIkNsaWNrSG91c2UgKHdlYikiOnRydWUsIkNyYXRlREIiOnRydWUsIkRhdGFiZW5kIjp0cnVlLCJEYXRhRnVzaW9uIChzaW5nbGUpIjp0cnVlLCJBcGFjaGUgRG9yaXMiOnRydWUsIkRydWlkIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQpIjp0cnVlLCJEdWNrREIiOnRydWUsIkVsYXN0aWNzZWFyY2giOnRydWUsIkVsYXN0aWNzZWFyY2ggKHR1bmVkKSI6ZmFsc2UsIkdyZWVucGx1bSI6dHJ1ZSwiSGVhdnlBSSI6dHJ1ZSwiSHlkcmEiOnRydWUsIkluZm9icmlnaHQiOnRydWUsIktpbmV0aWNhIjp0cnVlLCJNYXJpYURCIENvbHVtblN0b3JlIjp0cnVlLCJNYXJpYURCIjpmYWxzZSwiTW9uZXREQiI6dHJ1ZSwiTW9uZ29EQiI6dHJ1ZSwiTXlTUUwgKE15SVNBTSkiOnRydWUsIk15U1FMIjp0cnVlLCJQaW5vdCI6dHJ1ZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2VsZWN0REIiOnRydWUsIlNpbmdsZVN0b3JlIjp0cnVlLCJTbm93Zmxha2UiOnRydWUsIlNRTGl0ZSI6dHJ1ZSwiU3RhclJvY2tzIjp0cnVlLCJUaW1lc2NhbGVEQiAoY29tcHJlc3Npb24pIjp0cnVlLCJUaW1lc2NhbGVEQiI6dHJ1ZX0sInR5cGUiOnsic3RhdGVsZXNzIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsIkphdmEiOmZhbHNlLCJjb2x1bW4tb3JpZW50ZWQiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQyI6ZmFsc2UsIlBvc3RncmVTUUwgY29tcGF0aWJsZSI6ZmFsc2UsIkNsaWNrSG91c2UgZGVyaXZhdGl2ZSI6ZmFsc2UsImVtYmVkZGVkIjp0cnVlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiUnVzdCI6ZmFsc2UsInNlYXJjaCI6ZmFsc2UsImRvY3VtZW50IjpmYWxzZSwidGltZS1zZXJpZXMiOmZhbHNlfSwibWFjaGluZSI6eyJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNS40eGxhcmdlLCA1MDBnYiBncDIiOnRydWUsIjE2IHRocmVhZHMiOnRydWUsIjIwIHRocmVhZHMiOnRydWUsIjI0IHRocmVhZHMiOnRydWUsIjI4IHRocmVhZHMiOnRydWUsIjMwIHRocmVhZHMiOnRydWUsIjQ4IHRocmVhZHMiOnRydWUsIjYwIHRocmVhZHMiOnRydWUsIm01ZC4yNHhsYXJnZSI6dHJ1ZSwiYzVuLjR4bGFyZ2UsIDIwMGdiIGdwMiI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDE1MDBnYiBncDIiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMjQiOnRydWUsIlMyIjp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZX0sImNsdXN0ZXJfc2l6ZSI6eyIxIjp0cnVlLCIyIjp0cnVlLCI0Ijp0cnVlLCI4Ijp0cnVlLCIxNiI6dHJ1ZSwiMzIiOnRydWUsIjY0Ijp0cnVlLCIxMjgiOnRydWUsInNlcnZlcmxlc3MiOnRydWUsInVuZGVmaW5lZCI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)** — комплексное сравнение производительности
* **[Производительность обработки DataFrame](https://colab.research.google.com/drive/1FogLujJ_-ds7RGurDrUnK-U0IW8a8Qd0)** - сравнительный анализ с другими библиотеками DataFrame
* **[DataFrame Benchmark](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQWxsb3lEQiI6dHJ1ZSwiQWxsb3lEQiAodHVuZWQpIjp0cnVlLCJBdGhlbmEgKHBhcnRpdGlvbmVkKSI6dHJ1ZSwiQXRoZW5hIChzaW5nbGUpIjp0cnVlLCJBdXJvcmEgZm9yIE15U1FMIjp0cnVlLCJBdXJvcmEgZm9yIFBvc3RncmVTUUwiOnRydWUsIkJ5Q29uaXR5Ijp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIgKERhdGFGcmFtZSkiOnRydWUsImNoREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiY2hEQiI6dHJ1ZSwiQ2l0dXMiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF3cykiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF6dXJlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSBDbG91ZCAoZ2NwKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoZGF0YSBsYWtlLCBwYXJ0aXRpb25lZCkiOnRydWUsIkNsaWNrSG91c2UgKGRhdGEgbGFrZSwgc2luZ2xlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJDbGlja0hvdXNlIChQYXJxdWV0LCBzaW5nbGUpIjp0cnVlLCJDbGlja0hvdXNlICh3ZWIpIjp0cnVlLCJDbGlja0hvdXNlIjp0cnVlLCJDbGlja0hvdXNlICh0dW5lZCkiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkLCBtZW1vcnkpIjp0cnVlLCJDbG91ZGJlcnJ5Ijp0cnVlLCJDcmF0ZURCIjp0cnVlLCJDcnVuY2h5IEJyaWRnZSBmb3IgQW5hbHl0aWNzIChQYXJxdWV0KSI6dHJ1ZSwiRGF0YWJlbmQiOnRydWUsIkRhdGFGdXNpb24gKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRGF0YUZ1c2lvbiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiQXBhY2hlIERvcmlzIjp0cnVlLCJEcnVpZCI6dHJ1ZSwiRHVja0RCIChEYXRhRnJhbWUpIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRHVja0RCIjp0cnVlLCJFbGFzdGljc2VhcmNoIjp0cnVlLCJFbGFzdGljc2VhcmNoICh0dW5lZCkiOmZhbHNlLCJHbGFyZURCIjp0cnVlLCJHcmVlbnBsdW0iOnRydWUsIkhlYXZ5QUkiOnRydWUsIkh5ZHJhIjp0cnVlLCJJbmZvYnJpZ2h0Ijp0cnVlLCJLaW5ldGljYSI6dHJ1ZSwiTWFyaWFEQiBDb2x1bW5TdG9yZSI6dHJ1ZSwiTWFyaWFEQiI6ZmFsc2UsIk1vbmV0REIiOnRydWUsIk1vbmdvREIiOnRydWUsIk1vdGhlcmR1Y2siOnRydWUsIk15U1FMIChNeUlTQU0pIjp0cnVlLCJNeVNRTCI6dHJ1ZSwiT3hsYSI6dHJ1ZSwiUGFuZGFzIChEYXRhRnJhbWUpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiUGlub3QiOnRydWUsIlBvbGFycyAoRGF0YUZyYW1lKSI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2luZ2xlU3RvcmUiOnRydWUsIlNub3dmbGFrZSI6dHJ1ZSwiU1FMaXRlIjp0cnVlLCJTdGFyUm9ja3MiOnRydWUsIlRhYmxlc3BhY2UiOnRydWUsIlRlbWJvIE9MQVAgKGNvbHVtbmFyKSI6dHJ1ZSwiVGltZXNjYWxlREIgKGNvbXByZXNzaW9uKSI6dHJ1ZSwiVGltZXNjYWxlREIiOnRydWUsIlVtYnJhIjp0cnVlfSwidHlwZSI6eyJDIjpmYWxzZSwiY29sdW1uLW9yaWVudGVkIjpmYWxzZSwiUG9zdGdyZVNRTCBjb21wYXRpYmxlIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsImdjcCI6ZmFsc2UsInN0YXRlbGVzcyI6ZmFsc2UsIkphdmEiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQ2xpY2tIb3VzZSBkZXJpdmF0aXZlIjpmYWxzZSwiZW1iZWRkZWQiOmZhbHNlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiZGF0YWZyYW1lIjp0cnVlLCJhd3MiOmZhbHNlLCJhenVyZSI6ZmFsc2UsImFuYWx5dGljYWwiOmZhbHNlLCJSdXN0IjpmYWxzZSwic2VhcmNoIjpmYWxzZSwiZG9jdW1lbnQiOmZhbHNlLCJzb21ld2hhdCBQb3N0Z3JlU1FMIGNvbXBhdGlibGUiOmZhbHNlLCJ0aW1lLXNlcmllcyI6ZmFsc2V9LCJtYWNoaW5lIjp7IjE2IHZDUFUgMTI4R0IiOnRydWUsIjggdkNQVSA2NEdCIjp0cnVlLCJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDUwMGdiIGdwMiI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCIxOTJHQiI6dHJ1ZSwiMjRHQiI6dHJ1ZSwiMzYwR0IiOnRydWUsIjQ4R0IiOnRydWUsIjcyMEdCIjp0cnVlLCI5NkdCIjp0cnVlLCJkZXYiOnRydWUsIjcwOEdCIjp0cnVlLCJjNW4uNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJBbmFseXRpY3MtMjU2R0IgKDY0IHZDb3JlcywgMjU2IEdCKSI6dHJ1ZSwiYzUuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgMTUwMGdiIGdwMiI6dHJ1ZSwiY2xvdWQiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMiI6dHJ1ZSwiUzI0Ijp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZSwiTDEgLSAxNkNQVSAzMkdCIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AzIjp0cnVlfSwiY2x1c3Rlcl9zaXplIjp7IjEiOnRydWUsIjIiOnRydWUsIjQiOnRydWUsIjgiOnRydWUsIjE2Ijp0cnVlLCIzMiI6dHJ1ZSwiNjQiOnRydWUsIjEyOCI6dHJ1ZSwic2VydmVybGVzcyI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)**
-
-
-
-
## О chDB {#about-chdb}
- Прочитайте полную историю создания проекта chDB в [блоге](https://clickhouse.com/blog/chdb-embedded-clickhouse-rocket-engine-on-a-bicycle)
@@ -89,8 +72,6 @@ chDB демонстрирует исключительную производи
- Попробуйте chDB прямо в браузере, используя [примеры codapi](https://antonz.org/trying-chdb/)
- Дополнительные примеры см. по адресу https://github.com/chdb-io/chdb/tree/main/examples
-
-
## Лицензия {#license}
chDB распространяется по лицензии Apache версии 2.0. Дополнительную информацию см. в файле [LICENSE](https://github.com/chdb-io/chdb/blob/main/LICENSE.txt).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/bun.md b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/bun.md
index 8d69a2e0f18..878a9ea9378 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/bun.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/bun.md
@@ -48,7 +48,7 @@ bun run build
chDB-bun поддерживает два режима выполнения запросов: эфемерные запросы для одноразовых операций и постоянные сеансы для сохранения состояния базы данных.
-### Эфемерные запросы
+### Эфемерные запросы {#persistent-sessions}
Для простых одноразовых запросов, которые не требуют сохранения состояния:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/c.md b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/c.md
index 5bb28c8be5e..d1f85d418b7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/c.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/c.md
@@ -7,14 +7,10 @@ keywords: ['chdb', 'c', 'cpp', 'embedded', 'clickhouse', 'sql', 'olap', 'api']
doc_type: 'guide'
---
-
-
# chDB для C и C++ {#chdb-for-c-and-c}
chDB предоставляет родной C/C++ API для встраивания функциональности ClickHouse непосредственно в ваши приложения. API поддерживает как простые запросы, так и расширенные возможности, такие как постоянные соединения и потоковая передача результатов запросов.
-
-
## Установка {#installation}
### Шаг 1: Установите libchdb {#install-libchdb}
@@ -37,13 +33,11 @@ curl -sL https://lib.chdb.io | bash
Скомпилируйте и скомпонуйте ваше приложение с chDB:
-
```bash
# Компиляция на C {#c-compilation}
gcc -o myapp myapp.c -lchdb
```
-
# Компиляция на C++ {#c-compilation}
g++ -o myapp myapp.cpp -lchdb
@@ -51,7 +45,6 @@ g++ -o myapp myapp.cpp -lchdb
```
```
-
## Примеры на C {#c-examples}
### Базовое подключение и выполнение запросов {#basic-connection-queries}
@@ -194,7 +187,6 @@ int main() {
chdb_destroy_query_result(json_result);
```
-
// Форматированный вывод
chdb_result* pretty_result = chdb_query(*conn, query, "Pretty");
printf("Pretty Result:\n%.*s\n\n",
@@ -209,7 +201,6 @@ return 0;
```
```
-
## Пример на C++ {#cpp-example}
```cpp
@@ -293,7 +284,6 @@ int main() {
}
```
-
## Лучшие практики обработки ошибок {#error-handling}
```c
@@ -341,7 +331,6 @@ cleanup:
}
```
-
## Репозиторий GitHub {#github-repository}
- **Основной репозиторий**: [chdb-io/chdb](https://github.com/chdb-io/chdb)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/go.md b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/go.md
index c680f270206..8b945b33eaf 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/go.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/go.md
@@ -7,14 +7,10 @@ keywords: ['chdb', 'go', 'golang', 'embedded', 'clickhouse', 'sql', 'olap']
doc_type: 'guide'
---
-
-
# chDB для Go {#chdb-for-go}
chDB-go предоставляет биндинги Go к chDB, позволяя выполнять запросы к ClickHouse напрямую в ваших Go‑приложениях без каких-либо внешних зависимостей.
-
-
## Установка {#installation}
### Шаг 1: Установите libchdb {#install-libchdb}
@@ -39,26 +35,20 @@ go install github.com/chdb-io/chdb-go@latest
go get github.com/chdb-io/chdb-go
```
-
## Использование {#usage}
### Интерфейс командной строки {#cli}
chDB-go предоставляет утилиту командной строки для быстрых запросов:
-
-
```bash
# Простой запрос {#simple-query}
./chdb-go "SELECT 123"
```
-
# Интерактивный режим {#interactive-mode}
./chdb-go
-
-
# Интерактивный режим с постоянным хранилищем данных {#interactive-mode-with-persistent-storage}
./chdb-go --path /tmp/chdb
@@ -242,15 +232,12 @@ func main() {
}
```
-
**Преимущества потокового выполнения запросов:**
- **Эффективное использование памяти** - Обрабатывайте большие наборы данных, не загружая их полностью в память
- **Обработка в реальном времени** - Начинайте обработку данных, как только поступит первый фрагмент
- **Поддержка отмены** - Можно отменять длительные запросы с помощью `Cancel()`
- **Обработка ошибок** - Проверяйте наличие ошибок во время потоковой обработки с помощью `Error()`
-
-
## Документация по API {#api-documentation}
chDB-go предоставляет как высокоуровневый, так и низкоуровневый API:
@@ -258,8 +245,6 @@ chDB-go предоставляет как высокоуровневый, так
- **[Документация по высокоуровневому API](https://github.com/chdb-io/chdb-go/blob/main/chdb.md)** — рекомендуется для большинства сценариев использования
- **[Документация по низкоуровневому API](https://github.com/chdb-io/chdb-go/blob/main/lowApi.md)** — для более сложных сценариев, требующих детального управления
-
-
## Системные требования {#requirements}
- Go 1.21 или новее
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/nodejs.md b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/nodejs.md
index 6f814a346c2..95aedbe5e44 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/nodejs.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/nodejs.md
@@ -7,21 +7,16 @@ keywords: ['chdb', 'nodejs', 'javascript', 'встраиваемая', 'clickhou
doc_type: 'guide'
---
-
-
# chDB для Node.js {#chdb-for-nodejs}
chDB-node предоставляет биндинги chDB для Node.js, позволяя выполнять запросы к ClickHouse непосредственно в ваших Node.js-приложениях без каких-либо внешних зависимостей.
-
-
## Установка {#installation}
```bash
npm install chdb
```
-
## Использование {#usage}
chDB-node поддерживает два режима выполнения запросов: автономные запросы для простых операций и сеансовые запросы для сохранения состояния базы данных.
@@ -146,7 +141,6 @@ try {
}
```
-
## Обработка ошибок {#error-handling}
Всегда правильно обрабатывайте ошибки при работе с chDB:
@@ -192,7 +186,6 @@ function safeSessionQuery() {
safeSessionQuery();
```
-
## Репозиторий на GitHub {#github-repository}
- **Репозиторий на GitHub**: [chdb-io/chdb-node](https://github.com/chdb-io/chdb-node)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/python.md b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/python.md
index 6faa008f7dd..738de4e18d2 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/python.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/python.md
@@ -18,7 +18,6 @@ doc_type: 'guide'
pip install chdb
```
-
## Использование {#usage}
### Интерфейс командной строки {#command-line-interface}
@@ -33,7 +32,6 @@ python3 -m chdb "SELECT 1, 'abc'" Pretty
python3 -m chdb "SELECT version()" JSON
```
-
### Основы работы с Python {#basic-python-usage}
```python
@@ -49,7 +47,6 @@ print(f"Прочитано байт: {result.bytes_read()}")
print(f"Время выполнения: {result.elapsed()} секунд")
```
-
### API на основе подключений (рекомендуется) {#connection-based-api}
Для более эффективного управления ресурсами и повышения производительности:
@@ -84,7 +81,6 @@ cur.close()
conn.close()
```
-
## Методы ввода данных {#data-input}
### Файловые источники данных {#file-based-data-sources}
@@ -118,7 +114,6 @@ result = chdb.query("""
""", 'Pretty')
```
-
### Примеры форматов вывода {#output-format-examples}
```python
@@ -139,7 +134,6 @@ pretty_result = chdb.query('SELECT * FROM system.numbers LIMIT 3', 'Pretty')
print(pretty_result)
```
-
### Операции с DataFrame {#dataframe-operations}
#### Устаревший API DataFrame {#legacy-dataframe-api}
@@ -164,7 +158,6 @@ summary = result_df.query('SELECT b, sum(a) FROM __table__ GROUP BY b')
print(summary)
```
-
#### Табличный движок Python (рекомендуется) {#python-table-engine-recommended}
```python
@@ -212,7 +205,6 @@ chdb.query("""
""").show()
```
-
### Сеансы с сохранением состояния {#stateful-sessions}
Сессии поддерживают состояние запросов между несколькими операциями, что позволяет реализовывать сложные рабочие процессы:
@@ -267,7 +259,6 @@ print(result)
sess.close() # Необязательно — автоматически закрывается при удалении объекта
```
-
### Расширенные возможности сессий {#advanced-session-features}
```python
@@ -288,7 +279,6 @@ result = sess.query("""
См. также: [test_stateful.py](https://github.com/chdb-io/chdb/blob/main/tests/test_stateful.py).
-
### Интерфейс Python DB-API 2.0 {#python-db-api-20}
Стандартный интерфейс доступа к базе данных для совместимости с существующими приложениями на Python:
@@ -337,7 +327,6 @@ cursor.executemany(
)
```
-
### Пользовательские функции (UDF) {#user-defined-functions}
Расширяйте SQL с помощью пользовательских функций, написанных на Python:
@@ -378,7 +367,6 @@ result = query("""
print(result)
```
-
#### Продвинутые UDF с пользовательскими типами возвращаемых значений {#advanced-udf-custom-return-types}
```python
@@ -413,7 +401,6 @@ result = query("""
print(result)
```
-
#### Рекомендации по использованию UDF {#udf-best-practices}
1. **Stateless Functions**: функции UDF должны быть чистыми, без побочных эффектов
@@ -449,7 +436,6 @@ query("""
""")
```
-
### Потоковая обработка запросов {#streaming-queries}
Обрабатывайте большие наборы данных при фиксированном объёме потребляемой памяти:
@@ -520,7 +506,6 @@ stream.close()
sess.close()
```
-
### Табличный движок Python {#python-table-engine}
#### Выполнение запросов к DataFrame в Pandas {#query-pandas-dataframes}
@@ -578,7 +563,6 @@ window_result = chdb.query("""
print(window_result)
```
-
#### Пользовательские источники данных с PyReader {#custom-data-sources-pyreader}
Реализуйте пользовательские ридеры данных для специализированных источников данных:
@@ -686,7 +670,6 @@ complex_json = chdb.query("""
print(complex_json)
````
-
## Производительность и оптимизация {#performance-optimization}
### Бенчмарки {#benchmarks}
@@ -772,7 +755,6 @@ stream.close()
sess.close()
```
-
## Репозиторий GitHub {#github-repository}
- **Основной репозиторий**: [chdb-io/chdb](https://github.com/chdb-io/chdb)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/rust.md b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/rust.md
index d3a3b27fff4..11352a6b1ff 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/rust.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/chdb/install/rust.md
@@ -7,14 +7,10 @@ keywords: ['chdb', 'embedded', 'clickhouse-lite', 'rust', 'install', 'ffi', 'bin
doc_type: 'guide'
---
-
-
# chDB для Rust {#chdb-for-rust}
chDB-rust предоставляет экспериментальные привязки FFI (Foreign Function Interface) для chDB, позволяющие выполнять запросы к ClickHouse непосредственно в ваших Rust-приложениях без каких-либо внешних зависимостей.
-
-
## Установка {#installation}
### Установка libchdb {#install-libchdb}
@@ -25,7 +21,6 @@ chDB-rust предоставляет экспериментальные прив
curl -sL https://lib.chdb.io | bash
```
-
## Использование {#usage}
chDB для Rust предоставляет как статический, так и состояние-сохраняющий режимы выполнения запросов.
@@ -114,7 +109,6 @@ fn main() -> Result<(), Box> {
}
```
-
## Сборка и тестирование {#building-testing}
### Сборка проекта {#build-the-project}
@@ -137,7 +131,6 @@ cargo test
* `tempdir` (v0.3.7) - работа с временными каталогами в тестах
* `thiserror` (v1) - утилиты для обработки ошибок
-
## Обработка ошибок {#error-handling}
chDB Rust предоставляет всестороннюю обработку ошибок с помощью перечисления `Error`:
@@ -164,7 +157,6 @@ match execute("SELECT 1", None) {
}
```
-
## Репозиторий на GitHub {#github-repository}
Репозиторий проекта на GitHub доступен по адресу [chdb-io/chdb-rust](https://github.com/chdb-io/chdb-rust).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/01_cloud_tiers.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/01_cloud_tiers.md
index 3f793e62c20..31d9bbb5366 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/01_cloud_tiers.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/01_cloud_tiers.md
@@ -7,8 +7,6 @@ keywords: ['тарифные планы облака', 'тарифные пла
doc_type: 'reference'
---
-
-
# Уровни ClickHouse Cloud {#clickhouse-cloud-tiers}
В ClickHouse Cloud доступно несколько уровней.
@@ -17,8 +15,6 @@ doc_type: 'reference'
**Краткое описание уровней в облаке:**
-
-
@@ -224,8 +220,6 @@ doc_type: 'reference'
-
-
## Basic {#basic}
- Экономичный вариант, поддерживающий развертывания с одной репликой.
@@ -236,8 +230,6 @@ doc_type: 'reference'
Вы можете перейти на уровень Scale или Enterprise, чтобы масштабировать эти сервисы.
:::
-
-
## Scale {#scale}
Предназначен для рабочих нагрузок, которым требуются повышенные SLA (развертывания с 2 и более репликами), масштабируемость и расширенная безопасность.
@@ -248,8 +240,6 @@ doc_type: 'reference'
- Опции [гибкого масштабирования](/manage/scaling) (масштабирование вверх/вниз, внутрь/наружу).
- [Настраиваемые резервные копии](/cloud/manage/backups/configurable-backups)
-
-
## Enterprise {#enterprise}
Предназначен для крупномасштабных, критически важных развертываний со строгими требованиями к безопасности и соответствию нормативам.
@@ -268,8 +258,6 @@ doc_type: 'reference'
Сервисы с одной репликой во всех трех тарифах предусмотрены фиксированного размера (`8 GiB`, `12 GiB`).
:::
-
-
## Переход на другой тарифный план {#upgrading-to-a-different-tier}
Вы всегда можете перейти с тарифа Basic на Scale или с Scale на Enterprise. Понижение тарифного плана потребует отключения премиальных возможностей.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/03_sql_console_features/02_query-insights.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/03_sql_console_features/02_query-insights.md
index ff58ddf4543..e19a9788bf8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/03_sql_console_features/02_query-insights.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/03_sql_console_features/02_query-insights.md
@@ -14,29 +14,22 @@ import insights_recent from '@site/static/images/cloud/sqlconsole/insights_recen
import insights_drilldown from '@site/static/images/cloud/sqlconsole/insights_drilldown.png';
import insights_query_info from '@site/static/images/cloud/sqlconsole/insights_query_info.png';
-
# Аналитика запросов {#query-insights}
Возможность **Query Insights** упрощает работу со встроенным журналом запросов ClickHouse за счёт различных визуализаций и таблиц. Таблица `system.query_log` в ClickHouse является ключевым источником информации для оптимизации запросов, отладки и мониторинга общего состояния и производительности кластера.
-
-
## Обзор запросов {#query-overview}
После выбора сервиса пункт навигации **Monitoring** в левой боковой панели разворачивается и отображает новый подпункт **Query insights**. Щелчок по этому пункту открывает новую страницу Query insights:
-
-
## Метрики верхнего уровня {#top-level-metrics}
Статистические блоки в верхней части отображают базовые сводные метрики запросов за выбранный период времени. Ниже представлены три графика временных рядов, показывающие объем запросов, задержку и уровень ошибок с разбивкой по типам запросов (select, insert, other) за выбранный временной интервал. График задержки можно дополнительно настроить для отображения задержек p50, p90 и p99:
-
-
## Недавние запросы {#recent-queries}
Под основными метриками отображается таблица записей журнала запросов (сгруппированных по нормализованному хэшу запроса и пользователю) за выбранный временной интервал:
@@ -45,8 +38,6 @@ import insights_query_info from '@site/static/images/cloud/sqlconsole/insights_q
Недавние запросы можно фильтровать и сортировать по любому из доступных полей. Таблицу также можно настроить для отображения или скрытия дополнительных полей, таких как таблицы, а также задержки p90 и p99.
-
-
## Детальный разбор запроса {#query-drill-down}
При выборе запроса в таблице недавних запросов открывается всплывающая панель, содержащая метрики и информацию, относящиеся к выбранному запросу:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/03_sql_console_features/04_dashboards.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/03_sql_console_features/04_dashboards.md
index 17700003ef5..48d0319215d 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/03_sql_console_features/04_dashboards.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/03_sql_console_features/04_dashboards.md
@@ -20,13 +20,10 @@ import dashboards_9 from '@site/static/images/cloud/dashboards/9_dashboards.png'
import dashboards_10 from '@site/static/images/cloud/dashboards/10_dashboards.png';
import dashboards_11 from '@site/static/images/cloud/dashboards/11_dashboards.png';
-
# Панели мониторинга {#dashboards}
Функция панелей мониторинга в SQL Console позволяет собирать и совместно использовать визуализации на основе сохранённых запросов. Начните с сохранения и визуализации запросов, добавления их визуализаций на панель и сделайте панель интерактивной с помощью параметров запросов.
-
-
## Базовые понятия {#core-concepts}
### Общий доступ к запросам {#query-sharing}
@@ -39,14 +36,10 @@ import dashboards_11 from '@site/static/images/cloud/dashboards/11_dashboards.pn
Вы можете включать и отключать поле ввода параметра запроса через боковую панель фильтров **Global**, выбрав тип «filter» в настройках визуализации. Также вы можете включать и отключать ввод параметра запроса, связав его с другим объектом (например, таблицей) на панели. См. раздел «[configure a filter](/cloud/manage/dashboards#configure-a-filter)» в кратком руководстве по быстрому старту ниже.
-
-
## Быстрый старт {#quick-start}
Создадим панель мониторинга для нашего сервиса ClickHouse, используя системную таблицу [query\_log](/operations/system-tables/query_log).
-
-
## Быстрый старт {#quick-start-1}
### Создание сохранённого запроса {#create-a-saved-query}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/automatic_scaling/01_auto_scaling.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/automatic_scaling/01_auto_scaling.md
index dd713b455d5..65e70d03da7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/automatic_scaling/01_auto_scaling.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/automatic_scaling/01_auto_scaling.md
@@ -16,7 +16,6 @@ import scaling_configure from '@site/static/images/cloud/manage/scaling-configur
import scaling_memory_allocation from '@site/static/images/cloud/manage/scaling-memory-allocation.png';
import ScalePlanFeatureBadge from '@theme/badges/ScalePlanFeatureBadge'
-
# Автоматическое масштабирование {#automatic-scaling}
Масштабирование — это возможность изменять доступные ресурсы в соответствии с запросами клиентов. Сервисы уровней Scale и Enterprise (со стандартным профилем 1:4) могут масштабироваться горизонтально через программные вызовы API или путем изменения настроек в пользовательском интерфейсе для регулирования системных ресурсов. Эти сервисы также могут **автоматически масштабироваться** вертикально в соответствии с потребностями приложений.
@@ -27,8 +26,6 @@ import ScalePlanFeatureBadge from '@theme/badges/ScalePlanFeatureBadge'
Уровни Scale и Enterprise поддерживают как сервисы с одной репликой, так и с несколькими репликами, тогда как уровень Basic поддерживает только сервисы с одной репликой. Сервисы с одной репликой имеют фиксированный размер и не допускают вертикального или горизонтального масштабирования. Пользователи могут перейти на уровень Scale или Enterprise, чтобы масштабировать свои сервисы.
:::
-
-
## Как работает масштабирование в ClickHouse Cloud {#how-scaling-works-in-clickhouse-cloud}
В настоящее время ClickHouse Cloud поддерживает вертикальное автомасштабирование и ручное горизонтальное масштабирование для сервисов уровня Scale.
@@ -89,8 +86,6 @@ import ScalePlanFeatureBadge from '@theme/badges/ScalePlanFeatureBadge'
Однако вертикальное масштабирование таких сервисов возможно по обращению в службу поддержки.
:::
-
-
## Ручное горизонтальное масштабирование {#manual-horizontal-scaling}
@@ -129,8 +124,6 @@ import ScalePlanFeatureBadge from '@theme/badges/ScalePlanFeatureBadge'
-
-
## Автоматический переход в режим ожидания {#automatic-idling}
На странице **Settings** вы также можете выбрать, разрешать ли автоматический переход сервиса в режим ожидания, когда он неактивен, как показано на изображении выше (то есть когда сервис не выполняет никаких пользовательских запросов). Автоматический переход в режим ожидания снижает стоимость работы сервиса, так как с вас не взимается плата за вычислительные ресурсы, пока сервис приостановлен.
@@ -144,8 +137,6 @@ import ScalePlanFeatureBadge from '@theme/badges/ScalePlanFeatureBadge'
Используйте автоматический переход в режим ожидания только в том случае, если в вашей задаче допустима задержка перед ответом на запросы, поскольку при приостановке сервиса подключения к нему будут завершаться по таймауту. Автоматический переход в режим ожидания оптимален для сервисов, которые используются редко и где задержка может быть терпима. Он не рекомендуется для сервисов, обеспечивающих клиентские функции, которыми часто пользуются.
:::
-
-
## Обработка всплесков нагрузки {#handling-bursty-workloads}
Если в ближайшее время ожидается всплеск нагрузки, вы можете использовать
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/deployment-options.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/deployment-options.md
index 6f3d55e8f5f..b6a61377a8b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/deployment-options.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/deployment-options.md
@@ -6,15 +6,11 @@ keywords: ['собственное облако', 'byoc', 'частное обл
doc_type: 'reference'
---
-
-
# Варианты развертывания ClickHouse {#clickhouse-deployment-options}
ClickHouse предоставляет широкий спектр вариантов развертывания, чтобы удовлетворить разнообразные требования клиентов, предлагая разные уровни контроля, соответствия нормативным требованиям и операционных накладных расходов.
В этом документе описаны различные типы развертывания, что позволяет пользователям выбрать оптимальное решение, соответствующее их архитектурным предпочтениям, регуляторным обязательствам и стратегиям управления ресурсами.
-
-
## ClickHouse Cloud {#clickhouse-cloud}
ClickHouse Cloud — это полностью управляемый облачный сервис, который обеспечивает мощь и скорость ClickHouse без операционной сложности самостоятельного управления.
@@ -24,24 +20,18 @@ ClickHouse Cloud берет на себя все аспекты подготов
Подробнее см. в разделе [ClickHouse Cloud](/getting-started/quick-start/cloud).
-
-
## Собственное облако (Bring Your Own Cloud) {#byoc}
ClickHouse Bring Your Own Cloud (BYOC) позволяет организациям развертывать и управлять ClickHouse в собственной облачной среде, при этом используя управляемый сервисный слой. Этот вариант занимает промежуточное положение между полностью управляемым сервисом ClickHouse Cloud и полным контролем при самостоятельном управлении развертываниями. С ClickHouse BYOC пользователи сохраняют контроль над своими данными, инфраструктурой и политиками безопасности, соблюдая специфические требования по соответствию и нормативному регулированию, одновременно передавая ClickHouse эксплуатационные задачи, такие как установка обновлений и патчей, мониторинг и масштабирование. Эта модель предоставляет гибкость развертывания в частном облаке с преимуществами управляемого сервиса, что делает ее подходящей для крупномасштабных развертываний для предприятий с жесткими требованиями к безопасности, управлению и локализации данных.
Подробнее см. в разделе [Bring Your Own Cloud](/cloud/reference/byoc/overview).
-
-
## ClickHouse Private {#clickhouse-private}
ClickHouse Private — это версия ClickHouse для самостоятельного развёртывания, использующая ту же проприетарную технологию, которая лежит в основе ClickHouse Cloud. Этот вариант обеспечивает максимально возможный уровень контроля, что делает его оптимальным для организаций с жёсткими требованиями к соответствию, сетевому взаимодействию и безопасности, а также для команд, обладающих достаточной экспертизой для управления собственной инфраструктурой. Решение получает регулярные обновления и улучшения, тщательно протестированные в среде ClickHouse Cloud, имеет насыщенную дорожную карту по развитию функциональности и поддерживается нашей командой экспертов.
Подробнее о [ClickHouse Private](/cloud/infrastructure/clickhouse-private).
-
-
## ClickHouse Government {#clickhouse-government}
ClickHouse Government — это самостоятельно развертываемая версия ClickHouse, разработанная для удовлетворения уникальных и строгих требований государственных учреждений и организаций государственного сектора, которым необходимы изолированные и аккредитованные среды. Этот вариант развертывания предоставляет высокозащищенную, соответствующую нормативным требованиям и изолированную среду, с акцентом на обеспечение соответствия стандарту FIPS 140-3 с использованием OpenSSL, дополнительное усиление безопасности системы и управление уязвимостями. Он использует мощные возможности ClickHouse Cloud, одновременно интегрируя специализированные функции и конфигурации для удовлетворения специфических эксплуатационных требований и требований безопасности государственных структур. С ClickHouse Government ведомства могут выполнять высокопроизводительную аналитику над конфиденциальными данными в контролируемой и аккредитованной инфраструктуре при поддержке экспертов, услуги которых адаптированы под потребности государственного сектора.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/replica-aware-routing.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/replica-aware-routing.md
index a84e315d428..681a0ee9e52 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/replica-aware-routing.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/replica-aware-routing.md
@@ -8,7 +8,6 @@ doc_type: 'guide'
import PrivatePreviewBadge from '@theme/badges/PrivatePreviewBadge';
-
# Маршрутизация с учетом реплик {#replica-aware-routing}
@@ -27,8 +26,6 @@ import PrivatePreviewBadge from '@theme/badges/PrivatePreviewBadge';
Обратите внимание, что исходное имя хоста по-прежнему будет использовать балансировку нагрузки `LEAST_CONNECTION`, которая является алгоритмом маршрутизации по умолчанию.
-
-
## Ограничения маршрутизации с учетом реплик {#limitations-of-replica-aware-routing}
### Маршрутизация с учетом реплик не гарантирует изоляцию {#replica-aware-routing-does-not-guarantee-isolation}
@@ -39,8 +36,6 @@ import PrivatePreviewBadge from '@theme/badges/PrivatePreviewBadge';
Клиентам необходимо вручную добавить DNS-запись, чтобы разрешение имен работало для нового шаблона имени хоста. При неправильном использовании это может привести к неравномерной нагрузке на сервер.
-
-
## Настройка маршрутизации с учётом реплик {#configuring-replica-aware-routing}
Чтобы включить маршрутизацию с учётом реплик, пожалуйста, обратитесь в [нашу службу поддержки](https://clickhouse.com/support/program).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/shared-catalog.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/shared-catalog.md
index 6c52db49f23..4864db536f1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/shared-catalog.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/shared-catalog.md
@@ -7,8 +7,6 @@ description: 'Описывает компонент Shared Catalog и движо
doc_type: 'reference'
---
-
-
# Общий каталог и общий движок базы данных {#shared-catalog-and-shared-database-engine}
**Доступно исключительно в ClickHouse Cloud (и в облачных сервисах партнёров первого уровня)**
@@ -24,8 +22,6 @@ Shared Catalog **не реплицирует сами таблицы**, но о
- MySQL
- DataLakeCatalog
-
-
## Архитектура и хранение метаданных {#architecture-and-metadata-storage}
Все метаданные и история DDL‑запросов в Shared Catalog хранятся централизованно в ZooKeeper. Ничего не сохраняется на локальные диски. Такая архитектура обеспечивает:
@@ -34,8 +30,6 @@ Shared Catalog **не реплицирует сами таблицы**, но о
- Отсутствие состояния у вычислительных узлов (stateless)
- Быстрый и надёжный запуск реплик
-
-
## Shared database engine {#shared-database-engine}
**Shared database engine** работает совместно с Shared Catalog для управления базами данных, таблицы которых используют **stateless‑движки таблиц**, такие как `SharedMergeTree`. Эти движки таблиц не записывают постоянное состояние на диск и совместимы с динамическими вычислительными средами.
@@ -69,8 +63,6 @@ Shared database engine развивает и улучшает поведение
- **Централизованное, версионируемое состояние метаданных**
Shared Catalog хранит единый источник истины в ZooKeeper. Когда реплика запускается, она получает последнее состояние и применяет разницу (diff), чтобы достичь согласованности. Во время выполнения запроса система может дождаться, пока другие реплики достигнут как минимум требуемой версии метаданных для обеспечения корректности.
-
-
## Использование в ClickHouse Cloud {#usage-in-clickhouse-cloud}
Для конечных пользователей использование Shared Catalog и движка базы данных Shared не требует какой-либо дополнительной настройки. Создание базы данных осуществляется как обычно:
@@ -81,7 +73,6 @@ CREATE DATABASE my_database;
ClickHouse Cloud автоматически назначает базам данных движок базы данных Shared. Любые таблицы, созданные в такой базе данных с использованием stateless-движков, автоматически получают все преимущества репликации и координации, обеспечиваемых Shared Catalog.
-
## Краткое содержание {#summary}
Shared Catalog и движок базы данных Shared обеспечивают:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/shared-merge-tree.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/shared-merge-tree.md
index b44cbf73550..8f9e45da698 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/shared-merge-tree.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/shared-merge-tree.md
@@ -11,7 +11,6 @@ import shared_merge_tree from '@site/static/images/cloud/reference/shared-merge-
import shared_merge_tree_2 from '@site/static/images/cloud/reference/shared-merge-tree-2.png';
import Image from '@theme/IdealImage';
-
# Движок таблиц SharedMergeTree {#sharedmergetree-table-engine}
Семейство движков таблиц SharedMergeTree — это облачный (cloud‑native) аналог движков ReplicatedMergeTree, оптимизированный для работы поверх общего хранилища (например, Amazon S3, Google Cloud Storage, MinIO, Azure Blob Storage). Для каждого конкретного типа движка MergeTree существует соответствующий SharedMergeTree, то есть ReplacingSharedMergeTree заменяет ReplacingReplicatedMergeTree.
@@ -34,8 +33,6 @@ import Image from '@theme/IdealImage';
В отличие от ReplicatedMergeTree, SharedMergeTree не требует, чтобы реплики напрямую обменивались данными друг с другом. Вместо этого весь обмен происходит через общее хранилище и clickhouse-keeper. SharedMergeTree реализует асинхронную репликацию без лидера и использует clickhouse-keeper для координации и хранения метаданных. Это означает, что метаданные не нужно реплицировать при изменении масштаба сервиса. Это приводит к более быстрой репликации, выполнению мутаций, слияниям и операциям масштабирования. SharedMergeTree поддерживает сотни реплик для каждой таблицы, что делает возможным динамическое масштабирование без шардов. В ClickHouse Cloud используется подход распределённого выполнения запросов для задействования большего количества вычислительных ресурсов на один запрос.
-
-
## Интроспекция {#introspection}
Большинство системных таблиц, используемых для интроспекции ReplicatedMergeTree, доступны и для SharedMergeTree, за исключением `system.replication_queue` и `system.replicated_fetches`, так как в SharedMergeTree нет репликации данных и метаданных. Однако для этих двух таблиц в SharedMergeTree есть соответствующие альтернативы.
@@ -48,8 +45,6 @@ import Image from '@theme/IdealImage';
Эта таблица является альтернативой `system.replicated_fetches` для SharedMergeTree. Она содержит информацию о текущих выполняющихся операциях выборки (fetches) первичных ключей и контрольных сумм в память.
-
-
## Включение SharedMergeTree {#enabling-sharedmergetree}
`SharedMergeTree` включён по умолчанию.
@@ -103,7 +98,6 @@ ENGINE = SharedReplacingMergeTree('/clickhouse/tables/{uuid}/{shard}', '{replica
ORDER BY key
```
-
## Настройки {#settings}
Поведение некоторых настроек значительно изменилось:
@@ -112,8 +106,6 @@ ORDER BY key
- `insert_quorum_parallel` -- все вставки в SharedMergeTree являются кворумными вставками (записываются в общее хранилище), поэтому эта настройка не требуется при использовании движка таблицы SharedMergeTree.
- `select_sequential_consistency` -- не требует кворумных вставок, приведёт к дополнительной нагрузке на clickhouse-keeper при выполнении запросов `SELECT`
-
-
## Согласованность {#consistency}
SharedMergeTree обеспечивает более сильные (lightweight) гарантии согласованности, чем ReplicatedMergeTree. При вставке в SharedMergeTree вам не нужно указывать настройки, такие как `insert_quorum` или `insert_quorum_parallel`. Вставки являются кворумными, то есть метаданные будут сохранены в ClickHouse-Keeper, и эти метаданные реплицируются как минимум на кворум узлов ClickHouse-Keeper. Каждая реплика в вашем кластере будет асинхронно получать новую информацию из ClickHouse-Keeper.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/warehouses.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/warehouses.md
index 37b419ec8d1..e3d15a64704 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/warehouses.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/04_infrastructure/warehouses.md
@@ -15,11 +15,8 @@ import compute_7 from '@site/static/images/cloud/reference/compute-compute-7.png
import compute_8 from '@site/static/images/cloud/reference/compute-compute-8.png';
import Image from '@theme/IdealImage';
-
# Хранилища {#warehouses}
-
-
## Что такое разделение вычислительных ресурсов (compute-compute)? {#what-is-compute-compute-separation}
Разделение вычислительных ресурсов (compute-compute) доступно для тарифов Scale и Enterprise.
@@ -51,8 +48,6 @@ _Рис. 2 — разделение вычислительных ресурсо
Можно создавать дополнительные сервисы, которые совместно используют те же данные, что и ваши существующие сервисы, или настроить полностью новую конфигурацию с несколькими сервисами, совместно использующими одни и те же данные.
-
-
## Что такое warehouse? {#what-is-a-warehouse}
В ClickHouse Cloud _warehouse_ — это набор сервисов, которые используют одни и те же данные.
@@ -75,8 +70,6 @@ _Рис. 3 — Пример warehouse_
Вы можете сортировать сервисы по warehouse, к которому они относятся.
-
-
## Контроль доступа {#access-controls}
### Учетные данные базы данных {#database-credentials}
@@ -116,8 +109,6 @@ _Рис. 6 — Сервисы с правами чтения-записи и т
2. В настоящее время обновляемые материализованные представления выполняются на всех сервисах в рамках warehouse, включая сервисы только для чтения. В будущем это поведение будет изменено, и они будут выполняться только на сервисах с правами чтения-записи.
:::
-
-
## Масштабирование {#scaling}
Каждый сервис в Warehouse можно настроить под вашу нагрузку по следующим параметрам:
@@ -126,13 +117,9 @@ _Рис. 6 — Сервисы с правами чтения-записи и т
- Нужно ли автоматически масштабировать сервис
- Нужно ли переводить сервис в режим простоя при отсутствии активности (не может быть применено к первому сервису в группе — см. раздел **Ограничения**)
-
-
## Изменения в поведении {#changes-in-behavior}
После того как для сервиса включён режим compute-compute (создан хотя бы один вторичный сервис), вызов функции `clusterAllReplicas()` с именем кластера `default` будет использовать только реплики того сервиса, в котором она была вызвана. Это означает, что если два сервиса подключены к одному и тому же набору данных и `clusterAllReplicas(default, system, processes)` вызывается из сервиса 1, будут показаны только процессы, запущенные на сервисе 1. При необходимости вы по-прежнему можете вызвать, например, `clusterAllReplicas('all_groups.default', system, processes)`, чтобы обратиться ко всем репликам.
-
-
## Ограничения {#limitations}
1. **Основной сервис всегда должен быть запущен и не может переходить в режим простоя (это ограничение будет снято через некоторое время после GA).** Во время private preview и некоторое время после GA основной сервис (обычно это существующий сервис, который вы хотите расширить, добавив другие сервисы) всегда будет работать, и для него будет отключена настройка простоя. Вы не сможете остановить или перевести в режим простоя основной сервис, если существует хотя бы один вторичный сервис. Как только все вторичные сервисы будут удалены, вы снова сможете остановить или перевести в режим простоя исходный сервис.
@@ -154,22 +141,17 @@ SETTINGS distributed_ddl_task_timeout=0
7. **В настоящее время действует мягкий лимит — не более 5 сервисов на один warehouse.** Обратитесь в службу поддержки, если вам нужно использовать более 5 сервисов в одном warehouse.
-
## Цены {#pricing}
Стоимость вычислительных ресурсов одинакова для всех сервисов в хранилище (основном и дополнительном). Хранение данных тарифицируется только один раз — оно включено в первый (исходный) сервис.
Воспользуйтесь калькулятором на странице [Pricing](https://clickhouse.com/pricing), который поможет оценить стоимость в зависимости от размера вашей нагрузки и выбранного тарифа.
-
-
## Резервные копии {#backups}
- Поскольку все сервисы в одном warehouse используют одно и то же хранилище, резервные копии создаются только на основном (первичном) сервисе. Таким образом, в резервную копию попадают данные всех сервисов в этом warehouse.
- Если вы восстанавливаете резервную копию с основного сервиса warehouse, она будет развёрнута как полностью новый сервис, не связанный с существующим warehouse. Затем вы можете добавить дополнительные сервисы к этому новому сервису сразу после завершения восстановления.
-
-
## Использование хранилищ {#using-warehouses}
### Создание хранилища {#creating-a-warehouse}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/api-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/api-overview.md
index 119938da5de..4d128775e2a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/api-overview.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/api-overview.md
@@ -8,12 +8,8 @@ doc_type: 'reference'
keywords: ['ClickHouse Cloud', 'обзор API', 'облачный API', 'REST API', 'программный доступ']
---
-
-
# API ClickHouse Cloud {#clickhouse-cloud-api}
-
-
## Обзор {#overview}
ClickHouse Cloud API — это REST API, предназначенный для разработчиков и упрощающий управление
@@ -23,8 +19,6 @@ ClickHouse Cloud API — это REST API, предназначенный для
[Узнайте, как создать свой первый API-ключ и начать использовать ClickHouse Cloud API.](/cloud/manage/openapi)
-
-
## Конечная точка и интерфейс Swagger (OpenAPI) {#swagger-openapi-endpoint-and-ui}
API ClickHouse Cloud построен на основе открытой [спецификации OpenAPI](https://www.openapis.org/),
@@ -40,14 +34,10 @@ API ClickHouse Cloud построен на основе открытой [спе
Это повлияет на объекты, возвращаемые запросами `POST`, `GET` и `PATCH` для сервисов. Поэтому любой код, который использует этот API, может потребовать доработки для корректной обработки этих изменений.
:::
-
-
## Лимиты {#rate-limits}
Для разработчиков установлено ограничение — не более 100 API‑ключей на организацию. Каждый API‑ключ имеет лимит в 10 запросов за 10 секунд. Если вы хотите увеличить количество API‑ключей или число запросов в 10‑секундное окно для вашей организации, свяжитесь с support@clickhouse.com.
-
-
## Провайдер Terraform {#terraform-provider}
Официальный провайдер Terraform для ClickHouse позволяет использовать [инфраструктуру как код (Infrastructure as Code)](https://www.redhat.com/en/topics/automation/what-is-infrastructure-as-code-iac)
@@ -65,16 +55,12 @@ API ClickHouse Cloud построен на основе открытой [спе
Теперь вы также сможете указывать поле `num_replicas` как свойство ресурса сервиса.
:::
-
-
## Terraform и OpenAPI: новое ценообразование и настройки реплик {#terraform-and-openapi-new-pricing---replica-settings-explained}
Число реплик, с которым создаётся каждый сервис, по умолчанию равно 3 для тарифов Scale и Enterprise и 1 для тарифа Basic.
Для тарифов Scale и Enterprise его можно изменить, передав поле `numReplicas` в запросе на создание сервиса.
Значение поля `numReplicas` для первого сервиса в хранилище должно быть от 2 до 20. Сервисы, которые создаются в уже существующем хранилище, могут иметь не менее 1 реплики.
-
-
## Поддержка {#support}
Мы рекомендуем сначала обратиться в [наш канал в Slack](https://clickhouse.com/slack), чтобы получить оперативную поддержку. Если
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/openapi.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/openapi.md
index d2ec22f1d4a..7acae6b1934 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/openapi.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/openapi.md
@@ -14,7 +14,6 @@ import image_04 from '@site/static/images/cloud/manage/openapi4.png';
import image_05 from '@site/static/images/cloud/manage/openapi5.png';
import Image from '@theme/IdealImage';
-
# Управление ключами API {#managing-api-keys}
ClickHouse Cloud предоставляет API на основе OpenAPI, который позволяет программно управлять вашей учетной записью и различными параметрами ваших сервисов.
@@ -68,7 +67,6 @@ $ curl --user $KEY_ID:$KEY_SECRET https://api.clickhouse.cloud/v1/organizations
-
## Конечные точки {#endpoints}
Подробную информацию о конечных точках API см. в [справочнике по API](https://clickhouse.com/docs/cloud/manage/api/swagger).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/postman.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/postman.md
index 9aff1f7d657..07016c2d848 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/postman.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/api/postman.md
@@ -90,7 +90,6 @@ import postman17 from '@site/static/images/cloud/manage/postman/postman17.png';
-
## Тестирование возможностей ClickHouse Cloud API {#test-the-clickhouse-cloud-api-functionalities}
### Тест «GET list of available organizations» {#test-get-list-of-available-organizations}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/upgrades.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/upgrades.md
index d5067c125ef..80e5d028e12 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/upgrades.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/05_admin_features/upgrades.md
@@ -15,7 +15,6 @@ import enroll_fast_release from '@site/static/images/cloud/manage/enroll_fast_re
import scheduled_upgrades from '@site/static/images/cloud/manage/scheduled_upgrades.png';
import scheduled_upgrade_window from '@site/static/images/cloud/manage/scheduled_upgrade_window.png';
-
# Обновления {#upgrades}
С ClickHouse Cloud вам не нужно заботиться о патчах и обновлениях. Мы регулярно внедряем обновления, которые включают исправления, новые функции и улучшения производительности. Полный список новых возможностей в ClickHouse смотрите в нашем [Cloud changelog](/whats-new/cloud).
@@ -26,8 +25,6 @@ import scheduled_upgrade_window from '@site/static/images/cloud/manage/scheduled
В рамках этого изменения исторические данные системных таблиц будут сохраняться максимум 30 дней как часть событий обновления. Кроме того, любые данные системных таблиц старше 19 декабря 2024 года для сервисов на AWS или GCP и старше 14 января 2025 года для сервисов на Azure не будут сохранены при миграции на новые уровни организации.
:::
-
-
## Совместимость версий {#version-compatibility}
Когда вы создаёте сервис, настройка [`compatibility`](/operations/settings/settings#compatibility) устанавливается на самую актуальную версию ClickHouse, доступную в ClickHouse Cloud на момент первоначального развёртывания сервиса.
@@ -36,16 +33,12 @@ import scheduled_upgrade_window from '@site/static/images/cloud/manage/scheduled
Вы не можете управлять значением настройки `compatibility` по умолчанию на уровне сервиса. Вам необходимо [обратиться в службу поддержки](https://clickhouse.com/support/program), если вы хотите изменить версию, установленную по умолчанию в настройке `compatibility` для вашего сервиса. Однако вы можете переопределить настройку `compatibility` на уровне пользователя, роли, профиля, запроса или сеанса, используя стандартные механизмы настройки ClickHouse, такие как `SET compatibility = '22.3'` в сеансе или `SETTINGS compatibility = '22.3'` в запросе.
-
-
## Режим обслуживания {#maintenance-mode}
Иногда нам может потребоваться обновить ваш сервис, и для этого может понадобиться временно отключить некоторые функции, например масштабирование или автоматический перевод в режим простоя. В редких случаях нам может потребоваться вмешаться в работу сервиса, который испытывает проблемы, и вернуть его в корректное состояние. Во время такого обслуживания на странице сервиса будет отображаться баннер с надписью _«Выполняется обслуживание»_. В этот период вы, возможно, всё ещё сможете выполнять запросы к сервису.
С вас не будет взиматься плата за время, пока сервис находится на обслуживании. _Режим обслуживания_ — редкий режим и его не следует путать с плановыми обновлениями сервиса.
-
-
## Каналы релизов (график обновлений) {#release-channels-upgrade-schedule}
Пользователи могут задавать график обновлений своего сервиса ClickHouse Cloud, подписываясь на конкретный канал релизов. Доступно три канала релизов, и пользователь может настроить день и время недели для обновлений с помощью функции **scheduled upgrades** (плановых обновлений).
@@ -112,8 +105,6 @@ import scheduled_upgrade_window from '@site/static/images/cloud/manage/scheduled
- Переход на более медленный канал не приведёт к откату версии сервиса; он останется на текущей версии до появления более новой версии в этом канале, то есть при переходе с обычного на медленный или с быстрого на обычный или медленный.
:::
-
-
## Плановые обновления {#scheduled-upgrades}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/06_security.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/06_security.md
index 2d50f9c7e9c..dedcd06e939 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/06_security.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/06_security.md
@@ -7,16 +7,12 @@ doc_type: 'reference'
keywords: ['безопасность', 'безопасность в облаке', 'управление доступом', 'соответствие нормативным требованиям', 'защита данных']
---
-
-
# Безопасность ClickHouse Cloud {#clickhouse-cloud-security}
В этом документе подробно рассматриваются варианты обеспечения безопасности и рекомендуемые практики для защиты организации и сервисов ClickHouse.
ClickHouse уделяет особое внимание предоставлению защищённых решений на основе аналитической базы данных, поэтому защита данных и обеспечение целостности сервиса являются приоритетом.
Представленная здесь информация охватывает различные методы, призванные помочь пользователям в обеспечении безопасности их сред ClickHouse.
-
-
## Аутентификация в облачной консоли {#cloud-console-auth}
### Аутентификация по паролю {#password-auth}
@@ -49,8 +45,6 @@ ClickHouse Cloud поддерживает социальную аутентиф
Подробнее об [аутентификации API](/cloud/manage/openapi).
-
-
## Аутентификация в базе данных {#database-auth}
### Аутентификация по паролю базы данных {#db-password-auth}
@@ -65,8 +59,6 @@ ClickHouse Cloud поддерживает социальную аутентиф
Узнайте больше об [аутентификации через SSH](/cloud/security/manage-database-users#database-ssh).
-
-
## Контроль доступа {#access-control}
### Ролевое управление доступом в консоли (RBAC) {#console-rbac}
@@ -81,8 +73,6 @@ ClickHouse Cloud поддерживает назначение ролей для
Узнайте больше о [грантах пользователям базы данных](/cloud/security/manage-database-users#database-permissions).
-
-
## Сетевая безопасность {#network-security}
### IP-фильтры {#ip-filters}
@@ -97,8 +87,6 @@ ClickHouse Cloud поддерживает назначение ролей для
Подробнее о [приватном подключении](/cloud/security/connectivity/private-networking).
-
-
## Шифрование {#encryption}
### Шифрование на уровне хранилища {#storage-encryption}
@@ -119,8 +107,6 @@ ClickHouse Cloud по умолчанию шифрует данные в сост
Узнайте подробнее о [ключах шифрования, управляемых клиентом](/cloud/security/cmek#customer-managed-encryption-keys-cmek).
-
-
## Аудит и ведение журналов {#auditing-logging}
### Журнал аудита консоли {#console-audit-log}
@@ -141,8 +127,6 @@ ClickHouse Cloud по умолчанию шифрует данные в сост
Подробнее о [руководстве по безопасности BYOC (BYOC Security Playbook)](/cloud/security/audit-logging/byoc-security-playbook).
-
-
## Соответствие требованиям {#compliance}
### Отчёты по безопасности и соответствию требованиям {#compliance-reports}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/07_monitoring/advanced_dashboard.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/07_monitoring/advanced_dashboard.md
index c70f17f2a18..238639547bb 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/07_monitoring/advanced_dashboard.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/07_monitoring/advanced_dashboard.md
@@ -28,7 +28,6 @@ import Image from '@theme/IdealImage';
так и в ClickHouse Cloud. В этой статье мы покажем, как использовать расширенную панель мониторинга в
ClickHouse Cloud.
-
## Доступ к расширенной панели мониторинга {#accessing-the-advanced-dashboard}
Перейдите к расширенной панели мониторинга:
@@ -38,8 +37,6 @@ ClickHouse Cloud.
-
-
## Доступ к встроенной расширенной панели мониторинга {#accessing-the-native-advanced-dashboard}
К встроенной расширенной панели мониторинга можно получить доступ, перейдя в:
@@ -58,8 +55,6 @@ ClickHouse Cloud.
-
-
## Готовые визуализации {#out-of-box-visualizations}
Базовые графики в Advanced Dashboard предназначены для обеспечения
@@ -96,8 +91,6 @@ ClickHouse Cloud.
| OS CPU Usage (Userspace) | Использование CPU для выполнения кода в пространстве пользователя |
| OS CPU Usage (Kernel) | Использование CPU для выполнения кода ядра |
-
-
## Особенности ClickHouse Cloud {#clickhouse-cloud-specific}
ClickHouse Cloud хранит данные в объектном хранилище типа S3. Мониторинг этого уровня может помочь вовремя обнаруживать проблемы.
@@ -116,8 +109,6 @@ ClickHouse Cloud хранит данные в объектном хранили
| Network receive bytes/sec | Отслеживает текущую скорость входящего сетевого трафика |
| Concurrent network connections | Отслеживает количество текущих одновременных сетевых соединений |
-
-
## Определение проблем с помощью расширенной панели мониторинга {#identifying-issues-with-the-advanced-dashboard}
Наличие такого представления в реальном времени о состоянии вашего сервиса ClickHouse значительно помогает
@@ -219,7 +210,6 @@ read_rows: 150957260
tables: ['default.amazon_reviews_no_pk']
```
-
Строка 2:
──────
type: QueryFinish
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/07_monitoring/prometheus.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/07_monitoring/prometheus.md
index d666191d393..7fb78c9557a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/07_monitoring/prometheus.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/features/07_monitoring/prometheus.md
@@ -15,7 +15,6 @@ import prometheus_grafana_metrics_explorer from '@site/static/images/integration
import prometheus_datadog from '@site/static/images/integrations/prometheus-datadog.png';
import Image from '@theme/IdealImage';
-
# Интеграция с Prometheus {#prometheus-integration}
Данная возможность поддерживает интеграцию с [Prometheus](https://prometheus.io/) для мониторинга сервисов ClickHouse Cloud. Доступ к метрикам Prometheus предоставляется через endpoint [ClickHouse Cloud API](/cloud/manage/api/api-overview), который позволяет пользователям безопасно подключаться и экспортировать метрики в свой сборщик метрик Prometheus. Эти метрики можно интегрировать с дашбордами, например, Grafana и Datadog, для визуализации.
@@ -59,7 +58,6 @@ export SERVICE_ID=
curl --silent --user $KEY_ID:$KEY_SECRET https://api.clickhouse.cloud/v1/organizations/$ORG_ID/services/$SERVICE_ID/prometheus?filtered_metrics=true
```
-
### Пример ответа {#sample-response}
```response
@@ -187,7 +185,6 @@ scrape_configs:
Обратите внимание, что для корректного заполнения метки `instance` параметр конфигурации `honor_labels` должен быть установлен в значение `true`. Кроме того, в приведённом выше примере `filtered_metrics` установлено в `true`, однако это значение следует настраивать в соответствии с предпочтениями пользователя.
-
## Интеграция с Grafana {#integrating-with-grafana}
Существует два основных способа интеграции с Grafana:
@@ -260,7 +257,6 @@ prometheus.remote_write "metrics_service" {
Обратите внимание: чтобы метка `instance` заполнялась корректно, параметр конфигурации `honor_labels` должен иметь значение `true`.
-
### Самостоятельно управляемая Grafana с Alloy {#grafana-self-managed-with-alloy}
Пользователи, развернувшие Grafana самостоятельно, могут найти инструкции по установке агента Alloy [здесь](https://grafana.com/docs/alloy/latest/get-started/install/). Мы предполагаем, что Alloy настроен на отправку метрик Prometheus в нужное целевое назначение. Компонент `prometheus.scrape` ниже настраивает Alloy на опрос конечной точки ClickHouse Cloud Endpoint. Мы предполагаем, что `prometheus.remote_write` получает собранные метрики. При необходимости измените значение ключа `forward_to` на нужное целевое назначение.
@@ -293,7 +289,6 @@ prometheus.scrape "clickhouse_cloud" {
Обратите внимание, что параметр конфигурации `honor_labels` должен быть установлен в значение `true`, чтобы метка `instance` заполнялась корректно.
-
## Интеграция с Datadog {#integrating-with-datadog}
Вы можете использовать агент [Datadog Agent](https://docs.datadoghq.com/agent/?tab=Linux) и [интеграцию OpenMetrics](https://docs.datadoghq.com/integrations/openmetrics/) для сбора метрик с endpoint ClickHouse Cloud. Ниже приведён простой пример конфигурации для этого агента и интеграции. Обратите внимание, что, возможно, имеет смысл отбирать только те метрики, которые представляют для вас наибольший интерес. Приведённый ниже универсальный пример будет экспортировать тысячи комбинаций «метрика–экземпляр», которые Datadog будет рассматривать как пользовательские метрики.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/SQL_console/query-endpoints.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/SQL_console/query-endpoints.md
index 1c4b849e09d..2886d1d0a30 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/SQL_console/query-endpoints.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/SQL_console/query-endpoints.md
@@ -17,7 +17,6 @@ import endpoints_monitoring from '@site/static/images/cloud/sqlconsole/endpoints
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-
# Настройка конечных точек API для запросов {#setting-up-query-api-endpoints}
Возможность **Query API Endpoints** позволяет создавать конечные точки API непосредственно из любого сохранённого SQL-запроса в консоли ClickHouse Cloud. Вы сможете обращаться к конечным точкам API по HTTP для выполнения своих сохранённых запросов без необходимости подключаться к вашему сервису ClickHouse Cloud через нативный драйвер.
@@ -135,7 +134,6 @@ GET /query-endpoints/{queryEndpointId}/run
POST /query-endpoints/{queryEndpointId}/run
```
-
### HTTP-методы {#http-methods}
| Метод | Сценарий использования | Параметры |
@@ -251,7 +249,6 @@ POST /query-endpoints/{queryEndpointId}/run
SELECT database, name AS num_tables FROM system.tables LIMIT 3;
```
-
#### Версия 1 {#version-1}
@@ -428,7 +425,6 @@ SELECT name, database FROM system.tables WHERE match(name, {tableNameRegex: Stri
-
### Запрос с массивом в переменных запроса, вставляющий данные в таблицу {#request-with-array-in-the-query-variables-that-inserts-data-into-a-table}
**SQL таблицы:**
@@ -492,7 +488,6 @@ INSERT INTO default.t_arr VALUES ({arr: Array(Array(Array(UInt32)))});
-
### Запрос с настройкой ClickHouse `max_threads`, равной 8 {#request-with-clickhouse-settings-max_threads-set-to-8}
**SQL для конечной точки Query API:**
@@ -539,7 +534,6 @@ SELECT * FROM system.tables;
-
### Выполнить запрос и разобрать ответ как поток` {#request-and-parse-the-response-as-a-stream}
**SQL для конечной точки Query API:**
@@ -610,7 +604,6 @@ SELECT name, database FROM system.tables;
-
### Вставка потока из файла в таблицу {#insert-a-stream-from-a-file-into-a-table}
Создайте файл `./samples/my_first_table_2024-07-11.csv` со следующим содержимым:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/backups/01_review-and-restore-backups.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/backups/01_review-and-restore-backups.md
index 85c28be3302..a2707ce3dd4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/backups/01_review-and-restore-backups.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/backups/01_review-and-restore-backups.md
@@ -17,21 +17,16 @@ import backup_usage from '@site/static/images/cloud/manage/backup-usage.png';
import backup_restore from '@site/static/images/cloud/manage/backup-restore.png';
import backup_service_provisioning from '@site/static/images/cloud/manage/backup-service-provisioning.png';
-
# Просмотр и восстановление резервных копий {#review-and-restore-backups}
В этом руководстве рассматривается, как работают резервные копии в ClickHouse Cloud, какие параметры доступны для настройки резервного копирования вашего сервиса и как выполнить восстановление из резервной копии.
-
-
## Список статусов резервных копий {#backup-status-list}
Резервные копии вашего сервиса будут создаваться по заданному расписанию — будь то ежедневное расписание по умолчанию или [пользовательское расписание](/cloud/manage/backups/configurable-backups), выбранное вами. Все доступные резервные копии можно просмотреть на вкладке сервиса **Backups**. Здесь вы можете увидеть статус резервной копии, продолжительность её создания, а также размер. Вы также можете восстановить конкретную резервную копию, используя столбец **Actions**.
-
-
## Понимание стоимости резервного копирования {#understanding-backup-cost}
Согласно стандартной политике, ClickHouse Cloud предусматривает ежедневное создание резервной копии с периодом хранения 24 часа. Выбор расписания, предполагающего хранение большего объема данных или более частое создание резервных копий, может привести к дополнительным затратам на хранение резервных копий.
@@ -50,8 +45,6 @@ import backup_service_provisioning from '@site/static/images/cloud/manage/backup
Имейте в виду, что оценочная стоимость резервного копирования будет меняться по мере роста объема данных в сервисе.
:::
-
-
## Восстановление резервной копии {#restore-a-backup}
Резервные копии восстанавливаются в новый сервис ClickHouse Cloud, а не в существующий сервис, с которого была создана резервная копия.
@@ -64,8 +57,6 @@ import backup_service_provisioning from '@site/static/images/cloud/manage/backup
-
-
## Работа с восстановленным сервисом {#working-with-your-restored-service}
После восстановления резервной копии у вас будет два похожих сервиса: **исходный сервис**, который требовалось восстановить, и новый **восстановленный сервис**, восстановленный из резервной копии исходного сервиса.
@@ -147,7 +138,6 @@ FROM remoteSecure('source-hostname', db, table, 'exporter', 'password-here')
После успешной записи данных в исходный сервис обязательно проверьте их в этом сервисе. После проверки данных удалите новый сервис.
-
## Восстановление удалённых таблиц {#undeleting-or-undropping-tables}
Команда `UNDROP` поддерживается в ClickHouse Cloud через [Shared Catalog](https://clickhouse.com/docs/cloud/reference/shared-catalog).
@@ -169,13 +159,10 @@ SYNC SETTINGS max_table_size_to_drop=2000000000000 -- увеличивает о
Устаревшие тарифные планы: для клиентов на таких планах стандартные ежедневные резервные копии с хранением в течение 24 часов включены в стоимость хранилища.
:::
-
## Настраиваемые резервные копии {#configurable-backups}
Если вы хотите задать другое расписание резервного копирования, чем используется по умолчанию, ознакомьтесь с разделом [Настраиваемые резервные копии](/cloud/manage/backups/configurable-backups).
-
-
## Экспорт резервных копий в собственный облачный аккаунт {#export-backups-to-your-own-cloud-account}
Инструкции для пользователей, которые хотят экспортировать резервные копии в собственный облачный аккаунт, см. [здесь](/cloud/manage/backups/export-backups-to-own-cloud-account).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/best_practices/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/best_practices/index.md
index 85751d66768..39847516590 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/best_practices/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/best_practices/index.md
@@ -9,7 +9,6 @@ doc_type: 'landing-page'
import TableOfContents from '@site/i18n/ru/docusaurus-plugin-content-docs/current/best-practices/_snippets/_table_of_contents.md';
-
# Лучшие практики использования ClickHouse Cloud {#best-practices-in-clickhouse-cloud}
В этом разделе представлены рекомендации, которые помогут максимально эффективно использовать ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/best_practices/multitenancy.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/best_practices/multitenancy.md
index eac29556e7a..babbe7a1ce4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/best_practices/multitenancy.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/best_practices/multitenancy.md
@@ -91,7 +91,6 @@ GRANT user_role TO user_1
GRANT user_role TO user_2
```
-
Теперь вы можете подключиться под пользователем `user_1` и выполнить простой запрос SELECT. Будут возвращены только строки из первого тенанта.
```sql
@@ -108,7 +107,6 @@ FROM events
└───────────┴──────────────────────────────────────┴─────────────┴─────────────────────┴─────────┴─────────────────────────────────────────┘
```
-
## Отдельные таблицы {#separate-tables}
В этом подходе данные каждого арендатора хранятся в отдельной таблице в той же базе данных, что устраняет необходимость в специальном поле для идентификации арендаторов. Доступ пользователей ограничивается с помощью [оператора GRANT](/sql-reference/statements/grant), благодаря чему каждый пользователь может получить доступ только к таблицам, содержащим данные соответствующих арендаторов.
@@ -201,7 +199,6 @@ FROM default.events_tenant_1
└──────────────────────────────────────┴─────────────┴─────────────────────┴─────────┴─────────────────────────────────────────┘
```
-
## Раздельные базы данных {#separate-databases}
Данные каждого арендатора хранятся в отдельной базе данных в одном и том же сервисе ClickHouse.
@@ -286,7 +283,6 @@ GRANT SELECT ON tenant_1.events TO user_1
GRANT SELECT ON tenant_2.events TO user_2
```
-
Теперь вы можете подключиться под пользователем `user_1` и выполнить простой SELECT-запрос к таблице `events` соответствующей базы данных. Будут возвращены только строки первого арендатора.
```sql
@@ -303,7 +299,6 @@ FROM tenant_1.events
└──────────────────────────────────────┴─────────────┴─────────────────────┴─────────┴─────────────────────────────────────────┘
```
-
## Разделение вычислительных ресурсов {#compute-compute-separation}
Три описанных выше подхода также можно дополнительно изолировать с помощью [Warehouses](/cloud/reference/warehouses#what-is-a-warehouse). Данные хранятся в общем объектном хранилище, но каждый арендатор может иметь собственный вычислительный сервис благодаря [разделению вычислительных ресурсов](/cloud/reference/warehouses#what-is-compute-compute-separation) с разным соотношением CPU/Memory.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/cloud-compatibility.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/cloud-compatibility.md
index ed476f2167f..fb9f29b3259 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/cloud-compatibility.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/cloud-compatibility.md
@@ -7,14 +7,10 @@ keywords: ['ClickHouse Cloud', 'совместимость']
doc_type: 'guide'
---
-
-
# Руководство по совместимости с ClickHouse Cloud {#clickhouse-cloud-compatibility-guide}
Это руководство даёт общее представление о функциональных возможностях и особенностях эксплуатации ClickHouse Cloud. Хотя ClickHouse Cloud основан на дистрибутиве ClickHouse с открытым исходным кодом, возможны некоторые различия в архитектуре и реализации. В качестве вводного материала может быть полезно прочитать эту запись в блоге о том, [как мы создали ClickHouse Cloud](https://clickhouse.com/blog/building-clickhouse-cloud-from-scratch-in-a-year).
-
-
## Архитектура ClickHouse Cloud {#clickhouse-cloud-architecture}
ClickHouse Cloud значительно упрощает эксплуатацию и снижает затраты на использование ClickHouse в больших масштабах. Нет необходимости заранее задавать размер развертывания, настраивать репликацию для высокой доступности, вручную шардировать данные, масштабировать серверы при росте нагрузки или уменьшать их, когда вы ими не пользуетесь — мы берем это на себя.
@@ -26,8 +22,6 @@ ClickHouse Cloud значительно упрощает эксплуатаци
- Плавная гибернация для периодических рабочих нагрузок включена по умолчанию. Мы автоматически приостанавливаем вычислительные ресурсы после периода простоя и прозрачно запускаем их снова при поступлении нового запроса, так что вам не приходится платить за неиспользуемые ресурсы.
- Расширенные параметры масштабирования позволяют задать максимальный порог автомасштабирования для дополнительного контроля затрат или минимальный порог автомасштабирования для резервирования вычислительных ресурсов для приложений с особыми требованиями к производительности.
-
-
## Возможности {#capabilities}
ClickHouse Cloud предоставляет доступ к отобранному набору возможностей из открытой дистрибуции ClickHouse. В таблицах ниже описаны некоторые функции, которые в данный момент отключены в ClickHouse Cloud.
@@ -107,8 +101,6 @@ ClickHouse Cloud поддерживает HTTPS, нативные интерфе
[Именованные коллекции](/operations/named-collections) в настоящее время не поддерживаются в ClickHouse Cloud.
-
-
## Операционные значения по умолчанию и особенности {#operational-defaults-and-considerations}
Ниже приведены настройки по умолчанию для сервисов ClickHouse Cloud. В некоторых случаях эти параметры зафиксированы, чтобы обеспечить корректную работу сервиса, а в других — могут быть изменены.
@@ -132,8 +124,6 @@ ClickHouse Cloud оптимизирован для переменных нагр
### Расширенное администрирование безопасности {#advanced-security-administration}
В рамках создания сервиса ClickHouse мы создаем базу данных по умолчанию и пользователя по умолчанию, который имеет широкие права доступа к этой базе данных. Этот начальный пользователь может создавать дополнительных пользователей и назначать им права на эту базу данных. Помимо этого, возможность включения в базе данных таких механизмов безопасности, как аутентификация по Kerberos, LDAP или SSL с использованием сертификатов X.509, в настоящее время не поддерживается.
-
-
## Дорожная карта {#roadmap}
Мы внедряем поддержку исполняемых UDF в ClickHouse Cloud и оцениваем спрос на ряд других функций. Если у вас есть предложения или вы хотите запросить добавление конкретной функции, пожалуйста, [отправьте запрос здесь](https://console.clickhouse.cloud/support).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/data_sources/02_accessing-s3-data-securely.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/data_sources/02_accessing-s3-data-securely.md
index 845a6ad82d0..f706ceb2ee1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/data_sources/02_accessing-s3-data-securely.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/data_sources/02_accessing-s3-data-securely.md
@@ -14,7 +14,6 @@ import s3_output from '@site/static/images/cloud/security/secures3_output.jpg';
В этой статье показано, как клиенты ClickHouse Cloud могут использовать ролевой доступ для аутентификации в Amazon Simple Storage Service (S3) и безопасного доступа к своим данным.
-
## Введение {#introduction}
Прежде чем переходить к настройке безопасного доступа к S3, важно понять, как это работает. Ниже приведён обзор того, как сервисы ClickHouse могут получать доступ к приватным S3‑бакетам, принимая на себя роль в аккаунте AWS клиента.
@@ -130,7 +129,6 @@ import s3_output from '@site/static/images/cloud/security/secures3_output.jpg';
4 - После создания скопируйте новый **IAM Role Arn**. Он понадобится для доступа к вашему S3-бакету.
-
## Доступ к бакету S3 с ролью ClickHouseAccess {#access-your-s3-bucket-with-the-clickhouseaccess-role}
В ClickHouse Cloud появилась новая возможность указывать параметр `extra_credentials` в S3 table function. Ниже приведён пример того, как выполнить запрос, используя только что созданную роль, скопированную выше.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/03_onboarding/01_aws.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/03_onboarding/01_aws.md
index b2ef0f235df..92450dbfa11 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/03_onboarding/01_aws.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/03_onboarding/01_aws.md
@@ -16,7 +16,6 @@ import byoc_subnet_1 from '@site/static/images/cloud/reference/byoc-subnet-1.png
import byoc_subnet_2 from '@site/static/images/cloud/reference/byoc-subnet-2.png';
import byoc_s3_endpoint from '@site/static/images/cloud/reference/byoc-s3-endpoint.png'
-
## Процесс подключения {#onboarding-process}
Клиенты могут инициировать процесс подключения, связавшись с [нами](https://clickhouse.com/cloud/bring-your-own-cloud). Клиентам необходимо иметь отдельную учетную запись AWS и знать регион, который они будут использовать. В настоящее время пользователи могут запускать сервисы BYOC только в тех регионах, которые поддерживаются в ClickHouse Cloud.
@@ -83,7 +82,6 @@ module "clickhouse_onboarding" {
-
@@ -169,8 +167,6 @@ module "clickhouse_onboarding" {
Необязательно: после проверки работоспособности peering вы можете запросить отключение публичного балансировщика нагрузки для ClickHouse BYOC.
-
-
## Процесс обновления {#upgrade-process}
Мы регулярно обновляем программное обеспечение, включая обновления версии базы данных ClickHouse, ClickHouse Operator, EKS и других компонентов.
@@ -181,8 +177,6 @@ module "clickhouse_onboarding" {
Окна обслуживания не распространяются на устранение уязвимостей и исправления, связанные с безопасностью. Они выполняются как внеплановые обновления; мы заблаговременно согласуем подходящее время, чтобы минимизировать влияние на эксплуатацию.
:::
-
-
## Роли IAM для CloudFormation {#cloudformation-iam-roles}
### Начальная (bootstrap) роль IAM {#bootstrap-iam-role}
@@ -217,8 +211,6 @@ module "clickhouse_onboarding" {
Наконец, **`data-plane-mgmt`** позволяет компоненту Control Plane ClickHouse Cloud синхронизировать необходимые пользовательские ресурсы (Custom Resources), такие как `ClickHouseCluster` и Istio Virtual Service/Gateway.
-
-
## Границы сети {#network-boundaries}
В этом разделе рассматриваются различные типы сетевого трафика в клиентский BYOC VPC и из него:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/production-readiness.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/production-readiness.md
index ae2d3cd32e2..91a7c85eb69 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/production-readiness.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/production-readiness.md
@@ -7,8 +7,6 @@ keywords: ['готовность к промышленной эксплуата
doc_type: 'guide'
---
-
-
# Руководство по подготовке ClickHouse Cloud к промышленной эксплуатации {#production-readiness}
Для организаций, которые прошли руководство по быстрому старту и уже имеют активный сервис с поступающими данными
@@ -23,8 +21,6 @@ doc_type: 'guide'
- Проверить процедуры резервного копирования и задокументировать процессы восстановления после аварий
:::
-
-
## Введение {#introduction}
У вас уже успешно работает ClickHouse Cloud для ваших рабочих нагрузок. Теперь вам нужно довести развертывание до уровня, соответствующего корпоративным стандартам промышленной эксплуатации — будь то в результате аудита на соответствие требованиям, инцидента в продакшене из‑за непроверенного запроса или требований ИТ по интеграции с корпоративными системами.
@@ -41,8 +37,6 @@ doc_type: 'guide'
Это руководство проведёт вас по каждой из этих областей и поможет перейти от работоспособного развертывания ClickHouse Cloud к системе, готовой для корпоративной эксплуатации.
-
-
## Стратегия окружений {#environment-strategy}
Создавайте отдельные окружения, чтобы безопасно тестировать изменения до того, как они повлияют на рабочие нагрузки в продуктиве. Большинство инцидентов в продуктиве происходит из‑за нетестированных запросов или изменений конфигурации, развернутых напрямую в продуктивных системах.
@@ -57,8 +51,6 @@ doc_type: 'guide'
**Размер окружений**: Подбирайте размер staging‑сервиса так, чтобы он был максимально близок к характеристикам нагрузки в продуктиве. Тестирование на существенно меньшей инфраструктуре может не выявить конфликтов за ресурсы или проблем с масштабированием. Используйте наборы данных, репрезентативные для продуктива, за счет периодического обновления данных или генерации синтетических данных. Рекомендации по выбору размера staging‑окружения и корректному масштабированию сервисов приведены в документации [Рекомендации по выбору размера и аппаратному обеспечению](/guides/sizing-and-hardware-recommendations) и [Масштабирование в ClickHouse Cloud](/manage/scaling). Эти материалы содержат практические советы по выбору объема памяти, CPU и хранилища, а также детали о вариантах вертикального и горизонтального масштабирования, которые помогут сопоставить staging‑окружение с продуктивными рабочими нагрузками.
-
-
## Частные сети {#private-networking}
[Частные сети](/cloud/security/connectivity/private-networking) в ClickHouse Cloud позволяют подключать ваши сервисы ClickHouse непосредственно к виртуальной сети в облаке, гарантируя, что данные не проходят через общедоступный интернет. Это особенно важно для организаций с жесткими требованиями по безопасности или соответствию нормативам, а также для тех, кто запускает приложения в приватных подсетях.
@@ -71,8 +63,6 @@ ClickHouse Cloud поддерживает частные сети с помощ
Если вам нужны дополнительные технические подробности или пошаговые инструкции по настройке, в связанной документации для каждого провайдера приведены развернутые руководства.
-
-
## Корпоративная аутентификация и управление пользователями {#enterprise-authentication}
Переход от консольного управления пользователями к интеграции с корпоративной системой аутентификации является критически важным для готовности к промышленной эксплуатации.
@@ -103,8 +93,6 @@ ClickHouse Cloud в настоящее время не поддерживает
Узнайте больше об [управлении доступом в ClickHouse Cloud](/cloud/security/cloud_access_management) и [настройке SAML SSO](/cloud/security/saml-setup).
-
-
## Инфраструктура как код и автоматизация {#infrastructure-as-code}
Управление ClickHouse Cloud с использованием подхода «инфраструктура как код» и автоматизации на основе API обеспечивает согласованность, контроль версий и воспроизводимость конфигурации развертывания.
@@ -148,7 +136,6 @@ provider "clickhouse" {
Аутентификация в API использует тот же подход на основе токенов, что и Terraform. Для полного справочника по API и примеров интеграции см. документацию [ClickHouse Cloud API](/cloud/manage/api/api-overview).
-
## Мониторинг и операционная интеграция {#monitoring-integration}
Подключение ClickHouse Cloud к существующей мониторинговой инфраструктуре обеспечивает наблюдаемость и проактивное обнаружение проблем.
@@ -179,7 +166,6 @@ scrape_configs:
Для полноценной настройки, включая подробную конфигурацию Prometheus/Grafana и расширенные правила оповещения, см. [руководство по наблюдаемости в ClickHouse Cloud](/use-cases/observability/cloud-monitoring#prometheus).
-
## Обеспечение непрерывности бизнеса и интеграция со службой поддержки {#business-continuity}
Наличие процедур проверки резервных копий и интеграции со службой поддержки гарантирует, что ваше развертывание ClickHouse Cloud сможет восстанавливаться после инцидентов и получать помощь при необходимости.
@@ -206,8 +192,6 @@ ClickHouse Cloud предоставляет автоматические рез
Узнайте больше о [резервном копировании и восстановлении в ClickHouse Cloud](/cloud/manage/backups/overview) и [сервисах поддержки](/about-us/support).
-
-
## Следующие шаги {#next-steps}
После внедрения интеграций и процедур, описанных в этом руководстве, перейдите к разделу [обзор ресурсов Cloud](/cloud/get-started/cloud/resource-tour), чтобы ознакомиться с руководствами по [мониторингу](/cloud/get-started/cloud/resource-tour#monitoring), [безопасности](/cloud/get-started/cloud/resource-tour#security) и [оптимизации затрат](/cloud/get-started/cloud/resource-tour#cost-optimization).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/03_manage-sql-console-role-assignments.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/03_manage-sql-console-role-assignments.md
index e1f6dc345b5..7e699eb5228 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/03_manage-sql-console-role-assignments.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/03_manage-sql-console-role-assignments.md
@@ -16,7 +16,6 @@ import step_5 from '@site/static/images/cloud/guides/sql_console/service_level_a
import step_6 from '@site/static/images/cloud/guides/sql_console/service_level_access/6_service_settings.png'
import step_7 from '@site/static/images/cloud/guides/sql_console/service_level_access/7_service_settings.png'
-
# Настройка назначений ролей для SQL-консоли {#configuring-sql-console-role-assignments}
> В этом руководстве описано, как настроить назначения ролей для SQL-консоли, которые определяют глобальные права доступа к консоли и функции, доступные пользователю в консоли Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/04_manage-database-users.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/04_manage-database-users.md
index bc0a20548b5..86746e8437e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/04_manage-database-users.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/04_manage-database-users.md
@@ -16,7 +16,6 @@ import user_grant_permissions_options from '@site/static/images/cloud/security/c
Пользователи SQL-консоли создаются для каждого сеанса и аутентифицируются с использованием X.509-сертификатов, которые автоматически обновляются. Пользователь удаляется при завершении сеанса. При формировании списков доступа для аудита перейдите на вкладку Settings для соответствующего сервиса в консоли и учитывайте доступ через SQL-консоль помимо пользователей, уже существующих в базе данных. Если настроены пользовательские роли, доступ пользователя отражается в роли, имя которой оканчивается на имя пользователя.
-
## Пользователи и роли консоли SQL {#sql-console-users-and-roles}
Базовые роли консоли SQL могут быть назначены пользователям с правами Service Read Only и Service Admin. Для получения дополнительной информации см. раздел [Manage SQL Console Role Assignments](/cloud/guides/sql-console/manage-sql-console-role-assignments). В этом руководстве показано, как создать настраиваемую роль для пользователя консоли SQL.
@@ -52,8 +51,6 @@ GRANT database_developer TO `sql-console-role:my.user@domain.com`;
-
-
## Аутентификация в базе данных {#database-authentication}
### Идентификатор пользователя базы данных и пароль {#database-user-id--password}
@@ -80,7 +77,6 @@ CREATE USER userName IDENTIFIED WITH sha256_hash BY 'hash';
Подробное пошаговое руководство с примерами см. в статье [How to connect to ClickHouse Cloud using SSH keys](/knowledgebase/how-to-connect-to-ch-cloud-using-ssh-keys) в нашей базе знаний.
-
## Права доступа к базе данных {#database-permissions}
Настройте следующие параметры в сервисах и базах данных с помощью SQL-оператора [GRANT](/sql-reference/statements/grant).
@@ -161,7 +157,6 @@ GRANT default_role to userID;
e. Нажмите на ссылку с числом пользователей, имеющих доступ к базе данных `There are # users with access to this service.`, чтобы просмотреть список пользователей.
-
## Пользователи warehouse {#warehouse-users}
Пользователи warehouse являются общими для всех сервисов в пределах одного и того же warehouse. Для получения дополнительной информации ознакомьтесь с разделом [контроль доступа к warehouse](/cloud/reference/warehouses#access-controls).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/04_saml-sso-setup.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/04_saml-sso-setup.md
index f58ccef59de..dd57d2b24cf 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/04_saml-sso-setup.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/01_cloud_access_management/04_saml-sso-setup.md
@@ -15,7 +15,6 @@ import samlAzureApp from '@site/static/images/cloud/security/saml-azure-app.png'
import samlAzureClaims from '@site/static/images/cloud/security/saml-azure-claims.png';
import EnterprisePlanFeatureBadge from '@theme/badges/EnterprisePlanFeatureBadge'
-
# Настройка SAML SSO {#saml-sso-setup}
@@ -24,16 +23,12 @@ ClickHouse Cloud поддерживает единый вход (SSO) с исп
В настоящее время мы поддерживаем SSO, инициируемый со стороны поставщика услуг (service provider-initiated), несколько организаций с использованием отдельных подключений и just-in-time‑подготовку учётных записей (provisioning). Мы пока не поддерживаем систему управления идентификацией между доменами (SCIM) или сопоставление атрибутов.
-
-
## Прежде чем начать {#before-you-begin}
Вам потребуются права администратора в вашем IdP и роль **Admin** в вашей организации ClickHouse Cloud. После настройки подключения в вашем IdP свяжитесь с нами, предоставив информацию, указанную в процедуре ниже, чтобы завершить процесс.
Мы рекомендуем, помимо SAML-подключения, настроить **прямую ссылку на вашу организацию**, чтобы упростить процесс входа. Каждый IdP реализует это по-своему. Ниже описано, как сделать это для вашего IdP.
-
-
## Как настроить ваш IdP {#how-to-configure-your-idp}
### Шаги {#steps}
@@ -148,8 +143,6 @@ ClickHouse Cloud поддерживает единый вход (SSO) с исп
-
-
{" "}
@@ -257,7 +250,6 @@ ClickHouse Cloud поддерживает единый вход (SSO) с исп
| App attributes | email |
12. Нажмите **Finish**.
-
14. Чтобы включить приложение, нажмите **OFF** для всех и измените настройку на **ON** для всех. Доступ также можно ограничить группами или организационными подразделениями, выбрав соответствующие параметры в левой части экрана.
@@ -342,7 +334,6 @@ Azure (Microsoft) SAML также может называться Azure Active D
-
## Как это работает {#how-it-works}
### Управление пользователями с помощью SAML SSO {#user-management-with-saml-sso}
@@ -357,8 +348,6 @@ Azure (Microsoft) SAML также может называться Azure Active D
ClickHouse Cloud поддерживает мультиорганизационное SSO, предоставляя отдельное подключение для каждой организации. Используйте прямую ссылку (`https://console.clickhouse.cloud/?connection={organizationid}`) для входа в каждую соответствующую организацию. Перед входом в другую организацию обязательно выйдите из текущей.
-
-
## Дополнительная информация {#additional-information}
Безопасность — наш главный приоритет, когда речь идет об аутентификации. По этой причине при реализации SSO мы приняли несколько решений, о которых вам необходимо знать.
@@ -367,8 +356,6 @@ ClickHouse Cloud поддерживает мультиорганизационн
- **Мы не связываем автоматически учетные записи с SSO и без него.** В вашем списке пользователей ClickHouse вы можете видеть несколько учетных записей для одних и тех же пользователей, даже если они используют один и тот же адрес электронной почты.
-
-
## Устранение распространённых проблем {#troubleshooting-common-issues}
| Ошибка | Причина | Решение |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/01_setting-ip-filters.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/01_setting-ip-filters.md
index 6c97cb9e13c..3eb2bb975f1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/01_setting-ip-filters.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/01_setting-ip-filters.md
@@ -11,7 +11,6 @@ import Image from '@theme/IdealImage';
import ip_filtering_after_provisioning from '@site/static/images/cloud/security/ip-filtering-after-provisioning.png';
import ip_filter_add_single_ip from '@site/static/images/cloud/security/ip-filter-add-single-ip.png';
-
## Настройка IP-фильтров {#setting-ip-filters}
Списки IP-доступа фильтруют трафик к сервисам ClickHouse или по API-ключам, указывая, с каких исходных адресов разрешено подключение. Эти списки настраиваются отдельно для каждого сервиса и для каждого API-ключа. Списки можно задать при создании сервиса или API-ключа, а также изменить позднее.
@@ -20,16 +19,12 @@ import ip_filter_add_single_ip from '@site/static/images/cloud/security/ip-filte
Если вы пропустите создание списка IP-доступа для сервиса ClickHouse Cloud, к этому сервису не будет разрешён никакой трафик. Если для списков IP-доступа сервисов ClickHouse установлено значение `Allow from anywhere`, ваш сервис может периодически переводиться из неактивного состояния в активное интернет-сканерами и краулерами, которые ищут публичные IP-адреса, что может привести к незначительным непредвиденным расходам.
:::
-
-
## Подготовка {#prepare}
Прежде чем начать, соберите IP-адреса или диапазоны, которые необходимо добавить в список доступа. Учтите удалённых сотрудников, места дежурств, VPN и т.п. Интерфейс управления списком доступа по IP принимает как отдельные адреса, так и записи в нотации CIDR.
Нотация Classless Inter-domain Routing (CIDR) позволяет указывать диапазоны IP-адресов, меньшие, чем традиционные размеры масок подсетей классов A, B или C (/8, /16 или /24). [ARIN](https://account.arin.net/public/cidrCalculator) и ряд других организаций предоставляют калькуляторы CIDR при необходимости. Если вы хотите получить дополнительную информацию о нотации CIDR, ознакомьтесь с RFC [Classless Inter-domain Routing (CIDR)](https://www.rfc-editor.org/rfc/rfc4632.html).
-
-
## Создание или изменение списка доступа по IP-адресам {#create-or-modify-an-ip-access-list}
:::note Применимо только к подключениям вне PrivateLink
@@ -90,8 +85,6 @@ import ip_filter_add_single_ip from '@site/static/images/cloud/security/ip-filte
Чтобы применить внесённые изменения, нажмите **Save**.
-
-
## Проверка {#verification}
После создания фильтра убедитесь, что можно подключиться к сервису из разрешённого диапазона, и что подключения из‑вне этого диапазона блокируются. Для проверки можно использовать простую команду `curl`:
@@ -118,7 +111,6 @@ curl https://.clickhouse.cloud:8443
Ok.
```
-
## Ограничения {#limitations}
- Списки доступа по IP-адресам на данный момент поддерживают только IPv4
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/02_aws-privatelink.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/02_aws-privatelink.md
index 03ab2a836b2..59dfd8c15ca 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/02_aws-privatelink.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/02_aws-privatelink.md
@@ -18,7 +18,6 @@ import pe_remove_private_endpoint from '@site/static/images/cloud/security/pe-re
import aws_private_link_pe_filters from '@site/static/images/cloud/security/aws-privatelink-pe-filters.png';
import aws_private_link_ped_nsname from '@site/static/images/cloud/security/aws-privatelink-pe-dns-name.png';
-
# AWS PrivateLink {#aws-privatelink}
@@ -69,14 +68,10 @@ ClickHouse Cloud поддерживает [межрегиональный Privat
Примеры Terraform см. [здесь](https://github.com/ClickHouse/terraform-provider-clickhouse/tree/main/examples/).
-
-
## Важные замечания {#considerations}
ClickHouse пытается группировать ваши сервисы, чтобы повторно использовать одну и ту же опубликованную [конечную точку сервиса](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-share-your-services.html#endpoint-service-overview) в пределах региона AWS. Однако такая группировка не гарантируется, особенно если вы распределяете свои сервисы между несколькими организациями ClickHouse.
Если у вас уже настроен PrivateLink для других сервисов в вашей организации ClickHouse, во многих случаях вы можете пропустить большинство шагов благодаря такой группировке и перейти сразу к финальному шагу: добавьте «Endpoint ID» ClickHouse в список разрешённых для сервиса ClickHouse.
-
-
## Предварительные требования для этого процесса {#prerequisites}
Перед началом вам потребуется:
@@ -84,8 +79,6 @@ ClickHouse пытается группировать ваши сервисы, ч
1. Ваша учётная запись AWS.
1. [API-ключ ClickHouse](/cloud/manage/openapi) с необходимыми правами для создания и управления частными конечными точками на стороне ClickHouse.
-
-
## Шаги {#steps}
Следуйте этим шагам, чтобы подключить сервисы ClickHouse Cloud через AWS PrivateLink.
@@ -178,7 +171,6 @@ jq .result
#### Вариант 2: AWS CloudFormation {#option-2-aws-cloudformation}
-
Далее необходимо создать VPC Endpoint, используя `Service name`console или `endpointServiceId`API, полученные на шаге [Obtain Endpoint "Service name" ](#obtain-endpoint-service-info).
Убедитесь, что вы используете соответствующие идентификаторы подсетей (subnet IDs), группы безопасности (security groups) и идентификатор VPC (VPC ID).
@@ -281,7 +273,6 @@ curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" \
-d @pl_config.json | jq
```
-
Чтобы удалить идентификатор конечной точки из списка разрешённых конечных точек:
```bash
@@ -343,7 +334,6 @@ jq .result
В этом примере соединение по имени хоста со значением `privateDnsHostname` будет маршрутизировано через PrivateLink, а соединение по имени хоста со значением `endpointServiceId` — через интернет.
-
## Устранение неполадок {#troubleshooting}
### Несколько PrivateLink в одном регионе {#multiple-privatelinks-in-one-region}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/03_gcp-private-service-connect.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/03_gcp-private-service-connect.md
index 7daf5a64401..f62a92663a3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/03_gcp-private-service-connect.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/03_gcp-private-service-connect.md
@@ -21,7 +21,6 @@ import gcp_pe_remove_private_endpoint from '@site/static/images/cloud/security/g
import gcp_privatelink_pe_filters from '@site/static/images/cloud/security/gcp-privatelink-pe-filters.png';
import gcp_privatelink_pe_dns from '@site/static/images/cloud/security/gcp-privatelink-pe-dns.png';
-
# Private Service Connect {#private-service-connect}
@@ -50,16 +49,12 @@ Private Service Connect (PSC) — это сетевая возможность G
1. Добавьте идентификатор конечной точки (Endpoint ID) в сервис ClickHouse Cloud.
1. Добавьте идентификатор конечной точки (Endpoint ID) в список разрешённых подключений (allow list) сервиса ClickHouse.
-
-
## Внимание {#attention}
ClickHouse пытается группировать ваши сервисы, чтобы повторно использовать один и тот же опубликованный [PSC endpoint](https://cloud.google.com/vpc/docs/private-service-connect) в пределах региона GCP. Однако такая группировка не гарантируется, особенно если вы распределяете свои сервисы между несколькими организациями ClickHouse.
Если у вас уже настроен PSC для других сервисов в вашей организации ClickHouse, вы часто можете пропустить большинство шагов благодаря этой группировке и перейти непосредственно к заключительному шагу: [добавить «Endpoint ID» в список разрешённых сервисов ClickHouse](#add-endpoint-id-to-services-allow-list).
Примеры Terraform доступны [здесь](https://github.com/ClickHouse/terraform-provider-clickhouse/tree/main/examples/).
-
-
## Прежде чем начать {#before-you-get-started}
:::note
@@ -98,7 +93,6 @@ jq ".result[] | select (.region==\"${REGION:?}\" and .provider==\"${PROVIDER:?}\
* Вы можете [создать новый ключ](/cloud/manage/openapi) или использовать уже существующий.
:::
-
## Получите подключение сервиса GCP (service attachment) и имя DNS для Private Service Connect {#obtain-gcp-service-attachment-and-dns-name-for-private-service-connect}
### Вариант 1: консоль ClickHouse Cloud {#option-1-clickhouse-cloud-console}
@@ -125,7 +119,6 @@ curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" "https://api.clickhouse.cloud
Запомните значения `endpointServiceId` и `privateDnsHostname`. Они понадобятся на следующих шагах.
-
## Создание конечной точки сервиса {#create-service-endpoint}
:::important
@@ -218,7 +211,6 @@ output "psc_connection_id" {
используйте значение `endpointServiceId`API или `Service name`console из шага [Obtain GCP service attachment for Private Service Connect](#obtain-gcp-service-attachment-and-dns-name-for-private-service-connect)
:::
-
## Задайте приватное DNS-имя для конечной точки {#set-private-dns-name-for-endpoint}
:::note
@@ -227,8 +219,6 @@ output "psc_connection_id" {
Необходимо указать DNS-имя, полученное на шаге [Obtain GCP service attachment for Private Service Connect](#obtain-gcp-service-attachment-and-dns-name-for-private-service-connect), на IP-адрес конечной точки GCP Private Service Connect. Это гарантирует, что сервисы и компоненты внутри вашей VPC/сети смогут корректно разрешать это имя.
-
-
## Добавление Endpoint ID в организацию ClickHouse Cloud {#add-endpoint-id-to-clickhouse-cloud-organization}
### Вариант 1: консоль ClickHouse Cloud {#option-1-clickhouse-cloud-console-1}
@@ -288,7 +278,6 @@ EOF
curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" -X PATCH -H "Content-Type: application/json" "https://api.clickhouse.cloud/v1/organizations/${ORG_ID:?}" -d @pl_config_org.json
```
-
## Добавить «Endpoint ID» в список разрешённых для сервиса ClickHouse {#add-endpoint-id-to-services-allow-list}
Необходимо добавить Endpoint ID в список разрешённых для каждого экземпляра сервиса, который должен быть доступен через Private Service Connect.
@@ -343,7 +332,6 @@ EOF
curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" -X PATCH -H "Content-Type: application/json" "https://api.clickhouse.cloud/v1/organizations/${ORG_ID:?}/services/${INSTANCE_ID:?}" -d @pl_config.json | jq
```
-
## Доступ к экземпляру с использованием Private Service Connect {#accessing-instance-using-private-service-connect}
Каждый сервис с включённым Private Link имеет две конечные точки: публичную и приватную. Для подключения по Private Link необходимо использовать приватную конечную точку `privateDnsHostname`, значение которой берётся из раздела [Obtain GCP service attachment for Private Service Connect](#obtain-gcp-service-attachment-and-dns-name-for-private-service-connect).
@@ -371,7 +359,6 @@ curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" "https://api.clickhouse.cloud
В этом примере подключение к хосту `xxxxxxx.yy-xxxxN.p.gcp.clickhouse.cloud` будет выполняться через Private Service Connect, тогда как `xxxxxxx.yy-xxxxN.gcp.clickhouse.cloud` будет использовать соединение через интернет.
-
## Устранение неполадок {#troubleshooting}
### Проверка конфигурации DNS {#test-dns-setup}
@@ -404,7 +391,6 @@ DNS_NAME — используйте `privateDnsHostname` из шага [Obta
openssl s_client -connect ${DNS_NAME}:9440
```
-
```response
# highlight-next-line {#highlight-next-line}
CONNECTED(00000003)
@@ -447,7 +433,6 @@ curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" -X GET -H "Content-Type: appl
Чтобы настроить такое подключение, задайте правила межсетевого экрана (firewall) в вашем GCP VPC так, чтобы разрешить подключения из ClickHouse Cloud к вашему внутреннему/приватному сервису базы данных. Ознакомьтесь со [стандартными исходящими (egress) IP-адресами для регионов ClickHouse Cloud](/manage/data-sources/cloud-endpoints-api), а также с [доступными статическими IP-адресами](https://api.clickhouse.cloud/static-ips.json).
-
## Дополнительная информация {#more-information}
Для получения более подробной информации см. [cloud.google.com/vpc/docs/configure-private-service-connect-services](https://cloud.google.com/vpc/docs/configure-private-service-connect-services).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/04_azure-privatelink.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/04_azure-privatelink.md
index e78a2b3261d..b38bba16657 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/04_azure-privatelink.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/02_connectivity/private_networking/04_azure-privatelink.md
@@ -27,7 +27,6 @@ import azure_pe_remove_private_endpoint from '@site/static/images/cloud/security
import azure_privatelink_pe_filter from '@site/static/images/cloud/security/azure-privatelink-pe-filter.png';
import azure_privatelink_pe_dns from '@site/static/images/cloud/security/azure-privatelink-pe-dns.png';
-
# Azure Private Link {#azure-private-link}
@@ -54,16 +53,12 @@ Azure поддерживает межрегиональное подключен
В ClickHouse Cloud для Azure PrivateLink фильтрация была переведена с использования resourceGUID на фильтры по Resource ID. Вы всё ещё можете использовать resourceGUID, так как он сохраняет обратную совместимость, но мы рекомендуем перейти на фильтры по Resource ID. Для миграции просто создайте новую конечную точку (endpoint) с использованием Resource ID, привяжите её к сервису и удалите старую конечную точку, основанную на resourceGUID.
:::
-
-
## Внимание {#attention}
ClickHouse пытается сгруппировать ваши сервисы, чтобы повторно использовать одну и ту же опубликованную [службу Private Link](https://learn.microsoft.com/en-us/azure/private-link/private-link-service-overview) в пределах региона Azure. Однако такая группировка не гарантируется, особенно если вы распределяете свои сервисы между несколькими организациями ClickHouse.
Если у вас уже настроен Private Link для других сервисов в вашей организации ClickHouse, вы в большинстве случаев можете пропустить основную часть шагов благодаря этой группировке и перейти сразу к последнему шагу: [добавить идентификатор ресурса Private Endpoint в список разрешённых для ваших сервисов](#add-private-endpoint-id-to-services-allow-list).
Примеры Terraform можно найти в репозитории [Terraform Provider для ClickHouse](https://github.com/ClickHouse/terraform-provider-clickhouse/tree/main/examples/).
-
-
## Получение псевдонима подключения Azure для Private Link {#obtain-azure-connection-alias-for-private-link}
### Вариант 1: консоль ClickHouse Cloud {#option-1-clickhouse-cloud-console}
@@ -109,7 +104,6 @@ curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" "https://api.clickhouse.cloud
Сохраните значение `endpointServiceId`. Оно потребуется на следующем шаге.
-
## Создание приватной конечной точки в Azure {#create-private-endpoint-in-azure}
:::important
@@ -216,7 +210,6 @@ resource "azurerm_private_endpoint" "example_clickhouse_cloud" {
Идентификатор ресурса частной конечной точки доступен в портале Azure. Откройте частную конечную точку, созданную на предыдущем шаге, и нажмите **JSON View**:
-
В разделе «Свойства» найдите поле `id` и скопируйте его значение:
@@ -229,8 +222,6 @@ resource "azurerm_private_endpoint" "example_clickhouse_cloud" {
-
-
## Настройка DNS для Private Link {#setting-up-dns-for-private-link}
Вам необходимо создать зону Private DNS (`${location_code}.privatelink.azure.clickhouse.cloud`) и подключить её к вашей виртуальной сети (VNet), чтобы получить доступ к ресурсам через Private Link.
@@ -310,7 +301,6 @@ nslookup xxxxxxxxxx.westus3.privatelink.azure.clickhouse.cloud.
Адрес: 10.0.0.4
```
-
## Добавление идентификатора ресурса Private Endpoint в организацию ClickHouse Cloud {#add-the-private-endpoint-id-to-your-clickhouse-cloud-organization}
### Вариант 1: консоль ClickHouse Cloud {#option-1-clickhouse-cloud-console-1}
@@ -379,7 +369,6 @@ EOF
curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" -X PATCH -H "Content-Type: application/json" "https://api.clickhouse.cloud/v1/organizations/${ORG_ID:?}" -d @pl_config_org.json
```
-
## Добавьте идентификатор ресурса частной конечной точки (Private Endpoint Resource ID) в allow list вашего сервиса (или сервисов) {#add-private-endpoint-id-to-services-allow-list}
По умолчанию сервис ClickHouse Cloud недоступен по соединению Private Link, даже если соединение Private Link одобрено и установлено. Необходимо явно добавить идентификатор ресурса частной конечной точки (Private Endpoint Resource ID) для каждого сервиса, который должен быть доступен через Private Link.
@@ -443,7 +432,6 @@ EOF
curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" -X PATCH -H "Content-Type: application/json" "https://api.clickhouse.cloud/v1/organizations/${ORG_ID:?}/services/${INSTANCE_ID:?}" -d @pl_config.json | jq
```
-
## Доступ к вашему сервису ClickHouse Cloud с использованием Private Link {#access-your-clickhouse-cloud-service-using-private-link}
Каждый сервис с включённым Private Link имеет публичную и приватную конечную точку. Для подключения через Private Link необходимо использовать приватную конечную точку — это `privateDnsHostname`API или `DNS name`console, полученные на шаге [Получение псевдонима подключения Azure для Private Link](#obtain-azure-connection-alias-for-private-link).
@@ -486,7 +474,6 @@ curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" "https://api.clickhouse.cloud
Используйте `privateDnsHostname` для подключения к вашей службе ClickHouse Cloud через Private Link.
-
## Устранение неполадок {#troubleshooting}
### Проверка настроек DNS {#test-dns-setup}
@@ -525,7 +512,6 @@ OpenSSL должен успешно подключиться (см. CONNECTED в
openssl s_client -connect abcd.westus3.privatelink.azure.clickhouse.cloud:9440
```
-
```response
# highlight-next-line {#highlight-next-line}
CONNECTED(00000003)
@@ -564,7 +550,6 @@ INSTANCE_ID=<идентификатор инстанса>
curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" -X GET -H "Content-Type: application/json" "https://api.clickhouse.cloud/v1/organizations/${ORG_ID:?}/services/${INSTANCE_ID:?}" | jq .result.privateEndpointIds
```
-
## Дополнительная информация {#more-information}
Для получения дополнительной информации об Azure Private Link посетите [azure.microsoft.com/en-us/products/private-link](https://azure.microsoft.com/en-us/products/private-link).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/04_cmek.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/04_cmek.md
index 89a9e95cac2..f3fc18e333c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/04_cmek.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/04_cmek.md
@@ -11,11 +11,8 @@ import Image from '@theme/IdealImage';
import EnterprisePlanFeatureBadge from '@theme/badges/EnterprisePlanFeatureBadge'
import cmek_performance from '@site/static/images/_snippets/cmek-performance.png';
-
# Шифрование данных {#data-encryption}
-
-
## Шифрование на уровне хранилища {#storage-encryption}
ClickHouse Cloud по умолчанию использует шифрование данных в состоянии покоя с использованием управляемых облачным провайдером ключей AES‑256. Для получения дополнительной информации см.:
@@ -23,8 +20,6 @@ ClickHouse Cloud по умолчанию использует шифровани
- [Шифрование данных в состоянии покоя по умолчанию в GCP](https://cloud.google.com/docs/security/encryption/default-encryption)
- [Шифрование данных в состоянии покоя в службе хранилища Azure](https://learn.microsoft.com/en-us/azure/storage/common/storage-service-encryption)
-
-
## Шифрование на уровне базы данных {#database-encryption}
@@ -111,16 +106,12 @@ TDE необходимо включить при создании сервиса
#### Служба опроса ключей KMS {#kms-key-poller}
-
-
При использовании CMEK валидность предоставленного ключа KMS проверяется каждые 10 минут. Если ключ KMS становится недоступным, служба ClickHouse будет остановлена. Чтобы возобновить работу службы, восстановите доступ к ключу KMS, следуя инструкциям в данном руководстве, а затем перезапустите службу.
### Резервное копирование и восстановление {#backup-and-restore}
Резервные копии шифруются тем же ключом, что и связанная служба. При восстановлении зашифрованной резервной копии создаётся зашифрованный экземпляр, который использует тот же ключ KMS, что и исходный экземпляр. При необходимости вы можете выполнить ротацию ключа KMS после восстановления; дополнительные сведения см. в разделе [Ротация ключей](#key-rotation).
-
-
## Производительность {#performance}
Шифрование базы данных использует встроенную в ClickHouse [виртуальную файловую систему для шифрования данных](/operations/storing-data#encrypted-virtual-file-system) для шифрования и защиты ваших данных. Для этой функции используется алгоритм `AES_256_CTR`, который, как ожидается, приведёт к снижению производительности на 5–15 % в зависимости от нагрузки:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/05_audit_logging/02_database-audit-log.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/05_audit_logging/02_database-audit-log.md
index d26da1fc8c4..42d17c8c086 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/05_audit_logging/02_database-audit-log.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/05_audit_logging/02_database-audit-log.md
@@ -7,8 +7,6 @@ doc_type: 'guide'
keywords: ['ведение журнала аудита', 'журналы базы данных', 'соответствие требованиям', 'безопасность', 'мониторинг']
---
-
-
# Журнал аудита базы данных {#database-audit-log}
ClickHouse по умолчанию предоставляет журналы аудита базы данных. На этой странице основное внимание уделяется журналам, связанным с безопасностью. Для получения дополнительной информации о данных, записываемых системой, см. документацию по [системным таблицам](/operations/system-tables/overview).
@@ -17,8 +15,6 @@ ClickHouse по умолчанию предоставляет журналы а
Информация записывается непосредственно в системные таблицы и по умолчанию хранится в течение 30 дней. Этот период может быть дольше или короче и зависит от частоты слияний в системе. Пользователи могут предпринять дополнительные меры для более длительного хранения логов или экспорта логов в систему управления информацией и событиями безопасности (SIEM) для долгосрочного хранения. Подробности ниже.
:::
-
-
## Журналы, связанные с безопасностью {#security-relevant-logs}
ClickHouse записывает события базы данных, связанные с безопасностью, в первую очередь в журналы сеансов и запросов.
@@ -53,13 +49,10 @@ FROM clusterAllReplicas('default', system.query_log)
WHERE user=’compromised_account’
```
-
## Сохранение данных журналов в сервисах {#reatining-log-data-within-services}
Клиенты, которым требуется более долгосрочное хранение или повышенная надежность журналов, могут использовать материализованные представления для достижения этих целей. Дополнительные сведения о том, что такое материализованные представления, каковы их преимущества и как их реализовать, см. в наших видеоматериалах и документации по [материализованным представлениям](/materialized-views).
-
-
## Экспорт журналов {#exporting-logs}
Системные журналы можно записывать или экспортировать в хранилище в разных форматах, совместимых с SIEM-системами. Для получения дополнительной информации ознакомьтесь с нашей документацией по [табличным функциям](/sql-reference/table-functions). Наиболее распространённые способы:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/05_audit_logging/03_byoc-security-playbook.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/05_audit_logging/03_byoc-security-playbook.md
index 7b77b82d765..8a7943806bd 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/05_audit_logging/03_byoc-security-playbook.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/security/05_audit_logging/03_byoc-security-playbook.md
@@ -7,20 +7,14 @@ doc_type: 'guide'
keywords: ['byoc', 'security', 'playbook', 'best practices', 'compliance']
---
-
-
# Руководство по безопасности BYOC {#byoc-security-playbook}
ClickHouse предоставляет услугу Bring Your Own Cloud (BYOC) в рамках модели совместной ответственности в области безопасности, описание которой можно загрузить из нашего Trust Center по адресу https://trust.clickhouse.com. Приведённая ниже информация предоставляется клиентам BYOC в качестве примеров того, как можно выявлять потенциальные события, связанные с безопасностью. Клиентам следует учитывать эту информацию в контексте собственной программы безопасности, чтобы определить, будут ли полезны дополнительные механизмы обнаружения и оповещения.
-
-
## Потенциально скомпрометированные учетные данные ClickHouse {#compromised-clickhouse-credentials}
См. документацию по [журналу аудита базы данных](/cloud/security/audit-logging/database-audit-log) для примеров запросов по обнаружению атак с использованием учетных данных и запросов для расследования вредоносной активности.
-
-
## Атака отказа в обслуживании на уровне приложения {#application-layer-dos-attack}
Существует множество методов проведения атаки отказа в обслуживании (DoS). Если атака нацелена на вывод из строя экземпляра ClickHouse с помощью специальной полезной нагрузки, восстановите систему в рабочее состояние или перезагрузите её и ограничьте доступ, чтобы вернуть контроль. Используйте следующий запрос для просмотра [system.crash_log](/operations/system-tables/crash_log) и получения дополнительной информации об атаке.
@@ -30,15 +24,12 @@ SELECT *
FROM clusterAllReplicas('default',system.crash_log)
```
-
## Скомпрометированные роли AWS, созданные ClickHouse {#compromised-clickhouse-created-aws-roles}
ClickHouse использует предварительно созданные роли для обеспечения работы системных функций. В этом разделе предполагается, что заказчик использует AWS с CloudTrail и имеет доступ к журналам CloudTrail.
Если инцидент может быть результатом скомпрометированной роли, просмотрите действия в CloudTrail и CloudWatch, связанные с ролями и действиями ClickHouse IAM. Обратитесь к стеку [CloudFormation](/cloud/reference/byoc/onboarding/aws#cloudformation-iam-roles) или модулю Terraform, предоставленным в рамках первоначальной настройки, чтобы получить список ролей IAM.
-
-
## Несанкционированный доступ к кластеру EKS {#unauthorized-access-eks-cluster}
ClickHouse BYOC работает внутри EKS. В этом разделе предполагается, что клиент использует в AWS сервисы CloudTrail и CloudWatch и имеет доступ к журналам.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/01_discover/02_use_cases/01_real-time-analytics.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/01_discover/02_use_cases/01_real-time-analytics.md
index 3a7a6da8ef5..b1826567fb5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/01_discover/02_use_cases/01_real-time-analytics.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/01_discover/02_use_cases/01_real-time-analytics.md
@@ -15,7 +15,6 @@ import rta_3 from '@site/static/images/cloud/onboard/discover/use_cases/3_rta.pn
-
## Что такое аналитика в реальном времени? {#what-is-real-time-analytics}
Аналитика в реальном времени — это обработка данных, результаты которой становятся доступными конечным пользователям и клиентам сразу после появления данных. Она
@@ -47,7 +46,6 @@ import rta_3 from '@site/static/images/cloud/onboard/discover/use_cases/3_rta.pn
анализируя такие события. Традиционно это делалось с помощью пакетной аналитики,
и в следующем разделе мы сравним пакетную и аналитическую обработку данных в реальном времени.
-
## Аналитика в реальном времени и пакетная аналитика {#real-time-analytics-vs-batch-analytics}
Диаграмма ниже показывает, как обычно выглядит система пакетной аналитики
@@ -71,8 +69,6 @@ import rta_3 from '@site/static/images/cloud/onboard/discover/use_cases/3_rta.pn
Теперь мы можем получать аналитические выводы из событий почти сразу после их генерации. Но
почему это полезно?
-
-
## Преимущества аналитики в реальном времени {#benefits-of-real-time-analytics}
В современном динамичном мире организации полагаются на аналитику в реальном
@@ -115,8 +111,6 @@ import rta_3 from '@site/static/images/cloud/onboard/discover/use_cases/3_rta.pn
создавать более вовлекающий пользовательский опыт, который стимулирует клиентов
возвращаться.
-
-
## Сценарии использования аналитики в реальном времени {#real-time-analytics-use-cases}
Настоящая ценность аналитики в реальном времени становится очевидной, когда мы рассматриваем её практические применения. Рассмотрим некоторые из них.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md
index d64cbafdc04..344a625dcde 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md
@@ -7,12 +7,8 @@ sidebar_label: 'Обзор'
doc_type: 'guide'
---
-
-
# Сравнение ClickHouse с PostgreSQL {#comparing-clickhouse-and-postgresql}
-
-
## Почему стоит использовать ClickHouse вместо Postgres? {#why-use-clickhouse-over-postgres}
Если кратко: потому что ClickHouse спроектирован для быстрых аналитических запросов, в частности запросов с `GROUP BY`, как OLAP-база данных, тогда как Postgres — это OLTP-база данных, предназначенная для транзакционных нагрузок.
@@ -25,8 +21,6 @@ OLAP (online analytical processing), или системы оперативно
Чтобы увидеть потенциальные различия в производительности ClickHouse и Postgres на аналитических запросах, см. раздел [Rewriting PostgreSQL Queries in ClickHouse](/migrations/postgresql/rewriting-queries).
-
-
## Стратегии миграции {#migration-strategies}
При миграции с PostgreSQL в ClickHouse выбор стратегии зависит от вашего сценария использования, инфраструктуры и требований к данным. В целом, репликация в режиме реального времени с использованием CDC (фиксация изменений данных, Change Data Capture) является наилучшим подходом для большинства современных сценариев, тогда как ручная массовая загрузка с последующими периодическими обновлениями подходит для более простых случаев или одноразовых миграций.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md
index de3376e2b83..eb4a39eec80 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import postgresReplicas from '@site/static/images/integrations/data-ingestion/dbms/postgres-replicas.png';
import Image from '@theme/IdealImage';
-
## Postgres и ClickHouse: эквивалентные и отличающиеся концепции {#postgres-vs-clickhouse-equivalent-and-different-concepts}
Пользователям, приходящим из OLTP-систем и привыкшим к ACID-транзакциям, следует учитывать, что ClickHouse сознательно идет на определённые компромиссы и не обеспечивает их в полном объёме в обмен на производительность. При правильном понимании семантика ClickHouse может обеспечивать высокие гарантии надёжности хранения данных и высокую пропускную способность по записи. Ниже мы выделяем ключевые концепции, с которыми пользователям стоит ознакомиться до начала работы с ClickHouse после Postgres.
@@ -30,8 +29,6 @@ import Image from '@theme/IdealImage';
> ClickHouse Cloud использует одну копию данных, размещённую в S3, с несколькими вычислительными репликами. Данные доступны каждому узлу-реплике, и у каждого есть локальный SSD-кэш. Это опирается только на репликацию метаданных через ClickHouse Keeper.
-
-
## Итоговая согласованность {#eventual-consistency}
ClickHouse использует ClickHouse Keeper (реализацию ZooKeeper на C++, возможна также работа с самим ZooKeeper) для управления внутренним механизмом репликации, уделяя основное внимание хранению метаданных и обеспечению итоговой согласованности. Keeper используется для назначения уникальных последовательных номеров для каждой вставки в распределённой среде. Это критически важно для поддержания порядка и согласованности операций. Этот механизм также обрабатывает фоновые операции, такие как слияния и мутации, распределяя работу по ним и при этом гарантируя их выполнение в одном и том же порядке на всех репликах. Помимо метаданных, Keeper функционирует как полноценный центр управления репликацией, включая отслеживание контрольных сумм для хранимых частей данных, и выступает в роли распределённой системы уведомлений между репликами.
@@ -44,32 +41,24 @@ ClickHouse использует ClickHouse Keeper (реализацию ZooKeepe
PostgreSQL использует иную стратегию репликации по сравнению с ClickHouse, в основном применяя потоковую репликацию, которая предполагает модель ведущего узла и узлов‑реплик, при которой данные непрерывно передаются с ведущего узла на один или несколько узлов‑реплик. Такой тип репликации обеспечивает практически актуальное состояние данных в реальном времени и может быть синхронным или асинхронным, предоставляя администраторам возможность балансировать между доступностью и согласованностью. В отличие от ClickHouse, PostgreSQL полагается на WAL (журнал предзаписи, Write-Ahead Logging) с логической репликацией и декодированием для потоковой передачи объектов данных и изменений между узлами. Такой подход в PostgreSQL более прост, но может не обеспечивать того же уровня масштабируемости и отказоустойчивости в высокораспределённых средах, которого ClickHouse достигает за счёт сложного использования Keeper для координации распределённых операций и обеспечения итоговой согласованности.
-
-
## Последствия для пользователей {#user-implications}
В ClickHouse возможность грязного чтения — когда пользователи записывают данные в одну реплику, а затем читают потенциально ещё не реплицированные данные с другой — возникает из‑за модели репликации с eventual consistency, управляемой через Keeper. Эта модель делает акцент на производительности и масштабируемости в распределённых системах, позволяя репликам работать независимо и синхронизироваться асинхронно. В результате недавно вставленные данные могут быть не сразу видны на всех репликах — это зависит от лага репликации и времени, необходимого для распространения изменений по системе.
Напротив, модель потоковой репликации PostgreSQL обычно позволяет предотвратить грязные чтения за счёт использования параметров синхронной репликации, при которых первичный узел ожидает, пока хотя бы одна реплика подтвердит получение данных перед фиксацией транзакции. Это гарантирует, что после фиксации транзакции есть гарантия, что данные доступны как минимум на одной реплике. В случае отказа первичного узла реплика обеспечит, что при выполнении запросов будут видны зафиксированные данные, тем самым поддерживая более строгий уровень согласованности.
-
-
## Рекомендации {#recommendations}
Пользователям, которые только начинают работать с ClickHouse, следует знать об отличиях, проявляющихся в реплицированных средах. Как правило, модель eventual consistency (гарантия окончательной согласованности) является достаточной для аналитики по миллиардам, а то и триллионам точек данных, где метрики либо достаточно стабильны, либо допускается использование оценок, поскольку новые данные непрерывно вставляются с высокой скоростью.
Существует несколько вариантов повышения согласованности при чтении, если это действительно необходимо. Оба варианта предполагают либо большую сложность, либо дополнительные накладные расходы — снижая производительность запросов и усложняя масштабирование ClickHouse. **Мы рекомендуем использовать эти подходы только в случае крайней необходимости.**
-
-
## Консистентная маршрутизация {#consistent-routing}
Чтобы преодолеть некоторые ограничения модели окончательной согласованности, можно настроить систему так, чтобы клиенты всегда направлялись на одни и те же реплики. Это полезно в случаях, когда несколько пользователей выполняют запросы к ClickHouse и результаты должны быть предсказуемыми и повторяемыми от запроса к запросу. Хотя результаты могут отличаться по мере вставки новых данных, должны опрашиваться одни и те же реплики, что обеспечивает последовательное представление данных.
Этого можно добиться несколькими способами в зависимости от вашей архитектуры и того, используете ли вы ClickHouse OSS или ClickHouse Cloud.
-
-
## ClickHouse Cloud {#clickhouse-cloud}
ClickHouse Cloud использует одну копию данных в S3 с несколькими вычислительными репликами. Данные доступны каждому узлу‑реплике, у которого есть локальный SSD‑кэш. Для обеспечения согласованных результатов пользователям нужно лишь обеспечивать согласованную маршрутизацию запросов на один и тот же узел.
@@ -80,8 +69,6 @@ ClickHouse Cloud использует одну копию данных в S3 с
> Обратитесь в службу поддержки для получения доступа к sticky endpoints.
-
-
## ClickHouse OSS {#clickhouse-oss}
Достижение такого поведения в OSS зависит от топологии ваших шардов и реплик, а также от того, используете ли вы [Distributed table](/engines/table-engines/special/distributed) для выполнения запросов.
@@ -94,8 +81,6 @@ ClickHouse Cloud использует одну копию данных в S3 с
> При создании Distributed table пользователи указывают кластер. Это определение кластера, задаваемое в config.xml, перечисляет шарды (и их реплики), что позволяет пользователям контролировать порядок их использования с каждого узла. Благодаря этому пользователи могут обеспечить детерминированный выбор.
-
-
## Последовательная согласованность {#sequential-consistency}
В исключительных случаях пользователям может потребоваться последовательная согласованность.
@@ -115,8 +100,6 @@ ClickHouse Cloud использует одну копию данных в S3 с
> Использование последовательной согласованности приводит к повышенной нагрузке на ClickHouse Keeper. В результате операции вставки и чтения могут выполняться медленнее. В SharedMergeTree, используемом в ClickHouse Cloud в качестве основного движка таблиц, последовательная согласованность [создаёт меньшие накладные расходы и масштабируется лучше](/cloud/reference/shared-merge-tree#consistency). Пользователям OSS следует применять этот подход с осторожностью и измерять нагрузку на Keeper.
-
-
## Транзакционная поддержка (ACID) {#transactional-acid-support}
Пользователи, мигрирующие с PostgreSQL, могли привыкнуть к его надежной поддержке свойств ACID (Atomicity, Consistency, Isolation, Durability), что делает его устойчивым вариантом для транзакционных баз данных. Атомарность в PostgreSQL гарантирует, что каждая транзакция рассматривается как единое целое, которое либо полностью выполняется, либо полностью откатывается, предотвращая частичные обновления. Согласованность обеспечивается за счет применения ограничений, триггеров и правил, которые гарантируют, что все транзакции с базой данных приводят ее к корректному состоянию. В PostgreSQL поддерживаются уровни изоляции от Read Committed до Serializable, что позволяет тонко управлять видимостью изменений, вносимых параллельными транзакциями. Наконец, долговечность (Durability) достигается с помощью механизма write-ahead logging (WAL), который гарантирует, что после фиксации транзакции она сохраняется даже в случае сбоя системы.
@@ -127,8 +110,6 @@ ClickHouse Cloud использует одну копию данных в S3 с
ClickHouse обеспечивает свойства ACID при [ограниченных конфигурациях](/guides/developer/transactional) — в самом простом случае при использовании нереплицированного экземпляра движка таблиц MergeTree с одним разделом. Пользователям не следует ожидать наличия этих свойств вне этих случаев и необходимо убедиться, что они не являются обязательным требованием.
-
-
## Сжатие {#compression}
Колоночное хранилище ClickHouse означает, что степень сжатия часто будет значительно выше по сравнению с Postgres. Ниже показано, как отличаются требования к хранилищу для всех таблиц Stack Overflow в обеих базах данных:
@@ -168,7 +149,6 @@ GROUP BY `table`
Дополнительную информацию об оптимизации сжатия и оценке его эффективности можно найти [здесь](/data-compression/compression-in-clickhouse).
-
## Сопоставление типов данных {#data-type-mappings}
В следующей таблице показаны эквивалентные типы данных ClickHouse для типов Postgres.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md
index d9a55d4d96d..ae6c938ef5b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md
@@ -13,7 +13,6 @@ import Image from '@theme/IdealImage';
> Это **часть 1** руководства по миграции с PostgreSQL на ClickHouse. На практическом примере показано, как эффективно выполнить миграцию с использованием подхода репликации данных в режиме реального времени (CDC — фиксация изменений данных). Многие описанные концепции также применимы к ручной массовой передаче данных из PostgreSQL в ClickHouse.
-
## Набор данных {#dataset}
В качестве примерного набора данных, демонстрирующего типичную миграцию из Postgres в ClickHouse, мы используем набор данных Stack Overflow, описанный [здесь](/getting-started/example-datasets/stackoverflow). Он содержит каждую запись типов `post`, `vote`, `user`, `comment` и `badge`, появившуюся на Stack Overflow с 2008 по апрель 2024 года. Схема PostgreSQL для этих данных показана ниже:
@@ -28,8 +27,6 @@ import Image from '@theme/IdealImage';
Для пользователей, которые хотят загрузить этот набор данных в экземпляр PostgreSQL для тестирования шагов миграции, мы предоставили данные в формате `pg_dump` для скачивания вместе с DDL, а последующие команды загрузки данных приведены ниже:
-
-
```bash
# пользователи {#users}
wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/users.sql.gz
@@ -37,42 +34,31 @@ gzip -d users.sql.gz
psql < users.sql
```
-
# posts {#posts}
wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/posts.sql.gz
gzip -d posts.sql.gz
psql < posts.sql
-
-
# posthistory {#posthistory}
wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/posthistory.sql.gz
gzip -d posthistory.sql.gz
psql < posthistory.sql
-
-
# комментарии {#comments}
wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/comments.sql.gz
gzip -d comments.sql.gz
psql < comments.sql
-
-
# Голоса {#votes}
wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/votes.sql.gz
gzip -d votes.sql.gz
psql < votes.sql
-
-
# Значки {#badges}
wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/badges.sql.gz
gzip -d badges.sql.gz
psql < badges.sql
-
-
# postlinks {#postlinks}
wget [https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/postlinks.sql.gz](https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/postlinks.sql.gz)
@@ -86,7 +72,6 @@ psql < postlinks.sql
> Хотя результаты наших примеров используют полный набор данных для демонстрации различий в производительности между Postgres и ClickHouse, все описанные ниже шаги функционально идентичны при использовании меньшего подмножества. Пользователи, желающие загрузить полный набор данных в Postgres, могут ознакомиться с инструкциями [здесь](https://pastila.nl/?00d47a08/1c5224c0b61beb480539f15ac375619d#XNj5vX3a7ZjkdiX7In8wqA==). Из-за ограничений внешних ключей, наложенных приведённой выше схемой, полный набор данных для PostgreSQL содержит только строки, соответствующие требованиям ссылочной целостности. При необходимости [версия в формате Parquet](/getting-started/example-datasets/stackoverflow) без таких ограничений может быть легко загружена непосредственно в ClickHouse.
```
-
## Миграция данных {#migrating-data}
### Репликация в режиме реального времени (CDC) {#real-time-replication-or-cdc}
@@ -145,7 +130,6 @@ SETTINGS describe_compact_output = 1
Шаги по оптимизации типов для этой схемы идентичны шагам для случая, когда данные были загружены из других источников, например из Parquet в S3. Применение процесса, описанного в этом [альтернативном руководстве по использованию Parquet](/data-modeling/schema-design), приводит к следующей схеме:
-
```sql title="Query"
CREATE TABLE stackoverflow.posts
(
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md
index 7eb2f2f4140..8b442a250d9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md
@@ -11,16 +11,12 @@ doc_type: 'guide'
Большинство SQL-запросов из вашей инсталляции PostgreSQL будут выполняться в ClickHouse без изменений и, как правило, быстрее.
-
-
## Дедупликация с использованием CDC {#deduplication-cdc}
При использовании репликации в реальном времени с CDC имейте в виду, что операции обновления и удаления могут приводить к появлению дублирующихся строк. Для управления такими ситуациями вы можете использовать подходы, основанные на представлениях (Views) и обновляемых материализованных представлениях (Refreshable Materialized Views).
Обратитесь к этому [руководству](/integrations/clickpipes/postgres/deduplication#query-like-with-postgres), чтобы узнать, как перенести ваше приложение с PostgreSQL на ClickHouse с минимальными изменениями при использовании репликации в реальном времени с CDC.
-
-
## Оптимизация запросов в ClickHouse {#optimize-queries-in-clickhouse}
Хотя можно выполнить миграцию с минимальной переработкой запросов, рекомендуется использовать возможности ClickHouse, чтобы существенно упростить запросы и дополнительно улучшить их производительность.
@@ -136,7 +132,6 @@ Time: 112508.083 ms (01:52.508)
По возможности пользователям следует использовать агрегатные функции ClickHouse. Ниже показано использование функции [argMax](/sql-reference/aggregate-functions/reference/argmax) для вычисления самого просматриваемого вопроса каждого года.
-
```sql
--ClickHouse
SELECT toYear(CreationDate) AS Year,
@@ -237,7 +232,6 @@ LIMIT 5
└─────────────┴────────────┴────────────┴─────────────────────┘
```
-
5 строк в наборе. Время выполнения: 0.247 сек. Обработано 5.08 млн строк, 155.73 MB (20.58 млн строк/с, 630.61 MB/с.)
Пиковое использование памяти: 403.04 MiB.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md
index 225bb153a08..fe35087e6c3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md
@@ -18,7 +18,6 @@ import Image from '@theme/IdealImage';
Мы рекомендуем пользователям, мигрирующим с Postgres, прочитать [руководство по моделированию данных в ClickHouse](/data-modeling/schema-design). В этом руководстве используется тот же набор данных Stack Overflow и рассматривается несколько подходов с использованием возможностей ClickHouse.
-
## Первичные (упорядочивающие) ключи в ClickHouse {#primary-ordering-keys-in-clickhouse}
Пользователи, приходящие из OLTP-баз данных, часто ищут эквивалентную концепцию в ClickHouse. Замечая, что ClickHouse поддерживает синтаксис `PRIMARY KEY`, они могут быть склонны определять схему таблицы, используя те же ключи, что и в исходной OLTP-базе. Это некорректно.
@@ -47,8 +46,6 @@ import Image from '@theme/IdealImage';
При использовании репликации в реальном времени с CDC (фиксацией изменений данных) существуют дополнительные ограничения, которые необходимо учитывать; обратитесь к этой [документации](/integrations/clickpipes/postgres/ordering_keys) за описанием техник настройки упорядочивающих ключей при работе с CDC.
-
-
## Партиции {#partitions}
Пользователям Postgres знакома концепция партиционирования таблиц, которая используется для повышения производительности и управляемости крупных баз данных за счёт разделения таблиц на более мелкие, удобные в обслуживании части, называемые партициями. Такое партиционирование может выполняться по диапазону значений для указанного столбца (например, по датам), по заданным спискам или по хешу ключа. Это позволяет администраторам организовывать данные на основе конкретных критериев, таких как диапазоны дат или географические регионы. Партиционирование помогает улучшить производительность запросов за счёт более быстрого доступа к данным через отсечение партиций (partition pruning) и более эффективного индексирования. Оно также упрощает задачи обслуживания, такие как резервное копирование и очистка данных, позволяя выполнять операции над отдельными партициями, а не над всей таблицей целиком. Кроме того, партиционирование может существенно повысить масштабируемость баз данных PostgreSQL за счёт распределения нагрузки по нескольким партициям.
@@ -117,7 +114,6 @@ Ok.
Получено 0 строк. Прошло: 0.103 сек.
```
-
- **Оптимизация запросов** - Хотя партиционирование может улучшить производительность запросов, это сильно зависит от паттернов доступа. Если запросы затрагивают только несколько партиций (в идеале одну), производительность потенциально может повыситься. Это обычно полезно только в том случае, если ключ партиционирования не входит в первичный ключ и вы фильтруете по нему. Однако запросы, которым необходимо охватить много партиций, могут работать хуже, чем без партиционирования (так как в результате партиционирования может появиться больше частей данных). Преимущество работы с одной партицией будет ещё менее заметным, вплоть до отсутствия, если ключ партиционирования уже является одним из первых столбцов в первичном ключе. Партиционирование также может использоваться для [оптимизации запросов с GROUP BY](/engines/table-engines/mergetree-family/custom-partitioning-key#group-by-optimisation-using-partition-key), если значения в каждой партиции уникальны. Однако в целом пользователям следует в первую очередь оптимизировать первичный ключ и рассматривать партиционирование как технику оптимизации запросов только в исключительных случаях, когда паттерны доступа обращаются к определённому предсказуемому подмножеству в пределах суток, например, при партиционировании по дням, если большинство запросов обращается к данным за последний день.
### Рекомендации по партициям {#recommendations-for-partitions}
@@ -130,8 +126,6 @@ Ok.
> Поскольку части создаются независимо для каждой партиции, увеличение числа партиций приводит к росту количества частей, то есть оно является кратным числу партиций. Ключи партиционирования с высокой кардинальностью, таким образом, могут вызывать эту ошибку и их следует избегать.
-
-
## Материализованные представления и проекции {#materialized-views-vs-projections}
Postgres позволяет создавать несколько индексов для одной таблицы, что позволяет оптимизировать ее под различные паттерны доступа. Эта гибкость позволяет администраторам и разработчикам настраивать производительность базы данных под конкретные запросы и операционные потребности. Концепция проекций в ClickHouse, хотя и не является полной аналогией этого, позволяет пользователям задавать несколько выражений `ORDER BY` для таблицы.
@@ -231,7 +225,6 @@ FROM comments
WHERE UserId = 8592047
```
-
┌─explain─────────────────────────────────────────────┐
1. │ Выражение ((Проекция + до ORDER BY)) │
@@ -286,7 +279,6 @@ WHERE UserId = 8592047
:::
```
-
## Денормализация {#denormalization}
Поскольку Postgres — реляционная база данных, его модель данных сильно [нормализована](https://en.wikipedia.org/wiki/Database_normalization) и часто состоит из сотен таблиц. В ClickHouse денормализация иногда может быть полезна для оптимизации производительности JOIN.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md
index d92e3e2e0c1..483a2bf6ec5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md
@@ -11,11 +11,8 @@ doc_type: 'guide'
import bigquery_1 from '@site/static/images/migrations/bigquery-1.png';
import Image from '@theme/IdealImage';
-
# Сравнение ClickHouse Cloud и BigQuery {#comparing-clickhouse-cloud-and-bigquery}
-
-
## Организация ресурсов {#resource-organization}
Организация ресурсов в ClickHouse Cloud похожа на [иерархию ресурсов BigQuery](https://cloud.google.com/bigquery/docs/resource-hierarchy). Ниже мы описываем конкретные отличия, опираясь на следующую диаграмму, показывающую иерархию ресурсов ClickHouse Cloud:
@@ -56,8 +53,6 @@ ClickHouse отслеживает объем выделяемой памяти
ClickHouse Cloud управляет доступом пользователей в двух местах: через [cloud console](/cloud/guides/sql-console/manage-sql-console-role-assignments) и через [database](/cloud/security/manage-database-users). Доступ к консоли управляется через пользовательский интерфейс [clickhouse.cloud](https://console.clickhouse.cloud). Доступ к базе данных управляется через учетные записи и роли пользователей базы данных. Кроме того, пользователям консоли могут быть назначены роли внутри базы данных, которые позволяют пользователю консоли взаимодействовать с базой данных через наш [SQL console](/integrations/sql-clients/sql-console).
-
-
## Типы данных {#data-types}
ClickHouse предлагает более высокую точность для числовых типов. Например, BigQuery предоставляет числовые типы [`INT64`, `NUMERIC`, `BIGNUMERIC` и `FLOAT64`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#numeric_types). В отличие от него, ClickHouse предлагает несколько вариантов точности для десятичных чисел, чисел с плавающей запятой и целых чисел. Используя эти типы данных, пользователи ClickHouse могут оптимизировать использование дискового пространства и памяти, что приводит к более быстрым запросам и меньшему потреблению ресурсов. Ниже приведено сопоставление эквивалентных типов ClickHouse для каждого типа BigQuery:
@@ -83,8 +78,6 @@ ClickHouse предлагает более высокую точность дл
Когда для типов ClickHouse доступно несколько вариантов, учитывайте фактический диапазон данных и выбирайте минимально необходимый тип. Также рассмотрите возможность использования [подходящих кодеков](https://clickhouse.com/blog/optimize-clickhouse-codecs-compression-schema) для дополнительного сжатия.
-
-
## Техники ускорения запросов {#query-acceleration-techniques}
### Первичные и внешние ключи и первичный индекс {#primary-and-foreign-keys-and-primary-index}
@@ -93,8 +86,6 @@ ClickHouse предлагает более высокую точность дл
В ClickHouse таблица также может иметь первичный ключ. Как и в BigQuery, ClickHouse не гарантирует уникальность значений столбца первичного ключа таблицы. В отличие от BigQuery, данные таблицы на диске хранятся [отсортированными](/guides/best-practices/sparse-primary-indexes#optimal-compression-ratio-of-data-files) по столбцам первичного ключа. Оптимизатор запросов использует этот порядок сортировки, чтобы избежать пересортировки, минимизировать использование памяти при соединениях и обеспечивать раннее завершение обработки при выполнении операторов LIMIT. В отличие от BigQuery, ClickHouse автоматически создает [разреженный первичный индекс](/guides/best-practices/sparse-primary-indexes#an-index-design-for-massive-data-scales) на основе значений столбцов первичного ключа. Этот индекс используется для ускорения всех запросов, содержащих фильтры по столбцам первичного ключа. В настоящее время ClickHouse не поддерживает ограничения внешнего ключа.
-
-
## Вторичные индексы (доступны только в ClickHouse) {#secondary-indexes-only-available-in-clickhouse}
В дополнение к первичному индексу, создаваемому на основе значений столбцов первичного ключа таблицы, ClickHouse позволяет создавать вторичные индексы по столбцам, не входящим в первичный ключ. ClickHouse предлагает несколько типов вторичных индексов, каждый из которых подходит для разных типов запросов:
@@ -108,40 +99,28 @@ ClickHouse предлагает более высокую точность дл
- Хранит минимальные и максимальные значения столбца для каждой части данных.
- Помогает пропускать чтение частей данных, которые не попадают в указанный диапазон.
-
-
## Поисковые индексы {#search-indexes}
Подобно [поисковым индексам](https://cloud.google.com/bigquery/docs/search-index) в BigQuery, для таблиц ClickHouse можно создавать [полнотекстовые индексы](/engines/table-engines/mergetree-family/invertedindexes) на столбцах со строковыми значениями.
-
-
## Векторные индексы {#vector-indexes}
BigQuery недавно представил [векторные индексы](https://cloud.google.com/bigquery/docs/vector-index) на этапе Pre-GA. Аналогично, ClickHouse в экспериментальном режиме поддерживает [индексы для ускорения](/engines/table-engines/mergetree-family/annindexes) сценариев использования векторного поиска.
-
-
## Секционирование {#partitioning}
Как и BigQuery, ClickHouse использует секционирование таблиц для повышения производительности и удобства управления большими таблицами за счёт разбиения их на более мелкие, более удобные для управления части, называемые секциями. Подробное описание секционирования в ClickHouse можно найти [здесь](/engines/table-engines/mergetree-family/custom-partitioning-key).
-
-
## Кластеризация {#clustering}
При кластеризации BigQuery автоматически сортирует данные таблицы по значениям нескольких заданных столбцов и размещает их в блоках оптимального размера. Кластеризация улучшает производительность запросов, позволяя BigQuery точнее оценивать стоимость их выполнения. В кластеризованных столбцах запросы также исключают сканирование ненужных данных.
В ClickHouse данные автоматически [кластеризуются на диске](/guides/best-practices/sparse-primary-indexes#optimal-compression-ratio-of-data-files) на основе столбцов первичного ключа таблицы и логически организуются в блоки, которые могут быть быстро найдены или отброшены запросами, использующими структуру данных первичного индекса.
-
-
## Материализованные представления {#materialized-views}
И BigQuery, и ClickHouse поддерживают материализованные представления — предварительно вычисленные результаты, основанные на результате трансформационного запроса к базовой таблице, что повышает производительность и эффективность.
-
-
## Запросы к материализованным представлениям {#querying-materialized-views}
К материализованным представлениям BigQuery можно обращаться напрямую, либо они могут использоваться оптимизатором для обработки запросов к базовым таблицам. Если изменения в базовых таблицах могут привести к потере актуальности материализованного представления, данные считываются напрямую из базовых таблиц. Если изменения в базовых таблицах не делают материализованное представление неактуальным, остальная часть данных считывается из материализованного представления, а из базовых таблиц считываются только изменения.
@@ -154,14 +133,10 @@ BigQuery периодически полностью обновляет мате
В ClickHouse материализованные представления обновляются инкрементально. Этот механизм инкрементального обновления обеспечивает высокую масштабируемость и низкие вычислительные затраты: инкрементально обновляемые материализованные представления специально спроектированы для сценариев, когда базовые таблицы содержат миллиарды или триллионы строк. Вместо того чтобы многократно выполнять запрос к постоянно растущей базовой таблице для обновления материализованного представления, ClickHouse просто вычисляет частичный результат только по значениям заново вставленных строк базовой таблицы. Этот частичный результат поэтапно объединяется с ранее вычисленным частичным результатом в фоновом режиме. В результате вычислительные затраты оказываются существенно ниже по сравнению с многократным полным обновлением материализованного представления по всей базовой таблице.
-
-
## Транзакции {#transactions}
В отличие от ClickHouse, BigQuery поддерживает транзакции, состоящие из нескольких операторов (multi-statement транзакции) внутри одного запроса, а также в рамках нескольких запросов при использовании сессий. Такая транзакция позволяет выполнять изменяющие операции, такие как вставка или удаление строк в одной или нескольких таблицах, и затем атомарно зафиксировать изменения (commit) или откатить их (rollback). Поддержка multi-statement транзакций включена в [дорожную карту ClickHouse на 2024 год](https://github.com/ClickHouse/ClickHouse/issues/58392).
-
-
## Агрегатные функции {#aggregate-functions}
По сравнению с BigQuery, в ClickHouse значительно больше встроенных агрегатных функций:
@@ -169,8 +144,6 @@ BigQuery периодически полностью обновляет мате
- В BigQuery доступно [18 агрегатных функций](https://cloud.google.com/bigquery/docs/reference/standard-sql/aggregate_functions) и [4 приближённые агрегатные функции](https://cloud.google.com/bigquery/docs/reference/standard-sql/approximate_aggregate_functions).
- В ClickHouse более [150 предопределённых агрегатных функций](/sql-reference/aggregate-functions/reference), а также мощные [комбинаторы агрегации](/sql-reference/aggregate-functions/combinators) для [расширения](https://www.youtube.com/watch?v=7ApwD0cfAFI) их поведения. Например, вы можете применять все эти более чем 150 агрегатных функций к массивам вместо строк таблицы, просто добавив к их имени суффикс [-Array](/sql-reference/aggregate-functions/combinators#-array). С суффиксом [-Map](/sql-reference/aggregate-functions/combinators#-map) можно применять любую агрегатную функцию к значениям типа Map. А с суффиксом [-ForEach](/sql-reference/aggregate-functions/combinators#-foreach) — любую агрегатную функцию к вложенным массивам.
-
-
## Источники данных и форматы файлов {#data-sources-and-file-formats}
По сравнению с BigQuery, ClickHouse поддерживает значительно больше форматов файлов и источников данных:
@@ -178,14 +151,10 @@ BigQuery периодически полностью обновляет мате
- ClickHouse имеет встроенную поддержку загрузки данных из более чем 90 форматов файлов практически из любого источника данных
- BigQuery поддерживает 5 форматов файлов и 19 источников данных
-
-
## Возможности языка SQL {#sql-language-features}
ClickHouse использует стандартный SQL с множеством расширений и улучшений, которые делают его более удобным для аналитических задач. Например, ClickHouse SQL [поддерживает лямбда-функции](/sql-reference/functions/overview#arrow-operator-and-lambda) и функции высшего порядка, поэтому вам не нужно разворачивать массивы (explode) при применении преобразований. Это большое преимущество по сравнению с другими системами, такими как BigQuery.
-
-
## Массивы {#arrays}
По сравнению с восемью функциями работы с массивами в BigQuery, в ClickHouse доступно более 80 [встроенных функций для работы с массивами](/sql-reference/functions/array-functions), которые позволяют элегантно и просто моделировать и решать широкий круг задач.
@@ -273,7 +242,6 @@ ORDER BY offset;
оператор [ARRAY JOIN](/sql-reference/statements/select/array-join)
-
```sql
WITH ['foo', 'bar', 'baz', 'qux', 'corge', 'garply', 'waldo', 'fred'] AS values
SELECT element, num-1 AS offset
@@ -381,7 +349,6 @@ FROM Sequences;
*ClickHouse*
-
Функция [arrayFilter](/sql-reference/functions/array-functions#arrayFilter)
```sql
@@ -488,7 +455,6 @@ FROM Sequences AS s;
функции [arraySum](/sql-reference/functions/array-functions#arraySum), [arrayAvg](/sql-reference/functions/array-functions#arrayAvg), ... или любая из более чем 90 существующих агрегатных функций в качестве аргумента функции [arrayReduce](/sql-reference/functions/array-functions#arrayReduce)
-
```sql
WITH Sequences AS
(
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md
index 4e904afd8dd..ba2aac75658 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md
@@ -21,15 +21,12 @@ import bigquery_11 from '@site/static/images/migrations/bigquery-11.png';
import bigquery_12 from '@site/static/images/migrations/bigquery-12.png';
import Image from '@theme/IdealImage';
-
## Почему стоит использовать ClickHouse Cloud вместо BigQuery? {#why-use-clickhouse-cloud-over-bigquery}
Коротко: потому что ClickHouse быстрее, дешевле и мощнее, чем BigQuery, для современной аналитики данных:
-
-
## Загрузка данных из BigQuery в ClickHouse Cloud {#loading-data-from-bigquery-to-clickhouse-cloud}
### Набор данных {#dataset}
@@ -67,14 +64,10 @@ BigQuery поддерживает экспорт данных в объектн
Перед тем как пробовать следующие примеры, мы рекомендуем пользователям ознакомиться с [требуемыми правами для экспорта](https://cloud.google.com/bigquery/docs/exporting-data#required_permissions) и [рекомендациями по локальности](https://cloud.google.com/bigquery/docs/exporting-data#data-locations), чтобы максимизировать производительность экспорта и импорта.
-
-
### Репликация в реальном времени или CDC с помощью запланированных запросов {#real-time-replication-or-cdc-via-scheduled-queries}
CDC (фиксация изменений данных) — это процесс, который обеспечивает синхронизацию таблиц между двумя базами данных. Задача существенно усложняется, если требуется обрабатывать операции UPDATE и DELETE в режиме, близком к реальному времени. Один из подходов — просто настроить периодический экспорт, используя [функциональность запланированных запросов](https://cloud.google.com/bigquery/docs/scheduling-queries) BigQuery. При условии, что вы можете допустить некоторую задержку при вставке данных в ClickHouse, этот подход легко реализовать и сопровождать. Пример приведён в [этой записи в блоге](https://clickhouse.com/blog/clickhouse-bigquery-migrating-data-for-realtime-queries#using-scheduled-queries).
-
-
## Проектирование схем {#designing-schemas}
Набор данных Stack Overflow содержит ряд связанных таблиц. Рекомендуем сначала сосредоточиться на миграции основной таблицы. Это не обязательно самая большая таблица, а та, по которой вы ожидаете получать больше всего аналитических запросов. Это позволит вам познакомиться с основными концепциями ClickHouse. По мере добавления дополнительных таблиц структура этой таблицы может потребовать пересмотра, чтобы в полной мере использовать возможности ClickHouse и обеспечить оптимальную производительность. Мы рассматриваем этот процесс моделирования в нашей [документации по моделированию данных](/data-modeling/schema-design#next-data-modeling-techniques).
@@ -151,7 +144,6 @@ INSERT INTO stackoverflow.posts SELECT * FROM gcs( 'gs://clickhouse-public-datas
Мы не храним значения NULL в нашей новой схеме. Приведённая выше вставка неявно преобразует их в значения по умолчанию для соответствующих типов — 0 для целых чисел и пустую строку для строковых полей. ClickHouse также автоматически приводит любые числовые значения к нужной точности.
-
## Чем отличаются первичные ключи в ClickHouse? {#how-are-clickhouse-primary-keys-different}
Как описано [здесь](/migrations/bigquery), так же, как и в BigQuery, ClickHouse не обеспечивает уникальность значений столбцов первичного ключа таблицы.
@@ -172,8 +164,6 @@ INSERT INTO stackoverflow.posts SELECT * FROM gcs( 'gs://clickhouse-public-datas
Соображения и шаги по выбору ключа упорядочивания на примере таблицы posts приведены [здесь](/data-modeling/schema-design#choosing-an-ordering-key).
-
-
## Подходы к моделированию данных {#data-modeling-techniques}
Мы рекомендуем пользователям, мигрирующим с BigQuery, ознакомиться с [руководством по моделированию данных в ClickHouse](/data-modeling/schema-design). В этом руководстве используется тот же набор данных Stack Overflow и рассматриваются несколько подходов с использованием возможностей ClickHouse.
@@ -246,7 +236,6 @@ Ok.
0 строк в результате. Прошло: 0.103 сек.
```
-
- **Оптимизация запросов** - Хотя партиционирование может способствовать повышению производительности запросов, это сильно зависит от паттернов доступа. Если запросы обращаются только к нескольким партициям (идеально — к одной), производительность может потенциально улучшиться. Это обычно полезно только в том случае, если ключ партиционирования не входит в первичный ключ и вы фильтруете по нему. Однако запросы, которым необходимо охватить множество партиций, могут работать хуже, чем без партиционирования (так как в результате партиционирования может образоваться больше частей данных). Преимущество обращения только к одной партиции будет менее выраженным вплоть до полного отсутствия, если ключ партиционирования уже является одним из первых столбцов первичного ключа. Партиционирование также может использоваться для [оптимизации запросов с `GROUP BY`](/engines/table-engines/mergetree-family/custom-partitioning-key#group-by-optimisation-using-partition-key), если значения в каждой партиции уникальны. Однако, в целом, пользователям следует в первую очередь убедиться, что первичный ключ оптимизирован, и рассматривать партиционирование как технику оптимизации запросов только в исключительных случаях, когда паттерны доступа охватывают конкретное предсказуемое подмножество суток, например, партиционирование по дню при большинстве запросов за последний день.
#### Рекомендации {#recommendations}
@@ -257,8 +246,6 @@ Ok.
> Внутри ClickHouse [создаются части](/guides/best-practices/sparse-primary-indexes#clickhouse-index-design) для вставляемых данных. По мере вставки всё большего объёма данных количество частей увеличивается. Чтобы предотвратить чрезмерно большое количество частей, что ухудшит производительность запросов (так как нужно читать больше файлов), части сливаются в фоновом асинхронном процессе. Если количество частей превышает [предварительно настроенный предел](/operations/settings/merge-tree-settings#parts_to_throw_insert), то ClickHouse выбросит исключение при вставке как ошибку ["too many parts"](/knowledgebase/exception-too-many-parts). Этого не должно происходить при нормальной эксплуатации и возникает только если ClickHouse неправильно сконфигурирован или используется некорректно, например, при большом количестве мелких вставок. Поскольку части создаются по партиции изолированно, увеличение числа партиций приводит к росту количества частей, то есть оно является кратным количеству партиций. Ключи партиционирования с высокой кардинальностью, таким образом, могут вызывать эту ошибку и их следует избегать.
-
-
## Материализованные представления и проекции {#materialized-views-vs-projections}
Концепция проекций в ClickHouse позволяет задавать для одной таблицы несколько вариантов `ORDER BY`.
@@ -368,7 +355,6 @@ FROM comments
WHERE UserId = 8592047
```
-
┌─explain─────────────────────────────────────────────┐
1. │ Выражение ((Projection + перед ORDER BY)) │
@@ -412,7 +398,6 @@ WHERE UserId = 8592047
- Пользователи готовы к связанному с этим увеличению объёма хранилища и накладным расходам на двойную запись данных. Проверьте влияние на скорость вставки и [оцените накладные расходы на хранение](/data-compression/compression-in-clickhouse).
```
-
## Переписывание запросов BigQuery на ClickHouse {#rewriting-bigquery-queries-in-clickhouse}
Ниже приведены примеры запросов для сравнения BigQuery и ClickHouse. Этот список призван показать, как использовать возможности ClickHouse для значительного упрощения запросов. В примерах используется полный набор данных Stack Overflow (до апреля 2024 года включительно).
@@ -480,7 +465,6 @@ LIMIT 5
Пиковое использование памяти: 567,41 МиБ.
```
-
## Агрегатные функции {#aggregate-functions}
Где это возможно, пользователям следует использовать агрегатные функции ClickHouse. Ниже показано использование [функции `argMax`](/sql-reference/aggregate-functions/reference/argmax) для вычисления самого просматриваемого вопроса за каждый год.
@@ -535,7 +519,6 @@ MaxViewCount: 66975
Peak memory usage: 377.26 MiB.
```
-
## Условные выражения и массивы {#conditionals-and-arrays}
Условные выражения и функции для работы с массивами значительно упрощают запросы. Следующий запрос вычисляет теги (встречающиеся более 10 000 раз) с наибольшим процентным ростом с 2022 по 2023 год. Обратите внимание, насколько лаконичен следующий запрос ClickHouse благодаря условным выражениям, функциям для работы с массивами и возможности повторно использовать псевдонимы в предложениях `HAVING` и `SELECT`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md
index 0907106fb45..42ba3b86308 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md
@@ -13,8 +13,6 @@ _Это руководство подходит для ClickHouse Cloud и дл
Сначала мы экспортируем таблицу в [объектное хранилище Google (GCS)](https://cloud.google.com/storage), а затем импортируем эти данные в [ClickHouse Cloud](https://clickhouse.com/cloud). Эти шаги необходимо повторить для каждой таблицы, которую вы хотите экспортировать из BigQuery в ClickHouse.
-
-
## Сколько времени займет экспорт данных в ClickHouse? {#how-long-will-exporting-data-to-clickhouse-take}
Экспорт данных из BigQuery в ClickHouse зависит от размера набора данных. Для сравнения: экспорт [публичного набора данных Ethereum объемом 4 ТБ](https://cloud.google.com/blog/products/data-analytics/ethereum-bigquery-public-dataset-smart-contract-analytics) из BigQuery в ClickHouse по данному руководству занимает около часа.
@@ -29,7 +27,6 @@ _Это руководство подходит для ClickHouse Cloud и дл
-
## Экспорт данных таблицы в GCS {#1-export-table-data-to-gcs}
На этом шаге мы используем [рабочую область BigQuery SQL](https://cloud.google.com/bigquery/docs/bigquery-web-ui) для выполнения SQL-команд. Ниже мы экспортируем таблицу BigQuery с именем `mytable` в бакет GCS с помощью оператора [`EXPORT DATA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/other-statements).
@@ -66,7 +63,6 @@ END WHILE;
* Экспорт автоматически создаёт несколько файлов, ограничивая размер каждого максимум 1 ГБ табличных данных. Это выгодно для ClickHouse, поскольку позволяет распараллелить импорт.
* Parquet как колоночный формат является более подходящим форматом обмена данными, поскольку он изначально сжат и позволяет BigQuery быстрее выполнять экспорт, а ClickHouse — быстрее выполнять запросы.
-
## Импорт данных в ClickHouse из GCS {#2-importing-data-into-clickhouse-from-gcs}
После завершения экспорта мы можем импортировать эти данные в таблицу ClickHouse. Вы можете использовать [консоль ClickHouse SQL](/integrations/sql-clients/sql-console) или [`clickhouse-client`](/interfaces/cli) для выполнения приведённых ниже команд.
@@ -118,7 +114,6 @@ FROM s3Cluster(
В качестве альтернативы вы можете выполнить `SET input_format_null_as_default=1`, и любые отсутствующие или NULL-значения будут заменены значениями по умолчанию для соответствующих колонок, если такие значения заданы.
:::
-
## Проверка успешного экспорта данных {#3-testing-successful-data-export}
Чтобы проверить, что данные были корректно вставлены, выполните запрос `SELECT` к новой таблице:
@@ -131,7 +126,6 @@ SELECT * FROM mytable LIMIT 10;
-
## Дополнительные материалы и поддержка {#further-reading-and-support}
Помимо этого руководства, мы также рекомендуем прочитать нашу публикацию в блоге, где объясняется, [как использовать ClickHouse для ускорения BigQuery и как работать с инкрементальными импортами](https://clickhouse.com/blog/clickhouse-bigquery-migrating-data-for-realtime-queries).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md
index 96554f2842e..6d0dcf78ba2 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md
@@ -12,7 +12,6 @@ import snowflake_architecture from '@site/static/images/cloud/onboard/discover/u
import cloud_architecture from '@site/static/images/cloud/onboard/discover/use_cases/cloud_architecture.png';
import Image from '@theme/IdealImage';
-
# Миграция с Snowflake на ClickHouse {#snowflake-to-clickhouse-migration}
> Этот документ содержит введение в миграцию данных из Snowflake в ClickHouse.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md
index 419371e52c6..1452df1d237 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md
@@ -11,7 +11,6 @@ doc_type: 'guide'
import migrate_snowflake_clickhouse from '@site/static/images/migrations/migrate_snowflake_clickhouse.png';
import Image from '@theme/IdealImage';
-
# Миграция из Snowflake в ClickHouse {#migrate-from-snowflake-to-clickhouse}
> В этом руководстве описывается процесс миграции данных из Snowflake в ClickHouse.
@@ -23,7 +22,6 @@ import Image from '@theme/IdealImage';
-
## Экспорт данных из Snowflake {#1-exporting-data-from-snowflake}
@@ -61,7 +59,6 @@ COPY INTO @external_stage/mydataset from mydataset max_file_size=157286400 heade
Для набора данных объемом около 5 ТБ с максимальным размером файла 150 МБ и при использовании виртуального склада Snowflake типа 2X-Large, расположенного в том же регионе AWS `us-east-1`, копирование данных в бакет S3 займет примерно 30 минут.
-
## Импорт в ClickHouse {#2-importing-to-clickhouse}
После того как данные размещены во временном объектном хранилище, функции ClickHouse, такие как [табличная функция s3](/sql-reference/table-functions/s3), можно использовать для вставки данных в таблицу, как показано ниже.
@@ -108,7 +105,6 @@ input_format_parquet_case_insensitive_column_matching = 1 -- Сопоставл
Вложенные структуры, такие как `some_file`, при выполнении операции COPY в Snowflake преобразуются в строки JSON. Импорт этих данных требует преобразования таких структур в тип `Tuple` при вставке в ClickHouse с использованием [функции JSONExtract](/sql-reference/functions/json-functions#JSONExtract), как показано выше.
:::
-
## Проверка успешного экспорта данных {#3-testing-successful-data-export}
Чтобы проверить, что данные были корректно вставлены, выполните запрос `SELECT` к новой таблице:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md
index 1cd3450242b..79c3007186c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md
@@ -8,12 +8,8 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Руководство по преобразованию SQL-запросов Snowflake {#snowflake-sql-translation-guide}
-
-
## Типы данных {#data-types}
### Числовые типы {#numerics}
@@ -84,12 +80,8 @@ ClickHouse также поддерживает именованные [`Tuple`](
Snowflake также [накладывает ограничения по размеру](https://docs.snowflake.com/en/user-guide/semistructured-considerations#data-size-limitations)
для этих типов данных.
-
-
### Справочник типов {#type-reference}
-
-
| Snowflake | ClickHouse | Примечание | |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - |
| [`NUMBER`](https://docs.snowflake.com/en/sql-reference/data-types-numeric) | [`Decimal`](/sql-reference/data-types/decimal) | ClickHouse поддерживает вдвое большую точность и масштаб по сравнению со Snowflake — 76 разрядов против 38. | |
@@ -106,8 +98,6 @@ Snowflake также [накладывает ограничения по раз
| [`GEOGRAPHY`](https://docs.snowflake.com/en/sql-reference/data-types-geospatial#geography-data-type) | [`Point`, `Ring`, `Polygon`, `MultiPolygon`](/sql-reference/data-types/geo) | Snowflake задаёт систему координат (WGS 84), тогда как в ClickHouse она применяется только на этапе выполнения запроса. | |
| [`GEOMETRY`](https://docs.snowflake.com/en/sql-reference/data-types-geospatial#geometry-data-type) | [`Point`, `Ring`, `Polygon`, `MultiPolygon`](/sql-reference/data-types/geo) | | |
-
-
| Тип ClickHouse | Описание |
|-------------------|------------------------------------------------------------------------------------------------------------|
| `IPv4` and `IPv6` | Специализированные типы для IP-адресов, потенциально позволяющие более эффективное хранение, чем в Snowflake. |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md
index 852d600c25c..c6354de64f5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md
@@ -7,15 +7,11 @@ title: 'Сравнение ClickHouse Cloud и Amazon Redshift'
doc_type: 'guide'
---
-
-
# Миграция с Amazon Redshift на ClickHouse {#amazon-redshift-to-clickhouse-migration}
> Этот документ является вводным руководством по миграции данных из Amazon
Redshift в ClickHouse.
-
-
## Введение {#introduction}
Amazon Redshift — это облачное хранилище данных, которое предоставляет
@@ -37,8 +33,6 @@ Amazon Redshift — это облачное хранилище данных, к
«скоростного слоя», развернутого параллельно существующим рабочим
нагрузкам Redshift.
-
-
## ClickHouse vs Redshift {#clickhouse-vs-redshift}
Для пользователей, глубоко интегрированных в экосистему AWS, Redshift является
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md
index c03693dc915..fa0b7814d38 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md
@@ -7,12 +7,8 @@ title: 'Руководство по преобразованию SQL из Amazon
doc_type: 'reference'
---
-
-
# Руководство по преобразованию SQL-запросов Amazon Redshift {#amazon-redshift-sql-translation-guide}
-
-
## Типы данных {#data-types}
Пользователи, переносящие данные между ClickHouse и Redshift, сразу заметят,
@@ -34,8 +30,6 @@ String в ClickHouse, таким образом, не имеет огранич
Ниже мы сопоставляем эквивалентный тип ClickHouse для каждого типа Redshift:
-
-
| Redshift | ClickHouse |
| ------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`SMALLINT`](https://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html#r_Numeric_types201-integer-types) | [`Int8`](/sql-reference/data-types/int-uint) * |
@@ -58,13 +52,9 @@ String в ClickHouse, таким образом, не имеет огранич
| [`TIMETZ`](https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timetz) | [`DateTime`](/sql-reference/data-types/datetime), [`DateTime64`](/sql-reference/data-types/datetime64) |
| [`VARBYTE`](https://docs.aws.amazon.com/redshift/latest/dg/r_VARBYTE_type.html) ** | Тип [`String`](/sql-reference/data-types/string) в сочетании с функциями [`Bit`](/sql-reference/functions/bit-functions) и [Encoding](/sql-reference/functions/encoding-functions/#hex) |
-
-
* Кроме того, ClickHouse поддерживает беззнаковые целые числа с расширенными диапазонами значений, например `UInt8`, `UInt32`, `UInt32` и `UInt64`. **Тип String в ClickHouse по умолчанию имеет неограниченную длину, но может быть ограничен по длине с помощью Constraints.
-
-
## Синтаксис DDL {#compression}
### Ключи сортировки {#sorting-keys}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud.md
index aa9ddc558dc..21fbe977a87 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud.md
@@ -16,7 +16,6 @@ import self_managed_04 from '@site/static/images/integrations/migration/self-man
import self_managed_05 from '@site/static/images/integrations/migration/self-managed-05.png';
import self_managed_06 from '@site/static/images/integrations/migration/self-managed-06.png';
-
# Миграция между самоуправляемым ClickHouse и ClickHouse Cloud {#migrating-between-self-managed-clickhouse-and-clickhouse-cloud}
@@ -70,7 +69,6 @@ FROM system.tables
WHERE database = 'db' AND table = 'table'
```
-
### На целевой системе ClickHouse Cloud: {#on-the-destination-clickhouse-cloud-system}
* Создайте базу данных назначения:
@@ -118,7 +116,6 @@ remoteSecure('HOSTNAME.clickhouse.cloud:9440', 'db.table',
'default', 'PASS') SELECT * FROM db.table
```
-
## Миграция между сервисами ClickHouse Cloud {#migrating-between-clickhouse-cloud-services}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md
index 5014b68ce3a..2d021ce9ebf 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md
@@ -17,7 +17,6 @@ import ch_local_02 from '@site/static/images/integrations/migration/ch-local-02.
import ch_local_03 from '@site/static/images/integrations/migration/ch-local-03.png';
import ch_local_04 from '@site/static/images/integrations/migration/ch-local-04.png';
-
# Миграция в ClickHouse с использованием clickhouse-local {#migrating-to-clickhouse-using-clickhouse-local}
@@ -101,7 +100,6 @@ ClickHouse предоставляет интеграционные движки
CREATE DATABASE db
```
-
#### Создайте таблицу-назначение с такой же схемой, как у таблицы MySQL: {#create-a-destination-table-that-has-a-schema-equivalent-to-the-mysql-table}
```sql
@@ -112,7 +110,6 @@ ClickHouse предоставляет интеграционные движки
Схемы целевой таблицы ClickHouse Cloud и исходной таблицы MySQL должны соответствовать друг другу (имена и порядок столбцов должны совпадать, а типы данных столбцов — быть совместимыми).
:::
-
### На хосте с clickhouse-local: {#on-the-clickhouse-local-host-machine}
#### Запустите clickhouse-local с миграционным запросом: {#run-clickhouse-local-with-the-migration-query}
@@ -129,7 +126,6 @@ SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password');"
и затем сразу записываются в целевую таблицу в ClickHouse Cloud.
:::
-
## Пример 2. Миграция с MySQL в ClickHouse Cloud с использованием JDBC bridge {#example-2-migrating-from-mysql-to-clickhouse-cloud-with-the-jdbc-bridge}
Мы будем использовать [табличный движок интеграции JDBC](/engines/table-engines/integrations/jdbc.md) (создаваемый на лету с помощью [табличной функции jdbc](/sql-reference/table-functions/jdbc.md)) вместе с [ClickHouse JDBC Bridge](https://github.com/ClickHouse/clickhouse-jdbc-bridge) и JDBC-драйвером MySQL для чтения данных из исходной базы данных MySQL, а [табличную функцию remoteSecure](/sql-reference/table-functions/remote.md) — для записи данных в целевую таблицу в вашем сервисе ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/resource_tour.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/resource_tour.md
index 33fd8034d5c..41791ae52fa 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/resource_tour.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/resource_tour.md
@@ -11,7 +11,6 @@ import TableOfContentsBestPractices from '@site/i18n/ru/docusaurus-plugin-conten
import TableOfContentsOptimizationAndPerformance from '@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/_snippets/_performance_optimizations_table_of_contents.md';
import TableOfContentsSecurity from '@site/i18n/ru/docusaurus-plugin-content-docs/current/cloud/_snippets/_security_table_of_contents.md';
-
# Обзор ресурсов {#resource-tour}
В этой статье представлен обзор доступных в документации ресурсов,
@@ -28,14 +27,10 @@ import TableOfContentsSecurity from '@site/i18n/ru/docusaurus-plugin-content-doc
-
-
## Методы оптимизации запросов и тонкая настройка производительности {#query-optimization}
-
-
## Мониторинг {#monitoring}
| Страница | Описание |
@@ -44,14 +39,10 @@ import TableOfContentsSecurity from '@site/i18n/ru/docusaurus-plugin-content-doc
| [Интеграция с Prometheus](/integrations/prometheus) | Используйте Prometheus для мониторинга облачных служб |
| [Возможности облачного мониторинга](/use-cases/observability/cloud-monitoring) | Получите обзор встроенных возможностей мониторинга и вариантов интеграции |
-
-
## Безопасность {#security}
-
-
## Оптимизация затрат и биллинга {#cost-optimization}
| Страница | Описание |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/index.md
index 870014d9c92..815dbc8863a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/index.md
@@ -7,8 +7,6 @@ doc_type: 'guide'
keywords: ['онбординг', 'начало работы', 'настройка в облаке', 'быстрый старт', 'введение']
---
-
-
# Начало работы с ClickHouse Cloud {#get-started-with-clickhouse-cloud}
Впервые используете ClickHouse Cloud и не знаете, с чего начать? В этом разделе документации
@@ -18,14 +16,11 @@ keywords: ['онбординг', 'начало работы', 'настройк
-
## Познакомьтесь с ClickHouse Cloud {#discover-clickhouse-cloud}
- [Узнайте](/cloud/overview), что такое ClickHouse Cloud и чем он отличается от версии с открытым исходным кодом
- [Ознакомьтесь](/cloud/get-started/cloud/use-cases/overview) с основными сценариями использования ClickHouse Cloud
-
-
## Начало работы с ClickHouse Cloud {#get-set-up-with-clickhouse-cloud}
Теперь, когда вы знаете, что такое ClickHouse Cloud, мы шаг за шагом покажем,
@@ -36,8 +31,6 @@ keywords: ['онбординг', 'начало работы', 'настройк
- [Руководства по миграции](/integrations/migration/overview) с различных платформ
-
-
## Настройте развертывание ClickHouse Cloud {#evaluate-clickhouse-cloud}
Теперь, когда ваши данные уже в ClickHouse Cloud, мы рассмотрим ряд более продвинутых
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/02_architecture.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/02_architecture.md
index bf883feb215..e7e156b0c4e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/02_architecture.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/02_architecture.md
@@ -10,33 +10,24 @@ doc_type: 'reference'
import Image from '@theme/IdealImage';
import Architecture from '@site/static/images/cloud/reference/architecture.png';
-
# Архитектура ClickHouse Cloud {#clickhouse-cloud-architecture}
-
-
## Хранилище на базе объектного хранилища {#storage-backed-by-object-store}
- Практически неограниченный объём хранилища
- Нет необходимости вручную передавать данные
- Существенно более низкая стоимость хранения данных, особенно тех, к которым обращаются реже
-
-
## Вычисления {#compute}
- Автоматическое масштабирование и перевод в режим простоя: нет необходимости заранее подбирать размер и закладывать дополнительные ресурсы под пиковую нагрузку
- Автоматический перевод в режим простоя и возобновление работы: нет необходимости держать неиспользуемые вычислительные ресурсы, когда ими никто не пользуется
- Безопасность и высокая доступность по умолчанию
-
-
## Администрирование {#administration}
- Настройка, мониторинг, резервное копирование и биллинг выполняются за вас.
- Механизмы контроля затрат включены по умолчанию и могут быть настроены вами через консоль Cloud.
-
-
## Изоляция сервисов {#service-isolation}
### Сетевая изоляция {#network-isolation}
@@ -55,13 +46,9 @@ import Architecture from '@site/static/images/cloud/reference/architecture.png';
Для GCP и Azure сервисы имеют изоляцию объектного хранилища (каждый сервис имеет собственный bucket или контейнер хранилища).
-
-
## Разделение вычислительных ресурсов {#compute-compute-separation}
[Разделение вычислительных ресурсов](/cloud/reference/warehouses) позволяет пользователям создавать несколько групп вычислительных узлов, каждая со своим собственным URL сервиса, при этом все они используют одно и то же общее объектное хранилище. Это обеспечивает изоляцию вычислений для разных сценариев использования, например разделение операций чтения и записи, работающих с одними и теми же данными. Кроме того, это повышает эффективность использования ресурсов за счет независимого масштабирования вычислительных групп по мере необходимости.
-
-
## Ограничения параллелизма {#concurrency-limits}
В вашем сервисе ClickHouse Cloud нет ограничений на количество запросов в секунду (QPS). Однако существует ограничение в 1000 одновременных запросов на одну реплику. В итоге QPS определяется средней длительностью выполнения запроса и количеством реплик в вашем сервисе.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/03_billing/01_billing_overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/03_billing/01_billing_overview.md
index 973ac7dd258..d716c621f2e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/03_billing/01_billing_overview.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/03_billing/01_billing_overview.md
@@ -11,8 +11,6 @@ keywords: ['ClickHouse Cloud', 'цены', 'выставление счетов'
ClickHouse Cloud выставляет счета исходя из использования вычислительных ресурсов, хранилища, [передачи данных](/cloud/manage/network-data-transfer) (исходящий трафик в интернет и между регионами) и [ClickPipes](/integrations/clickpipes).
Чтобы понять, что может повлиять на ваш счет и как вы можете управлять своими расходами, читайте дальше.
-
-
## Пример для Amazon Web Services (AWS) {#amazon-web-services-aws-example}
:::note
@@ -131,8 +129,6 @@ ClickHouse Cloud выставляет счета исходя из исполь
Лучше всего подходит для: крупномасштабных, бизнес-критичных развертываний с жесткими требованиями к безопасности и соответствию нормативам.
-
-
**Сервис уровня Enterprise**
- Активная нагрузка ~100% времени
- 1 ТБ исходящего трафика в публичный интернет
@@ -179,8 +175,6 @@ ClickHouse Cloud выставляет счета исходя из исполь
-
-
## Часто задаваемые вопросы {#faqs}
### Что такое ClickHouse Credit (CHC)? {#what-is-chc}
@@ -253,7 +247,6 @@ ClickHouse Cloud поддерживает следующие варианты б
Начисление платежей происходит помесячно, а датой начала считается день создания организации ClickHouse Cloud.
-
### Если у меня есть активная подписка PAYG через маркетплейс и затем я заключаю контракт с обязательствами, будут ли в первую очередь расходоваться мои кредиты по контракту? {#committed-credits-consumed-first-with-active-payg-subscription}
Да. Использование списывается с источников оплаты в следующем порядке:
@@ -315,8 +308,6 @@ ClickHouse Cloud поддерживает следующие варианты б
### Есть ли разница в ценах ClickHouse Cloud при оплате через маркетплейс облачного провайдера или напрямую ClickHouse? {#is-there-a-difference-in-clickhouse-cloud-pricing-whether-paying-through-the-cloud-provider-marketplace-or-directly-to-clickhouse}
-
-
Разницы в цене между оплатой через маркетплейс и прямой регистрацией в ClickHouse нет.
В обоих случаях использование ClickHouse Cloud учитывается в виде ClickHouse Cloud Credits (CHCs),
которые тарифицируются одинаково и выставляются к оплате соответствующим образом.
@@ -396,8 +387,6 @@ ClickHouse Cloud поддерживает следующие варианты б
Без использования warehouses вам пришлось бы платить за объём памяти, который нужен дата-инженеру для его запросов.
Однако объединение двух сервисов в один warehouse и перевод одного из них в режим простоя помогает сэкономить деньги.
-
-
## Тарифы ClickPipes {#clickpipes-pricing}
За информацией о тарификации ClickPipes см. специальный раздел ["Тарификация ClickPipes"](/cloud/reference/billing/clickpipes).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/03_billing/06_billing_compliance.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/03_billing/06_billing_compliance.md
index a626d5451a4..4127db05fba 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/03_billing/06_billing_compliance.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/03_billing/06_billing_compliance.md
@@ -10,11 +10,8 @@ doc_type: 'guide'
import billing_compliance from '@site/static/images/cloud/manage/billing_compliance.png';
import Image from '@theme/IdealImage';
-
# Соответствие биллинга ClickHouse Cloud нормативным требованиям {#clickhouse-cloud-billing-compliance}
-
-
## Соответствие требованиям к выставлению счетов {#billing-compliance}
Для использования ClickHouse Cloud в вашей организации должен быть настроен
@@ -103,8 +100,6 @@ ClickHouse выставляет счета за сервисы на уровне
Вы можете приобрести кредиты для вашей организации по контракту с обязательствами
по расходам, выполнив следующие действия:
-
-
1. Свяжитесь с отделом продаж, чтобы купить кредиты напрямую, с вариантами оплаты,
включающими ACH или банковский перевод. Условия оплаты будут указаны в
соответствующей форме заказа.
@@ -156,8 +151,6 @@ ClickHouse выставляет счета за сервисы на уровне
-
-
## Как оплачивать через маркетплейсы {#marketplace-payg}
Если вы хотите оплачивать услуги через один из поддерживаемых нами маркетплейсов (AWS, GCP или Azure),
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/05_supported-regions.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/05_supported-regions.md
index 23f88da2688..d6c308bbdeb 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/05_supported-regions.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/05_supported-regions.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import EnterprisePlanFeatureBadge from '@theme/badges/EnterprisePlanFeatureBadge'
-
# Поддерживаемые регионы Cloud {#supported-cloud-regions}
## Регионы AWS {#aws-regions}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/09_security/03_compliance-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/09_security/03_compliance-overview.md
index f11b063df23..cbf31cafa66 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/09_security/03_compliance-overview.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/09_security/03_compliance-overview.md
@@ -9,30 +9,21 @@ keywords: ['ClickHouse Cloud', 'SOC 2 Type II', 'ISO 27001', 'HIPAA', 'U.S. DPF'
import BetaBadge from '@theme/badges/BetaBadge';
import EnterprisePlanFeatureBadge from '@theme/badges/EnterprisePlanFeatureBadge';
-
# Отчеты по безопасности и соответствию требованиям {#security-and-compliance-reports}
ClickHouse оценивает потребности наших клиентов в области безопасности и соответствия требованиям и постоянно расширяет программу по мере появления запросов на дополнительные отчеты. Для получения дополнительной информации или загрузки отчетов посетите наш [Центр доверия](https://trust.clickhouse.com).
-
-
## SOC 2 Type II (с 2022 года) {#soc-2-type-ii-since-2022}
System and Organization Controls (SOC) 2 — это отчёт, сфокусированный на критериях безопасности, доступности, конфиденциальности, целостности обработки и приватности, содержащихся в Trust Services Criteria (TSC) и применяемых к системам организации. Он предназначен для обеспечения уверенности в эффективности этих механизмов контроля для заинтересованных сторон (наших клиентов). ClickHouse взаимодействует с независимыми внешними аудиторами и как минимум раз в год проходит аудит, охватывающий безопасность, доступность и целостность обработки наших систем, а также конфиденциальность и приватность данных, обрабатываемых нашими системами. Отчёт охватывает как наш ClickHouse Cloud, так и вариант развертывания Bring Your Own Cloud (BYOC).
-
-
## ISO 27001 (с 2023 года) {#iso-27001-since-2023}
ISO 27001 — международный стандарт в области информационной безопасности. Он требует от компаний внедрения системы управления информационной безопасностью (ISMS), которая включает процессы управления рисками, разработки и распространения политик, реализации мер безопасности и мониторинга для обеспечения актуальности и эффективности всех компонентов. ClickHouse проводит внутренние аудиты и работает с независимыми внешними аудиторами, проходя аудиты и промежуточные проверки в течение двух лет действия сертификата.
-
-
## Рамочное соглашение США по защите данных (с 2024 года) {#us-dpf-since-2024}
Рамочное соглашение США по защите данных было разработано для предоставления организациям США надежных механизмов передачи персональных данных в Соединенные Штаты из Европейского союза / Европейской экономической зоны, Соединенного Королевства и Швейцарии, которые соответствуют законодательству ЕС, Великобритании и Швейцарии (https://dataprivacyframework.gov/Program-Overview). ClickHouse прошел самосертификацию в рамках этого соглашения и включен в [список участников Рамочного соглашения по защите данных](https://dataprivacyframework.gov/list).
-
-
## HIPAA (с 2024 года) {#hipaa-since-2024}
@@ -41,8 +32,6 @@ ISO 27001 — международный стандарт в области ин
Обратитесь к разделу [HIPAA onboarding](//cloud/security/compliance/hipaa-onboarding), чтобы ознакомиться с шагами по заключению Business Associate Agreement (BAA) и развертыванию сервисов, соответствующих требованиям HIPAA.
-
-
## Поставщик услуг PCI (с 2025 года) {#pci-service-provider-since-2025}
@@ -51,14 +40,10 @@ ISO 27001 — международный стандарт в области ин
Для получения информации о шагах по развёртыванию сервисов, соответствующих требованиям PCI, см. раздел [PCI onboarding](//cloud/security/compliance/pci-onboarding).
-
-
## Соответствие требованиям конфиденциальности {#privacy-compliance}
Помимо указанных выше пунктов, ClickHouse поддерживает внутренние программы обеспечения соответствия Общему регламенту по защите данных (GDPR), Калифорнийскому закону о защите прав потребителей (CCPA) и другим применимым требованиям и стандартам в области конфиденциальности.
-
-
## Соответствие требованиям к платежам {#payment-compliance}
ClickHouse предоставляет защищённый способ оплаты кредитной картой, соответствующий стандарту [PCI SAQ A v4.0](https://www.pcisecuritystandards.org/document_library/).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/11_account-close.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/11_account-close.md
index c9cd437f449..b810653b629 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/11_account-close.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/11_account-close.md
@@ -7,8 +7,6 @@ keywords: ['ClickHouse Cloud', 'закрытие аккаунта', 'удале
doc_type: 'guide'
---
-
-
## Закрытие и удаление аккаунта {#account-close--deletion}
Наша цель — помочь вам успешно реализовать проект. Если у вас есть вопросы, на которые вы не нашли ответ на этом сайте, или вам нужна помощь в оценке
@@ -16,8 +14,6 @@ doc_type: 'guide'
Мы понимаем, что иногда возникают обстоятельства, требующие закрытия аккаунта. Это руководство поможет вам пройти этот процесс.
-
-
## Закрыть или удалить аккаунт {#close-vs-delete}
Клиенты могут снова войти в закрытые аккаунты, чтобы просматривать данные об использовании, выставленные счета и журналы активности аккаунта. Это позволяет вам легко получать доступ к
деталям, которые полезны для различных целей — от документирования сценариев использования до скачивания счетов в конце года для налоговой отчетности.
@@ -30,8 +26,6 @@ doc_type: 'guide'
Подписчики на рассылку могут отписаться в любой момент с помощью ссылки для отказа от подписки внизу письма рассылки, не закрывая свой аккаунт и не
удаляя свою информацию.
-
-
## Подготовка к закрытию {#preparing-for-closure}
Прежде чем запрашивать закрытие учетной записи, выполните следующие шаги для её подготовки.
@@ -40,8 +34,6 @@ doc_type: 'guide'
3. Удалите всех пользователей, кроме администратора, который будет запрашивать закрытие. Это поможет убедиться, что в процессе закрытия не будут созданы новые сервисы.
4. Просмотрите вкладки «Usage» и «Billing» в панели управления, чтобы убедиться, что все начисления оплачены. Мы не можем закрывать учетные записи с непогашенной задолженностью.
-
-
## Запрос на закрытие учетной записи {#request-account-closure}
Мы обязаны подтверждать подлинность запросов как на закрытие, так и на удаление. Чтобы обеспечить быструю обработку вашего запроса, выполните шаги,
@@ -62,7 +54,6 @@ doc_type: 'guide'
5. Нажмите «Create new case».
6. Мы закроем вашу учётную запись и отправим письмо с подтверждением, чтобы уведомить вас, когда всё будет завершено.
-
## Запрос на удаление ваших персональных данных {#request-personal-data-deletion}
Обратите внимание: только администраторы учетной записи могут запрашивать удаление персональных данных в ClickHouse. Если вы не являетесь администратором учетной записи, обратитесь к администратору вашей учетной записи ClickHouse с просьбой удалить вас из учетной записи.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/concepts/glossary.md b/i18n/ru/docusaurus-plugin-content-docs/current/concepts/glossary.md
index fe2c746f7ac..2f7fd082d6e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/concepts/glossary.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/concepts/glossary.md
@@ -9,155 +9,104 @@ doc_type: 'reference'
{/* no-glossary */ }
-
# Глоссарий {#glossary}
-
-
## Атомарность {#atomicity}
Атомарность гарантирует, что транзакция (последовательность операций над базой данных) рассматривается как единое, неделимое целое. Это означает, что либо выполняются все операции внутри транзакции, либо не выполняется ни одна. Пример атомарной транзакции — перевод денег с одного банковского счёта на другой. Если какой-либо из шагов перевода завершается ошибкой, транзакция считается несостоявшейся, и деньги остаются на первом счёте. Атомарность гарантирует, что деньги не будут ни потеряны, ни созданы из ничего.
-
-
## Блок {#block}
Блок — это логическая единица организации обработки и хранения данных. Каждый блок содержит колоночные данные, которые обрабатываются совместно для повышения производительности при выполнении запросов. Обрабатывая данные блоками, ClickHouse эффективно использует ядра процессора, минимизируя промахи кэша и обеспечивая векторизованное выполнение. ClickHouse использует различные алгоритмы сжатия, такие как LZ4, ZSTD и Delta, для сжатия данных в блоках.
-
-
## Кластер {#cluster}
Набор узлов (серверов), которые совместно хранят и обрабатывают данные.
-
-
## CMEK {#cmek}
Ключи шифрования, управляемые клиентом (Customer-managed encryption keys, CMEK), позволяют использовать ключ из службы управления ключами (KMS) для шифрования ключа данных на диске ClickHouse и защиты данных в состоянии покоя.
-
-
## Словарь {#dictionary}
Словарь — это сопоставление пар ключ-значение, полезное для различных типов справочных списков. Это мощная возможность, которая позволяет эффективно использовать словари в запросах, что часто оказывается более производительным, чем использование `JOIN` со справочными таблицами.
-
-
## Распределённая таблица {#distributed-table}
Распределённая таблица в ClickHouse — это специальный тип таблицы, который не хранит данные сама по себе, а предоставляет единое представление для распределённой обработки запросов по нескольким серверам кластера.
-
-
## Гранула {#granule}
Гранула — это набор строк в несжатом блоке. При чтении данных ClickHouse обращается к гранулам, а не к отдельным строкам, что позволяет быстрее обрабатывать данные в аналитических нагрузках. По умолчанию гранула содержит 8192 строки. Первичный индекс содержит одну запись на гранулу.
-
-
## Инкрементальное материализованное представление {#incremental-materialized-view}
В ClickHouse инкрементальное материализованное представление — это тип материализованного представления, который обрабатывает и агрегирует данные во время вставки. Когда в исходную таблицу вставляются новые данные, материализованное представление выполняет предопределённый агрегирующий SQL-запрос только для вновь вставленных блоков и записывает агрегированные результаты в целевую таблицу.
-
-
## Легковесное обновление {#lightweight-update}
Легковесное обновление в ClickHouse — это экспериментальная функция, которая позволяет обновлять строки в таблице с использованием стандартного SQL-синтаксиса UPDATE, но вместо перезаписи целых столбцов или кусков данных (как в случае традиционных мутаций) создаёт части-патчи, содержащие только обновлённые столбцы и строки. Эти обновления сразу же видны в запросах SELECT за счёт применения патчей, но физическое представление данных изменяется только во время последующих слияний.
-
-
## Материализованное представление {#materialized-view}
Материализованное представление в ClickHouse — это механизм, который автоматически выполняет запрос к данным при их вставке в исходную таблицу и сохраняет преобразованные или агрегированные результаты в отдельной целевой таблице для ускорения последующих запросов.
-
-
## MergeTree {#mergetree}
MergeTree в ClickHouse — это табличный движок, разработанный для высоких скоростей приёма данных и работы с большими объёмами. Это основной движок хранения в ClickHouse, предоставляющий такие возможности, как колонночное хранение, настраиваемое партиционирование, разрежённые первичные индексы и поддержка фонового слияния данных.
-
-
## Мутация {#mutation}
Мутация в ClickHouse — это операция, которая изменяет или удаляет существующие данные в таблице, как правило, с помощью команд `ALTER TABLE ... UPDATE` или `ALTER TABLE ... DELETE`. Мутации реализованы как асинхронные фоновые процессы, которые перезаписывают все части данных таблицы, затронутые изменением, вместо изменения строк «на месте».
-
-
## Мутация "на лету" {#on-the-fly-mutation}
Мутации "на лету" в ClickHouse — это механизм, который позволяет обновлениям и удалениям становиться видимыми в последующих запросах SELECT сразу после отправки мутации, без ожидания завершения фонового процесса мутации.
-
-
## Части {#parts}
Физический файл на диске, в котором хранится часть данных таблицы. Не путать с партицией — логическим разделением данных таблицы, создаваемым с помощью ключа партиционирования.
-
-
## Ключ партиционирования {#partitioning-key}
Ключ партиционирования в ClickHouse — это SQL-выражение, задаваемое в операторе PARTITION BY при создании таблицы. Он определяет, как данные логически объединяются в партиции на диске. Каждое уникальное значение ключа партиционирования образует отдельную физическую партицию, что обеспечивает эффективное управление данными, включая операции удаления, перемещения или архивирования целых партиций.
-
-
## Первичный ключ {#primary-key}
В ClickHouse первичный ключ определяет порядок хранения данных на диске и используется для построения разреженного индекса, ускоряющего фильтрацию запросов. В отличие от традиционных баз данных, первичный ключ в ClickHouse не обеспечивает уникальность — несколько строк могут иметь одно и то же значение первичного ключа.
-
-
## Проекция {#projection}
Проекция в ClickHouse — это скрытая, автоматически обслуживаемая таблица, которая хранит данные в другом порядке или с предвычисленными агрегатами, чтобы ускорять выполнение запросов, особенно запросов, фильтрующих по столбцам, не входящим в основной первичный ключ.
-
-
## Обновляемое материализованное представление {#refreshable-materialized-view}
Обновляемое материализованное представление — это тип материализованного представления, который периодически повторно выполняет свой запрос по всему набору данных и сохраняет результат в целевой таблице. В отличие от инкрементных материализованных представлений, обновляемые материализованные представления обновляются по расписанию и могут выполнять сложные запросы, включая JOIN и UNION, без ограничений.
-
-
## Реплика {#replica}
Копия данных, хранящихся в базе данных ClickHouse. Вы можете иметь любое количество реплик одних и тех же данных для повышения отказоустойчивости и надежности. Реплики используются совместно с движком таблицы ReplicatedMergeTree, который позволяет ClickHouse поддерживать несколько копий данных синхронизированными на разных серверах.
-
-
## Шард {#shard}
Часть данных. В ClickHouse всегда есть как минимум один шард для ваших данных. Если вы не распределяете данные между несколькими серверами, все данные будут храниться в одном шарде. Шардинг данных по нескольким серверам можно использовать для распределения нагрузки, когда возможностей одного сервера уже недостаточно.
-
-
## Индекс пропуска {#skipping-index}
Индексы пропуска используются для хранения небольших объёмов метаданных на уровне нескольких последовательных гранул, что позволяет ClickHouse не сканировать нерелевантные строки. Индексы пропуска представляют собой лёгкую альтернативу проекциям.
-
-
## Ключ сортировки {#sorting-key}
В ClickHouse ключ сортировки определяет физический порядок строк на диске. Если вы не задаёте первичный ключ, ClickHouse использует ключ сортировки в качестве первичного ключа. Если вы задаёте оба, первичный ключ должен быть префиксом ключа сортировки.
-
-
## Разреженный индекс {#sparse-index}
Тип индекса, при котором первичный индекс содержит одну запись на группу строк, а не на каждую отдельную строку. Запись, соответствующая группе строк, называется меткой (mark). При использовании разреженных индексов ClickHouse сначала определяет группы строк, которые потенциально удовлетворяют запросу, а затем обрабатывает их отдельно, чтобы найти совпадения. Благодаря этому первичный индекс достаточно мал, чтобы его можно было целиком загрузить в память.
-
-
## Движок таблицы {#table-engine}
Движки таблиц в ClickHouse определяют, как выполняется запись, хранение и доступ к данным. MergeTree — самый распространённый движок таблиц и обеспечивает быструю вставку больших объёмов данных, которые затем обрабатываются в фоновом режиме.
-
-
## TTL {#ttl}
Time To Live (TTL) — это механизм ClickHouse, который автоматически перемещает, удаляет или агрегирует столбцы или строки по истечении определённого периода времени. Это позволяет более эффективно управлять хранением данных, поскольку вы можете удалять, перемещать или архивировать данные, к которым больше нет необходимости часто обращаться.
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/concepts/olap.md b/i18n/ru/docusaurus-plugin-content-docs/current/concepts/olap.md
index 4d2ba1dc70c..1cc83434960 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/concepts/olap.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/concepts/olap.md
@@ -8,8 +8,6 @@ keywords: ['OLAP']
doc_type: 'reference'
---
-
-
# Что такое OLAP? {#what-is-olap}
[OLAP](https://en.wikipedia.org/wiki/Online_analytical_processing) расшифровывается как Online Analytical Processing. Это обобщающий термин, на который можно смотреть с двух точек зрения: технической и с точки зрения бизнеса. На самом базовом уровне можно просто прочитать эти слова в обратном порядке:
@@ -20,8 +18,6 @@ doc_type: 'reference'
**Online** — …в режиме реального времени.
-
-
## OLAP с точки зрения бизнеса {#olap-from-the-business-perspective}
В последние годы представители бизнеса начали осознавать ценность данных. Компании, которые принимают решения вслепую, чаще всего не успевают за конкурентами. Подход, основанный на данных, который используют успешные компании, заставляет их собирать все данные, которые могут быть хотя бы отдалённо полезны для принятия бизнес-решений, и формирует потребность в механизмах, позволяющих оперативно анализировать эти данные. Именно здесь на сцену выходят системы управления базами данных (СУБД) класса OLAP.
@@ -30,8 +26,6 @@ doc_type: 'reference'
ClickHouse — это OLAP‑СУБД, которая довольно часто используется как бекенд для таких SaaS‑решений по анализу предметно-ориентированных данных. Однако некоторые компании по-прежнему не готовы делиться своими данными с внешними провайдерами, поэтому сценарий внутреннего хранилища данных также остаётся актуальным вариантом.
-
-
## OLAP с технической точки зрения {#olap-from-the-technical-perspective}
Все системы управления базами данных можно разделить на две группы: OLAP (Online **Analytical** Processing) и OLTP (Online **Transactional** Processing). Первые ориентированы на построение отчетов, каждый из которых основан на больших объемах исторических данных, но формируются они не очень часто. Вторые, как правило, обрабатывают непрерывный поток транзакций, постоянно изменяя текущее состояние данных.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/data-compression/compression-in-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/data-compression/compression-in-clickhouse.md
index 493b253f500..c5c09289e07 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/data-compression/compression-in-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/data-compression/compression-in-clickhouse.md
@@ -19,8 +19,6 @@ doc_type: 'reference'
Все они настраиваются через схему данных.
-
-
## Выбор подходящего типа данных для оптимизации сжатия {#choose-the-right-data-type-to-optimize-compression}
Рассмотрим набор данных Stack Overflow в качестве примера. Сравним статистику сжатия для следующих схем таблицы `posts`:
@@ -69,7 +67,6 @@ GROUP BY name
Примечание о компактных и широких частях
-
Если вы видите значения `compressed_size` или `uncompressed_size`, равные `0`, это может быть связано с тем, что тип
частей данных — `compact`, а не `wide` (см. описание `part_type` в [`system.parts`](/operations/system-tables/parts)).
Формат частей данных управляется настройками [`min_bytes_for_wide_part`](/operations/settings/merge-tree-settings#min_bytes_for_wide_part)
@@ -145,7 +142,6 @@ GROUP BY name;
Для получения общего размера таблицы можно упростить приведённый выше запрос:
-
```sql
SELECT formatReadableSize(sum(data_compressed_bytes)) AS размер_сжатых_данных,
formatReadableSize(sum(data_uncompressed_bytes)) AS размер_несжатых_данных,
@@ -186,7 +182,6 @@ WHERE `table` = 'posts_v3'
GROUP BY name
```
-
┌─name──────────────────┬─compressed_size─┬─uncompressed_size─┬───ratio─┐
│ Body │ 23.10 GiB │ 63.63 GiB │ 2.75 │
│ Title │ 614.65 MiB │ 1.28 GiB │ 2.14 │
@@ -215,7 +210,6 @@ GROUP BY name
```
```
-
## Выбор подходящего кодека сжатия столбцов {#choosing-the-right-column-compression-codec}
С помощью кодеков сжатия столбцов мы можем изменять алгоритм (и его настройки), используемый для кодирования и сжатия каждого столбца.
@@ -270,7 +264,6 @@ ENGINE = MergeTree
ORDER BY (PostTypeId, toDate(CreationDate), CommentCount)
```
-
Улучшения сжатия для этих столбцов приведены ниже:
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/data-compression/compression-modes.md b/i18n/ru/docusaurus-plugin-content-docs/current/data-compression/compression-modes.md
index a18f716a922..55918f180cc 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/data-compression/compression-modes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/data-compression/compression-modes.md
@@ -10,7 +10,6 @@ doc_type: 'reference'
import CompressionBlock from '@site/static/images/data-compression/ch_compression_block.png';
import Image from '@theme/IdealImage';
-
# Режимы сжатия {#compression-modes}
Протокол ClickHouse поддерживает сжатие **блоков данных** с контрольными суммами.
@@ -20,8 +19,6 @@ import Image from '@theme/IdealImage';
Узнайте больше о [кодеках сжатия столбцов](/sql-reference/statements/create/table#column_compression_codec) и задавайте их при создании таблиц или позже.
:::
-
-
## Режимы {#modes}
| value | name | description |
@@ -38,8 +35,6 @@ import Image from '@theme/IdealImage';
| **zstd** 1.4.5 -1 | 2.8 | 500 MB/s | 1660 MB/s |
| **lz4** 1.9.2 | 2.1 | 740 MB/s | 4530 MB/s |
-
-
## Блок {#block}
| поле | тип | описание |
@@ -56,8 +51,6 @@ import Image from '@theme/IdealImage';
Контрольная сумма рассчитывается как `hash(header + compressed_data)` с использованием [ClickHouse CityHash](../native-protocol/hash.md).
-
-
## Режим None {#none-mode}
Если используется режим *None*, `compressed_data` совпадает с исходными данными.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/backfilling.md b/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/backfilling.md
index 6c4d58789a4..2e34e892516 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/backfilling.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/backfilling.md
@@ -9,7 +9,6 @@ doc_type: 'guide'
import nullTableMV from '@site/static/images/data-modeling/null_table_mv.png';
import Image from '@theme/IdealImage';
-
# Дозагрузка данных {#backfilling-data}
Независимо от того, являетесь ли вы новым пользователем ClickHouse или отвечаете за существующее развертывание, рано или поздно вам потребуется дозагрузить в таблицы исторические данные. В некоторых случаях это относительно просто, но может становиться сложнее, когда нужно заполнить материализованные представления. В этом руководстве описаны некоторые подходы к решению этой задачи, которые пользователи могут адаптировать под свои сценарии.
@@ -18,8 +17,6 @@ import Image from '@theme/IdealImage';
В этом руководстве предполагается, что пользователи уже знакомы с концепцией [инкрементных материализованных представлений](/materialized-view/incremental-materialized-view) и [загрузки данных с использованием табличных функций, таких как S3 и GCS](/integrations/s3). Мы также рекомендуем ознакомиться с нашим руководством по [оптимизации производительности вставки из объектного хранилища](/integrations/s3/performance), рекомендации из которого можно применять к операциям вставки во всех примерах этого руководства.
:::
-
-
## Пример набора данных {#example-dataset}
Во всём этом руководстве мы используем набор данных PyPI. Каждая строка в этом наборе данных представляет загрузку Python‑пакета с использованием такого инструмента, как `pip`.
@@ -71,7 +68,6 @@ SETTINGS describe_compact_output = 1
Полный набор данных PyPI, состоящий более чем из 1 триллиона строк, доступен в нашем публичном демонстрационном окружении [clickpy.clickhouse.com](https://clickpy.clickhouse.com). Дополнительные сведения об этом наборе данных, включая то, как демо использует материализованные представления для повышения производительности и как данные ежедневно загружаются, см. [здесь](https://github.com/ClickHouse/clickpy).
:::
-
## Сценарии дозаполнения данных задним числом {#backfilling-scenarios}
Дозаполнение исторических данных обычно требуется, когда потребление потока данных начинается с определённого момента времени. Эти данные вставляются в таблицы ClickHouse с помощью [инкрементальных материализованных представлений](/materialized-view/incremental-materialized-view), которые срабатывают на блоки данных по мере их вставки. Эти представления могут трансформировать данные перед вставкой или вычислять агрегаты и отправлять результаты в целевые таблицы для последующего использования в нижестоящих приложениях.
@@ -85,8 +81,6 @@ SETTINGS describe_compact_output = 1
Мы рекомендуем дозаполнять исторические данные из объектного хранилища. Данные по возможности следует экспортировать в формат Parquet для оптимальной производительности чтения и сжатия (уменьшения сетевого трафика). Размер файла порядка 150 МБ обычно является предпочтительным, однако ClickHouse поддерживает более [70 форматов файлов](/interfaces/formats) и может обрабатывать файлы любого размера.
-
-
## Использование дублирующих таблиц и представлений {#using-duplicate-tables-and-views}
Во всех сценариях мы опираемся на концепцию «дублирующих таблиц и представлений». Эти таблицы и представления являются копиями тех, что используются для потоковых данных в реальном времени, и позволяют выполнять backfill (дозагрузку данных задним числом) изолированно, с простым механизмом восстановления в случае сбоя. Например, у нас есть следующая основная таблица `pypi` и материализованное представление, которое вычисляет количество загрузок для каждого Python‑проекта:
@@ -198,7 +192,6 @@ FROM pypi_downloads_v2
Пиковое потребление памяти: 688,77 КиБ.
```
-
Если бы мы столкнулись с ошибкой на любом этапе второй загрузки, мы могли бы просто [очистить](/managing-data/truncate) таблицы `pypi_v2` и `pypi_downloads_v2` и повторить загрузку данных.
После завершения загрузки данных мы можем переместить данные из дублирующих таблиц в основные таблицы с помощью оператора [`ALTER TABLE MOVE PARTITION`](/sql-reference/statements/alter/partition#move-partition-to-table).
@@ -264,7 +257,6 @@ FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/pypi/2024-12-
ClickPipes использует этот подход при загрузке данных из объектного хранилища, автоматически создавая дубликаты целевой таблицы и её материализованных представлений и избавляя пользователя от необходимости выполнять описанные выше шаги. Дополнительно, за счёт использования нескольких рабочих потоков, каждый из которых обрабатывает свои подмножества данных (через glob-шаблоны) и использует собственные дубликаты таблиц, данные могут загружаться быстро с соблюдением семантики «ровно один раз». Заинтересованные читатели могут найти дополнительные подробности [в этой статье блога](https://clickhouse.com/blog/supercharge-your-clickhouse-data-loads-part3).
:::
-
## Сценарий 1: Дозагрузка данных при существующей ингестии данных {#scenario-1-backfilling-data-with-existing-data-ingestion}
В этом сценарии мы предполагаем, что данные для дозагрузки не находятся в отдельном бакете, поэтому требуется фильтрация. Данные уже вставляются, и можно определить метку времени или монотонно возрастающий столбец, начиная с которого необходимо выполнить дозагрузку исторических данных.
@@ -328,7 +320,6 @@ ALTER TABLE pypi_downloads_v2 MOVE PARTITION () TO pypi_downloads
Пользователям ClickHouse Cloud следует использовать ClickPipes для восстановления исторических резервных копий, если данные можно изолировать в отдельном bucket-е (и фильтр не требуется). Помимо параллельной загрузки несколькими воркерами, что уменьшает время загрузки, ClickPipes автоматизирует описанный выше процесс — создаёт дубликаты таблиц как для основной таблицы, так и для материализованных представлений.
:::
-
## Сценарий 2: Добавление материализованных представлений к существующим таблицам {#scenario-2-adding-materialized-views-to-existing-tables}
Нередко возникает необходимость добавить новые материализованные представления в конфигурацию, для которой уже накоплен значительный объём данных и продолжается вставка. В этом случае полезен столбец с меткой времени или монотонно возрастающим значением, который можно использовать для идентификации точки в потоке, что позволяет избежать пауз в ингестии данных. В примерах ниже мы рассматриваем оба случая, отдавая предпочтение подходам, которые позволяют избежать пауз в ингестии.
@@ -407,7 +398,6 @@ Ok.
В приведённом выше примере целевой таблицей служит [SummingMergeTree](/engines/table-engines/mergetree-family/summingmergetree). В этом случае мы можем просто использовать исходный запрос агрегации. Для более сложных сценариев, в которых используется [AggregatingMergeTree](/engines/table-engines/mergetree-family/aggregatingmergetree), следует применять функции `-State` для агрегирования. Пример такого подхода можно найти [здесь](/integrations/s3/performance#be-aware-of-merges).
:::
-
В нашем случае это относительно лёгкая агрегация, которая завершается менее чем за 3 секунды и использует менее 600MiB памяти. Для более сложных или длительных агрегаций пользователи могут сделать этот процесс более устойчивым, используя ранее описанный подход с дублирующей таблицей, то есть создать теневую целевую таблицу, например `pypi_downloads_per_day_v2`, выполнять вставку в неё и затем присоединять получившиеся партиции к `pypi_downloads_per_day`.
Часто запрос материализованного представления может быть более сложным (что нередко, иначе пользователи не стали бы использовать представление!) и потреблять значительные ресурсы. В более редких случаях ресурсов, необходимых для выполнения запроса, может не хватать мощности сервера. Это подчёркивает одно из преимуществ материализованных представлений в ClickHouse — они обновляются инкрементально и не обрабатывают весь набор данных за один проход!
@@ -469,7 +459,6 @@ INSERT INTO pypi_v2 SELECT timestamp, project FROM pypi WHERE timestamp < '2024-
Обратите внимание, что здесь использование памяти составляет `639.47 MiB`.
-
##### Настройка производительности и ресурсов {#tuning-performance--resources}
На производительность и потребление ресурсов в описанном выше сценарии влияет несколько факторов. Перед тем как приступать к настройке, мы рекомендуем ознакомиться с механикой вставки, подробно описанной в разделе [Using Threads for Reads](/integrations/s3/performance#using-threads-for-reads) руководства [Optimizing for S3 Insert and Read Performance](/integrations/s3/performance). Вкратце:
@@ -513,7 +502,6 @@ SETTINGS max_insert_threads = 1, max_threads = 1
Пиковое использование памяти: 272.53 МиБ.
```
-
Наконец, мы можем ещё больше сократить потребление памяти, установив `min_insert_block_size_rows` равным 0 (что отключает использование этого параметра при определении размера блока) и `min_insert_block_size_bytes` равным 10485760 (10 МиБ).
```sql
@@ -627,7 +615,6 @@ GROUP BY
0 rows in set. Elapsed: 3.719 sec. Processed 2.04 billion rows, 47.15 GB (548,57 млн строк/с., 12,68 ГБ/с.)
```
-
DROP TABLE pypi_v2;
```
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/denormalization.md b/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/denormalization.md
index 2761d10fd86..f69e17d7b38 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/denormalization.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/denormalization.md
@@ -10,13 +10,10 @@ import denormalizationDiagram from '@site/static/images/data-modeling/denormaliz
import denormalizationSchema from '@site/static/images/data-modeling/denormalization-schema.png';
import Image from '@theme/IdealImage';
-
# Денормализация данных {#denormalizing-data}
Денормализация данных — это подход в ClickHouse, при котором используются «плоские» таблицы для минимизации задержки выполнения запросов за счёт избегания соединений (`JOIN`).
-
-
## Сравнение нормализованных и денормализованных схем {#comparing-normalized-vs-denormalized-schemas}
Денормализация данных предполагает намеренный возврат к состоянию до нормализации, чтобы оптимизировать производительность базы данных под определённые шаблоны запросов. В нормализованных базах данные разбиваются на несколько связанных таблиц для минимизации избыточности и обеспечения целостности данных. Денормализация повторно вводит избыточность за счёт объединения таблиц, дублирования данных и включения вычисляемых полей в одну таблицу или меньшее число таблиц — по сути, переносит операции `JOIN` с момента выполнения запроса на этап вставки данных.
@@ -29,8 +26,6 @@ import Image from '@theme/IdealImage';
Распространённый приём, получивший популярность благодаря NoSQL-решениям, заключается в денормализации данных при отсутствии поддержки `JOIN`, фактически сохраняя всю статистику или связанные строки в родительской строке в виде столбцов и вложенных объектов. Например, в примерной схеме данных для блога мы можем хранить все `Comments` как `Array` объектов в соответствующих постах.
-
-
## Когда использовать денормализацию {#when-to-use-denormalization}
В целом мы рекомендуем использовать денормализацию в следующих случаях:
@@ -44,8 +39,6 @@ import Image from '@theme/IdealImage';
Работу по денормализации можно выполнять либо в ClickHouse, либо в upstream‑системах, например с использованием Apache Flink.
-
-
## Избегайте денормализации для часто обновляемых данных {#avoid-denormalization-on-frequently-updated-data}
В ClickHouse денормализация — это один из вариантов оптимизации производительности запросов, но применять её следует осторожно. Если данные часто меняются и их нужно обновлять почти в режиме реального времени, от этого подхода лучше отказаться. Используйте его, если основная таблица в основном только пополняется (append-only) или может периодически полностью перезагружаться пакетами, например ежедневно.
@@ -61,8 +54,6 @@ import Image from '@theme/IdealImage';
Поэтому чаще используется пакетный процесс обновления, при котором все денормализованные объекты периодически перезагружаются.
-
-
## Практические примеры денормализации {#practical-cases-for-denormalization}
Рассмотрим несколько практических примеров, когда денормализация может иметь смысл, а также случаи, когда предпочтительнее использовать альтернативные подходы.
@@ -150,7 +141,6 @@ LIMIT 5
-
```sql
CREATE TABLE users
(
@@ -251,7 +241,6 @@ ORDER BY c DESC LIMIT 5
Аналогично, такие связи не относятся к часто происходящим событиям:
-
```sql
SELECT
round(avg(c)) AS avg_votes_per_hr,
@@ -352,7 +341,6 @@ Peak memory usage: 6.98 GiB.
> Обратите внимание на время выполнения. Нам удалось денормализовать 66 млн строк примерно за 2 минуты. Как мы увидим позже, эту операцию можно запускать по расписанию.
-
Обратите внимание на использование функций `groupArray` для агрегирования `PostLinks` в массив для каждого `PostId` перед выполнением соединения. Этот массив затем фильтруется в два списка: `LinkedPosts` и `DuplicatePosts`, при этом из внешнего соединения также исключаются любые пустые результаты.
Мы можем выбрать несколько строк, чтобы увидеть нашу новую денормализованную структуру:
@@ -370,7 +358,6 @@ LinkedPosts: [('2017-04-11 11:53:09.583',3404508),('2017-04-11 11:49:07.680',
DuplicatePosts: [('2017-04-11 12:18:37.260',3922739),('2017-04-11 12:18:37.260',33058004)]
```
-
## Оркестрация и планирование денормализации {#orchestrating-and-scheduling-denormalization}
### Пакетная обработка {#batch}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/projections/1_projections.md b/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/projections/1_projections.md
index efe998cae29..30e206449d0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/projections/1_projections.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/data-modeling/projections/1_projections.md
@@ -11,7 +11,6 @@ import projections_1 from '@site/static/images/data-modeling/projections_1.png';
import projections_2 from '@site/static/images/data-modeling/projections_2.png';
import Image from '@theme/IdealImage';
-
# Проекции {#projections}
## Введение {#introduction}
@@ -190,7 +189,6 @@ WHERE query_id=''
└───────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────┘
```
-
### Использование проекций для ускорения запросов к данным UK price paid {#using-projections-to-speed-up-UK-price-paid}
Чтобы продемонстрировать, как проекции могут использоваться для ускорения выполнения запросов,
@@ -386,7 +384,6 @@ projections: ['uk.uk_price_paid_with_projections.prj_obj_town_price']
2 строки. Затрачено: 0.006 сек.
```
-
### Дополнительные примеры {#further-examples}
В следующих примерах используется тот же набор данных с ценами в Великобритании, и сравниваются запросы с использованием проекций и без них.
@@ -398,7 +395,6 @@ CREATE TABLE uk.uk_price_paid_with_projections_v2 AS uk.uk_price_paid;
INSERT INTO uk.uk_price_paid_with_projections_v2 SELECT * FROM uk.uk_price_paid;
```
-
#### Построим проекцию {#build-projection}
Давайте создадим агрегатную проекцию по измерениям `toYear(date)`, `district` и `town`:
@@ -431,7 +427,6 @@ SETTINGS mutations_sync = 1
Следующие запросы сравнивают производительность при использовании проекций и без них. Чтобы отключить использование проекций, мы используем настройку [`optimize_use_projections`](/operations/settings/settings#optimize_use_projections), которая включена по умолчанию.
-
#### Запрос 1. Средняя годовая цена {#average-price-projections}
```sql runnable
@@ -458,7 +453,6 @@ ORDER BY year ASC
Результат должен быть таким же, но производительность во втором примере будет лучше!
-
#### Запрос 2. Средняя цена по годам в Лондоне {#average-price-london-projections}
```sql runnable
@@ -484,7 +478,6 @@ GROUP BY year
ORDER BY year ASC
```
-
#### Запрос 3. Самые дорогие районы {#most-expensive-neighborhoods-projections}
Условие (date >= '2020-01-01') нужно изменить так, чтобы оно соответствовало измерению проекции (`toYear(date) >= 2020)`:
@@ -526,7 +519,6 @@ LIMIT 100
Результат по-прежнему тот же, но обратите внимание на улучшение производительности второго запроса.
-
### Комбинирование проекций в одном запросе {#combining-projections}
Начиная с версии 25.6, на основе поддержки `_part_offset`, добавленной в
@@ -638,7 +630,6 @@ SELECT * FROM page_views WHERE region = 'us_west' AND user_id = 107;
Вывод `EXPLAIN` (показан выше) отображает логический план запроса, сверху вниз:
-
| Номер строки | Описание |
|--------------|--------------------------------------------------------------------------------------------------------|
| 3 | Планирует чтение из базовой таблицы `page_views` |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/development/architecture.md b/i18n/ru/docusaurus-plugin-content-docs/current/development/architecture.md
index 68393afea8a..48ae925a949 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/development/architecture.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/development/architecture.md
@@ -7,8 +7,6 @@ title: 'Обзор архитектуры'
doc_type: 'reference'
---
-
-
# Обзор архитектуры {#architecture-overview}
ClickHouse — это по-настоящему колоночная СУБД. Данные хранятся по столбцам и при выполнении запросов обрабатываются массивами (векторами или чанками столбцов).
@@ -21,32 +19,24 @@ ClickHouse — это по-настоящему колоночная СУБД.
Существуют два разных подхода к ускорению обработки запросов: векторизованное выполнение запросов и генерация кода во время выполнения. Второй подход убирает все косвенные обращения и динамическую диспетчеризацию. Ни один из этих подходов не является однозначно лучшим по сравнению с другим. Генерация кода во время выполнения может быть лучше, когда она объединяет множество операций, тем самым полностью используя исполнительные блоки и конвейер CPU. Векторизованное выполнение запросов может быть менее практичным, поскольку оно предполагает использование временных векторов, которые нужно записывать в кэш и считывать обратно. Если временные данные не помещаются в кэш L2, это становится проблемой. Но векторизованное выполнение запросов проще использует SIMD-возможности CPU. [Исследовательская работа](http://15721.courses.cs.cmu.edu/spring2016/papers/p5-sompolski.pdf), написанная нашими коллегами, показывает, что лучше комбинировать оба подхода. ClickHouse использует векторизованное выполнение запросов и имеет ограниченную начальную поддержку генерации кода во время выполнения.
-
-
## Столбцы {#columns}
Интерфейс `IColumn` используется для представления столбцов в памяти (точнее, фрагментов столбцов). Этот интерфейс предоставляет вспомогательные методы для реализации различных реляционных операторов. Почти все операции являются неизменяемыми: они не модифицируют исходный столбец, а создают новый, изменённый. Например, метод `IColumn :: filter` принимает байтовую маску фильтра. Он используется реляционными операторами `WHERE` и `HAVING`. Дополнительные примеры: метод `IColumn :: permute` для поддержки `ORDER BY`, метод `IColumn :: cut` для поддержки `LIMIT`.
Различные реализации `IColumn` (`ColumnUInt8`, `ColumnString` и т. д.) отвечают за размещение столбцов в памяти. Размещение в памяти обычно представляет собой непрерывный массив. Для целочисленных столбцов это просто один непрерывный массив, подобный `std :: vector`. Для столбцов `String` и `Array` это два вектора: один — для всех элементов массива, размещённых последовательно, и второй — для смещений до начала каждого массива. Также есть `ColumnConst`, который хранит в памяти только одно значение, но выглядит как столбец.
-
-
## Field {#field}
Тем не менее, можно работать и с отдельными (одиночными) значениями. Для представления отдельного значения используется `Field`. `Field` — это просто дискриминирующее объединение типов `UInt64`, `Int64`, `Float64`, `String` и `Array`. В `IColumn` есть метод `operator []` для получения n-го значения в виде `Field` и метод `insert` для добавления `Field` в конец столбца. Эти методы не очень эффективны, поскольку требуют работы с временными объектами `Field`, представляющими отдельное значение. Существуют более эффективные методы, такие как `insertFrom`, `insertRangeFrom` и другие.
`Field` не содержит достаточно информации о конкретном типе данных в таблице. Например, `UInt8`, `UInt16`, `UInt32` и `UInt64` все представляются как `UInt64` в `Field`.
-
-
## Протекающие абстракции {#leaky-abstractions}
`IColumn` содержит методы для распространённых реляционных преобразований данных, но они не покрывают всех потребностей. Например, в `ColumnUInt64` нет метода для вычисления суммы двух столбцов, а в `ColumnString` — метода для поиска подстроки. Эти многочисленные процедуры реализуются вне `IColumn`.
Различные функции над столбцами могут быть реализованы обобщённым, но неэффективным способом — с использованием методов `IColumn` для извлечения значений `Field`, либо специализированным способом — с учётом внутренней структуры хранения данных в конкретной реализации `IColumn`. Для этого в самих функциях выполняется приведение столбцов к конкретному типу `IColumn` и непосредственная работа с его внутренним представлением. Например, `ColumnUInt64` имеет метод `getData`, который возвращает ссылку на внутренний массив, после чего отдельная процедура читает или заполняет этот массив напрямую. Мы используем «протекающие абстракции», чтобы обеспечить эффективные специализации различных процедур.
-
-
## Типы данных {#data_types}
`IDataType` отвечает за сериализацию и десериализацию: за чтение и запись фрагментов столбцов или отдельных значений в бинарном или текстовом виде. `IDataType` напрямую соответствует типам данных в таблицах. Например, существуют `DataTypeUInt32`, `DataTypeDateTime`, `DataTypeString` и так далее.
@@ -57,8 +47,6 @@ ClickHouse — это по-настоящему колоночная СУБД.
`IDataType` имеет вспомогательные методы для различных форматов данных. В качестве примера можно привести методы для сериализации значения с возможным заключением в кавычки, сериализации значения для JSON и сериализации значения как части формата XML. Прямого соответствия форматам данных нет. Например, разные форматы данных `Pretty` и `TabSeparated` могут использовать один и тот же вспомогательный метод `serializeTextEscaped` из интерфейса `IDataType`.
-
-
## Block {#block}
`Block` — это контейнер, представляющий подмножество (чанк) таблицы в памяти. Фактически это набор троек: `(IColumn, IDataType, column name)`. Во время выполнения запроса данные обрабатываются объектами `Block`. Если у нас есть `Block`, у нас есть данные (в объекте `IColumn`), есть информация об их типе (в `IDataType`), которая говорит нам, как работать с этим столбцом, и есть имя столбца. Это может быть либо исходное имя столбца из таблицы, либо искусственное имя, назначенное для получения временных результатов вычислений.
@@ -67,20 +55,14 @@ ClickHouse — это по-настоящему колоночная СУБД.
Блоки создаются для каждого обрабатываемого чанка данных. Обратите внимание, что для одного и того же типа вычислений имена и типы столбцов остаются одинаковыми для разных блоков, меняются только данные столбцов. Лучше отделить данные блока от заголовка блока, потому что при маленьких размерах блоков возникают значительные накладные расходы на временные строки для копирования `shared_ptr` и имён столбцов.
-
-
## Процессоры {#processors}
См. описание в файле [https://github.com/ClickHouse/ClickHouse/blob/master/src/Processors/IProcessor.h](https://github.com/ClickHouse/ClickHouse/blob/master/src/Processors/IProcessor.h).
-
-
## Форматы {#formats}
Форматы данных реализуются процессорами.
-
-
## Ввод/вывод {#io}
Для байтоориентированного ввода/вывода используются абстрактные классы `ReadBuffer` и `WriteBuffer`. Они применяются вместо потоков ввода-вывода C++ (`iostream`). Не беспокойтесь: в каждом зрелом C++‑проекте по веским причинам используется что‑то иное, а не `iostream`.
@@ -98,8 +80,6 @@ Read/WriteBuffers работают только с байтами. Для фор
Это можно сделать через метод `complete`, который превращает вытягивающий `QueryPipeline` в завершённый `QueryPipeline`.
Внутри `JSONRowOutputFormat` будет записывать различные JSON‑разделители и вызывать метод `IDataType::serializeTextJSON` со ссылкой на `IColumn` и номер строки в качестве аргументов. В свою очередь, `IDataType::serializeTextJSON` вызовет метод из `WriteHelpers.h`: например, `writeText` для числовых типов и `writeJSONString` для `DataTypeString`.
-
-
## Таблицы {#tables}
Интерфейс `IStorage` представляет таблицы. Разные реализации этого интерфейса — это разные движки таблиц. Примеры: `StorageMergeTree`, `StorageMemory` и так далее. Экземпляры этих классов — это сами таблицы.
@@ -124,16 +104,12 @@ Read/WriteBuffers работают только с байтами. Для фор
> В результате работы метода `read` `IStorage` возвращает `QueryProcessingStage` — информацию о том, какие части запроса уже были вычислены внутри хранилища.
-
-
## Парсеры {#parsers}
Ручной рекурсивный нисходящий парсер разбирает запрос. Например, `ParserSelectQuery` просто рекурсивно вызывает базовые парсеры для различных частей запроса. Парсеры создают `AST`. `AST` представлен узлами — экземплярами `IAST`.
> Генераторы парсеров не используются по историческим причинам.
-
-
## Интерпретаторы {#interpreters}
Интерпретаторы отвечают за создание конвейера выполнения запроса из AST. Существуют простые интерпретаторы, такие как `InterpreterExistsQuery` и `InterpreterDropQuery`, а также более сложный `InterpreterSelectQuery`.
@@ -150,8 +126,6 @@ Read/WriteBuffers работают только с байтами. Для фор
Для решения проблем, существующих в интерпретаторах, был разработан новый `InterpreterSelectQueryAnalyzer`. Это новая версия `InterpreterSelectQuery`, которая не использует `ExpressionAnalyzer` и вводит дополнительный уровень абстракции между `AST` и `QueryPipeline`, называемый `QueryTree`. Он полностью готов к использованию в продакшене, но на всякий случай его можно отключить, установив настройку `enable_analyzer` в значение `false`.
-
-
## Функции {#functions}
Существуют обычные функции и агрегатные функции. Об агрегатных функциях см. в следующем разделе.
@@ -168,8 +142,6 @@ Read/WriteBuffers работают только с байтами. Для фор
Из-за векторизованного выполнения запросов функции не используют укороченное вычисление (short-circuit). Например, если вы пишете `WHERE f(x) AND g(y)`, обе части будут вычислены, даже для строк, для которых `f(x)` равно нулю (за исключением случая, когда `f(x)` — нулевое константное выражение). Но если селективность условия `f(x)` высока, а вычисление `f(x)` значительно дешевле, чем `g(y)`, лучше реализовать многопроходное вычисление. Сначала будет вычислено `f(x)`, затем по результату будут отфильтрованы столбцы, и только после этого `g(y)` будет вычисляться лишь для меньших, отфильтрованных фрагментов данных.
-
-
## Агрегатные функции {#aggregate-functions}
Агрегатные функции — это функции с состоянием. Они накапливают переданные значения во внутреннем состоянии и позволяют получать результаты на основе этого состояния. Управление ими осуществляется через интерфейс `IAggregateFunction`. Состояния могут быть довольно простыми (состояние для `AggregateFunctionCount` — это всего лишь одно значение типа `UInt64`) или достаточно сложными (состояние `AggregateFunctionUniqCombined` — это комбинация линейного массива, хеш-таблицы и вероятностной структуры данных `HyperLogLog`).
@@ -180,8 +152,6 @@ Read/WriteBuffers работают только с байтами. Для фор
> В настоящий момент формат сериализации данных состояний агрегатных функций не версионируется. Это приемлемо, если агрегатные состояния хранятся только временно. Но у нас есть движок таблиц `AggregatingMergeTree` для инкрементальной агрегации, и он уже используется в продакшене. Именно поэтому при изменении формата сериализации для любой агрегатной функции в будущем требуется обратная совместимость.
-
-
## Сервер {#server}
Сервер реализует несколько различных интерфейсов:
@@ -200,8 +170,6 @@ Read/WriteBuffers работают только с байтами. Для фор
Для большинства внешних приложений мы рекомендуем использовать HTTP‑интерфейс, поскольку он простой и удобный. TCP‑протокол более тесно связан с внутренними структурами данных: он использует внутренний формат для передачи блоков данных и собственный протокол фрейминга для сжатых данных. Мы не выпускали C‑библиотеку для этого протокола, потому что для этого требуется линковать большую часть кодовой базы ClickHouse, что на практике нецелесообразно.
:::
-
-
## Конфигурация {#configuration}
Сервер ClickHouse построен на основе POCO C++ Libraries и использует `Poco::Util::AbstractConfiguration` для представления своей конфигурации. Конфигурация хранится в классе `Poco::Util::ServerApplication`, от которого наследуется класс `DaemonBase`, а уже от него наследуется класс `DB::Server`, реализующий непосредственно clickhouse-server. Таким образом, к конфигурации можно обратиться через метод `ServerApplication::config()`.
@@ -210,8 +178,6 @@ Read/WriteBuffers работают только с байтами. Для фор
Для запросов и подсистем помимо `Server` конфигурация доступна через метод `Context::getConfigRef()`. Каждая подсистема, способная перезагружать свою конфигурацию без перезапуска сервера, должна зарегистрировать себя в callback-функции перезагрузки в методе `Server::main()`. Обратите внимание, что если новая конфигурация содержит ошибку, большинство подсистем проигнорируют её, запишут предупреждения в журнал и продолжат работу с ранее загруженной конфигурацией. В силу особенностей `AbstractConfiguration` невозможно передать ссылку на отдельный раздел, поэтому вместо этого обычно используется строковый префикс `config_prefix`.
-
-
## Потоки и задания {#threads-and-jobs}
Для выполнения запросов и вспомогательных операций ClickHouse выделяет потоки из одного из пулов потоков, чтобы избежать частого создания и уничтожения потоков. Существует несколько пулов потоков, которые выбираются в зависимости от назначения и структуры задания:
@@ -240,8 +206,6 @@ IO‑пул потоков реализован как обычный `ThreadPoo
Если поток относится к выполнению запроса, то наиболее важной сущностью, связанной с `ThreadStatus`, является контекст запроса `ContextPtr`. Каждый запрос имеет свой основной поток в серверном пуле. Основной поток выполняет привязку, удерживая объект `ThreadStatus::QueryScope query_scope(query_context)`. Основной поток также создаёт группу потоков, представленную объектом `ThreadGroupStatus`. Каждый дополнительный поток, выделенный во время выполнения этого запроса, привязывается к своей группе потоков вызовом `CurrentThread::attachTo(thread_group)`. Группы потоков используются для агрегирования счётчиков событий профилирования и отслеживания потребления памяти всеми потоками, выделенными для одной задачи (подробнее см. классы `MemoryTracker` и `ProfileEvents::Counters`).
-
-
## Контроль параллелизма {#concurrency-control}
Запрос, который может выполняться параллельно, использует настройку `max_threads`, чтобы ограничить количество потоков. Значение по умолчанию для этой настройки выбирается таким образом, чтобы один запрос мог наилучшим образом использовать все ядра CPU. Но что, если есть несколько одновременно выполняющихся запросов, и каждый из них использует значение `max_threads` по умолчанию? Тогда запросы будут делить ресурсы CPU. ОС будет обеспечивать справедливое распределение, постоянно переключая потоки, что вносит дополнительные накладные расходы и снижает производительность. `ConcurrencyControl` помогает снизить эти накладные расходы и избежать создания слишком большого числа потоков. Настройка конфигурации `concurrent_threads_soft_limit_num` используется для ограничения того, сколько одновременно выполняющихся потоков может быть выделено до начала применения механизма ограничения нагрузки на CPU.
@@ -278,7 +242,6 @@ API `ConcurrencyControl` состоит из следующих функций:
Этот интерфейс позволяет запросам запускаться как минимум с одним потоком (в условиях нагрузки на CPU), а затем масштабироваться до `max_threads`.
-
## Распределённое выполнение запросов {#distributed-query-execution}
Серверы в кластерной конфигурации в основном независимы. Вы можете создать таблицу `Distributed` на одном или на всех серверах в кластере. Таблица `Distributed` не хранит данные сама по себе – она только предоставляет «представление» ко всем локальным таблицам на нескольких узлах кластера. Когда вы выполняете SELECT из таблицы `Distributed`, ClickHouse переписывает этот запрос, выбирает удалённые узлы в соответствии с настройками балансировки нагрузки и отправляет им запрос. Таблица `Distributed` запрашивает у удалённых серверов выполнение запроса лишь до той стадии, на которой можно объединить промежуточные результаты с разных серверов. Затем она получает эти промежуточные результаты и объединяет их. Таблица `Distributed` старается распределить как можно больше работы на удалённые серверы и не пересылать по сети значительные объёмы промежуточных данных.
@@ -287,8 +250,6 @@ API `ConcurrencyControl` состоит из следующих функций:
Глобального плана запроса для распределённого выполнения запросов не существует. Каждый узел имеет свой локальный план запроса для своей части работы. Поддерживается только простое однопроходное распределённое выполнение запроса: мы отправляем запросы на удалённые узлы, а затем объединяем результаты. Но это становится непригодным для сложных запросов с `GROUP BY` высокой кардинальности или с большим объёмом временных данных для JOIN. В таких случаях необходимо «перераспределять» данные между серверами, что требует дополнительной координации. ClickHouse не поддерживает такой тип выполнения запросов, и это ещё предстоит реализовать.
-
-
## Merge tree {#merge-tree}
`MergeTree` — это семейство движков хранения, поддерживающих индексацию по первичному ключу. Первичный ключ может быть произвольным кортежем столбцов или выражений. Данные в таблице `MergeTree` хранятся в «частях» (parts). Каждая часть хранит данные в порядке первичного ключа, поэтому данные отсортированы лексикографически по кортежу первичного ключа. Все столбцы таблицы хранятся в отдельных файлах `column.bin` в этих частях. Файлы состоят из сжатых блоков. Каждый блок обычно содержит от 64 КБ до 1 МБ несжатых данных, в зависимости от среднего размера значения. Блоки состоят из значений столбцов, размещённых подряд друг за другом. Значения столбцов идут в одном и том же порядке для каждого столбца (порядок задаётся первичным ключом), поэтому при проходе по нескольким столбцам вы получаете значения для соответствующих строк.
@@ -303,8 +264,6 @@ API `ConcurrencyControl` состоит из следующих функций:
Существуют движки MergeTree, которые выполняют дополнительную работу во время фоновых слияний. Примеры: `CollapsingMergeTree` и `AggregatingMergeTree`. Это можно рассматривать как специализированную поддержку обновлений. Имейте в виду, что это не настоящие обновления, поскольку пользователи обычно не контролируют момент выполнения фоновых слияний, и данные в таблице `MergeTree` почти всегда хранятся более чем в одной части, а не в полностью слитом виде.
-
-
## Репликация {#replication}
Репликация в ClickHouse может настраиваться на уровне отдельных таблиц. На одном и том же сервере у вас могут быть как реплицируемые, так и нереплицируемые таблицы. Также вы можете использовать разные схемы репликации для разных таблиц, например, одну таблицу с двухкратной репликацией, а другую — с трехкратной.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/development/build-cross-s390x.md b/i18n/ru/docusaurus-plugin-content-docs/current/development/build-cross-s390x.md
index ce92400081d..733dbf555cf 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/development/build-cross-s390x.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/development/build-cross-s390x.md
@@ -31,7 +31,6 @@ cmake -DCMAKE_TOOLCHAIN_FILE=cmake/linux/toolchain-s390x.cmake ..
ninja
```
-
## Запуск {#running}
Для эмуляции вам понадобится статический бинарник qemu-user для s390x. В Ubuntu его можно установить с помощью:
@@ -47,7 +46,6 @@ qemu-s390x-static -L /usr/s390x-linux-gnu ./programs/clickhouse local --query "S
2
```
-
## Отладка {#debugging}
Установите LLDB:
@@ -93,7 +91,6 @@ Process 1 stopped
453 /// PHDR cache is required for query profiler to work reliably
```
-
## Интеграция с Visual Studio Code {#visual-studio-code-integration}
- Для визуальной отладки требуется расширение [CodeLLDB](https://github.com/vadimcn/vscode-lldb).
@@ -140,7 +137,6 @@ toolchain:
CMAKE_TOOLCHAIN_FILE: cmake/linux/toolchain-s390x.cmake
```
-
#### launch.json {#launchjson}
```json
@@ -159,7 +155,6 @@ toolchain:
}
```
-
#### settings.json {#settingsjson}
Это также поместит разные сборки в разные подпапки в каталоге `build`.
@@ -171,7 +166,6 @@ toolchain:
}
```
-
#### run-debug.sh {#run-debugsh}
```sh
@@ -181,7 +175,6 @@ cd $1
qemu-s390x-static -g 2159 -L /usr/s390x-linux-gnu $2 $3 $4
```
-
#### tasks.json {#tasksjson}
Определяет задачу для запуска скомпилированного исполняемого файла в режиме `server` в подкаталоге `tmp` рядом с бинарными файлами, с использованием конфигурации из файла `programs/server/config.xml`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/development/build-osx.md b/i18n/ru/docusaurus-plugin-content-docs/current/development/build-osx.md
index 268a7a472cf..e4d233db04c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/development/build-osx.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/development/build-osx.md
@@ -8,8 +8,6 @@ keywords: ['MacOS', 'Mac', 'build']
doc_type: 'guide'
---
-
-
# Как собрать ClickHouse на macOS для macOS {#how-to-build-clickhouse-on-macos-for-macos}
:::info Вам не нужно собирать ClickHouse самостоятельно!
@@ -20,8 +18,6 @@ ClickHouse можно скомпилировать на macOS x86_64 (Intel) и
В качестве компилятора поддерживается только Clang из Homebrew.
-
-
## Установка необходимых компонентов {#install-prerequisites}
Сначала ознакомьтесь с общей [документацией по предварительным требованиям](developer-instruction.md).
@@ -40,13 +36,10 @@ Apple по умолчанию использует файловую систем
Для серьёзной разработки на macOS убедитесь, что исходный код хранится на томе диска, чувствительном к регистру. См., например, [эти инструкции](https://brianboyko.medium.com/a-case-sensitive-src-folder-for-mac-programmers-176cc82a3830).
:::
-
## Сборка ClickHouse {#build-clickhouse}
Для сборки необходимо использовать компилятор Clang из Homebrew:
-
-
```bash
cd ClickHouse
mkdir build
@@ -61,7 +54,6 @@ cmake --build build
использовать llvm-ar, указав флаг `-DCMAKE_AR=/opt/homebrew/opt/llvm/bin/llvm-ar`.
:::
-
## Особенности {#caveats}
Если вы планируете запускать `clickhouse-server`, убедитесь, что значение системной переменной `maxfiles` увеличено.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/development/build.md b/i18n/ru/docusaurus-plugin-content-docs/current/development/build.md
index ce75f3f75d1..282cbc9d9c9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/development/build.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/development/build.md
@@ -41,7 +41,6 @@ sudo apt-get update
sudo apt-get install build-essential git cmake ccache python3 ninja-build nasm yasm gawk lsb-release wget software-properties-common gnupg
```
-
## Установите компилятор Clang {#install-the-clang-compiler}
Чтобы установить Clang в Ubuntu/Debian, используйте автоматический скрипт установки LLVM, доступный [здесь](https://apt.llvm.org/).
@@ -55,7 +54,6 @@ sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
По состоянию на март 2025 года требуется Clang 19 или выше.
Компилятор GCC и другие компиляторы не поддерживаются.
-
## Установка компилятора Rust (необязательно) {#install-the-rust-compiler-optional}
:::note
@@ -75,7 +73,6 @@ rustup default nightly-2025-07-07
rustup component add rust-src
```
-
## Сборка ClickHouse {#build-clickhouse}
Мы рекомендуем создать отдельный каталог `build` внутри `ClickHouse`, в котором будут храниться все артефакты сборки:
@@ -134,7 +131,6 @@ cmake --build build # компиляция
:::
-
## Запуск исполняемого файла ClickHouse {#running-the-clickhouse-executable}
После успешной сборки вы найдёте исполняемый файл в `ClickHouse//programs/`:
@@ -150,7 +146,6 @@ cmake --build build # компиляция
clickhouse client --host 127.0.0.1
```
-
## Расширенные настройки {#advanced-options}
### Минимальная сборка {#minimal-build}
@@ -169,7 +164,6 @@ Rust требует подключения к интернету. Чтобы о
cmake -DENABLE_RUST=OFF
```
-
### Запуск исполняемого файла ClickHouse {#running-the-clickhouse-executable-1}
Вы можете заменить продакшн-версию бинарного файла ClickHouse, установленную в вашей системе, на скомпилированный бинарный файл ClickHouse.
@@ -191,7 +185,6 @@ sudo service clickhouse-server stop
sudo -u clickhouse ClickHouse/build/programs/clickhouse server --config-file /etc/clickhouse-server/config.xml
```
-
### Сборка в любом дистрибутиве Linux {#building-on-any-linux}
Установите необходимые зависимости в дистрибутиве openSUSE Tumbleweed:
@@ -215,7 +208,6 @@ cmake -S . -B build
cmake --build build
```
-
### Сборка в Docker {#building-in-docker}
Вы можете запустить любую сборку локально в среде, аналогичной CI, используя:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/development/building_and_benchmarking_deflate_qpl.md b/i18n/ru/docusaurus-plugin-content-docs/current/development/building_and_benchmarking_deflate_qpl.md
index 3d0b2524235..c101a9a2a8b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/development/building_and_benchmarking_deflate_qpl.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/development/building_and_benchmarking_deflate_qpl.md
@@ -7,8 +7,6 @@ title: 'Сборка ClickHouse с DEFLATE_QPL'
doc_type: 'guide'
---
-
-
# Сборка ClickHouse с DEFLATE_QPL {#build-clickhouse-with-deflate_qpl}
- Убедитесь, что ваша хост-система удовлетворяет требуемым для QPL [предварительным требованиям](https://intel.github.io/qpl/documentation/get_started_docs/installation.html#prerequisites)
@@ -16,12 +14,8 @@ doc_type: 'guide'
- Для общих требований обратитесь к общим [инструкциям по сборке](/development/build.md) ClickHouse
-
-
# Запуск бенчмарка с DEFLATE_QPL {#run-benchmark-with-deflate_qpl}
-
-
## Список файлов {#files-list}
Папки `benchmark_sample` в составе [qpl-cmake](https://github.com/ClickHouse/ClickHouse/tree/master/contrib/qpl-cmake) содержат примеры запуска бенчмарка с помощью Python-скриптов:
@@ -33,8 +27,6 @@ doc_type: 'guide'
`database_files` означает, что там будут храниться файлы базы данных в соответствии с кодеками lz4/deflate/zstd.
-
-
## Автоматический запуск бенчмарка для схемы «звезда»: {#run-benchmark-automatically-for-star-schema}
```bash
@@ -46,13 +38,10 @@ $ sh run_ssb.sh
Если возникнет ошибка, запустите бенчмарк вручную, как описано в разделах ниже.
-
## Определение {#definition}
[CLICKHOUSE_EXE] — это путь к исполняемому файлу ClickHouse.
-
-
## Среда {#environment}
* CPU: Sapphire Rapids
@@ -80,7 +69,6 @@ $ accel-config list | grep -P 'iax|state'
Если вывода нет, это означает, что IAA еще не готов к работе. Пожалуйста, проверьте настройку IAA.
-
## Генерация необработанных данных {#generate-raw-data}
```bash
@@ -93,7 +81,6 @@ $ mkdir rawdata_dir && cd rawdata_dir
Файлы с расширением `*.tbl` должны быть сгенерированы в каталоге `./benchmark_sample/rawdata_dir/ssb-dbgen`:
-
## Настройка базы данных {#database-setup}
Настройте базу данных с использованием кодека LZ4
@@ -163,7 +150,6 @@ SELECT count() FROM lineorder_flat
Это означает, что устройства IAA не готовы; вам нужно заново проверить их настройку.
-
## Тестирование производительности с одним экземпляром {#benchmark-with-single-instance}
* Перед началом бенчмарка отключите режим C6 и переведите регулятор частоты CPU в режим `performance`
@@ -217,7 +203,6 @@ zstd.log
Нас интересует показатель QPS. Найдите по ключевому слову `QPS_Final` и соберите статистику.
-
## Тестирование производительности с несколькими инстансами {#benchmark-with-multi-instances}
* Чтобы снизить влияние ограничений по памяти при использовании слишком большого числа потоков, мы рекомендуем запускать тестирование производительности с несколькими инстансами.
@@ -311,7 +296,6 @@ $ numactl -m 1 -N 1 python3 client_stressing_test.py queries_ssb.sql 2 > lz4_2i
ZSTD:
-
```bash
$ cd ./database_dir/zstd
$ numactl -C 0-29,120-149 [CLICKHOUSE_EXE] server -C config_zstd.xml >&/dev/null&
@@ -349,7 +333,6 @@ zstd_2insts.log
Конфигурация бенчмарка для 4 инстансов аналогична конфигурации для 2 инстансов выше.
Мы рекомендуем использовать данные бенчмарка для 2 инстансов в качестве итогового отчёта для рассмотрения.
-
## Советы {#tips}
Каждый раз перед запуском нового сервера ClickHouse убедитесь, что не осталось запущенных фоновых процессов ClickHouse; при необходимости найдите и завершите старые процессы:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/development/continuous-integration.md b/i18n/ru/docusaurus-plugin-content-docs/current/development/continuous-integration.md
index 157b57572ba..74909d121e0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/development/continuous-integration.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/development/continuous-integration.md
@@ -7,8 +7,6 @@ title: 'Непрерывная интеграция (CI)'
doc_type: 'reference'
---
-
-
# Непрерывная интеграция (CI) {#continuous-integration-ci}
Когда вы отправляете pull request, для вашего кода выполняются автоматические проверки системой ClickHouse [непрерывной интеграции (CI)](tests.md#test-automation).
@@ -28,15 +26,12 @@ git push
Если вы не уверены, как поступить, обратитесь за помощью к мейнтейнеру проекта.
-
## Объединение с master {#merge-with-master}
Проверяет, что PR может быть объединён с веткой master.
Если это невозможно, проверка завершится с ошибкой `Cannot fetch mergecommit`.
Чтобы пройти эту проверку, разрешите конфликт, как описано в [документации GitHub](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/resolving-a-merge-conflict-on-github), или выполните слияние ветки `master` в ветку вашего pull request с помощью git.
-
-
## Проверка документации {#docs-check}
Эта проверка пытается собрать сайт документации ClickHouse.
@@ -44,15 +39,11 @@ git push
Наиболее вероятная причина — некорректная перекрёстная ссылка в документации.
Перейдите к отчёту проверки и найдите сообщения `ERROR` и `WARNING`.
-
-
## Проверка описания {#description-check}
Убедитесь, что описание вашего pull request соответствует шаблону [PULL_REQUEST_TEMPLATE.md](https://github.com/ClickHouse/ClickHouse/blob/master/.github/PULL_REQUEST_TEMPLATE.md).
Вы должны указать категорию изменения для changelog (например, Bug Fix) и написать понятное пользователю сообщение, описывающее изменение, для [CHANGELOG.md](../whats-new/changelog/index.md)
-
-
## Docker-образ {#docker-image}
Собирает Docker-образы сервера ClickHouse и Keeper, чтобы проверить, что они корректно собираются.
@@ -65,16 +56,12 @@ git push
Дополнительные сведения о тестах можно найти в [документации по скриптам заданий CI](https://github.com/ClickHouse/ClickHouse/tree/master/ci/jobs/scripts/docker_server).
-
-
## Проверка маркера {#marker-check}
Эта проверка означает, что система CI начала обрабатывать pull request.
Когда у неё статус «pending», это означает, что ещё не все проверки были запущены.
После того как все проверки будут запущены, её статус изменится на «success».
-
-
## Проверка стиля {#style-check}
Выполняет различные проверки стиля кода.
@@ -111,7 +98,6 @@ python -m ci.praktika run "Style check" --test cpp
Эти команды скачивают Docker-образ `clickhouse/style-test` и запускают задачу в контейнеризованной среде.
Дополнительные зависимости не требуются — достаточно Python 3 и Docker.
-
## Быстрый тест {#fast-test}
Обычно это первая проверка, которая запускается для PR.
@@ -128,7 +114,6 @@ python -m ci.praktika run "Fast test" [--test имя_теста]
Эти команды загружают Docker-образ `clickhouse/fast-test` и запускают задачу в контейнеризированной среде.
Никаких зависимостей, кроме Python 3 и Docker, не требуется.
-
## Проверка сборки {#build-check}
Выполняет сборку ClickHouse в различных конфигурациях для использования на следующих шагах.
@@ -189,7 +174,6 @@ python -m ci.praktika run "<ИМЯ_ЗАДАНИЯ_СБОРКИ>"
python -m ci.praktika run "Build (amd_debug)"
```
-
Если описанный выше подход вам не подходит, используйте параметры cmake из лога сборки и следуйте [общему процессу сборки](../development/build.md).
## Functional stateless tests {#functional-stateless-tests}
@@ -198,21 +182,15 @@ python -m ci.praktika run "Build (amd_debug)"
Обратите внимание, что для воспроизведения необходимо использовать правильную конфигурацию сборки — тест может падать под AddressSanitizer, но проходить в Debug.
Скачайте бинарный файл со [страницы проверок сборки CI](/install/advanced) или соберите его локально.
-
-
## Интеграционные тесты {#integration-tests}
Выполняет [интеграционные тесты](tests.md#integration-tests).
-
-
## Проверка исправления ошибки {#bugfix-validate-check}
Проверяет, что либо добавлен новый тест (функциональный или интеграционный), либо есть изменённые тесты, которые падают при использовании бинарника, собранного из ветки master.
Эта проверка запускается, когда у pull request есть метка "pr-bugfix".
-
-
## Стресс-тест {#stress-test}
Запускает функциональные тесты без сохранения состояния одновременно с нескольких клиентов для выявления ошибок, связанных с конкурентным выполнением. Если тест завершился неуспешно:
@@ -221,22 +199,16 @@ python -m ci.praktika run "Build (amd_debug)"
* Ознакомьтесь с отчетом, найдите журналы сервера и проверьте их на возможные причины
ошибки.
-
-
## Проверка совместимости {#compatibility-check}
Проверяет, запускается ли бинарный файл `clickhouse` на дистрибутивах со старыми версиями libc.
Если проверка не проходит, обратитесь за помощью к мейнтейнеру.
-
-
## AST fuzzer {#ast-fuzzer}
Выполняет случайно сгенерированные запросы для обнаружения ошибок в программе.
Если он завершится с ошибкой, обратитесь за помощью к мейнтейнеру.
-
-
## Тесты производительности {#performance-tests}
Измеряйте, как изменяется производительность запросов.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/development/contrib.md b/i18n/ru/docusaurus-plugin-content-docs/current/development/contrib.md
index c2a7840bcf2..5c6bcb9d77e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/development/contrib.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/development/contrib.md
@@ -7,8 +7,6 @@ title: 'Сторонние библиотеки'
doc_type: 'reference'
---
-
-
# Сторонние библиотеки {#third-party-libraries}
ClickHouse использует сторонние библиотеки для различных целей, например, для подключения к другим базам данных, декодирования/кодирования данных при чтении/записи с диска/на диск или для реализации отдельных специализированных SQL‑функций.
@@ -24,7 +22,6 @@ SELECT library_name, license_type, license_path FROM system.licenses ORDER BY li
[Пример](https://sql.clickhouse.com?query_id=478GCPU7LRTSZJBNY3EJT3)
-
## Добавление и сопровождение сторонних библиотек {#adding-and-maintaining-third-party-libraries}
Каждая сторонняя библиотека должна находиться в отдельном каталоге внутри каталога `contrib/` репозитория ClickHouse.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/development/developer-instruction.md b/i18n/ru/docusaurus-plugin-content-docs/current/development/developer-instruction.md
index df3508713d5..87eba00841a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/development/developer-instruction.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/development/developer-instruction.md
@@ -31,7 +31,6 @@ sudo apt install git
Шпаргалку по Git можно найти [здесь](https://education.github.com/git-cheat-sheet-education.pdf).
Подробное руководство по Git доступно [здесь](https://git-scm.com/book/en/v2).
-
## Клонируйте репозиторий на рабочую машину {#clone-the-repository-to-your-development-machine}
Сначала скачайте исходные файлы на рабочую машину, то есть клонируйте репозиторий:
@@ -92,7 +91,6 @@ git remote add upstream git@github.com:ClickHouse/ClickHouse.git
Лучше явно указывать имена удалённого репозитория и ветки, например: `git push origin my_branch_name`.
:::
-
## Написание кода {#writing-code}
Ниже приведены несколько ссылок, которые могут быть полезны при написании кода для ClickHouse:
@@ -184,7 +182,6 @@ SELECT 'write your example query here';
\```
````
-
## Использование тестовых данных {#using-test-data}
При разработке под ClickHouse часто требуется загрузка реалистичных наборов данных.
@@ -206,7 +203,6 @@ SELECT 'write your example query here';
В clickhouse-client:
-
```sql
CREATE DATABASE IF NOT EXISTS test;
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/development/style.md b/i18n/ru/docusaurus-plugin-content-docs/current/development/style.md
index 6c9d00369ae..924da783682 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/development/style.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/development/style.md
@@ -7,12 +7,8 @@ title: 'Руководство по стилю C++'
doc_type: 'guide'
---
-
-
# Руководство по стилю кода C++ {#c-style-guide}
-
-
## Общие рекомендации {#general-recommendations}
Ниже приведены рекомендации, а не требования.
@@ -20,8 +16,6 @@ doc_type: 'guide'
Стиль кода нужен для обеспечения единообразия. Единообразие упрощает чтение кода, а также облегчает поиск по коду.
Многие правила не имеют логического обоснования; они продиктованы устоявшейся практикой.
-
-
## Форматирование {#formatting}
**1.** Большая часть форматирования выполняется автоматически с помощью `clang-format`.
@@ -134,7 +128,6 @@ for (auto & stream : streams)
**19.** Исходные файлы используют кодировку UTF-8.
-
**20.** В строковых литералах можно использовать символы, выходящие за пределы ASCII.
```cpp
@@ -213,7 +206,6 @@ std::cerr << static_cast(c) << std::endl;
for (Names::const_iterator it = column_names.begin(); it != column_names.end(); ++it)
```
-
## Комментарии {#comments}
**1.** Обязательно добавляйте комментарии ко всем нетривиальным фрагментам кода.
@@ -311,7 +303,6 @@ void executeQuery(
/// for
```
-
## Имена {#names}
**1.** Используйте строчные буквы и символ нижнего подчеркивания в именах переменных и членов классов.
@@ -430,7 +421,6 @@ enum class CompressionMethod
**17.** Имена файлов с исходным кодом C++ должны иметь расширение `.cpp`. Заголовочные файлы должны иметь расширение `.h`.
-
## Как писать код {#how-to-write-code}
**1.** Управление памятью.
@@ -568,7 +558,6 @@ ready_any.set();
Считайте `const` значением по умолчанию и используйте не-`const` только при необходимости.
-
При передаче переменных по значению использование `const` обычно не имеет смысла.
**11.** unsigned.
@@ -699,7 +688,6 @@ auto s = std::string{"Hello"};
**26.** Для виртуальных функций пишите `virtual` в базовом классе, а в производных классах пишите `override` вместо `virtual`.
-
## Неиспользуемые возможности C++ {#unused-features-of-c}
**1.** Виртуальное наследование не используется.
@@ -747,7 +735,6 @@ auto func(const E & e) // автовыведение возвращаемог
}
```
-
## Платформа {#platform}
**1.** Мы пишем код под конкретную платформу.
@@ -772,8 +759,6 @@ auto func(const E & e) // автовыведение возвращаемог
**8.** Код разрабатывается и отлаживается с релизными настройками.
-
-
## Инструменты {#tools}
**1.** KDevelop — хорошая среда разработки (IDE).
@@ -802,8 +787,6 @@ auto func(const E & e) // автовыведение возвращаемог
**10.** Неиспользуемый код удаляется из репозитория.
-
-
## Библиотеки {#libraries}
**1.** Используется стандартная библиотека C++20 (допускаются экспериментальные расширения), а также фреймворки `boost` и `Poco`.
@@ -812,8 +795,6 @@ auto func(const E & e) // автовыведение возвращаемог
**3.** Всегда следует отдавать предпочтение библиотекам, которые уже используются.
-
-
## Общие рекомендации {#general-recommendations-1}
**1.** Пишите как можно меньше кода.
@@ -828,8 +809,6 @@ auto func(const E & e) // автовыведение возвращаемог
**6.** Упрощение кода поощряется. По возможности минимизируйте объём кода.
-
-
## Дополнительные рекомендации {#additional-recommendations}
**1.** Явное указание `std::` для типов из `stddef.h`
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/development/tests.md b/i18n/ru/docusaurus-plugin-content-docs/current/development/tests.md
index a8c6a0e7207..a3c99ef9bd3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/development/tests.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/development/tests.md
@@ -7,12 +7,8 @@ title: 'Тестирование ClickHouse'
doc_type: 'guide'
---
-
-
# Проверка ClickHouse {#testing-clickhouse}
-
-
## Функциональные тесты {#functional-tests}
Функциональные тесты — наиболее простые и удобные в использовании.
@@ -92,7 +88,6 @@ SELECT 1
Для тестов `.sh` теги указываются в комментарии на второй строке:
-
```bash
#!/usr/bin/env bash
# Tags: no-fasttest, no-replicated-database {#tags-no-fasttest-no-replicated-database}
@@ -140,7 +135,6 @@ SELECT 1
Для `.sh`‑тестов ограничения записываются в виде комментария в строке рядом с тегами или во второй строке, если теги не указаны:
-
```bash
#!/usr/bin/env bash
# Теги: no-fasttest {#tags-no-fasttest}
@@ -196,14 +190,11 @@ SELECT x; -- { serverError 49 }
Чтобы избежать этого, следует использовать переменную окружения `$CLICKHOUSE_TEST_UNIQUE_NAME`, чтобы давать временным файлам имя, уникальное для выполняющегося теста.
Таким образом вы можете быть уверены, что файл, который вы создаёте при подготовке или удаляете при очистке, используется только этим тестом, а не каким-либо другим тестом, выполняющимся параллельно.
-
## Известные ошибки {#known-bugs}
Если нам известны ошибки, которые можно легко воспроизвести функциональными тестами, мы помещаем соответствующие функциональные тесты в директорию `tests/queries/bugs`.
После исправления ошибок эти тесты переносятся в `tests/queries/0_stateless`.
-
-
## Интеграционные тесты {#integration-tests}
Интеграционные тесты позволяют проверять работу ClickHouse в кластерной конфигурации и его взаимодействие с другими серверами, такими как MySQL, Postgres, MongoDB.
@@ -215,8 +206,6 @@ SELECT x; -- { serverError 49 }
Обратите внимание, что интеграция ClickHouse со сторонними драйверами не тестируется.
Также в настоящее время у нас нет интеграционных тестов для наших JDBC- и ODBC-драйверов.
-
-
## Модульные тесты {#unit-tests}
Модульные тесты полезны, когда вы хотите протестировать не ClickHouse целиком, а отдельную изолированную библиотеку или класс.
@@ -233,7 +222,6 @@ SELECT x; -- { serverError 49 }
$ ./src/unit_tests_dbms --gtest_filter=LocalAddress*
```
-
## Тесты производительности {#performance-tests}
Тесты производительности позволяют измерять и сравнивать производительность отдельных компонентов ClickHouse на синтетических запросах.
@@ -247,16 +235,12 @@ $ ./src/unit_tests_dbms --gtest_filter=LocalAddress*
Также рекомендуется писать тесты производительности при добавлении или изменении SQL-функций, которые являются относительно изолированными и не слишком специфичными.
Всегда имеет смысл использовать `perf top` или другие инструменты `perf` во время тестов.
-
-
## Тестовые инструменты и скрипты {#test-tools-and-scripts}
Некоторые программы в каталоге `tests` не являются готовыми тестами, а представляют собой вспомогательные тестовые инструменты.
Например, для `Lexer` есть инструмент `src/Parsers/tests/lexer`, который просто выполняет токенизацию stdin и выводит результат с подсветкой в stdout.
Вы можете использовать такие инструменты как примеры кода, а также для изучения и ручного тестирования.
-
-
## Прочие тесты {#miscellaneous-tests}
Есть тесты для моделей машинного обучения в `tests/external_models`.
@@ -270,8 +254,6 @@ $ ./src/unit_tests_dbms --gtest_filter=LocalAddress*
Тест был случайно написан на Java.
По этим причинам кворумный тест должен быть переписан и перенесён в интеграционные тесты.
-
-
## Ручное тестирование {#manual-testing}
Когда вы разрабатываете новую функциональность, имеет смысл также протестировать её вручную.
@@ -313,7 +295,6 @@ $ sudo -u clickhouse gdb --args /usr/bin/clickhouse server --config-file /etc/cl
Исполняемый файл `clickhouse` практически не имеет зависимостей и работает на широком спектре дистрибутивов Linux.
Для быстрого чернового тестирования своих изменений на сервере вы можете просто передать на него свежесобранный исполняемый файл `clickhouse` с помощью `scp`, а затем запустить его, как показано в примерах выше.
-
## Тесты сборки {#build-tests}
Тесты сборки позволяют проверить, что сборка не ломается на различных альтернативных конфигурациях и на некоторых сторонних системах.
@@ -338,8 +319,6 @@ $ sudo -u clickhouse gdb --args /usr/bin/clickhouse server --config-file /etc/cl
Мы также проверяем, что нет слишком больших кадров стека.
-
-
## Тестирование совместимости протокола {#testing-for-protocol-compatibility}
Когда мы расширяем сетевой протокол ClickHouse, мы вручную проверяем, что старый clickhouse-client работает с новым clickhouse-server и новый clickhouse-client работает со старым clickhouse-server (просто запуская исполняемые файлы из соответствующих пакетов).
@@ -348,8 +327,6 @@ $ sudo -u clickhouse gdb --args /usr/bin/clickhouse server --config-file /etc/cl
- могут ли данные, записанные старой версией ClickHouse, быть успешно прочитаны новой версией;
- работают ли распределённые запросы в кластере с разными версиями ClickHouse.
-
-
## Помощь от компилятора {#help-from-the-compiler}
Основная часть кода ClickHouse (расположенная в каталоге `src`) собирается с флагами `-Wall -Wextra -Werror` и с некоторыми дополнительными включёнными предупреждениями.
@@ -361,8 +338,6 @@ $ sudo -u clickhouse gdb --args /usr/bin/clickhouse server --config-file /etc/cl
Вы можете собирать ClickHouse на своей машине в отладочном режиме (чтобы экономить заряд батареи ноутбука), но обратите внимание, что компилятор способен генерировать больше предупреждений при сборке с оптимизацией `-O3` благодаря более качественному анализу потока управления и межпроцедурному анализу.
При сборке с clang в отладочном режиме используется отладочная версия `libc++`, которая позволяет отлавливать больше ошибок во время выполнения.
-
-
## Санитайзеры {#sanitizers}
:::note
@@ -392,8 +367,6 @@ $ sudo -u clickhouse gdb --args /usr/bin/clickhouse server --config-file /etc/cl
Это занимает несколько часов.
В настоящее время есть одно известное ложноположительное срабатывание в библиотеке `re2`, см. [эту статью](https://research.swtch.com/sparse).
-
-
## Фаззинг {#fuzzing}
Фаззинг ClickHouse реализован как с использованием [libFuzzer](https://llvm.org/docs/LibFuzzer.html), так и с помощью случайных SQL‑запросов.
@@ -420,8 +393,6 @@ Google OSS-Fuzz, можно найти в `docker/fuzz`.
Он запоминает узлы AST из предыдущих тестов, чтобы использовать их для фаззинга последующих тестов, обрабатывая их в случайном порядке.
Вы можете узнать больше об этом фаззере в [этой статье блога](https://clickhouse.com/blog/fuzzing-click-house).
-
-
## Стресс-тест {#stress-test}
Стресс-тесты — это ещё один вид фаззинга.
@@ -436,21 +407,15 @@ Google OSS-Fuzz, можно найти в `docker/fuzz`.
Существует пять вариантов (Debug, ASan, TSan, MSan, UBSan).
-
-
## Thread fuzzer {#thread-fuzzer}
Thread Fuzzer (пожалуйста, не путайте с Thread Sanitizer) — это ещё один вид фаззинга, который позволяет случайным образом менять порядок выполнения потоков.
Он помогает обнаружить ещё больше краевых случаев.
-
-
## Аудит безопасности {#security-audit}
Наша команда по безопасности провела первичный обзор возможностей ClickHouse в области обеспечения безопасности.
-
-
## Статические анализаторы {#static-analyzers}
Мы запускаем `clang-tidy` при каждом коммите.
@@ -464,8 +429,6 @@ Thread Fuzzer (пожалуйста, не путайте с Thread Sanitizer)
Мы также используем `shellcheck` для статического анализа shell-скриптов.
-
-
## Повышение защищённости {#hardening}
В отладочной сборке используется собственный аллокатор, выполняющий ASLR пользовательских выделений памяти.
@@ -482,8 +445,6 @@ Thread Fuzzer (пожалуйста, не путайте с Thread Sanitizer)
Отладочная версия jemalloc используется для отладочных сборок.
Отладочная версия libc++ используется для отладочных сборок.
-
-
## Проверки целостности во время работы {#runtime-integrity-checks}
Данные, хранящиеся на диске, защищены с помощью контрольных сумм.
@@ -499,8 +460,6 @@ ClickHouse предоставляет средства диагностики,
\* и это не замедляет работу.
-
-
## Стиль кода {#code-style}
Правила стиля кода описаны [здесь](style.md).
@@ -522,23 +481,17 @@ ClickHouse предоставляет средства диагностики,
Мы также используем `codespell` для поиска опечаток в коде.
Эта проверка также автоматизирована.
-
-
## Покрытие тестами {#test-coverage}
Мы также отслеживаем покрытие тестами, но только для функциональных тестов clickhouse-server.
Измерение покрытия выполняется ежедневно.
-
-
## Тесты для тестов {#tests-for-tests}
Выполняется автоматическая проверка на нестабильные (flaky) тесты.
Она запускает все новые тесты 100 раз (для функциональных тестов) или 10 раз (для интеграционных тестов).
Если хотя бы один раз тест завершился с ошибкой, он считается нестабильным.
-
-
## Автоматизация тестирования {#test-automation}
Мы запускаем тесты с помощью [GitHub Actions](https://github.com/features/actions).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/dictionary/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/dictionary/index.md
index ebaf4f79298..833d0a2e326 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/dictionary/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/dictionary/index.md
@@ -10,7 +10,6 @@ import dictionaryUseCases from '@site/static/images/dictionary/dictionary-use-ca
import dictionaryLeftAnyJoin from '@site/static/images/dictionary/dictionary-left-any-join.png';
import Image from '@theme/IdealImage';
-
# Словарь {#dictionary}
Словарь в ClickHouse предоставляет хранящееся в памяти представление данных в формате [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) из различных [внутренних и внешних источников](/sql-reference/dictionaries#dictionary-sources), оптимизированное для операций поиска с крайне низкой задержкой.
@@ -86,7 +85,6 @@ Controversial_ratio: 0
Хотя этот запрос и работает быстро, он требует от нас аккуратного использования `JOIN`, чтобы добиться хорошей производительности. В идеале мы бы просто отфильтровали записи до тех, которые содержат «SQL», прежде чем смотреть на значения `UpVote` и `DownVote` для подмножества блогов, чтобы вычислить нашу метрику.
-
#### Применение словаря {#applying-a-dictionary}
Чтобы продемонстрировать эти концепции, мы используем словарь для наших данных о голосовании. Поскольку словари обычно хранятся в памяти ([ssd_cache](/sql-reference/dictionaries#ssd_cache) — исключение), пользователям следует учитывать объём данных. Проверим размер нашей таблицы `votes`:
@@ -152,7 +150,6 @@ WHERE name = 'votes_dict'
Получить количество голосов «за» и «против» для конкретного `PostId` теперь можно с помощью простой функции `dictGet`. Ниже мы получаем значения для поста `11227902`:
-
```sql
SELECT dictGet('votes_dict', ('UpVotes', 'DownVotes'), '11227902') AS votes
@@ -183,7 +180,6 @@ LIMIT 3
Этот запрос не только гораздо проще, но и более чем в два раза быстрее! Его можно дополнительно оптимизировать, загружая в словарь только посты с более чем 10 голосами «за» и «против» и сохраняя только предварительно вычисленное значение степени спорности.
-
## Обогащение при выполнении запроса {#query-time-enrichment}
Словари можно использовать для поиска значений при выполнении запроса. Эти значения могут возвращаться в результатах или использоваться в агрегациях. Предположим, мы создаём словарь для отображения идентификаторов пользователей на их местоположения:
@@ -248,7 +244,6 @@ LIMIT 5
Пиковое использование памяти: 248.84 МиБ.
```
-
## Обогащение на этапе вставки (index time) {#index-time-enrichment}
В приведённом выше примере мы использовали словарь на этапе выполнения запроса, чтобы убрать операцию JOIN. Словари также можно использовать для обогащения строк на этапе вставки. Это обычно целесообразно, если значение для обогащения не меняется и существует во внешнем источнике, который можно использовать для заполнения словаря. В этом случае обогащение строки на этапе вставки позволяет избежать поиска в словаре во время выполнения запроса.
@@ -318,7 +313,6 @@ LIMIT 4
Пиковое использование памяти: 666.82 МиБ.
```
-
## Расширенные темы о словарях {#advanced-dictionary-topics}
### Выбор `LAYOUT` словаря {#choosing-the-dictionary-layout}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/atomic.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/atomic.md
index 3fb71630005..168da32e43b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/atomic.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/atomic.md
@@ -7,8 +7,6 @@ title: 'Atomic'
doc_type: 'reference'
---
-
-
# Atomic {#atomic}
Движок `Atomic` поддерживает неблокирующие запросы [`DROP TABLE`](#drop-detach-table) и [`RENAME TABLE`](#rename-table), а также атомарные запросы [`EXCHANGE TABLES`](#exchange-tables). Движок базы данных `Atomic` по умолчанию используется в open-source версии ClickHouse.
@@ -17,15 +15,12 @@ doc_type: 'reference'
В ClickHouse Cloud по умолчанию используется [движок базы данных `Shared`](/cloud/reference/shared-catalog#shared-database-engine), который также поддерживает вышеупомянутые операции.
:::
-
-
## Создание базы данных {#creating-a-database}
```sql
CREATE DATABASE test [ENGINE = Atomic] [SETTINGS disk=...];
```
-
## Особенности и рекомендации {#specifics-and-recommendations}
### UUID таблицы {#table-uuid}
@@ -88,7 +83,6 @@ CREATE TABLE db (n UInt64) ENGINE = Atomic SETTINGS disk=disk(type='local', path
Если не указано, по умолчанию используется диск, определённый в `database_disk.disk`.
-
## См. также {#see-also}
- системная таблица [system.databases](../../operations/system-tables/databases.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/datalake.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/datalake.md
index dd5744386f0..36fef6cddf1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/datalake.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/datalake.md
@@ -6,8 +6,6 @@ title: 'DataLakeCatalog'
doc_type: 'reference'
---
-
-
# DataLakeCatalog {#datalakecatalog}
Движок базы данных `DataLakeCatalog` позволяет подключить ClickHouse к внешним
@@ -15,8 +13,6 @@ doc_type: 'reference'
Это превращает ClickHouse в мощный движок запросов, который бесшовно работает
с инфраструктурой вашего существующего дата-лейка.
-
-
## Поддерживаемые каталоги {#supported-catalogs}
Движок `DataLakeCatalog` поддерживает следующие каталоги данных:
@@ -26,8 +22,6 @@ doc_type: 'reference'
- **Hive Metastore** — традиционный каталог экосистемы Hadoop
- **REST Catalogs** — любой каталог, поддерживающий спецификацию REST для Iceberg
-
-
## Создание базы данных {#creating-a-database}
Чтобы использовать движок `DataLakeCatalog`, необходимо включить приведённые ниже настройки:
@@ -65,7 +59,6 @@ SETTINGS
| `aws_secret_access_key` | Секретный ключ доступа AWS для доступа к S3/Glue (если не используются выдаваемые учетные данные) |
| `region` | Регион AWS для сервиса (например, `us-east-1`) |
-
## Примеры {#examples}
Ниже приведены примеры использования движка `DataLakeCatalog`:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/materialized-postgresql.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/materialized-postgresql.md
index 16804b2daaf..fe94ef996f2 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/materialized-postgresql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/materialized-postgresql.md
@@ -10,7 +10,6 @@ doc_type: 'reference'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# MaterializedPostgreSQL {#materializedpostgresql}
@@ -34,7 +33,6 @@ SET allow_experimental_database_materialized_postgresql=1
:::
-
## Создание базы данных {#creating-a-database}
```sql
@@ -49,7 +47,6 @@ ENGINE = MaterializedPostgreSQL('host:port', 'database', 'user', 'password') [SE
* `user` — пользователь PostgreSQL.
* `password` — пароль пользователя.
-
## Пример использования {#example-of-use}
```sql
@@ -65,7 +62,6 @@ SHOW TABLES FROM postgres_db;
SELECT * FROM postgresql_db.postgres_table;
```
-
## Динамическое добавление новых таблиц в репликацию {#dynamically-adding-table-to-replication}
После создания базы данных `MaterializedPostgreSQL` она не будет автоматически обнаруживать новые таблицы в соответствующей базе данных PostgreSQL. Такие таблицы можно добавить вручную:
@@ -78,7 +74,6 @@ ATTACH TABLE postgres_database.new_table;
До версии 22.1 добавление таблицы в репликацию оставляло неудалённый временный слот репликации (с именем `{db_name}_ch_replication_slot_tmp`). Если вы подключаете таблицы в ClickHouse версии ниже 22.1, обязательно удалите этот слот вручную (`SELECT pg_drop_replication_slot('{db_name}_ch_replication_slot_tmp')`). В противном случае будет расти использование дискового пространства. Эта проблема исправлена в версии 22.1.
:::
-
## Динамическое исключение таблиц из репликации {#dynamically-removing-table-from-replication}
Можно исключить отдельные таблицы из репликации:
@@ -87,7 +82,6 @@ ATTACH TABLE postgres_database.new_table;
DETACH TABLE postgres_database.table_to_remove PERMANENTLY;
```
-
## Схема PostgreSQL {#schema}
Схемы PostgreSQL ([schema](https://www.postgresql.org/docs/9.1/ddl-schemas.html)) можно настраивать тремя способами (начиная с версии 21.12).
@@ -135,7 +129,6 @@ SELECT * FROM database1.`schema2.table2`;
Предупреждение: в данном случае точки в имени таблицы не допускаются.
-
## Требования {#requirements}
1. Параметр [wal_level](https://www.postgresql.org/docs/current/runtime-config-wal.html) должен иметь значение `logical`, а параметр `max_replication_slots` — значение не менее `2` в конфигурационном файле PostgreSQL.
@@ -170,7 +163,6 @@ WHERE oid = 'postgres_table'::regclass;
Репликация значений [**TOAST**](https://www.postgresql.org/docs/9.5/storage-toast.html) не поддерживается. Будет использоваться значение по умолчанию для данного типа данных.
:::
-
## Настройки {#settings}
### `materialized_postgresql_tables_list` {#materialized-postgresql-tables-list}
@@ -230,7 +222,6 @@ ALTER DATABASE postgres_database MODIFY SETTING materialized_postgresql_max_bloc
Использует уникальный идентификатор потребителя при репликации. Значение по умолчанию — `0`.
Если установлено в `1`, позволяет настроить несколько таблиц `MaterializedPostgreSQL`, указывающих на одну и ту же таблицу `PostgreSQL`.
-
## Заметки {#notes}
### Переключение (failover) логического слота репликации {#logical-replication-slot-failover}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/postgresql.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/postgresql.md
index 651f61d18f3..9e52ff79be8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/postgresql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/postgresql.md
@@ -7,8 +7,6 @@ title: 'PostgreSQL'
doc_type: 'guide'
---
-
-
# PostgreSQL {#postgresql}
Позволяет подключаться к базам данных на удалённом сервере [PostgreSQL](https://www.postgresql.org). Поддерживает операции чтения и записи (запросы `SELECT` и `INSERT`) для обмена данными между ClickHouse и PostgreSQL.
@@ -17,8 +15,6 @@ doc_type: 'guide'
Поддерживает модификацию структуры таблиц (`ALTER TABLE ... ADD|DROP COLUMN`). Если параметр `use_table_cache` (см. параметры движка ниже) установлен в `1`, структура таблиц кэшируется и не проверяется на наличие изменений, но может быть обновлена с помощью запросов `DETACH` и `ATTACH`.
-
-
## Создание базы данных {#creating-a-database}
```sql
@@ -35,7 +31,6 @@ ENGINE = PostgreSQL('host:port', 'database', 'user', 'password'[, `schema`, `use
* `schema` — схема PostgreSQL.
* `use_table_cache` — определяет, кэшируется ли структура таблицы базы данных. Необязательный параметр. Значение по умолчанию: `0`.
-
## Поддержка типов данных {#data_types-support}
| PostgreSQL | ClickHouse |
@@ -54,8 +49,6 @@ ENGINE = PostgreSQL('host:port', 'database', 'user', 'password'[, `schema`, `use
| INTEGER | Nullable([Int32](../../sql-reference/data-types/int-uint.md))|
| ARRAY | [Array](../../sql-reference/data-types/array.md) |
-
-
## Примеры использования {#examples-of-use}
База данных в ClickHouse, обменивающаяся данными с сервером PostgreSQL:
@@ -148,7 +141,6 @@ DESCRIBE TABLE test_database.test_table;
└────────┴───────────────────┘
```
-
## Связанные материалы {#related-content}
- Блог: [ClickHouse и PostgreSQL — идеальный союз в мире данных — часть 1](https://clickhouse.com/blog/migrating-data-between-clickhouse-postgres)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/replicated.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/replicated.md
index 41025a6ad98..8d8126d38ee 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/replicated.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/replicated.md
@@ -9,16 +9,12 @@ title: 'Replicated'
doc_type: 'reference'
---
-
-
# Replicated {#replicated}
Движок основан на движке [Atomic](../../engines/database-engines/atomic.md). Он поддерживает репликацию метаданных по журналу DDL, который записывается в ZooKeeper и выполняется на всех репликах заданной базы данных.
Один сервер ClickHouse может одновременно запускать и обновлять несколько реплицируемых баз данных. Однако для одной и той же реплицируемой базы данных не может существовать несколько реплик.
-
-
## Создание базы данных {#creating-a-database}
```sql
@@ -37,7 +33,6 @@ CREATE DATABASE testdb [UUID '...'] ENGINE = Replicated('zoo_path', 'shard_name'
Для таблиц [ReplicatedMergeTree](/engines/table-engines/mergetree-family/replication), если аргументы не заданы, используются значения по умолчанию: `/clickhouse/tables/{uuid}/{shard}` и `{replica}`. Их можно изменить в настройках сервера [default_replica_path](../../operations/server-configuration-parameters/settings.md#default_replica_path) и [default_replica_name](../../operations/server-configuration-parameters/settings.md#default_replica_name). Макрос `{uuid}` раскрывается в UUID таблицы, `{shard}` и `{replica}` раскрываются в значения из конфигурации сервера, а не из аргументов движка базы данных. В будущем можно будет использовать `shard_name` и `replica_name` реплицируемой базы данных.
-
## Особенности и рекомендации {#specifics-and-recommendations}
DDL-запросы с базой данных `Replicated` работают аналогично запросам [ON CLUSTER](../../sql-reference/distributed-ddl.md), но с небольшими отличиями.
@@ -54,8 +49,6 @@ DDL-запросы с базой данных `Replicated` работают ан
Если вам необходимо только настроить кластер без поддержки репликации таблиц, воспользуйтесь функцией [Cluster Discovery](../../operations/cluster-discovery.md).
-
-
## Пример использования {#usage-example}
Создание кластера с тремя хостами:
@@ -131,7 +124,6 @@ node4 :) CREATE DATABASE r UUID '
-
# Движок базы данных Shared {#shared-database-engine}
Движок базы данных `Shared` работает совместно с Shared Catalog для управления базами данных, таблицы которых используют stateless‑движки таблиц, такие как [`SharedMergeTree`](/cloud/reference/shared-merge-tree).
@@ -20,16 +19,12 @@ import CloudOnlyBadge from '@theme/badges/CloudOnlyBadge';
Движок базы данных `Shared` в Cloud устраняет необходимость в локальных дисках.
Это движок, полностью работающий в памяти (in-memory), которому требуются только CPU и память.
-
-
## Как это работает? {#how-it-works}
Движок базы данных `Shared` хранит все определения баз данных и таблиц в централизованном каталоге Shared Catalog, работающем на базе Keeper. Вместо записи на локальный диск он поддерживает единое версионируемое глобальное состояние, общее для всех вычислительных узлов.
Каждый узел отслеживает только последнюю применённую версию и при запуске получает актуальное состояние без необходимости в локальных файлах или ручной настройке.
-
-
## Синтаксис {#syntax}
Для конечных пользователей работа с Shared Catalog и движком базы данных Shared не требует дополнительной конфигурации. Создание базы данных выполняется как обычно:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/sqlite.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/sqlite.md
index 05cb67cdcee..35cd07efe52 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/sqlite.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/database-engines/sqlite.md
@@ -8,14 +8,10 @@ title: 'SQLite'
doc_type: 'reference'
---
-
-
# SQLite {#sqlite}
Позволяет подключаться к базе данных [SQLite](https://www.sqlite.org/index.html) и выполнять запросы `INSERT` и `SELECT` для обмена данными между ClickHouse и SQLite.
-
-
## Создание базы данных {#creating-a-database}
```sql
@@ -27,7 +23,6 @@ doc_type: 'reference'
* `db_path` — Путь к файлу с базой данных SQLite.
-
## Поддерживаемые типы данных {#data_types-support}
| SQLite | ClickHouse |
@@ -37,15 +32,11 @@ doc_type: 'reference'
| TEXT | [String](../../sql-reference/data-types/string.md) |
| BLOB | [String](../../sql-reference/data-types/string.md) |
-
-
## Особенности и рекомендации {#specifics-and-recommendations}
SQLite хранит всю базу данных (определения, таблицы, индексы и сами данные) в одном кроссплатформенном файле на хосте. Во время записи SQLite блокирует весь файл базы данных, поэтому операции записи выполняются последовательно. Операции чтения могут выполняться параллельно.
SQLite не требует отдельного управления службой (например, скриптов запуска) или управления доступом на основе `GRANT` и паролей. Контроль доступа осуществляется с помощью разрешений файловой системы, заданных непосредственно для файла базы данных.
-
-
## Пример использования {#usage-example}
База данных в ClickHouse, подключённая к SQLite:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/index.md
index ada5fb3706d..df953fffe9e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/index.md
@@ -8,8 +8,6 @@ title: 'Движки таблиц'
doc_type: 'reference'
---
-
-
# Движки таблиц {#table-engines}
Движок таблицы (тип таблицы) определяет:
@@ -21,8 +19,6 @@ doc_type: 'reference'
- Возможно ли многопоточное выполнение запросов.
- Параметры репликации данных.
-
-
## Семейства движков {#engine-families}
### MergeTree {#mergetree}
@@ -80,8 +76,6 @@ doc_type: 'reference'
Движки в семействе:
-
-
| Специальные движки |
|---------------------------------------------------------------|
| [Distributed](/engines/table-engines/special/distributed) |
@@ -101,8 +95,6 @@ doc_type: 'reference'
| [KeeperMap](/engines/table-engines/special/keeper-map) |
| [FileLog](/engines/table-engines/special/filelog) |
-
-
## Виртуальные столбцы {#table_engines-virtual_columns}
Виртуальный столбец — это неотъемлемый атрибут движка таблицы, определённый в исходном коде движка.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/arrowflight.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/arrowflight.md
index b9bb1f91db4..fb68c911b10 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/arrowflight.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/arrowflight.md
@@ -7,15 +7,11 @@ title: 'Табличный движок ArrowFlight'
doc_type: 'reference'
---
-
-
# Движок таблицы ArrowFlight {#arrowflight-table-engine}
Движок таблицы ArrowFlight позволяет ClickHouse выполнять запросы к удалённым наборам данных по протоколу [Apache Arrow Flight](https://arrow.apache.org/docs/format/Flight.html).
Эта интеграция даёт возможность ClickHouse получать данные с внешних серверов с поддержкой Flight в колонном формате Arrow с высокой производительностью.
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -32,7 +28,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name (name1 [type1], name2 [type2], ...)
Если `username` и `password` не указаны, это означает, что аутентификация не используется
(это будет работать только в том случае, если сервер Arrow Flight это допускает).
-
## Пример использования {#usage-example}
В этом примере показано, как создать таблицу для чтения данных с удалённого сервера Arrow Flight:
@@ -60,14 +55,11 @@ SELECT * FROM remote_flight_data ORDER BY id;
└────┴─────────┴───────┘
```
-
## Примечания {#notes}
* Схема, определённая в ClickHouse, должна соответствовать схеме, возвращаемой сервером Flight.
* Этот движок подходит для федеративных запросов, виртуализации данных и разделения хранения и вычислений.
-
-
## См. также {#see-also}
* [Apache Arrow Flight SQL](https://arrow.apache.org/docs/format/FlightSql.html)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/azureBlobStorage.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/azureBlobStorage.md
index ccc134f3794..686e3cdbdfb 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/azureBlobStorage.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/azureBlobStorage.md
@@ -7,14 +7,10 @@ title: 'Табличный движок AzureBlobStorage'
doc_type: 'reference'
---
-
-
# Табличный движок AzureBlobStorage {#azureblobstorage-table-engine}
Этот движок предоставляет интеграцию с экосистемой [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs).
-
-
## Создание таблицы {#create-table}
```sql
@@ -60,7 +56,6 @@ SELECT * FROM test_table;
└──────┴───────┘
```
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к файлу. Тип: `LowCardinality(String)`.
@@ -68,8 +63,6 @@ SELECT * FROM test_table;
- `_size` — Размер файла в байтах. Тип: `Nullable(UInt64)`. Если размер неизвестен, значение равно `NULL`.
- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение равно `NULL`.
-
-
## Аутентификация {#authentication}
В настоящее время есть три способа аутентификации:
@@ -131,7 +124,6 @@ arthur :) insert into azure_table values (2020, 'Russia', 1), (2021, 'Brazil', 2
arthur :) select _path, * from azure_table;
```
-
┌─_path──────────────────────────────────────────────────────────────────────┬─year─┬─country─┬─counter─┐
1. │ cont/hive_partitioned/year=2020/country=Russia/7351305360873664512.parquet │ 2020 │ Russia │ 1 │
@@ -141,7 +133,6 @@ arthur :) select _path, * from azure_table;
```
```
-
## См. также {#see-also}
[Табличная функция Azure Blob Storage](/sql-reference/table-functions/azureBlobStorage)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/deltalake.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/deltalake.md
index 3de508eafa6..b7fb471e276 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/deltalake.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/deltalake.md
@@ -7,14 +7,10 @@ title: 'Движок таблиц DeltaLake'
doc_type: 'reference'
---
-
-
# Табличный движок DeltaLake {#deltalake-table-engine}
Этот табличный движок обеспечивает доступ только для чтения к существующим таблицам [Delta Lake](https://github.com/delta-io/delta) в Amazon S3.
-
-
## Создание таблицы {#create-table}
Учтите, что таблица Delta Lake уже должна существовать в S3: эта команда не принимает параметры DDL для создания новой таблицы.
@@ -59,7 +55,6 @@ CREATE TABLE deltalake ENGINE=DeltaLake(deltalake_conf, filename = 'test_table')
Движок таблиц `Iceberg` и табличная функция поддерживают кэширование данных так же, как хранилища `S3`, `AzureBlobStorage`, `HDFS`. См. [здесь](../../../engines/table-engines/integrations/s3.md#data-cache).
-
## См. также {#see-also}
- [табличная функция deltaLake](../../../sql-reference/table-functions/deltalake.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/hdfs.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/hdfs.md
index 75d677a601e..bc76f6784ed 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/hdfs.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/hdfs.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Движок таблицы HDFS {#hdfs-table-engine}
@@ -18,8 +17,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
Эта функциональность не поддерживается инженерами ClickHouse и известна своим сомнительным качеством реализации. В случае любых проблем исправляйте их самостоятельно и отправляйте pull request.
-
-
## Использование {#usage}
```sql
@@ -68,7 +65,6 @@ SELECT * FROM hdfs_engine_table LIMIT 2
└──────┴───────┘
```
-
## Подробности реализации {#implementation-details}
* Операции чтения и записи могут выполняться параллельно.
@@ -132,7 +128,6 @@ CREATE TABLE table_with_asterisk (name String, value UInt32) ENGINE = HDFS('hdfs
Создайте таблицу с файлами с именами `file000`, `file001`, ... , `file999`:
-
```sql
CREATE TABLE big_table (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/big_dir/file{0..9}{0..9}{0..9}', 'CSV')
```
@@ -159,7 +154,6 @@ CREATE TABLE big_table (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9
#### Поддерживаемые libhdfs3 {#supported-by-libhdfs3}
-
| **параметр** | **значение по умолчанию** |
| - | - |
| rpc\_client\_connect\_tcpnodelay | true |
@@ -217,8 +211,6 @@ CREATE TABLE big_table (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9
### Ограничения {#limitations}
* `hadoop_security_kerberos_ticket_cache_path` и `libhdfs3_conf` могут задаваться только глобально, а не на уровне пользователя
-
-
## Поддержка Kerberos {#kerberos-support}
Если параметр `hadoop_security_authentication` имеет значение `kerberos`, ClickHouse аутентифицируется через Kerberos.
@@ -227,8 +219,6 @@ CREATE TABLE big_table (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9
взаимодействие с узлами DataNode не защищено с помощью SASL (`HADOOP_SECURE_DN_USER` является надежным индикатором такого
варианта организации безопасности). В качестве примера используйте `tests/integration/test_storage_kerberized_hdfs/hdfs_configs/bootstrap.sh`.
-
-
Если указаны `hadoop_kerberos_keytab`, `hadoop_kerberos_principal` или `hadoop_security_kerberos_ticket_cache_path`, будет использоваться аутентификация Kerberos. В этом случае `hadoop_kerberos_keytab` и `hadoop_kerberos_principal` являются обязательными.
## Поддержка HDFS Namenode HA {#namenode-ha}
@@ -246,7 +236,6 @@ libhdfs3 поддерживает HDFS Namenode HA.
* Затем используйте значение тега `dfs.nameservices` из `hdfs-site.xml` в качестве адреса узла NameNode в URI HDFS. Например, замените `hdfs://appadmin@192.168.101.11:8020/abc/` на `hdfs://appadmin@my_nameservice/abc/`.
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к файлу. Тип: `LowCardinality(String)`.
@@ -254,8 +243,6 @@ libhdfs3 поддерживает HDFS Namenode HA.
- `_size` — Размер файла в байтах. Тип: `Nullable(UInt64)`. Если размер неизвестен, значение — `NULL`.
- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
-
-
## Настройки хранения {#storage-settings}
- [hdfs_truncate_on_insert](/operations/settings/settings.md#hdfs_truncate_on_insert) — позволяет усечь файл перед вставкой в него данных. По умолчанию отключена.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/hudi.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/hudi.md
index 310adfc77ab..0cc0c63fc99 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/hudi.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/hudi.md
@@ -7,14 +7,10 @@ title: 'Движок таблиц Hudi'
doc_type: 'reference'
---
-
-
# Табличный движок Hudi {#hudi-table-engine}
Этот движок предоставляет доступ только для чтения к существующим таблицам Apache [Hudi](https://hudi.apache.org/) в Amazon S3.
-
-
## Создание таблицы {#create-table}
Имейте в виду, что таблица Hudi должна уже существовать в S3: эта команда не принимает DDL‑параметры для создания новой таблицы.
@@ -55,7 +51,6 @@ CREATE TABLE hudi_table ENGINE=Hudi('http://mars-doc-test.s3.amazonaws.com/click
CREATE TABLE hudi_table ENGINE=Hudi(hudi_conf, filename = 'test_table')
```
-
## См. также {#see-also}
- [табличная функция Hudi](/sql-reference/table-functions/hudi.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md
index edc030b9d9b..d66bf8a8d5b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md
@@ -7,8 +7,6 @@ title: 'Движок таблиц Iceberg'
doc_type: 'reference'
---
-
-
# Движок таблицы Iceberg {#iceberg-table-engine}
:::warning
@@ -21,8 +19,6 @@ doc_type: 'reference'
Этот движок обеспечивает доступ только для чтения к существующим таблицам Apache [Iceberg](https://iceberg.apache.org/) в Amazon S3, Azure, HDFS, а также к локально хранимым таблицам.
-
-
## Создание таблицы {#create-table}
Обратите внимание, что таблица Iceberg должна уже существовать в хранилище: эта команда не принимает параметры DDL для создания новой таблицы.
@@ -41,7 +37,6 @@ CREATE TABLE iceberg_table_local
ENGINE = IcebergLocal(path_to_table, [,format] [,compression_method])
```
-
## Параметры движка {#engine-arguments}
Описание аргументов соответствует описанию аргументов в движках `S3`, `AzureBlobStorage`, `HDFS` и `File` соответственно.
@@ -74,13 +69,10 @@ CREATE TABLE iceberg_table ENGINE=IcebergS3(iceberg_conf, filename = 'test_table
```
-
## Псевдонимы {#aliases}
Движок таблицы `Iceberg` теперь является псевдонимом движка `IcebergS3`.
-
-
## Эволюция схемы {#schema-evolution}
В данный момент с помощью CH вы можете читать таблицы Iceberg, схема которых со временем изменялась. В настоящее время поддерживается чтение таблиц, в которых столбцы добавлялись и удалялись, а их порядок менялся. Вы также можете изменить столбец с обязательным значением на столбец, в котором допускается значение NULL. Дополнительно поддерживаются разрешённые преобразования типов для простых типов, а именно:
* int -> long
@@ -91,20 +83,14 @@ CREATE TABLE iceberg_table ENGINE=IcebergS3(iceberg_conf, filename = 'test_table
Чтобы прочитать таблицу, схема которой изменилась после её создания, с использованием динамического вывода схемы, установите allow_dynamic_metadata_for_data_lakes = true при создании таблицы.
-
-
## Отсечение партиций {#partition-pruning}
ClickHouse поддерживает отсечение партиций в запросах SELECT к таблицам Iceberg, что помогает оптимизировать производительность запросов за счёт пропуска нерелевантных файлов данных. Чтобы включить отсечение партиций, установите `use_iceberg_partition_pruning = 1`. Дополнительную информацию об отсечении партиций в Iceberg см. в спецификации: https://iceberg.apache.org/spec/#partitioning
-
-
## Time travel {#time-travel}
В ClickHouse поддерживается механизм time travel для таблиц Iceberg, который позволяет выполнять запросы к историческим данным по заданной временной метке или идентификатору снимка (snapshot).
-
-
## Обработка таблиц с удалёнными строками {#deleted-rows}
В настоящее время поддерживаются только таблицы Iceberg с [позиционными удалениями (position deletes)](https://iceberg.apache.org/spec/#position-delete-files).
@@ -242,7 +228,6 @@ SETTINGS iceberg_snapshot_id = 3547395809148285433
Это происходит потому, что `ALTER TABLE` не создает новый снимок, а для текущей таблицы Spark берет значение `schema_id` из последнего файла метаданных, а не из снимка.
-
#### Сценарий 3: Отличия между исторической и текущей схемами {#scenario-3}
Второй момент заключается в том, что при выполнении операции time travel вы не можете получить состояние таблицы до того, как в неё были записаны какие-либо данные:
@@ -264,7 +249,6 @@ SETTINGS iceberg_snapshot_id = 3547395809148285433
В ClickHouse поведение аналогично Spark. Вы можете мысленно заменить запросы Select в Spark на запросы Select в ClickHouse — и всё будет работать так же.
-
## Определение файла метаданных {#metadata-file-resolution}
При использовании движка таблиц `Iceberg` в ClickHouse системе необходимо найти корректный файл metadata.json, который описывает структуру таблицы Iceberg. Ниже описано, как работает этот процесс определения:
@@ -307,19 +291,14 @@ CREATE TABLE example_table ENGINE = Iceberg(
**Примечание**: Хотя каталоги Iceberg обычно отвечают за разрешение метаданных, табличный движок `Iceberg` в ClickHouse напрямую интерпретирует файлы, хранящиеся в S3, как таблицы Iceberg, поэтому важно понимать правила их разрешения.
-
## Кэш данных {#data-cache}
Табличный движок `Iceberg` и одноимённая табличная функция поддерживают кэширование данных так же, как и хранилища `S3`, `AzureBlobStorage`, `HDFS`. См. [здесь](../../../engines/table-engines/integrations/s3.md#data-cache).
-
-
## Кэш метаданных {#metadata-cache}
Движок таблиц и табличная функция `Iceberg` поддерживают кэш метаданных, в котором хранится информация о manifest-файлах, списке manifest и JSON-файле метаданных. Кэш хранится в памяти. Эта функция управляется настройкой `use_iceberg_metadata_files_cache`, которая по умолчанию включена.
-
-
## См. также {#see-also}
- [табличная функция iceberg](/sql-reference/table-functions/iceberg.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/jdbc.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/jdbc.md
index 7787178e62e..4d02d9226b5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/jdbc.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/jdbc.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Движок таблицы JDBC {#jdbc-table-engine}
@@ -25,8 +24,6 @@ ClickHouse рекомендует использовать встроенные
Этот движок поддерживает тип данных [Nullable](../../../sql-reference/data-types/nullable.md).
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -50,7 +47,6 @@ ENGINE = JDBC(источник_данных, внешняя_база_данны
* Эти параметры также можно передавать с использованием [именованных коллекций](operations/named-collections.md).
-
## Пример использования {#usage-example}
Создание таблицы на сервере MySQL, подключившись к нему напрямую через консольный клиент:
@@ -106,7 +102,6 @@ SELECT toInt32(number), toFloat32(number * 1.0)
FROM system.numbers
```
-
## См. также {#see-also}
- [табличная функция JDBC](../../../sql-reference/table-functions/jdbc.md).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/kafka.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/kafka.md
index a778e670d8b..ce057766821 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/kafka.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/kafka.md
@@ -10,7 +10,6 @@ doc_type: 'guide'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
-
# Табличный движок Kafka {#kafka-table-engine}
:::tip
@@ -66,7 +65,6 @@ SETTINGS
Необязательные параметры:
-
- `kafka_security_protocol` — Протокол, используемый для связи с брокерами. Возможные значения: `plaintext`, `ssl`, `sasl_plaintext`, `sasl_ssl`.
- `kafka_sasl_mechanism` — Механизм SASL, используемый для аутентификации. Возможные значения: `GSSAPI`, `PLAIN`, `SCRAM-SHA-256`, `SCRAM-SHA-512`, `OAUTHBEARER`.
- `kafka_sasl_username` — Имя пользователя SASL для использования с механизмами `PLAIN` и `SASL-SCRAM-..`.
@@ -136,7 +134,6 @@ SETTINGS
Табличный движок Kafka не поддерживает столбцы со [значениями по умолчанию](/sql-reference/statements/create/table#default_values). Если вам нужны такие столбцы, их можно добавить на уровне materialized view (см. ниже).
:::
-
## Описание {#description}
Доставленные сообщения отслеживаются автоматически, поэтому каждое сообщение в группе учитывается только один раз. Если вам нужно получить данные дважды, создайте копию таблицы с другим именем группы.
@@ -187,7 +184,6 @@ SETTINGS
Если вы хотите изменить целевую таблицу с помощью `ALTER`, рекомендуем отключить материализованное представление, чтобы избежать расхождений между целевой таблицей и данными из представления.
-
## Конфигурация {#configuration}
Как и движок GraphiteMergeTree, движок Kafka поддерживает расширенную конфигурацию с использованием файла конфигурации ClickHouse. Вы можете использовать два ключа конфигурации: глобальный (в секции ``) и на уровне топика (в секции ``). Сначала применяется глобальная конфигурация, а затем — конфигурация для конкретного топика (если она задана).
@@ -234,7 +230,6 @@ SETTINGS
Список доступных параметров конфигурации приведён в [справочнике по конфигурации librdkafka](https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md). Используйте символ подчёркивания (`_`) вместо точки в конфигурации ClickHouse. Например, `check.crcs=true` будет записано как `true`.
-
### Поддержка Kerberos {#kafka-kerberos-support}
Для работы с Kafka с поддержкой Kerberos добавьте дочерний элемент `security_protocol` со значением `sasl_plaintext`. Этого достаточно при наличии действительного Kerberos ticket-granting ticket (TGT), уже полученного и закэшированного средствами операционной системы.
@@ -251,7 +246,6 @@ ClickHouse может самостоятельно поддерживать уч
```
-
## Виртуальные столбцы {#virtual-columns}
- `_topic` — топик Kafka. Тип данных: `LowCardinality(String)`.
@@ -300,7 +294,6 @@ SETTINGS
SETTINGS allow_experimental_kafka_offsets_storage_in_keeper=1;
```
-
### Известные ограничения {#known-limitations}
Поскольку новый движок является экспериментальным, он ещё не готов для промышленного использования. На данный момент в реализации есть несколько известных ограничений:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/materialized-postgresql.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/materialized-postgresql.md
index 844e25794d8..0422a9e99e0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/materialized-postgresql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/materialized-postgresql.md
@@ -10,7 +10,6 @@ doc_type: 'guide'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Движок таблицы MaterializedPostgreSQL {#materializedpostgresql-table-engine}
@@ -34,7 +33,6 @@ SET allow_experimental_materialized_postgresql_table=1
Если требуется более одной таблицы, настоятельно рекомендуется использовать движок базы данных [MaterializedPostgreSQL](../../../engines/database-engines/materialized-postgresql.md) вместо движка таблицы и настройку `materialized_postgresql_tables_list`, которая задаёт список реплицируемых таблиц (также можно будет указать `schema` базы данных). Такой подход значительно лучше с точки зрения нагрузки на CPU, количества подключений и числа слотов репликации в удалённой базе данных PostgreSQL.
-
## Создание таблицы {#creating-a-table}
```sql
@@ -51,7 +49,6 @@ PRIMARY KEY key;
* `user` — пользователь PostgreSQL.
* `password` — пароль пользователя.
-
## Требования {#requirements}
1. Параметр [wal_level](https://www.postgresql.org/docs/current/runtime-config-wal.html) должен иметь значение `logical`, а параметр `max_replication_slots` — значение не менее `2` в конфигурационном файле PostgreSQL.
@@ -62,8 +59,6 @@ PRIMARY KEY key;
4. Движок таблицы `MaterializedPostgreSQL` работает только с PostgreSQL версии >= 11, поскольку реализация использует функцию PostgreSQL [pg_replication_slot_advance](https://pgpedia.info/p/pg_replication_slot_advance.html).
-
-
## Виртуальные столбцы {#virtual-columns}
* `_version` — счётчик транзакций. Тип: [UInt64](../../../sql-reference/data-types/int-uint.md).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mongodb.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mongodb.md
index 777959f80f4..21a0cc02ca4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mongodb.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mongodb.md
@@ -7,8 +7,6 @@ title: 'Движок таблицы MongoDB'
doc_type: 'reference'
---
-
-
# Табличный движок MongoDB {#mongodb-table-engine}
Табличный движок MongoDB — это движок только для чтения, который позволяет читать данные из удалённой коллекции [MongoDB](https://www.mongodb.com/).
@@ -16,8 +14,6 @@ doc_type: 'reference'
Поддерживаются только серверы MongoDB версии 3.6 и выше.
[Seed list (`mongodb+srv`)](https://www.mongodb.com/docs/manual/reference/glossary/#std-term-seed-list) пока не поддерживается.
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -60,7 +56,6 @@ ENGINE = MongoDB(uri, collection[, oid_columns]);
| `collection` | Имя коллекции на удалённом сервере. |
| `oid_columns` | Список имён столбцов, разделённых запятыми, которые в предложении WHERE должны интерпретироваться как `oid`. По умолчанию — `_id`. |
-
## Сопоставление типов {#types-mappings}
| MongoDB | ClickHouse |
@@ -131,7 +126,6 @@ CREATE TABLE sample_oid
SELECT count() FROM sample_oid WHERE another_oid_column = '67bf6cc40000000000ea41b1'; -- теперь вернёт 1
```
-
## Поддерживаемые предложения {#supported-clauses}
Поддерживаются только запросы с простыми выражениями (например, `WHERE field = ORDER BY field2 LIMIT `).
@@ -157,7 +151,6 @@ SELECT * FROM mongo_table WHERE date = '2024-01-01'::Date OR date = toDate('2024
:::
-
## Пример использования {#usage-example}
Предположим, что в MongoDB загружен набор данных [sample_mflix](https://www.mongodb.com/docs/atlas/sample-data/sample-mflix).
@@ -238,7 +231,6 @@ LIMIT 3;
└────────────────────────┴────────┘
```
-
## Диагностика и устранение неполадок {#troubleshooting}
Сгенерированный запрос MongoDB можно увидеть в журналах с уровнем DEBUG.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md
index df651240b10..187c140cc08 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md
@@ -7,14 +7,10 @@ title: 'Табличный движок MySQL'
doc_type: 'reference'
---
-
-
# Движок таблицы MySQL {#mysql-table-engine}
Движок MySQL позволяет выполнять запросы `SELECT` и `INSERT` к данным, которые хранятся на удалённом сервере MySQL.
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -66,7 +62,6 @@ SETTINGS
CREATE TABLE test_replicas (id UInt32, name String, age UInt32, money UInt32) ENGINE = MySQL(`mysql{2|3|4}:3306`, 'clickhouse', 'test_replicas', 'root', 'clickhouse');
```
-
## Пример использования {#usage-example}
Создайте таблицу в MySQL:
@@ -132,7 +127,6 @@ SELECT * FROM mysql_table
└────────────────┴────────┘
```
-
## Настройки {#mysql-settings}
Настройки по умолчанию не очень эффективны, поскольку соединения при этом даже не переиспользуются. Эти настройки позволяют увеличить число запросов, выполняемых сервером в секунду.
@@ -199,8 +193,6 @@ SELECT * FROM mysql_table
Значение по умолчанию: `300`.
-
-
## См. также {#see-also}
- [Табличная функция MySQL](../../../sql-reference/table-functions/mysql.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/nats.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/nats.md
index 3d9d263fdf7..8483abf55e9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/nats.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/nats.md
@@ -8,8 +8,6 @@ title: 'Табличный движок NATS'
doc_type: 'guide'
---
-
-
# Табличный движок NATS {#redisstreams-engine}
Этот движок позволяет интегрировать ClickHouse с [NATS](https://nats.io/).
@@ -19,8 +17,6 @@ doc_type: 'guide'
- Публиковать сообщения в сабжекты (subjects) или подписываться на них.
- Обрабатывать новые сообщения по мере их появления.
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -81,7 +77,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
SSL-подключение:
-
Для безопасного соединения используйте `nats_secure = 1`.
Поведение используемой библиотеки по умолчанию состоит в том, что она не проверяет, достаточно ли безопасно установленное TLS‑соединение. Просрочен ли сертификат, самоподписан, отсутствует или недействителен — соединение всё равно устанавливается. Более строгая проверка сертификатов может быть реализована в будущем.
@@ -133,7 +128,6 @@ SSL-подключение:
```
-
## Описание {#description}
`SELECT` не особенно полезен для чтения сообщений (кроме отладки), потому что каждое сообщение может быть прочитано только один раз. Гораздо практичнее создавать потоки в реальном времени с помощью [материализованных представлений](../../../sql-reference/statements/create/view.md). Для этого:
@@ -175,7 +169,6 @@ SSL-подключение:
Если вы хотите изменить целевую таблицу с помощью `ALTER`, рекомендуем предварительно отключить материализованное представление, чтобы избежать расхождений между целевой таблицей и данными из представления.
-
## Виртуальные столбцы {#virtual-columns}
- `_subject` — тема сообщения NATS. Тип данных: `String`.
@@ -187,8 +180,6 @@ SSL-подключение:
Примечание: виртуальные столбцы `_raw_message` и `_error` заполняются только в случае возникновения исключения при парсинге; при успешном парсинге сообщения они всегда имеют значение `NULL`.
-
-
## Поддержка форматов данных {#data-formats-support}
Движок NATS поддерживает все [форматы](../../../interfaces/formats.md), поддерживаемые в ClickHouse.
@@ -197,8 +188,6 @@ SSL-подключение:
- Для строковых форматов количеством строк в одном сообщении NATS можно управлять с помощью настройки `nats_max_rows_per_message`.
- Для блочных форматов блок нельзя разделить на более мелкие части, но количеством строк в одном блоке можно управлять с помощью общей настройки [max_block_size](/operations/settings/settings#max_block_size).
-
-
## Использование JetStream {#using-jetstream}
Прежде чем использовать движок NATS с NATS JetStream, необходимо создать поток NATS (stream) и устойчивого (durable) pull‑consumer'а. Для этого можно использовать, например, утилиту `nats` из пакета [NATS CLI](https://github.com/nats-io/natscli):
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md
index fe72c04a0f0..6f389a59468 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Движок таблицы ODBC {#odbc-table-engine}
@@ -20,8 +19,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
Этот движок поддерживает тип данных [Nullable](../../../sql-reference/data-types/nullable.md).
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -50,7 +47,6 @@ ENGINE = ODBC(источник_данных, внешняя_база_данны
Эти параметры также можно передавать с помощью [именованных коллекций](operations/named-collections.md).
-
## Пример использования {#usage-example}
**Получение данных из локального экземпляра MySQL через ODBC**
@@ -140,7 +136,6 @@ SELECT * FROM odbc_t
└────────┴────────────────┘
```
-
## Смотрите также {#see-also}
- [Словари ODBC](/sql-reference/dictionaries#mysql)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md
index a2085483fb1..5e9bd3368e0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md
@@ -7,8 +7,6 @@ title: 'Табличный движок PostgreSQL'
doc_type: 'guide'
---
-
-
# Движок таблиц PostgreSQL {#postgresql-table-engine}
Движок PostgreSQL позволяет выполнять запросы `SELECT` и `INSERT` к данным, хранящимся на удалённом сервере PostgreSQL.
@@ -21,8 +19,6 @@ doc_type: 'guide'
Пользователям ClickHouse Cloud рекомендуется использовать [ClickPipes](/integrations/clickpipes) для потоковой передачи данных из Postgres в ClickHouse. Это обеспечивает встроенную поддержку высокопроизводительной вставки, при этом сохраняя разделение зон ответственности за счёт возможности независимо масштабировать ингестию и ресурсы кластера.
:::
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -72,7 +68,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
SELECT * FROM postgresql(postgres_creds, table='table1');
```
-
## Особенности реализации {#implementation-details}
Запросы `SELECT` на стороне PostgreSQL выполняются как `COPY (SELECT ...) TO STDOUT` внутри транзакции PostgreSQL только для чтения с фиксацией (commit) после каждого запроса `SELECT`.
@@ -120,7 +115,6 @@ CREATE TABLE test_replicas (id UInt32, name String) ENGINE = PostgreSQL(`postgre
```
-
## Пример использования {#usage-example}
### Таблица в PostgreSQL {#table-in-postgresql}
@@ -230,7 +224,6 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32)
* [Табличная функция `postgresql`](../../../sql-reference/table-functions/postgresql.md)
* [Использование PostgreSQL как источника словаря](/sql-reference/dictionaries#mysql)
-
## Связанные материалы {#related-content}
- Блог: [ClickHouse и PostgreSQL — союз, заключённый в раю данных — часть 1](https://clickhouse.com/blog/migrating-data-between-clickhouse-postgres)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/rabbitmq.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/rabbitmq.md
index b5ca214728c..cc4492f3ec5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/rabbitmq.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/rabbitmq.md
@@ -7,8 +7,6 @@ title: 'Табличный движок RabbitMQ'
doc_type: 'guide'
---
-
-
# Табличный движок RabbitMQ {#rabbitmq-table-engine}
Этот движок позволяет интегрировать ClickHouse с [RabbitMQ](https://www.rabbitmq.com).
@@ -18,8 +16,6 @@ doc_type: 'guide'
- Публиковать или подписываться на потоки данных.
- Обрабатывать потоки по мере их поступления.
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -63,7 +59,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
Необязательные параметры:
-
- `rabbitmq_exchange_type` – Тип обменника RabbitMQ: `direct`, `fanout`, `topic`, `headers`, `consistent_hash`. По умолчанию: `fanout`.
- `rabbitmq_routing_key_list` – Список ключей маршрутизации (routing keys), разделённых запятыми.
- `rabbitmq_schema` – Параметр, который необходимо использовать, если формат требует определения схемы. Например, [Cap'n Proto](https://capnproto.org/) требует указать путь к файлу схемы и имя корневого объекта `schema.capnp:Message`.
@@ -97,8 +92,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
Пример:
-
-
```sql
CREATE TABLE queue (
key UInt64,
@@ -130,7 +123,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
```
-
## Описание {#description}
`SELECT` не особенно полезен для чтения сообщений (кроме отладки), потому что каждое сообщение можно прочитать только один раз. Гораздо практичнее создавать потоки в реальном времени с помощью [материализованных представлений](../../../sql-reference/statements/create/view.md). Для этого:
@@ -192,7 +184,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
SELECT key, value FROM daily ORDER BY key;
```
-
## Виртуальные столбцы {#virtual-columns}
- `_exchange_name` — имя exchange в RabbitMQ. Тип данных: `String`.
@@ -209,14 +200,10 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
Примечание: виртуальные столбцы `_raw_message` и `_error` заполняются только в случае возникновения исключения во время разбора; при успешном разборе сообщения они всегда равны `NULL`.
-
-
## Ограничения {#caveats}
Даже если вы укажете [выражения значений по умолчанию для столбцов](/sql-reference/statements/create/table.md/#default_values) (такие как `DEFAULT`, `MATERIALIZED`, `ALIAS`) в определении таблицы, они будут игнорироваться. Вместо этого столбцы будут заполняться значениями по умолчанию для соответствующих типов.
-
-
## Поддержка форматов данных {#data-formats-support}
Движок RabbitMQ поддерживает все [форматы](../../../interfaces/formats.md), которые поддерживаются в ClickHouse.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/redis.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/redis.md
index 8e58eaa31ea..78e19f69f04 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/redis.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/redis.md
@@ -7,14 +7,10 @@ title: 'Табличный движок Redis'
doc_type: 'guide'
---
-
-
# Табличный движок Redis {#redis-table-engine}
Этот движок позволяет интегрировать ClickHouse с [Redis](https://redis.io/). Поскольку Redis использует модель ключ–значение (kv), настоятельно рекомендуется выполнять только точечные запросы, например `where k=xx` или `where k in (xx, xx)`.
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -46,7 +42,6 @@ PRIMARY KEY(primary_key_name);
Запросы с `key equals` или `in filtering` будут оптимизированы до поиска по нескольким ключам в Redis. Если запросы выполняются без ключа фильтрации, будет выполнено полное сканирование таблицы, что является ресурсоёмкой операцией.
:::
-
## Пример использования {#usage-example}
Создайте таблицу в ClickHouse с движком `Redis`, явно указав аргументы:
@@ -155,7 +150,6 @@ Join:
SELECT * FROM redis_table JOIN merge_tree_table ON merge_tree_table.key=redis_table.key;
```
-
## Ограничения {#limitations}
Движок Redis также поддерживает запросы сканирования, такие как `where k > xx`, но у него есть некоторые ограничения:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/s3.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/s3.md
index fe5d8bbfac6..9e36123f057 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/s3.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/s3.md
@@ -8,14 +8,10 @@ title: 'Табличный движок S3'
doc_type: 'reference'
---
-
-
# Движок таблицы S3 {#s3-table-engine}
Этот движок обеспечивает интеграцию с экосистемой [Amazon S3](https://aws.amazon.com/s3/). Он похож на движок [HDFS](/engines/table-engines/integrations/hdfs), но поддерживает специфичные для S3 возможности.
-
-
## Пример {#example}
```sql
@@ -35,7 +31,6 @@ SELECT * FROM s3_engine_table LIMIT 2;
└──────┴───────┘
```
-
## Создайте таблицу {#creating-a-table}
```sql
@@ -97,7 +92,6 @@ SETTINGS filesystem_cache_name = 'cache_for_s3', enable_filesystem_cache = 1;
`WILDCARD` (по умолчанию): заменяет подстановочный шаблон `{_partition_id}` в пути к файлу фактическим ключом партиционирования. Чтение не поддерживается.
-
`HIVE` реализует партиционирование в стиле Hive для чтения и записи. Чтение реализовано с использованием рекурсивного glob-шаблона, что эквивалентно запросу `SELECT * FROM s3('table_root/**.parquet')`.
При записи файлы создаются в следующем формате: `//.`.
@@ -146,7 +140,6 @@ arthur :) select _path, * from t_03363_parquet;
Обратите внимание, что endpoint S3 в конфигурации `ENGINE` использует токен-параметр `{_partition_id}` как часть объекта S3 (имени файла) и что запросы SELECT выполняются по соответствующим именам объектов (например, `test_3.csv`).
-
:::note
Как показано в примере, выполнение запросов к S3-таблицам, разбитым на партиции,
в настоящее время напрямую не поддерживается, но может быть реализовано путём запроса отдельных партиций
@@ -240,13 +233,10 @@ SELECT * FROM p
Код: 48. DB::Exception: Получено от localhost:9000. DB::Exception: Чтение из партиционированного хранилища S3 еще не реализовано. (NOT_IMPLEMENTED)
```
-
## Вставка данных {#inserting-data}
Обратите внимание, что строки можно вставлять только в новые файлы. Здесь нет циклов слияния или операций разбиения файлов. После того как файл записан, последующие вставки завершатся с ошибкой. Чтобы этого избежать, вы можете использовать настройки `s3_truncate_on_insert` и `s3_create_new_file_on_insert`. Подробнее см. [здесь](/integrations/s3#inserting-data).
-
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — путь к файлу. Тип: `LowCardinality(String)`.
@@ -258,8 +248,6 @@ SELECT * FROM p
Для получения дополнительной информации о виртуальных столбцах см. [здесь](../../../engines/table-engines/index.md#table_engines-virtual_columns){}`.
-
-
## Детали реализации {#implementation-details}
- Операции чтения и записи могут выполняться параллельно.
@@ -272,8 +260,6 @@ SELECT * FROM p
Репликация zero-copy по умолчанию отключена в ClickHouse, начиная с версии 22.8. Не рекомендуется использовать эту функцию в промышленной эксплуатации.
:::
-
-
## Подстановочные шаблоны в пути {#wildcards-in-path}
Аргумент `path` может задавать несколько файлов, используя подстановочные шаблоны в стиле bash. Для обработки файл должен существовать и полностью совпадать с шаблоном пути. Список файлов определяется во время выполнения `SELECT` (а не в момент `CREATE`).
@@ -333,15 +319,12 @@ CREATE TABLE table_with_asterisk (name String, value UInt32)
ENGINE = S3('https://clickhouse-public-datasets.s3.amazonaws.com/my-bucket/{some,another}_folder/*', 'CSV');
```
-
## Настройки хранилища {#storage-settings}
- [s3_truncate_on_insert](/operations/settings/settings.md#s3_truncate_on_insert) - позволяет обрезать файл перед вставкой данных в него. По умолчанию отключено.
- [s3_create_new_file_on_insert](/operations/settings/settings.md#s3_create_new_file_on_insert) - позволяет создавать новый файл при каждой вставке, если формат имеет суффикс. По умолчанию отключено.
- [s3_skip_empty_files](/operations/settings/settings.md#s3_skip_empty_files) - позволяет пропускать пустые файлы при чтении. По умолчанию включено.
-
-
## Настройки, связанные с S3 {#settings}
Следующие настройки могут быть заданы перед выполнением запроса или помещены в файл конфигурации.
@@ -360,8 +343,6 @@ CREATE TABLE table_with_asterisk (name String, value UInt32)
Соображения безопасности: если злоумышленник может указывать произвольные URL-адреса S3, параметр `s3_max_redirects` должен быть установлен в ноль, чтобы избежать атак [SSRF](https://en.wikipedia.org/wiki/Server-side_request_forgery), либо в конфигурации сервера должен быть задан `remote_host_filter`.
-
-
## Параметры для отдельных endpoint {#endpoint-settings}
Следующие параметры могут быть указаны в конфигурационном файле для заданного endpoint (который будет сопоставляться по точному префиксу URL):
@@ -405,7 +386,6 @@ CREATE TABLE table_with_asterisk (name String, value UInt32)
```
-
## Работа с архивами {#working-with-archives}
Предположим, что у нас есть несколько файлов-архивов со следующими URI в S3:
@@ -431,7 +411,6 @@ TAR
Архивы ZIP и TAR могут считываться из любого поддерживаемого хранилища, тогда как архивы 7Z читаются только из локальной файловой системы, на которой установлен ClickHouse.
:::
-
## Доступ к общедоступным бакетам {#accessing-public-buckets}
ClickHouse пытается получить учетные данные из множества различных источников.
@@ -443,13 +422,10 @@ CREATE TABLE big_table (name String, value UInt32)
ENGINE = S3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/aapl_stock.csv', NOSIGN, 'CSVWithNames');
```
-
## Оптимизация производительности {#optimizing-performance}
Подробнее об оптимизации производительности функции s3 см. в [нашем подробном руководстве](/integrations/s3/performance).
-
-
## См. также {#see-also}
- [табличная функция S3](../../../sql-reference/table-functions/s3.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/time-series.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/time-series.md
index b22478cfa9d..75dd61a2aeb 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/time-series.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/time-series.md
@@ -10,7 +10,6 @@ doc_type: 'reference'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Табличный движок TimeSeries {#timeseries-table-engine}
@@ -31,7 +30,6 @@ metric_name2[...] = ...
Выполните команду `set allow_experimental_time_series_table = 1`.
:::
-
## Синтаксис {#syntax}
```sql
@@ -42,7 +40,6 @@ CREATE TABLE name [(columns)] ENGINE=TimeSeries
[METRICS db.metrics_table_name | METRICS ENGINE metrics_table_engine(arguments)]
```
-
## Использование {#usage}
Проще всего начать, оставив все настройки по умолчанию (можно создать таблицу `TimeSeries` без явного указания списка столбцов):
@@ -56,7 +53,6 @@ CREATE TABLE my_table ENGINE=TimeSeries
* [prometheus remote-write](../../../interfaces/prometheus.md#remote-write)
* [prometheus remote-read](../../../interfaces/prometheus.md#remote-read)
-
## Целевые таблицы {#target-tables}
Таблица `TimeSeries` не имеет собственных данных, всё хранится в её целевых таблицах.
@@ -103,8 +99,6 @@ CREATE TABLE my_table ENGINE=TimeSeries
Таблица _metrics_ должна иметь столбцы:
-
-
| Имя | Обязательный? | Тип по умолчанию | Возможные типы | Описание |
|---|---|---|---|---|
| `metric_family_name` | [x] | `String` | `String` или `LowCardinality(String)` | Имя семейства метрик |
@@ -115,8 +109,6 @@ CREATE TABLE my_table ENGINE=TimeSeries
Любая строка, вставленная в таблицу `TimeSeries`, фактически будет сохранена в этих трёх целевых таблицах.
Таблица `TimeSeries` содержит все столбцы из таблиц [data](#data-table), [tags](#tags-table), [metrics](#metrics-table).
-
-
## Создание {#creation}
Существует несколько способов создать таблицу с движком `TimeSeries`.
@@ -201,7 +193,6 @@ ENGINE = ReplacingMergeTree
ORDER BY metric_family_name
```
-
## Настройка типов столбцов {#adjusting-column-types}
Вы можете изменить тип почти любого столбца во внутренних целевых таблицах, явно указав его
@@ -227,7 +218,6 @@ ENGINE = MergeTree
ORDER BY (id, timestamp)
```
-
## Столбец `id` {#id-column}
Столбец `id` содержит идентификаторы; каждый идентификатор вычисляется для комбинации имени метрики и тегов.
@@ -242,7 +232,6 @@ CREATE TABLE my_table
ENGINE=TimeSeries
```
-
## Столбцы `tags` и `all_tags` {#tags-and-all-tags}
Есть два столбца, содержащих отображения тегов, — `tags` и `all_tags`. В этом примере они по сути эквивалентны, однако могут отличаться,
@@ -277,7 +266,6 @@ ENGINE=TimeSeries
SETTINGS tags_to_columns = {'instance': 'instance', 'job': 'job'}
```
-
## Движки внутренних целевых таблиц {#inner-table-engines}
По умолчанию внутренние целевые таблицы используют следующие движки таблиц:
@@ -297,7 +285,6 @@ TAGS ENGINE=ReplicatedAggregatingMergeTree
METRICS ENGINE=ReplicatedReplacingMergeTree
```
-
## Внешние таблицы назначения {#external-target-tables}
Можно настроить таблицу `TimeSeries` на использование созданной вручную таблицы:
@@ -319,7 +306,6 @@ CREATE TABLE metrics_for_my_table ...
CREATE TABLE my_table ENGINE=TimeSeries DATA data_for_my_table TAGS tags_for_my_table METRICS metrics_for_my_table;
```
-
## Настройки {#settings}
Ниже приведён список настроек, которые можно задать при определении таблицы `TimeSeries`:
@@ -332,8 +318,6 @@ CREATE TABLE my_table ENGINE=TimeSeries DATA data_for_my_table TAGS tags_for_my_
| `aggregate_min_time_and_max_time` | Bool | true | При создании внутренней целевой таблицы `tags` этот флаг включает использование `SimpleAggregateFunction(min, Nullable(DateTime64(3)))` вместо просто `Nullable(DateTime64(3))` как типа столбца `min_time`, и аналогично для столбца `max_time` |
| `filter_by_min_time_and_max_time` | Bool | true | Если установлено значение `true`, таблица будет использовать столбцы `min_time` и `max_time` для фильтрации временных рядов |
-
-
# Функции {#functions}
Ниже приведен список функций, которые принимают таблицу `TimeSeries` в качестве аргумента:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/ytsaurus.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/ytsaurus.md
index a85b241d9d2..7bae2619317 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/ytsaurus.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/ytsaurus.md
@@ -11,7 +11,6 @@ doc_type: 'reference'
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
-
# Движок таблицы YTsaurus {#ytsaurus-table-engine}
@@ -19,8 +18,6 @@ import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
Движок таблицы YTsaurus позволяет импортировать данные из кластера YTsaurus.
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -47,7 +44,6 @@ import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
* `cypress_path` — Cypress-путь к источнику данных.
* `oauth_token` — OAuth-токен.
-
## Пример использования {#usage-example}
Пример запроса для создания таблицы YTsaurus:
@@ -77,7 +73,6 @@ SELECT * FROM yt_saurus;
└────┴────┘
```
-
## Типы данных {#data-types}
### Примитивные типы данных {#primitive-data-types}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/index.md
index bb5c6bd3f37..f92aa1e2949 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/index.md
@@ -9,7 +9,6 @@ doc_type: 'guide'
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Семейство движков таблиц Log {#log-table-engine-family}
@@ -30,8 +29,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
Несмотря на название, *движки таблиц Log не предназначены для хранения логов. Их следует использовать только для небольших объёмов данных, которые нужно быстро записывать.
:::
-
-
## Общие свойства {#common-properties}
Движки:
@@ -54,8 +51,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
Вы можете получить таблицу с повреждёнными данными, если что-то прервёт операцию записи, например, аварийное выключение сервера.
-
-
## Отличия {#differences}
Движок `TinyLog` является самым простым в семействе и предоставляет минимальный набор функций и наименьшую производительность. Движок `TinyLog` не поддерживает параллельное чтение данных несколькими потоками в рамках одного запроса. Он читает данные медленнее, чем другие движки из семейства, которые поддерживают параллельное чтение в рамках одного запроса, и использует почти столько же файловых дескрипторов, сколько движок `Log`, поскольку хранит каждый столбец в отдельном файле. Используйте его только в простых сценариях.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/log.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/log.md
index b3633198efb..40b748d1555 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/log.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/log.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Движок таблицы Log {#log-table-engine}
@@ -20,8 +19,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
Для параллельного доступа к данным операции чтения могут выполняться одновременно, при этом операции записи блокируют чтение и друг друга.
Движок `Log` не поддерживает индексы. Аналогично, если запись в таблицу завершилась ошибкой, таблица считается повреждённой, и чтение из неё приводит к ошибке. Движок `Log` подходит для временных данных, таблиц с однократной записью, а также для тестирования или демонстрационных целей.
-
-
## Создание таблицы {#table_engines-log-creating-a-table}
```sql
@@ -35,7 +32,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
См. подробное описание запроса [CREATE TABLE](/sql-reference/statements/create/table).
-
## Запись данных {#table_engines-log-writing-the-data}
Движок `Log` эффективно хранит данные, записывая каждый столбец в отдельный файл. Для каждой таблицы движок `Log` записывает следующие файлы в указанный путь хранения:
@@ -51,14 +47,10 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
2. Для каждого столбца сжатые данные дописываются в соответствующий файл `.bin`.
3. В файл `__marks.mrk` добавляются соответствующие записи, фиксирующие смещение и количество строк вновь вставленных данных.
-
-
## Чтение данных {#table_engines-log-reading-the-data}
Файл меток позволяет ClickHouse выполнять параллельное чтение данных. Это означает, что запрос `SELECT` может возвращать строки в непредсказуемом порядке. Используйте конструкцию `ORDER BY`, чтобы отсортировать строки.
-
-
## Пример использования {#table_engines-log-example-of-use}
Создание таблицы:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/stripelog.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/stripelog.md
index 6283cc281e9..95cc7a64bcc 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/stripelog.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/stripelog.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Движок таблицы StripeLog {#stripelog-table-engine}
@@ -18,8 +17,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
Используйте этот движок в сценариях, когда необходимо создавать большое количество таблиц с небольшим объёмом данных (менее 1 миллиона строк). Например, такую таблицу можно использовать для хранения входящих пакетов данных для последующей трансформации, когда требуется их атомарная обработка. До 100 тыс. экземпляров таблиц этого типа являются нормальной конфигурацией для одного сервера ClickHouse. Этот табличный движок следует предпочесть движку [Log](./log.md), когда требуется большое количество таблиц, однако это происходит за счёт эффективности чтения.
-
-
## Создание таблицы {#table_engines-stripelog-creating-a-table}
```sql
@@ -33,7 +30,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
См. подробное описание запроса [CREATE TABLE](/sql-reference/statements/create/table).
-
## Запись данных {#table_engines-stripelog-writing-the-data}
Движок `StripeLog` хранит все столбцы в одном файле. Для каждого запроса `INSERT` ClickHouse добавляет блок данных в конец файла таблицы, записывая столбцы по отдельности.
@@ -45,14 +41,10 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
Движок `StripeLog` не поддерживает операции `ALTER UPDATE` и `ALTER DELETE`.
-
-
## Чтение данных {#table_engines-stripelog-reading-the-data}
Файл с метками позволяет ClickHouse параллелизировать чтение данных. Это означает, что запрос `SELECT` возвращает строки в непредсказуемом порядке. Используйте оператор `ORDER BY` для сортировки строк.
-
-
## Пример использования {#table_engines-stripelog-example-of-use}
Создание таблицы:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/tinylog.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/tinylog.md
index 6bdba72acda..5e35cc6896e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/tinylog.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/log-family/tinylog.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Движок таблиц TinyLog {#tinylog-table-engine}
@@ -20,8 +19,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
Запросы выполняются в одном потоке. Другими словами, этот движок предназначен для относительно небольших таблиц (примерно до 1 000 000 строк). Имеет смысл использовать этот табличный движок, если у вас много маленьких таблиц, поскольку он проще, чем движок [Log](../../../engines/table-engines/log-family/log.md) (нужно открыть меньше файлов).
-
-
## Характеристики {#characteristics}
- **Более простая структура**: В отличие от движка `Log`, `TinyLog` не использует mark-файлы. Это снижает сложность, но также ограничивает возможности оптимизации производительности для больших наборов данных.
@@ -30,8 +27,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
В отличие от движка `Log`, `TinyLog` не использует mark-файлы. Это снижает сложность, но также ограничивает возможности оптимизации производительности для более крупных наборов данных.
-
-
## Создание таблицы {#table_engines-tinylog-creating-a-table}
```sql
@@ -45,7 +40,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
Подробное описание запроса см. в разделе [CREATE TABLE](/sql-reference/statements/create/table).
-
## Запись данных {#table_engines-tinylog-writing-the-data}
Движок `TinyLog` хранит все столбцы в одном файле. Для каждого запроса `INSERT` ClickHouse добавляет блок данных в конец файла таблицы, записывая столбцы один за другим.
@@ -56,8 +50,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
Движок `TinyLog` не поддерживает операции `ALTER UPDATE` и `ALTER DELETE`.
-
-
## Пример использования {#table_engines-tinylog-example-of-use}
Создание таблицы:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/aggregatingmergetree.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/aggregatingmergetree.md
index 08e9ca4ecb4..a12959c72fb 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/aggregatingmergetree.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/aggregatingmergetree.md
@@ -7,8 +7,6 @@ title: 'Движок таблицы AggregatingMergeTree'
doc_type: 'reference'
---
-
-
# Движок таблиц AggregatingMergeTree {#aggregatingmergetree-table-engine}
Движок наследуется от [MergeTree](/engines/table-engines/mergetree-family/versionedcollapsingmergetree) и изменяет логику слияния частей данных. ClickHouse заменяет все строки с одинаковым первичным ключом (или, точнее, с одинаковым [ключом сортировки](../../../engines/table-engines/mergetree-family/mergetree.md)) одной строкой (в пределах одной части данных), которая хранит комбинацию состояний агрегатных функций.
@@ -27,8 +25,6 @@ doc_type: 'reference'
Имеет смысл использовать `AggregatingMergeTree`, если он уменьшает число строк на несколько порядков.
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -70,7 +66,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
Все параметры имеют то же значение, что и в `MergeTree`.
-
## SELECT и INSERT {#select-and-insert}
Для вставки данных используйте запрос [INSERT SELECT](../../../sql-reference/statements/insert-into.md) с агрегирующими функциями с суффиксом `-State`.
@@ -78,8 +73,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
В результатах запроса `SELECT` значения типа `AggregateFunction` имеют двоичное представление, зависящее от реализации, для всех форматов вывода ClickHouse. Например, если вы выгружаете данные в формате `TabSeparated` с помощью запроса `SELECT`, то этот дамп можно загрузить обратно с помощью запроса `INSERT`.
-
-
## Пример агрегированного материализованного представления {#example-of-an-aggregated-materialized-view}
В этом примере предполагается, что у вас есть база данных под названием `test`. Создайте её, если она ещё не существует, с помощью приведённой ниже команды:
@@ -186,15 +179,12 @@ AS SELECT
FROM test.visits;
```
-
:::note
При использовании `initializeAggregation` агрегатное состояние создаётся для каждой отдельной строки без группировки.
Каждая исходная строка даёт одну строку в материализованном представлении, а фактическая агрегация происходит позже, когда
`AggregatingMergeTree` объединяет части. Это верно только в том случае, если `optimize_on_insert = 0`.
:::
-
-
## Связанные материалы {#related-content}
- Блог: [Использование комбинаторов агрегатных функций в ClickHouse](https://clickhouse.com/blog/aggregate-functions-combinators-in-clickhouse-for-arrays-maps-and-states)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md
index 0c49b86fed3..e3f02080ce5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/annindexes.md
@@ -9,7 +9,6 @@ doc_type: 'guide'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
-
# Точный и приближённый векторный поиск {#exact-and-approximate-vector-search}
Задача нахождения N ближайших точек в многомерном (векторном) пространстве для заданной точки известна как [поиск ближайших соседей](https://en.wikipedia.org/wiki/Nearest_neighbor_search) или, кратко, векторный поиск.
@@ -35,7 +34,6 @@ LIMIT
Для этого может быть использована любая из доступных [функций расстояния](/sql-reference/functions/distance-functions).
`<N>` задаёт, сколько соседей нужно вернуть.
-
## Точный поиск по векторам {#exact-nearest-neighbor-search}
Точный поиск по векторам можно выполнить с использованием приведённого выше запроса SELECT без изменений.
@@ -66,7 +64,6 @@ LIMIT 3;
└────┴─────────┘
```
-
## Приблизительный векторный поиск {#approximate-nearest-neighbor-search}
### Индексы сходства векторов {#vector-similarity-index}
@@ -146,7 +143,6 @@ ORDER BY [...]
Значения по умолчанию всех параметров, специфичных для HNSW, достаточно хорошо подходят для большинства сценариев использования.
Поэтому мы не рекомендуем изменять эти параметры.
-
Дополнительно действуют следующие ограничения:
* Индексы векторного сходства могут быть построены только по столбцам типов [Array(Float32)](../../../sql-reference/data-types/array.md), [Array(Float64)](../../../sql-reference/data-types/array.md) или [Array(BFloat16)](../../../sql-reference/data-types/array.md). Массивы допускающих `NULL` и чисел с плавающей запятой с низкой кардинальностью, такие как `Array(Nullable(Float32))` и `Array(LowCardinality(Float32))`, не поддерживаются.
@@ -220,7 +216,6 @@ LIMIT
Значение настройки по умолчанию, равное 256, хорошо работает в большинстве сценариев использования.
Более высокие значения настройки обеспечивают лучшую точность ценой более низкой производительности.
-
Если запрос может использовать индекс векторного сходства, ClickHouse проверяет, что значение LIMIT ``, указанное в запросах SELECT, находится в разумных пределах.
Более точно, будет возвращена ошибка, если `` больше значения настройки [max_limit_for_vector_search_queries](../../../operations/settings/settings.md#max_limit_for_vector_search_queries), по умолчанию равного 100.
Слишком большие значения LIMIT могут замедлять поиск и обычно указывают на ошибку в использовании.
@@ -308,7 +303,6 @@ ClickHouse отбросит все партиции, кроме партиции
Если дополнительные условия фильтрации не могут быть выполнены по индексам (индекс по первичному ключу, пропускающий индекс), ClickHouse применит последующую фильтрацию.
-
*Дополнительные фильтры могут оцениваться с использованием индекса первичного ключа*
Если дополнительные условия фильтрации могут быть оценены с использованием [первичного ключа](mergetree.md#primary-key) (т. е. они образуют префикс первичного ключа) и
@@ -370,7 +364,6 @@ ClickHouse затем загрузит эти гранулы с диска и п
В общих чертах она работает так: ClickHouse делает доступными наиболее похожие векторы и их расстояния в виде виртуального столбца `_distances`.
Чтобы увидеть это, выполните запрос векторного поиска с `EXPLAIN header = 1`:
-
```sql
EXPLAIN header = 1
WITH [0., 2.] AS reference_vec
@@ -443,7 +436,6 @@ SELECT-запросы к таким частям будут выполнять
**Настройка использования индексов**
-
Запросы SELECT должны загружать индексы векторного сходства в оперативную память, чтобы использовать их.
Чтобы один и тот же индекс векторного сходства не загружался в оперативную память многократно, ClickHouse предоставляет специализированный кэш в оперативной памяти для таких индексов.
Чем больше этот кэш, тем меньше будет лишних загрузок.
@@ -515,7 +507,6 @@ result = chclient.query(
parameters = params)
```
-
Векторы встраивания (`search_v` в приведённом выше фрагменте) могут иметь очень большую размерность.
Например, OpenAI предоставляет модели, которые генерируют векторы встраивания с размерностью 1536 или даже 3072.
В приведённом выше коде драйвер ClickHouse для Python подставляет вектор встраивания, преобразуя его в человекочитаемую строку, и затем целиком отправляет запрос SELECT в виде строки.
@@ -573,7 +564,6 @@ WHERE type = 'vector_similarity';
Однако, поскольку ClickHouse загружает данные с диска в память на уровне гранул, подиндексы расширяют найденные строки до границ гранул.
Это отличается от обычных пропускающих индексов, которые пропускают данные на уровне индексных блоков.
-
Параметр `GRANULARITY` определяет, сколько подиндексов векторного сходства создаётся.
Большие значения `GRANULARITY` означают меньшее количество, но более крупные подиндексы векторного сходства, вплоть до ситуации, когда столбец (или часть данных столбца) имеет только один подиндекс.
В этом случае подиндекс имеет «глобальное» представление обо всех строках столбца и может напрямую вернуть все гранулы столбца (части) с релевантными строками (таких гранул не более `LIMIT [N]`).
@@ -630,7 +620,6 @@ ClickHouse предлагает тип данных Quantized Bit (`QBit`), ко
1. Хранения исходных данных с полной точностью.
2. Возможности указания точности квантизации на этапе выполнения запроса.
-
Это достигается за счёт хранения данных в формате с побитовой группировкой (то есть все i-е биты всех векторов хранятся вместе), что позволяет выполнять чтение только с запрошенным уровнем точности. Вы получаете выигрыш в скорости за счёт сокращения объёма операций ввода-вывода и вычислений благодаря квантизации, при этом все исходные данные остаются доступными при необходимости. При выборе максимальной точности поиск становится точным.
:::note
@@ -715,7 +704,6 @@ ORDER BY distance;
└────────┴────────────────────┘
```
-
Обратите внимание, что с 12-битной квантизацией мы получаем хорошее приближение расстояний при более быстром выполнении запросов. Относительный порядок в целом сохраняется: 'apple' по‑прежнему является ближайшим совпадением.
:::note
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/collapsingmergetree.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/collapsingmergetree.md
index 9604373a546..ab7a79acd74 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/collapsingmergetree.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/collapsingmergetree.md
@@ -8,12 +8,8 @@ title: 'Движок таблицы CollapsingMergeTree'
doc_type: 'guide'
---
-
-
# Движок таблицы CollapsingMergeTree {#collapsingmergetree-table-engine}
-
-
## Описание {#description}
Движок `CollapsingMergeTree` наследуется от [MergeTree](../../../engines/table-engines/mergetree-family/mergetree.md)
@@ -30,8 +26,6 @@ doc_type: 'guide'
что, как следствие, повышает эффективность запросов `SELECT`.
:::
-
-
## Параметры {#parameters}
Все параметры этого табличного движка, за исключением параметра `Sign`,
@@ -39,8 +33,6 @@ doc_type: 'guide'
- `Sign` — Имя столбца, указывающего тип строки: `1` — строка «состояния», `-1` — строка «отмены». Тип: [Int8](/sql-reference/data-types/int-uint).
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -81,7 +73,6 @@ ENGINE = CollapsingMergeTree(Sign)
* Описание параметров запроса см. в разделе [описание запроса](../../../sql-reference/statements/create/table.md).
* При создании таблицы `CollapsingMergeTree` используются те же [части запроса](../../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-creating-a-table), что и при создании таблицы `MergeTree`.
-
## Схлопывание {#table_engine-collapsingmergetree-collapsing}
### Данные {#data}
@@ -149,7 +140,6 @@ ENGINE = CollapsingMergeTree(Sign)
строки "state" с `Sign` = `1` и строки "cancel" с `Sign` = `-1`.
Другими словами, в ClickHouse записи сворачиваются.
-
Для каждой результирующей части данных ClickHouse сохраняет:
| | |
@@ -188,8 +178,6 @@ ClickHouse обрабатывает запросы `SELECT` в нескольк
Для `CollapsingMergeTree` возвращается только последняя строка состояния для каждого ключа.
:::
-
-
## Примеры {#examples}
### Пример использования {#example-of-use}
@@ -300,7 +288,6 @@ SELECT * FROM UAct FINAL
В этом примере мы воспользуемся приведенными ниже демонстрационными данными:
-
```text
┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
│ 4324182021466249494 │ 5 │ 146 │ 1 │
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/invertedindexes.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/invertedindexes.md
index 5516126eae6..cd9192bfbe7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/invertedindexes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/invertedindexes.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import PrivatePreviewBadge from '@theme/badges/PrivatePreviewBadge';
-
# Полнотекстовый поиск с использованием текстовых индексов {#full-text-search-using-text-indexes}
@@ -20,8 +19,6 @@ import PrivatePreviewBadge from '@theme/badges/PrivatePreviewBadge';
Например, ClickHouse по умолчанию токенизирует английское предложение "All cat like mice." как ["All", "cat", "like", "mice"] (обратите внимание, что завершающая точка игнорируется).
Доступны более продвинутые токенизаторы, например для данных журналов (логов).
-
-
## Создание текстового индекса {#creating-a-text-index}
Чтобы создать текстовый индекс, сначала включите соответствующий экспериментальный параметр:
@@ -83,7 +80,6 @@ ORDER BY key
Если строки-разделители образуют [префиксный код](https://en.wikipedia.org/wiki/Prefix_code), их можно передавать в произвольном порядке.
:::
-
:::warning
В настоящее время не рекомендуется создавать текстовые индексы для текста на незападных языках, например китайском.
Поддерживаемые в данный момент токенизаторы могут привести к чрезмерно большим размерам индексов и длительному времени выполнения запросов.
@@ -173,7 +169,6 @@ SELECT count() FROM tab WHERE hasToken(str, lower('Foo'));
Необязательный параметр `max_cardinality_for_embedded_postings` (по умолчанию: 16) задаёт порог кардинальности, ниже которого списки постингов должны быть встроены в блоки словаря.
-
Необязательный параметр `bloom_filter_false_positive_rate` (по умолчанию: 0.1) задаёт вероятность ложноположительных срабатываний фильтра Блума словаря.
@@ -185,7 +180,6 @@ ALTER TABLE tab DROP INDEX text_idx;
ALTER TABLE tab ADD INDEX text_idx(s) TYPE text(tokenizer = splitByNonAlpha);
```
-
## Использование текстового индекса {#using-a-text-index}
Использовать текстовый индекс в запросах SELECT просто, так как стандартные функции строкового поиска автоматически используют индекс.
@@ -291,7 +285,6 @@ SELECT count() FROM tab WHERE hasToken(comment, 'clickhouse');
#### `hasAnyTokens` и `hasAllTokens` {#functions-example-hasanytokens-hasalltokens}
-
Функции [hasAnyTokens](/sql-reference/functions/string-search-functions.md/#hasAnyTokens) и [hasAllTokens](/sql-reference/functions/string-search-functions.md/#hasAllTokens) сопоставляют строку соответственно с одним или со всеми указанными токенами.
Обе функции принимают поисковые токены либо в виде строки, которая будет разбита на токены с использованием того же токенизатора, что и для столбца, по которому построен индекс, либо в виде массива уже подготовленных токенов, к которым перед поиском токенизация применяться не будет.
@@ -411,7 +404,6 @@ SELECT count() FROM logs WHERE has(mapValues(attributes), '192.168.1.1'); -- м
Решение — создать текстовый индекс для ключей и значений типа [Map](/sql-reference/data-types/map.md).
Используйте [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapkeys) для создания текстового индекса, когда нужно находить логи по именам полей или типам атрибутов:
-
```sql
ALTER TABLE logs ADD INDEX attributes_keys_idx mapKeys(attributes) TYPE text(tokenizer = array);
ALTER TABLE posts MATERIALIZE INDEX attributes_keys_idx;
@@ -434,7 +426,6 @@ SELECT * FROM logs WHERE mapContainsKey(attributes, 'rate_limit'); -- быстр
SELECT * FROM logs WHERE has(mapValues(attributes), '192.168.1.1'); -- быстро
```
-
## Оптимизация производительности {#performance-tuning}
### Прямое чтение {#direct-read}
@@ -526,7 +517,6 @@ Expression (перед GROUP BY)
#### Настройки кэша блоков словаря {#caching-dictionary}
-
| Параметр | Описание |
|----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
| [text_index_dictionary_block_cache_policy](/operations/server-configuration-parameters/settings#text_index_dictionary_block_cache_policy) | Название политики кэша блоков словаря текстового индекса. |
@@ -552,8 +542,6 @@ Expression (перед GROUP BY)
| [text_index_postings_cache_max_entries](/operations/server-configuration-parameters/settings#text_index_postings_cache_max_entries) | Максимальное количество десериализованных списков вхождений в кэше. |
| [text_index_postings_cache_size_ratio](/operations/server-configuration-parameters/settings#text_index_postings_cache_size_ratio) | Размер защищённой очереди в кэше списков вхождений текстового индекса относительно общего размера кэша. |
-
-
## Детали реализации {#implementation}
Каждый текстовый индекс состоит из двух (абстрактных) структур данных:
@@ -581,8 +569,6 @@ Expression (перед GROUP BY)
Чтобы экономить место и при этом обеспечивать быстрые операции пересечения и объединения, списки вхождений хранятся в виде [roaring bitmaps](https://roaringbitmap.org/).
Если кардинальность списка вхождений меньше 16 (настраивается параметром `max_cardinality_for_embedded_postings`), он встраивается в словарь.
-
-
## Пример: датасет Hacker News {#hacker-news-dataset}
Рассмотрим, как текстовые индексы улучшают производительность на большом текстовом наборе данных.
@@ -723,7 +709,6 @@ SETTINGS query_plan_direct_read_from_text_index = 1, use_skip_indexes_on_data_re
└─────────┘
```
-
1 строка в наборе. Прошло: 0.015 сек. Обработано 27.99 млн строк, 27.99 МБ
````
@@ -808,7 +793,6 @@ SETTINGS query_plan_direct_read_from_text_index = 1, use_skip_indexes_on_data_re
Благодаря объединению результатов из индекса прямой запрос на чтение выполняется в 34 раза быстрее (0,450 s против 0,013 s) и позволяет избежать чтения 9,58 GB данных столбцов.
В этом конкретном случае предпочтительнее использовать более эффективный синтаксис `hasAnyTokens(comment, ['ClickHouse', 'clickhouse'])`.
-
## Связанные материалы {#related-content}
- Статья в блоге: [Introducing Inverted Indices in ClickHouse](https://clickhouse.com/blog/clickhouse-search-with-inverted-indices)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/replacingmergetree.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/replacingmergetree.md
index e920e05b138..46ba91c42c4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/replacingmergetree.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/replacingmergetree.md
@@ -8,8 +8,6 @@ title: 'Движок таблицы ReplacingMergeTree'
doc_type: 'reference'
---
-
-
# Движок таблиц ReplacingMergeTree {#replacingmergetree-table-engine}
Этот движок отличается от [MergeTree](/engines/table-engines/mergetree-family/versionedcollapsingmergetree) тем, что удаляет дублирующиеся записи с одинаковым значением [ключа сортировки](../../../engines/table-engines/mergetree-family/mergetree.md) (раздел `ORDER BY` в определении таблицы, а не `PRIMARY KEY`).
@@ -22,8 +20,6 @@ doc_type: 'reference'
Подробное руководство по ReplacingMergeTree, включая лучшие практики и способы оптимизации производительности, доступно [здесь](/guides/replacing-merge-tree).
:::
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -46,7 +42,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
Уникальность строк определяется разделом таблицы `ORDER BY`, а не `PRIMARY KEY`.
:::
-
## Параметры ReplacingMergeTree {#replacingmergetree-parameters}
### `ver` {#ver}
@@ -141,7 +136,6 @@ INSERT INTO myThirdReplacingMT Values (1, 'first', '2020-01-01 01:01:01', 0);
INSERT INTO myThirdReplacingMT Values (1, 'first', '2020-01-01 01:01:01', 1);
```
-
select * from myThirdReplacingMT final;
0 строк в наборе. Прошло: 0.003 сек.
@@ -160,7 +154,6 @@ select * from myThirdReplacingMT final;
```
```
-
## Части запроса {#query-clauses}
При создании таблицы `ReplacingMergeTree` необходимо указывать те же [части запроса](../../../engines/table-engines/mergetree-family/mergetree.md), что и при создании таблицы `MergeTree`.
@@ -188,8 +181,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
-
-
## Дедупликация при выполнении запроса & FINAL {#query-time-de-duplication--final}
Во время слияния ReplacingMergeTree определяет дублирующиеся строки, используя значения столбцов `ORDER BY` (указанных при создании таблицы) в качестве уникального идентификатора и сохраняя только самую позднюю версию. Однако это обеспечивает лишь корректность «в конечном счёте» — нет гарантии, что строки будут дедуплицированы, и полагаться на это не следует. Поэтому запросы могут возвращать некорректные результаты, так как строки с обновлениями и удалениями учитываются в запросах.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/replication.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/replication.md
index a469af6ea44..342a248adb8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/replication.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/replication.md
@@ -117,7 +117,6 @@ CREATE TABLE table_name ( ... ) ENGINE = ReplicatedMergeTree('zookeeper_name_con
Если ZooKeeper не указан в конфигурационном файле, вы не сможете создавать реплицируемые таблицы, а любые существующие реплицируемые таблицы будут доступны только для чтения.
-
ZooKeeper не используется в запросах `SELECT`, потому что репликация не влияет на производительность `SELECT`, и запросы выполняются так же быстро, как и для нереплицируемых таблиц. При выполнении запросов к распределённым реплицируемым таблицам поведение ClickHouse управляется настройками [max_replica_delay_for_distributed_queries](/operations/settings/settings.md/#max_replica_delay_for_distributed_queries) и [fallback_to_stale_replicas_for_distributed_queries](/operations/settings/settings.md/#fallback_to_stale_replicas_for_distributed_queries).
Для каждого запроса `INSERT` в ZooKeeper добавляется примерно десять записей через несколько транзакций. (Более точно: для каждого вставленного блока данных; один запрос `INSERT` содержит один блок или один блок на `max_insert_block_size = 1048576` строк.) Это приводит к немного большему времени ожидания для `INSERT` по сравнению с нереплицируемыми таблицами. Но если вы следуете рекомендациям и вставляете данные пакетами не чаще одного `INSERT` в секунду, это не создаёт никаких проблем. Весь кластер ClickHouse, используемый для координации одного кластера ZooKeeper, в сумме обрабатывает несколько сотен запросов `INSERT` в секунду. Пропускная способность по вставке данных (количество строк в секунду) столь же высока, как и для нереплицируемых данных.
@@ -249,7 +248,6 @@ ORDER BY x;
Чтобы удалить реплику, выполните `DROP TABLE`. Однако удаляется только одна реплика — та, которая находится на сервере, где вы выполняете запрос.
-
## Восстановление после сбоев {#recovery-after-failures}
Если ClickHouse Keeper недоступен при запуске сервера, реплицируемые таблицы переключаются в режим только для чтения. Система периодически пытается подключиться к ClickHouse Keeper.
@@ -274,7 +272,6 @@ sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data
Затем перезапустите сервер. При запуске сервер удаляет эти флаги и начинает восстановление.
-
## Восстановление после полной потери данных {#recovery-after-complete-data-loss}
Если все данные и метаданные исчезли с одного из серверов, выполните следующие шаги для восстановления:
@@ -322,7 +319,6 @@ SELECT zookeeper_path FROM system.replicas WHERE table = 'table_name';
Переместите данные из старой таблицы в подкаталог `detached` внутри каталога с данными новой таблицы (`/var/lib/clickhouse/data/db_name/table_name/`).
Затем выполните `ALTER TABLE ATTACH PARTITION` на одной из реплик, чтобы добавить эти части в рабочий набор.
-
## Преобразование из ReplicatedMergeTree в MergeTree {#converting-from-replicatedmergetree-to-mergetree}
Используйте команду [ATTACH TABLE ... AS NOT REPLICATED](/sql-reference/statements/attach.md#attach-mergetree-table-as-replicatedmergetree), чтобы подключить отсоединённую таблицу `ReplicatedMergeTree` как `MergeTree` на одном сервере.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/summingmergetree.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/summingmergetree.md
index 56e740f3701..5b63f14c748 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/summingmergetree.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/summingmergetree.md
@@ -7,16 +7,12 @@ title: 'Табличный движок SummingMergeTree'
doc_type: 'reference'
---
-
-
# Движок таблиц SummingMergeTree {#summingmergetree-table-engine}
Этот движок наследуется от [MergeTree](/engines/table-engines/mergetree-family/versionedcollapsingmergetree). Разница в том, что при слиянии частей данных для таблиц `SummingMergeTree` ClickHouse заменяет все строки с одинаковым первичным ключом (или, точнее, с одинаковым [ключом сортировки](../../../engines/table-engines/mergetree-family/mergetree.md)) одной строкой, которая содержит суммы значений для столбцов с числовым типом данных. Если ключ сортировки построен таким образом, что одному значению ключа соответствует большое количество строк, это существенно уменьшает объем хранимых данных и ускоряет выборку.
Мы рекомендуем использовать этот движок совместно с `MergeTree`. Храните полные данные в таблице `MergeTree`, а `SummingMergeTree` используйте для хранения агрегированных данных, например при подготовке отчетов. Такой подход поможет избежать потери ценных данных из-за некорректно составленного первичного ключа.
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -68,7 +64,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
* `columns` — кортеж с именами столбцов, значения которых будут суммироваться. Необязательный параметр. Описание см. в тексте выше.
-
## Пример использования {#usage-example}
Рассмотрим следующую таблицу:
@@ -102,7 +97,6 @@ SELECT key, sum(value) FROM summtt GROUP BY key
└─────┴────────────┘
```
-
## Обработка данных {#data-processing}
Когда данные вставляются в таблицу, они сохраняются как есть. ClickHouse периодически сливает вставленные части данных, и именно в этот момент строки с одинаковым первичным ключом суммируются и заменяются одной строкой для каждой получившейся части данных.
@@ -190,13 +184,10 @@ ARRAY JOIN
└──────┴─────────┴─────────────┴────────┘
```
-
При запросе данных используйте функцию [sumMap(key, value)](../../../sql-reference/aggregate-functions/reference/summap.md) для агрегации значений типа `Map`.
Для вложенных структур данных не нужно указывать их столбцы в кортеже столбцов для суммирования.
-
-
## Связанные материалы {#related-content}
- Блог: [Использование агрегатных комбинаторов в ClickHouse](https://clickhouse.com/blog/aggregate-functions-combinators-in-clickhouse-for-arrays-maps-and-states)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md
index d9462a14649..7e32efac197 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md
@@ -8,8 +8,6 @@ title: 'Движок таблицы VersionedCollapsingMergeTree'
doc_type: 'reference'
---
-
-
# Движок таблицы VersionedCollapsingMergeTree {#versionedcollapsingmergetree-table-engine}
Этот движок:
@@ -21,8 +19,6 @@ doc_type: 'reference'
Движок наследуется от [MergeTree](/engines/table-engines/mergetree-family/versionedcollapsingmergetree) и добавляет к алгоритму слияния кусков данных логику схлопывания строк. `VersionedCollapsingMergeTree` служит той же цели, что и [CollapsingMergeTree](../../../engines/table-engines/mergetree-family/collapsingmergetree.md), но использует другой алгоритм схлопывания, который позволяет вставлять данные в произвольном порядке несколькими потоками. В частности, столбец `Version` помогает корректно схлопывать строки, даже если они вставляются в неверном порядке. В отличие от этого, `CollapsingMergeTree` допускает только строго последовательную вставку.
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -82,7 +78,6 @@ VersionedCollapsingMergeTree(sign, version)
Тип данных столбца должен быть `UInt*`.
-
## Коллапсирование {#table_engines_versionedcollapsingmergetree}
### Данные {#data}
@@ -137,7 +132,6 @@ VersionedCollapsingMergeTree(sign, version)
Когда ClickHouse вставляет данные, он упорядочивает строки по первичному ключу. Если столбец `Version` не входит в первичный ключ, ClickHouse неявно добавляет его в первичный ключ как последнее поле и использует для сортировки.
-
## Выборка данных {#selecting-data}
ClickHouse не гарантирует, что все строки с одинаковым первичным ключом окажутся в одной и той же результирующей части данных или даже на одном и том же физическом сервере. Это верно как при записи данных, так и при последующем объединении частей данных. Кроме того, ClickHouse обрабатывает запросы `SELECT` в несколько потоков и не может предсказать порядок строк в результате. Это означает, что агрегирование обязательно, если необходимо получить полностью «схлопнутые» данные из таблицы `VersionedCollapsingMergeTree`.
@@ -148,8 +142,6 @@ ClickHouse не гарантирует, что все строки с одина
Если нужно извлечь данные со «схлопыванием», но без агрегирования (например, чтобы проверить, существуют ли строки, последние значения которых удовлетворяют определённым условиям), можно использовать модификатор `FINAL` в секции `FROM`. Такой подход неэффективен и не должен применяться для больших таблиц.
-
-
## Пример использования {#example-of-use}
Пример данных:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/alias.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/alias.md
index fdd588065d7..1dc213fdac8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/alias.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/alias.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
-
# Движок таблицы Alias {#alias-table-engine}
@@ -41,7 +40,6 @@ ENGINE = Alias(target_db, target_table)
Таблица `Alias` не поддерживает явное определение столбцов. Столбцы автоматически наследуются от целевой таблицы. Это гарантирует, что таблица `Alias` всегда соответствует схеме целевой таблицы.
:::
-
## Параметры движка {#engine-parameters}
- **`target_db (optional)`** — Имя базы данных, содержащей целевую таблицу.
@@ -109,7 +107,6 @@ SELECT * FROM data_alias;
└────┴──────┴───────┘
```
-
### Межбазовый псевдоним {#cross-database-alias}
Создайте псевдоним, ссылающийся на таблицу в другой базе данных:
@@ -138,7 +135,6 @@ INSERT INTO db2.events_alias VALUES (now(), 'click', 100);
SELECT * FROM db2.events_alias2;
```
-
### Операции записи через алиас {#write-operations}
Все операции записи перенаправляются в целевую таблицу:
@@ -169,7 +165,6 @@ SELECT count() FROM metrics; -- Возвращает 7
SELECT count() FROM metrics_alias; -- Возвращает 7
```
-
### Изменение схемы {#schema-modification}
Операции ALTER изменяют схему целевой таблицы:
@@ -198,7 +193,6 @@ DESCRIBE users;
└───────┴────────┴──────────────┴────────────────────┘
```
-
### Мутации данных {#data-mutations}
Поддерживаются операции UPDATE и DELETE:
@@ -236,7 +230,6 @@ SELECT * FROM products ORDER BY id;
└────┴──────────┴───────┴────────┘
```
-
### Операции с партициями {#partition-operations}
Для секционированных таблиц операции с партициями передаются далее:
@@ -268,7 +261,6 @@ ALTER TABLE logs_alias ATTACH PARTITION '202402';
SELECT count() FROM logs_alias; -- Возвращает 3
```
-
### Оптимизация таблицы {#table-optimization}
Оптимизируйте операции по слиянию частей в целевой таблице:
@@ -303,7 +295,6 @@ WHERE database = currentDatabase()
AND active; -- Возвращает 1
```
-
### Управление алиасами {#alias-management}
Алиасы можно переименовывать или удалять независимо:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/distributed.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/distributed.md
index 13e629e2e7b..51abe8e6c1c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/distributed.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/distributed.md
@@ -7,8 +7,6 @@ title: 'Движок таблицы Distributed'
doc_type: 'reference'
---
-
-
# Движок распределённой таблицы {#distributed-table-engine}
:::warning Распределённый движок в Cloud
@@ -19,8 +17,6 @@ doc_type: 'reference'
Таблицы с движком Distributed не хранят собственные данные, но позволяют выполнять распределённую обработку запросов на нескольких серверах.
Чтение автоматически распараллеливается. Во время чтения используются индексы таблиц на удалённых серверах, если они есть.
-
-
## Создание таблицы {#distributed-creating-a-table}
```sql
@@ -58,7 +54,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] AS [db2.]name2
### Настройки движка Distributed {#distributed-settings}
-
| Параметр | Описание | Значение по умолчанию |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| `fsync_after_insert` | Выполнять `fsync` для данных файла после фоновой вставки в Distributed. Гарантирует, что ОС сбросила все вставленные данные в файл **на диске инициирующего узла**. | `false` |
@@ -101,7 +96,6 @@ SETTINGS
Вместо имени базы данных вы можете использовать константное выражение, которое возвращает строку. Например: `currentDatabase()`.
-
## Кластеры {#distributed-clusters}
Кластеры настраиваются в [конфигурационном файле сервера](../../../operations/configuration-files.md):
@@ -166,7 +160,6 @@ SETTINGS
Для каждого сервера указываются параметры `host`, `port`, а также, при необходимости, `user`, `password`, `secure`, `compression`, `bind_host`:
-
| Parameter | Description | Default Value |
|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| `host` | Адрес удалённого сервера. Можно использовать либо домен, либо IPv4- или IPv6-адрес. Если вы указываете домен, сервер выполняет DNS-запрос при запуске и сохраняет результат на всё время своей работы. Если DNS-запрос завершился с ошибкой, сервер не запускается. Если вы изменили DNS-запись, перезапустите сервер. | - |
@@ -189,8 +182,6 @@ SETTINGS
Если при каждом выполнении запроса нужно отправлять его в неизвестный заранее набор шардов и реплик, нет необходимости создавать таблицу `Distributed` — вместо этого используйте табличную функцию `remote`. См. раздел [Table functions](../../../sql-reference/table-functions/index.md).
-
-
## Запись данных {#distributed-writing-data}
Существует два способа записи данных в кластер:
@@ -213,8 +204,6 @@ SETTINGS
О схеме шардинга следует задуматься в следующих случаях:
-
-
- Используются запросы, которые выполняют объединение данных (`IN` или `JOIN`) по определённому ключу. Если данные разбиты на шарды по этому ключу, можно использовать локальные `IN` или `JOIN` вместо `GLOBAL IN` или `GLOBAL JOIN`, что значительно эффективнее.
- Используется большое количество серверов (сотни и более) с большим количеством небольших запросов, например запросов по данным отдельных клиентов (например, веб‑сайтов, рекламодателей или партнёров). Чтобы небольшие запросы не влияли на весь кластер, имеет смысл размещать данные одного клиента на одном шарде. В качестве альтернативы можно настроить двухуровневый шардинг: разделить весь кластер на «слои», где слой может состоять из нескольких шардов. Данные одного клиента располагаются в одном слое, но шарды можно добавлять в слой по мере необходимости, а данные распределяются между ними случайным образом. Для каждого слоя создаются таблицы `Distributed`, а для глобальных запросов создаётся одна общая распределённая таблица.
@@ -222,8 +211,6 @@ SETTINGS
Если сервер был аварийно остановлен или пережил жёсткую перезагрузку (например, из‑за сбоя оборудования) после выполнения `INSERT` в таблицу `Distributed`, вставленные данные могут быть потеряны. Если в каталоге таблицы обнаруживается повреждённая часть данных, она переносится в подкаталог `broken` и больше не используется.
-
-
## Чтение данных {#distributed-reading-data}
При выполнении запроса к таблице `Distributed` запросы `SELECT` отправляются на все шарды и выполняются независимо от того, как распределены данные по шардам (они могут быть распределены полностью случайным образом). При добавлении нового шарда нет необходимости переносить в него старые данные. Вместо этого можно записывать в него новые данные, используя более высокий вес — данные будут распределены немного неравномерно, но запросы по-прежнему будут выполняться корректно и эффективно.
@@ -232,8 +219,6 @@ SETTINGS
Чтобы узнать больше о том, как обрабатываются распределённые запросы `in` и `global in`, см. [документацию](/sql-reference/operators/in#distributed-subqueries).
-
-
## Виртуальные столбцы {#virtual-columns}
#### _shard_num {#_shard_num}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/file.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/file.md
index e2fe7d77234..9939c3e1b81 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/file.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/file.md
@@ -8,8 +8,6 @@ title: 'Табличный движок File'
doc_type: 'reference'
---
-
-
# Движок таблицы File {#file-table-engine}
Движок таблицы File хранит данные в файле в одном из поддерживаемых [форматов файлов](/interfaces/formats#formats-overview) (`TabSeparated`, `Native` и т. д.).
@@ -24,8 +22,6 @@ doc_type: 'reference'
Этот движок в настоящее время недоступен в ClickHouse Cloud, пожалуйста, [используйте вместо него табличную функцию S3](/sql-reference/table-functions/s3.md).
:::
-
-
## Использование на сервере ClickHouse {#usage-in-clickhouse-server}
```sql
@@ -47,7 +43,6 @@ ClickHouse не позволяет указывать путь в файлово
Будьте осторожны с этой функциональностью, так как ClickHouse не отслеживает внешние изменения таких файлов. Результат одновременной записи через ClickHouse и вне ClickHouse неопределён.
:::
-
## Пример {#example}
**1.** Настройте таблицу `file_engine_table`:
@@ -79,7 +74,6 @@ SELECT * FROM file_engine_table
└──────┴───────┘
```
-
## Использование в clickhouse-local {#usage-in-clickhouse-local}
В [clickhouse-local](../../../operations/utilities/clickhouse-local.md) движок File, помимо параметра `Format`, принимает путь к файлу. Потоки ввода/вывода по умолчанию можно указывать с помощью числовых или понятных имён, таких как `0` или `stdin`, `1` или `stdout`. Можно читать и записывать сжатые файлы, исходя из дополнительного параметра движка или расширения файла (`gz`, `br` или `xz`).
@@ -90,7 +84,6 @@ SELECT * FROM file_engine_table
$ echo -e "1,2\n3,4" | clickhouse-local -q "CREATE TABLE table (a Int64, b Int64) ENGINE = File(CSV, stdin); SELECT a, b FROM table; DROP TABLE table"
```
-
## Подробности реализации {#details-of-implementation}
- Несколько запросов `SELECT` могут выполняться одновременно, но запросы `INSERT` выполняются последовательно.
@@ -102,16 +95,12 @@ $ echo -e "1,2\n3,4" | clickhouse-local -q "CREATE TABLE table (a Int64, b Int64
- Индексы
- Репликация
-
-
## PARTITION BY {#partition-by}
`PARTITION BY` — необязательное выражение. Можно создавать отдельные файлы, разбивая данные на партиции по ключу партиционирования (partition key). В большинстве случаев ключ партиционирования не нужен, а если он и требуется, как правило, нет необходимости делать его более детализированным, чем до уровня месяца. Партиционирование не ускоряет выполнение запросов (в отличие от выражения ORDER BY). Никогда не используйте слишком мелкое партиционирование. Не разделяйте данные на партиции по идентификаторам или именам клиентов (вместо этого сделайте идентификатор или имя клиента первым столбцом в выражении ORDER BY).
Для партиционирования по месяцам используйте выражение `toYYYYMM(date_column)`, где `date_column` — это столбец с датой типа данных [Date](/sql-reference/data-types/date.md). Имена партиций в этом случае имеют формат `"YYYYMM"`.
-
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к файлу. Тип: `LowCardinality(String)`.
@@ -119,8 +108,6 @@ $ echo -e "1,2\n3,4" | clickhouse-local -q "CREATE TABLE table (a Int64, b Int64
- `_size` — Размер файла в байтах. Тип: `Nullable(UInt64)`. Если размер неизвестен, значение — `NULL`.
- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
-
-
## Настройки {#settings}
- [engine_file_empty_if_not_exists](/operations/settings/settings#engine_file_empty_if_not_exists) — позволяет выполнять выборку из несуществующего файла, возвращая пустой набор данных. По умолчанию отключена.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/filelog.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/filelog.md
index cc1006fcc4f..a3e642044d8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/filelog.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/filelog.md
@@ -8,8 +8,6 @@ title: 'Движок таблиц FileLog'
doc_type: 'reference'
---
-
-
# Движок таблицы FileLog {#filelog-engine}
Этот движок позволяет обрабатывать файлы журналов приложений как поток записей.
@@ -19,8 +17,6 @@ doc_type: 'reference'
- Подписываться на файлы журналов.
- Обрабатывать новые записи по мере их добавления в подписанные файлы журналов.
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -56,7 +52,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
* `poll_directory_watch_events_backoff_factor` - Коэффициент увеличения паузы (backoff), по умолчанию экспоненциальный. Значение по умолчанию: `2`.
* `handle_error_mode` — Как обрабатывать ошибки в движке FileLog. Возможные значения: default (будет сгенерировано исключение, если не удалось разобрать сообщение), stream (сообщение об исключении и исходное сообщение будут сохранены во виртуальных столбцах `_error` и `_raw_message`).
-
## Описание {#description}
Поступившие записи отслеживаются автоматически, поэтому каждая запись в файле журнала учитывается только один раз.
@@ -101,7 +96,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
Если вы хотите изменить целевую таблицу с помощью команды `ALTER`, мы рекомендуем предварительно отключить материализованное представление, чтобы избежать расхождений между целевой таблицей и данными из представления.
-
## Виртуальные столбцы {#virtual-columns}
- `_filename` — Имя файла журнала. Тип данных: `LowCardinality(String)`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/generate.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/generate.md
index 9d9543fe694..94e0efe3b61 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/generate.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/generate.md
@@ -8,8 +8,6 @@ title: 'Движок таблицы GenerateRandom'
doc_type: 'reference'
---
-
-
# Движок таблицы GenerateRandom {#generaterandom-table-engine}
Движок таблицы GenerateRandom генерирует случайные данные в соответствии с заданной схемой таблицы.
@@ -19,8 +17,6 @@ doc_type: 'reference'
- Используйте в тестах для заполнения больших таблиц воспроизводимыми данными.
- Генерируйте случайные входные данные для фаззинговых тестов.
-
-
## Использование в ClickHouse Server {#usage-in-clickhouse-server}
```sql
@@ -33,7 +29,6 @@ ENGINE = GenerateRandom([random_seed [,max_string_length [,max_array_length]]])
Он поддерживает все [типы данных](../../../sql-reference/data-types/index.md), которые могут храниться в таблице, за исключением `AggregateFunction`.
-
## Пример {#example}
**1.** Создайте таблицу `generate_engine_table`:
@@ -56,7 +51,6 @@ SELECT * FROM generate_engine_table LIMIT 3
└──────┴────────────┘
```
-
## Подробности реализации {#details-of-implementation}
- Не поддерживаются:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/join.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/join.md
index ad165544a38..6ba74000b57 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/join.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/join.md
@@ -7,8 +7,6 @@ title: 'Движок таблицы Join'
doc_type: 'reference'
---
-
-
# Табличный движок Join {#join-table-engine}
Дополнительная подготовленная структура данных для использования в операциях [JOIN](/sql-reference/statements/select/join).
@@ -17,8 +15,6 @@ doc_type: 'reference'
В ClickHouse Cloud, если ваш сервис был создан на версии раньше 25.4, необходимо установить параметр `compatibility` не ниже 25.4, выполнив команду `SET compatibility=25.4`.
:::
-
-
## Создание таблицы {#creating-a-table}
```sql
@@ -31,7 +27,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
См. подробное описание запроса [CREATE TABLE](/sql-reference/statements/create/table).
-
## Параметры движка {#engine-parameters}
### `join_strictness` {#join_strictness}
@@ -48,8 +43,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
Задавайте параметры `join_strictness` и `join_type` без кавычек, например `Join(ANY, LEFT, col1)`. Они должны соответствовать операции `JOIN`, для которой будет использоваться таблица. Если параметры не соответствуют, ClickHouse не выбрасывает исключение и может вернуть некорректные данные.
-
-
## Особенности и рекомендации {#specifics-and-recommendations}
### Хранение данных {#data-storage}
@@ -113,8 +106,6 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
Движок `Join` позволяет указать настройку [join_use_nulls](/operations/settings/settings.md/#join_use_nulls) в операторе `CREATE TABLE`. Запрос [SELECT](/sql-reference/statements/select/index.md) должен иметь то же значение `join_use_nulls`.
-
-
## Примеры использования {#example}
Создание левой таблицы:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/keepermap.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/keepermap.md
index 9dc42339bda..e1704481912 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/keepermap.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/keepermap.md
@@ -8,8 +8,6 @@ title: 'Табличный движок KeeperMap'
doc_type: 'reference'
---
-
-
# Табличный движок KeeperMap {#keepermap-table-engine}
Этот движок позволяет использовать кластер Keeper/ZooKeeper как согласованное хранилище ключ–значение с линеаризуемыми записями и последовательно согласованными чтениями.
@@ -26,7 +24,6 @@ doc_type: 'reference'
где path может быть любым другим допустимым путем в ZooKeeper.
-
## Создание таблицы {#creating-a-table}
```sql
@@ -80,7 +77,6 @@ PRIMARY KEY key
В результате можно использовать предложение `ON CLUSTER` при создании таблицы и разделять данные между несколькими экземплярами ClickHouse.\
Разумеется, можно вручную выполнить `CREATE TABLE` с тем же путём на несвязанных экземплярах ClickHouse, чтобы получить тот же эффект совместного использования данных.
-
## Поддерживаемые операции {#supported-operations}
### Вставки {#inserts}
@@ -120,7 +116,6 @@ TRUNCATE TABLE keeper_map_table;
ALTER TABLE keeper_map_table UPDATE v1 = v1 * 10 + 2 WHERE key LIKE 'some%' AND v3 > 3.1;
```
-
## Связанные материалы {#related-content}
- Блог: [Создание аналитических приложений реального времени с ClickHouse и Hex](https://clickhouse.com/blog/building-real-time-applications-with-clickhouse-and-hex-notebook-keeper-engine)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/memory.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/memory.md
index 1c3c7e69810..9faa42a13e3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/memory.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/memory.md
@@ -9,8 +9,6 @@ title: 'Табличный движок Memory'
doc_type: 'reference'
---
-
-
# Движок таблиц Memory {#memory-table-engine}
:::note
@@ -31,8 +29,6 @@ doc_type: 'reference'
Для ограничения размера таблицы с движком Memory можно задать верхнюю и нижнюю границы, фактически позволяя использовать её как кольцевой буфер (см. [Параметры движка](#engine-parameters)).
-
-
## Параметры движка {#engine-parameters}
- `min_bytes_to_keep` — Минимальное количество байт, которое необходимо сохранять, когда размер таблицы в памяти ограничен.
@@ -48,8 +44,6 @@ doc_type: 'reference'
- `compress` — Определяет, нужно ли сжимать данные в памяти.
- Значение по умолчанию: `false`
-
-
## Использование {#usage}
**Инициализация настроек**
@@ -66,7 +60,6 @@ ALTER TABLE memory MODIFY SETTING min_rows_to_keep = 100, max_rows_to_keep = 100
**Примечание:** Параметры ограничения `bytes` и `rows` могут быть заданы одновременно, однако будет использоваться меньшее из значений `max` и `min`.
-
## Примеры {#examples}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/merge.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/merge.md
index 0455e83c946..99a962590ce 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/merge.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/merge.md
@@ -7,23 +7,18 @@ title: 'Табличный движок Merge'
doc_type: 'reference'
---
-
-
# Движок таблицы Merge {#merge-table-engine}
Движок `Merge` (не путать с `MergeTree`) сам не хранит данные, но позволяет одновременно читать из любого количества других таблиц.
Чтение автоматически распараллеливается. Запись в таблицу не поддерживается. При чтении используются индексы таблиц, из которых фактически производится чтение, если они есть.
-
-
## Создание таблицы {#creating-a-table}
```sql
CREATE TABLE ... Engine=Merge(db_name, tables_regexp)
```
-
## Параметры движка {#engine-parameters}
### `db_name` {#db_name}
@@ -40,8 +35,6 @@ CREATE TABLE ... Engine=Merge(db_name, tables_regexp)
Регулярные выражения обрабатываются библиотекой [re2](https://github.com/google/re2) (поддерживает подмножество PCRE) и чувствительны к регистру.
См. примечания об экранировании символов в регулярных выражениях в разделе «match».
-
-
## Использование {#usage}
При выборе таблиц для чтения сама таблица `Merge` не выбирается, даже если она подходит под регулярное выражение. Это сделано, чтобы избежать циклов.
@@ -49,8 +42,6 @@ CREATE TABLE ... Engine=Merge(db_name, tables_regexp)
Типичный сценарий использования движка `Merge` — работа с большим количеством таблиц `TinyLog` так, как будто это одна таблица.
-
-
## Примеры {#examples}
**Пример 1**
@@ -104,7 +95,6 @@ SELECT * FROM WatchLog;
└────────────┴────────┴───────────┴─────┘
```
-
## Виртуальные столбцы {#virtual-columns}
- `_table` — имя таблицы, из которой были прочитаны данные. Тип: [String](../../../sql-reference/data-types/string.md).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/set.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/set.md
index 0e9166dbaa5..8587c866e03 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/set.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/set.md
@@ -7,8 +7,6 @@ title: 'Табличный движок Set'
doc_type: 'reference'
---
-
-
# Движок таблицы Set {#set-table-engine}
:::note
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/url.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/url.md
index 0766455d5c8..d9f96eaef79 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/url.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/url.md
@@ -7,8 +7,6 @@ title: 'Табличный движок URL'
doc_type: 'reference'
---
-
-
# Движок таблицы URL {#url-table-engine}
Выполняет чтение и запись данных на удалённый HTTP/HTTPS-сервер. Этот движок похож на движок [File](../../../engines/table-engines/special/file.md).
@@ -41,16 +39,12 @@ doc_type: 'reference'
Например, для выражения движка `URL('http://localhost/test.gzip')` применяется метод сжатия `gzip`, но для `URL('http://localhost/test.fr')` сжатие не включается, поскольку суффикс `fr` не соответствует ни одному из указанных выше методов сжатия.
-
-
## Использование {#using-the-engine-in-the-clickhouse-server}
Запросы `INSERT` и `SELECT` преобразуются соответственно в HTTP-запросы `POST` и `GET`. Для обработки `POST`-запросов удалённый сервер должен поддерживать [передачу с кодированием фрагментами (Chunked transfer encoding)](https://en.wikipedia.org/wiki/Chunked_transfer_encoding).
Вы можете ограничить максимальное количество переходов по перенаправлениям для HTTP-запросов GET с помощью настройки [max_http_get_redirects](/operations/settings/settings#max_http_get_redirects).
-
-
## Пример {#example}
**1.** Создайте таблицу `url_engine_table` на сервере:
@@ -96,7 +90,6 @@ SELECT * FROM url_engine_table
└───────┴───────┘
```
-
## Подробности реализации {#details-of-implementation}
- Возможны параллельные операции чтения и записи
@@ -105,8 +98,6 @@ SELECT * FROM url_engine_table
- Индексы.
- Репликация.
-
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к URL-ресурсу. Тип: `LowCardinality(String)`.
@@ -115,8 +106,6 @@ SELECT * FROM url_engine_table
- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
- `_headers` — Заголовки HTTP-ответа. Тип: `Map(LowCardinality(String), LowCardinality(String))`.
-
-
## Настройки хранения {#storage-settings}
- [engine_url_skip_empty_files](/operations/settings/settings.md#engine_url_skip_empty_files) — позволяет пропускать пустые файлы при чтении. По умолчанию отключена.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/faq/integration/json-import.md b/i18n/ru/docusaurus-plugin-content-docs/current/faq/integration/json-import.md
index 81eeae88c47..f6e77bd6a70 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/faq/integration/json-import.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/faq/integration/json-import.md
@@ -8,14 +8,10 @@ keywords: ['импорт JSON', 'формат JSONEachRow', 'импорт дан
doc_type: 'guide'
---
-
-
# Как импортировать JSON в ClickHouse? {#how-to-import-json-into-clickhouse}
ClickHouse поддерживает широкий спектр [форматов данных для ввода и вывода](/interfaces/formats). Среди них есть несколько вариантов JSON, но наиболее часто для ингестии данных используется формат [JSONEachRow](/interfaces/formats/JSONEachRow). Он ожидает по одному JSON‑объекту в строке, при этом каждый объект должен быть разделён символом перевода строки.
-
-
## Примеры {#examples}
С помощью [HTTP-интерфейса](../../interfaces/http.md):
@@ -32,7 +28,6 @@ $ echo '{"foo":"bar"}' | clickhouse-client --query="INSERT INTO test FORMAT JSO
Вместо ручного ввода данных вы можете использовать [инструмент интеграции](../../integrations/index.mdx).
-
## Полезные настройки {#useful-settings}
- `input_format_skip_unknown_fields` позволяет вставлять JSON, даже если в нём есть дополнительные поля, отсутствующие в схеме таблицы (такие поля отбрасываются).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/faq/operations/delete-old-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/faq/operations/delete-old-data.md
index 8067e2b45d9..cf713432db7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/faq/operations/delete-old-data.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/faq/operations/delete-old-data.md
@@ -8,14 +8,10 @@ doc_type: 'reference'
keywords: ['удаление данных', 'TTL', 'хранение данных', 'очистка', 'жизненный цикл данных']
---
-
-
# Можно ли удалять старые записи из таблицы ClickHouse? {#is-it-possible-to-delete-old-records-from-a-clickhouse-table}
Краткий ответ — «да». В ClickHouse есть несколько механизмов, которые позволяют освобождать дисковое пространство путём удаления старых данных. Каждый механизм предназначен для различных сценариев.
-
-
## TTL {#ttl}
ClickHouse позволяет автоматически удалять данные при наступлении определённого условия. Это условие настраивается как выражение, основанное на любых столбцах, обычно это просто статическое смещение для некоторого столбца с меткой времени.
@@ -28,8 +24,6 @@ TTL также может использоваться не только для
Подробнее о [настройке TTL](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl).
-
-
## DELETE FROM {#delete-from}
[DELETE FROM](/sql-reference/statements/delete.md) позволяет выполнять стандартные запросы DELETE в ClickHouse. Строки, отобранные условием фильтрации, помечаются как удалённые и не возвращаются в будущих результатах запросов. Очистка строк происходит асинхронно.
@@ -43,7 +37,6 @@ SET allow_experimental_lightweight_delete = true;
:::
-
## ALTER DELETE {#alter-delete}
ALTER DELETE удаляет строки с использованием асинхронных пакетных операций. В отличие от DELETE FROM, запросы, выполняемые после ALTER DELETE и до завершения пакетных операций, будут включать строки, предназначенные для удаления. Подробности см. в документации по [ALTER DELETE](/sql-reference/statements/alter/delete.md).
@@ -54,16 +47,12 @@ ALTER DELETE удаляет строки с использованием аси
Дополнительные сведения о [мутациях](/sql-reference/statements/alter#mutations).
-
-
## DROP PARTITION {#drop-partition}
`ALTER TABLE ... DROP PARTITION` предоставляет недорогой способ удалить весь партиционный блок. Механизм не слишком гибкий и требует корректной схемы партиционирования, заданной при создании таблицы, но при этом покрывает большинство типичных сценариев. Как и в случае с мутациями, для регулярного использования его необходимо запускать из внешней системы.
Подробнее о [работе с партициями](/sql-reference/statements/alter/partition).
-
-
## TRUNCATE {#truncate}
Удаление всех данных из таблицы — довольно радикальное решение, но в некоторых случаях это может быть именно тем, что вам нужно.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/anon_web_analytics_metrica.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/anon_web_analytics_metrica.md
index e890b6540d1..997896da9ba 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/anon_web_analytics_metrica.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/anon_web_analytics_metrica.md
@@ -24,7 +24,6 @@ md5sum hits_v1.tsv
# Контрольная сумма должна быть: f3631b6295bf06989c1437491f7592cb {#checksum-should-be-equal-to-f3631b6295bf06989c1437491f7592cb}
```
-
### Создание базы данных и таблицы {#create-the-database-and-table}
```bash
@@ -39,12 +38,10 @@ clickhouse-client --query "CREATE TABLE datasets.hits_v1 ( WatchID UInt64, Java
Или для hits_100m_obfuscated
-
```bash
clickhouse-client --query="CREATE TABLE default.hits_100m_obfuscated (WatchID UInt64, JavaEnable UInt8, Title String, GoodEvent Int16, EventTime DateTime, EventDate Date, CounterID UInt32, ClientIP UInt32, RegionID UInt32, UserID UInt64, CounterClass Int8, OS UInt8, UserAgent UInt8, URL String, Referer String, Refresh UInt8, RefererCategoryID UInt16, RefererRegionID UInt32, URLCategoryID UInt16, URLRegionID UInt32, ResolutionWidth UInt16, ResolutionHeight UInt16, ResolutionDepth UInt8, FlashMajor UInt8, FlashMinor UInt8, FlashMinor2 String, NetMajor UInt8, NetMinor UInt8, UserAgentMajor UInt16, UserAgentMinor FixedString(2), CookieEnable UInt8, JavascriptEnable UInt8, IsMobile UInt8, MobilePhone UInt8, MobilePhoneModel String, Params String, IPNetworkID UInt32, TraficSourceID Int8, SearchEngineID UInt16, SearchPhrase String, AdvEngineID UInt8, IsArtifical UInt8, WindowClientWidth UInt16, WindowClientHeight UInt16, ClientTimeZone Int16, ClientEventTime DateTime, SilverlightVersion1 UInt8, SilverlightVersion2 UInt8, SilverlightVersion3 UInt32, SilverlightVersion4 UInt16, PageCharset String, CodeVersion UInt32, IsLink UInt8, IsDownload UInt8, IsNotBounce UInt8, FUniqID UInt64, OriginalURL String, HID UInt32, IsOldCounter UInt8, IsEvent UInt8, IsParameter UInt8, DontCountHits UInt8, WithHash UInt8, HitColor FixedString(1), LocalEventTime DateTime, Age UInt8, Sex UInt8, Income UInt8, Interests UInt16, Robotness UInt8, RemoteIP UInt32, WindowName Int32, OpenerName Int32, HistoryLength Int16, BrowserLanguage FixedString(2), BrowserCountry FixedString(2), SocialNetwork String, SocialAction String, HTTPError UInt16, SendTiming UInt32, DNSTiming UInt32, ConnectTiming UInt32, ResponseStartTiming UInt32, ResponseEndTiming UInt32, FetchTiming UInt32, SocialSourceNetworkID UInt8, SocialSourcePage String, ParamPrice Int64, ParamOrderID String, ParamCurrency FixedString(3), ParamCurrencyID UInt16, OpenstatServiceName String, OpenstatCampaignID String, OpenstatAdID String, OpenstatSourceID String, UTMSource String, UTMMedium String, UTMCampaign String, UTMContent String, UTMTerm String, FromTag String, HasGCLID UInt8, RefererHash UInt64, URLHash UInt64, CLID UInt32) ENGINE = MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity = 8192"
```
-
### Импортируйте данные таблицы hits {#import-the-hits-data}
```bash
@@ -61,7 +58,6 @@ clickhouse-client --query "SELECT COUNT(*) FROM datasets.hits_v1"
8873898
```
-
### Скачайте сжатый TSV‑файл visits {#download-the-visits-compressed-tsv-file}
```bash
@@ -71,7 +67,6 @@ md5sum visits_v1.tsv
# Контрольная сумма должна быть: 6dafe1a0f24e59e3fc2d0fed85601de6 {#checksum-should-be-equal-to-6dafe1a0f24e59e3fc2d0fed85601de6}
```
-
### Создание таблицы visits {#create-the-visits-table}
```bash
@@ -94,7 +89,6 @@ clickhouse-client --query "SELECT COUNT(*) FROM datasets.visits_v1"
1680609
```
-
## Пример JOIN {#an-example-join}
Наборы данных hits и visits используются в тестовых
@@ -140,7 +134,6 @@ FORMAT PrettyCompact"
└────────────┴─────────┴────────┘
```
-
## Следующие шаги {#next-steps}
[A Practical Introduction to Sparse Primary Indexes in ClickHouse](/guides/best-practices/sparse-primary-indexes.md) использует набор данных `hits`, чтобы разобрать различия в индексировании в ClickHouse по сравнению с традиционными реляционными СУБД, то, как ClickHouse строит и использует разрежённый первичный индекс, а также рекомендации по работе с индексами.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/dbpedia.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/dbpedia.md
index 3a53af2496d..f84960b2370 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/dbpedia.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/dbpedia.md
@@ -30,16 +30,19 @@ CREATE TABLE dbpedia
```
-
## Загрузка таблицы {#load-table}
Чтобы загрузить набор данных из всех файлов Parquet, выполните следующую команду в оболочке:
```shell
-$ seq 0 25 | xargs -P1 -I{} clickhouse client -q "INSERT INTO dbpedia SELECT _id, title, text, \"text-embedding-3-large-1536-embedding\" FROM url('https://huggingface.co/api/datasets/Qdrant/dbpedia-entities-openai3-text-embedding-3-large-1536-1M/parquet/default/train/{}.parquet') SETTINGS max_http_get_redirects=5,enable_url_encoding=0;"
+for i in $(seq 0 25); do
+ echo "Обработка файла ${i}..."
+ clickhouse client -q "INSERT INTO dbpedia SELECT _id, title, text, \"text-embedding-3-large-1536-embedding\" FROM url('https://huggingface.co/api/datasets/Qdrant/dbpedia-entities-openai3-text-embedding-3-large-1536-1M/parquet/default/train/${i}.parquet') SETTINGS max_http_get_redirects=5,enable_url_encoding=0;"
+ echo "Файл ${i} обработан."
+done
```
-Также можно выполнить отдельные SQL‑запросы, как показано ниже, чтобы загрузить каждый из 25 файлов Parquet:
+Также можно выполнить отдельные SQL‑команды, как показано ниже, чтобы загрузить каждый из 25 файлов Parquet:
```sql
INSERT INTO dbpedia SELECT _id, title, text, "text-embedding-3-large-1536-embedding" FROM url('https://huggingface.co/api/datasets/Qdrant/dbpedia-entities-openai3-text-embedding-3-large-1536-1M/parquet/default/train/0.parquet') SETTINGS max_http_get_redirects=5,enable_url_encoding=0;
@@ -118,7 +121,6 @@ LIMIT 20
Запишите задержку выполнения запроса, чтобы мы могли сравнить её с задержкой запроса для ANN (с использованием векторного индекса).
Также зафиксируйте задержку выполнения запроса при холодном файловом кэше ОС и с `max_threads=1`, чтобы оценить реальное использование вычислительных ресурсов и пропускную способность подсистемы хранения (экстраполируйте это на производственный набор данных с миллионами векторов!).
-
## Создание индекса векторного сходства {#build-vector-similarity-index}
Выполните следующий SQL-запрос, чтобы определить и построить индекс векторного сходства для столбца `vector`:
@@ -133,7 +135,6 @@ ALTER TABLE dbpedia MATERIALIZE INDEX vector_index SETTINGS mutations_sync = 2;
Построение и сохранение индекса может занять несколько минут в зависимости от количества доступных ядер CPU и пропускной способности подсистемы хранения.
-
## Выполнение ANN-поиска {#perform-ann-search}
*Approximate Nearest Neighbours* (ANN, приближённые ближайшие соседи) — это группа техник (например, специальные структуры данных, такие как графы и случайные леса), которые позволяют выполнять поиск значительно быстрее, чем точный векторный поиск. Точность результатов, как правило, «достаточно хороша» для практического применения. Во многих приближённых техниках предусмотрены параметры для настройки компромисса между точностью результатов и временем поиска.
@@ -180,7 +181,6 @@ LIMIT 20
Получено 20 строк. Прошло: 0.025 сек. Обработано 32.03 тыс. строк, 2.10 МБ (1.29 млн строк/с., 84.80 МБ/с.)
```
-
## Генерация эмбеддингов для поискового запроса {#generating-embeddings-for-search-query}
Запросы поиска по сходству, рассмотренные до этого момента, используют один из существующих векторов в таблице `dbpedia`
@@ -229,7 +229,6 @@ while True:
print("---------------")
```
-
## Демонстрационное приложение «Вопрос-ответ» {#q-and-a-demo-application}
Приведённые выше примеры демонстрировали семантический поиск и извлечение документов с использованием ClickHouse. Далее представлено очень простое, но обладающее высоким потенциалом демонстрационное приложение генеративного ИИ.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/foursquare-os-places.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/foursquare-os-places.md
index 6dadef5c183..d2328b9783f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/foursquare-os-places.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/foursquare-os-places.md
@@ -14,7 +14,6 @@ import visualization_2 from '@site/static/images/getting-started/example-dataset
import visualization_3 from '@site/static/images/getting-started/example-datasets/visualization_3.png';
import visualization_4 from '@site/static/images/getting-started/example-datasets/visualization_4.png';
-
## Набор данных {#dataset}
Этот набор данных от Foursquare доступен для [загрузки](https://docs.foursquare.com/data-products/docs/access-fsq-os-places)
@@ -74,7 +73,6 @@ SELECT * FROM s3('s3://fsq-os-places-us-east-1/release/dt=2025-04-08/places/parq
WHERE address IS NOT NULL AND postcode IS NOT NULL AND instagram IS NOT NULL LIMIT 1
```
-
```response
Row 1:
──────
@@ -147,7 +145,6 @@ DESCRIBE s3('s3://fsq-os-places-us-east-1/release/dt=2025-04-08/places/parquet/*
└─────────────────────┴─────────────────────────────┘
```
-
## Загрузка данных в ClickHouse {#loading-the-data}
Если вы хотите сохранять данные на диске, вы можете использовать `clickhouse-server`
@@ -260,7 +257,6 @@ INSERT INTO foursquare_mercator
SELECT * FROM s3('s3://fsq-os-places-us-east-1/release/dt=2025-04-08/places/parquet/*')
```
-
## Визуализация данных {#data-visualization}
Чтобы увидеть, что можно сделать с этим набором данных, зайдите на [adsb.exposed](https://adsb.exposed/?dataset=Places&zoom=5&lat=52.3488&lng=4.9219).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/github.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/github.md
index 4371f6f28d3..bfa683d3c90 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/github.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/github.md
@@ -28,7 +28,6 @@ import superset_authors_matrix_v2 from '@site/static/images/getting-started/exam
* `file_changes` — 53M — 266,051 строк
* `line_changes` — 2.7G — 7,535,157 строк
-
## Генерация данных {#generating-the-data}
Этот шаг необязателен. Мы свободно распространяем эти данные — см. раздел [Downloading and inserting the data](#downloading-and-inserting-the-data).
@@ -72,7 +71,6 @@ CREATE TABLE git.commits
* Linux — `~/clickhouse git-import` — 160 минут
-
## Загрузка и вставка данных {#downloading-and-inserting-the-data}
Следующие данные можно использовать для воспроизведения рабочего окружения. Также этот набор данных доступен на play.clickhouse.com — подробности см. в разделе [Queries](#queries).
@@ -187,7 +185,6 @@ CREATE TABLE git.line_changes
*commits*
-
```sql
INSERT INTO git.commits SELECT *
FROM s3('https://datasets-documentation.s3.amazonaws.com/github/commits/clickhouse/commits.tsv.xz', 'TSV', 'hash String,author LowCardinality(String), time DateTime, message String, files_added UInt32, files_deleted UInt32, files_renamed UInt32, files_modified UInt32, lines_added UInt32, lines_deleted UInt32, hunks_added UInt32, hunks_removed UInt32, hunks_changed UInt32')
@@ -213,7 +210,6 @@ FROM s3('https://datasets-documentation.s3.amazonaws.com/github/commits/clickhou
0 строк в наборе. Затрачено: 50.535 сек. Обработано 7.54 миллионов строк, 2.09 ГБ (149.11 тысяч строк/с., 41.40 МБ/с.)
```
-
## Запросы {#queries}
Инструмент предлагает несколько запросов в выводе справочной информации. Мы приводим ответы на них, а также на некоторые дополнительные вопросы, представляющие интерес. В этом документе запросы расположены примерно в порядке возрастания сложности, а не в произвольном порядке, предлагаемом инструментом.
@@ -262,7 +258,6 @@ LIMIT 10
[play](https://sql.clickhouse.com?query_id=AKS9SYLARFMZCHGAAQNEBN)
-
```sql
SELECT
time,
@@ -295,7 +290,6 @@ LIMIT 10
Обратите внимание, что существует более сложный вариант этого запроса, позволяющий получить [построчную историю коммитов файла](#line-by-line-commit-history-of-a-file) с учётом переименований.
-
### Найти текущие активные файлы {#find-the-current-active-files}
Это важно для последующего анализа, когда нам нужно учитывать только текущие файлы в репозитории. Мы определяем этот набор как файлы, которые не были переименованы или удалены (а затем заново добавлены/переименованы).
@@ -392,7 +386,6 @@ git ls-files | grep -v -E 'generated\.cpp|^(contrib|docs?|website|libs/(libcityh
Разница здесь обусловлена несколькими факторами:
-
* Переименование может происходить вместе с другими модификациями файла. Эти изменения фиксируются как отдельные события в `file_changes`, но с одинаковым временем. Функция `argMax` не может их различить — она выбирает первое значение. Естественный порядок вставок (единственный способ узнать корректный порядок) не сохраняется при объединении (`UNION`), поэтому могут быть выбраны события Modify. Например, ниже файл `src/Functions/geometryFromColumn.h` несколько раз изменяется, прежде чем будет переименован в `src/Functions/geometryConverters.h`. Наше текущее решение может выбрать событие Modify как последнее изменение, из-за чего `src/Functions/geometryFromColumn.h` останется.
[play](https://sql.clickhouse.com?query_id=SCXWMR9GBMJ9UNZYQXQBFA)
@@ -427,7 +420,6 @@ git ls-files | grep -v -E 'generated\.cpp|^(contrib|docs?|website|libs/(libcityh
Эти различия не должны существенно повлиять на наш анализ. **Будем признательны за улучшенные версии этого запроса**.
-
### Список файлов с наибольшим числом изменений {#list-files-with-most-modifications}
Если ограничиться текущими файлами, считаем числом изменений сумму удалений и добавлений.
@@ -483,7 +475,6 @@ LIMIT 10
Выбрано 10 строк. Затрачено: 0.134 сек. Обработано 798.15 тыс. строк, 16.46 МБ (5.95 млн. строк/сек., 122.62 МБ/сек.)
```
-
### В какой день недели обычно совершаются коммиты? {#what-day-of-the-week-do-commits-usually-occur}
[play](https://sql.clickhouse.com?query_id=GED2STFSYJDRAA59H8RLIV)
@@ -509,7 +500,6 @@ GROUP BY dayOfWeek(time) AS day_of_week
Это вполне логично: по пятницам наблюдается небольшое снижение продуктивности. Здорово видеть, что люди коммитят код по выходным! Огромное спасибо нашим контрибьюторам!
-
### История подкаталога/файла — количество строк, коммитов и контрибьюторов в динамике {#history-of-subdirectoryfile---number-of-lines-commits-and-contributors-over-time}
Это приведёт к очень большому результату запроса, который невозможно разумно отобразить или визуализировать без фильтрации. Поэтому в следующем примере мы позволяем отфильтровать данные по файлу или подкаталогу. Здесь мы группируем по неделям с помощью функции `toStartOfWeek` — при необходимости адаптируйте под свои задачи.
@@ -554,7 +544,6 @@ LIMIT 10
-
### Вывести список файлов с максимальным числом авторов {#list-files-with-maximum-number-of-authors}
Ограничить выборку только текущими файлами.
@@ -610,7 +599,6 @@ LIMIT 10
10 строк в наборе. Прошло: 0.239 сек. Обработано 798.15 тыс. строк, 14.13 МБ (3.35 млн строк/с., 59.22 МБ/с.)
```
-
### Самые старые строки кода в репозитории {#oldest-lines-of-code-in-the-repository}
Только по текущим файлам.
@@ -668,7 +656,6 @@ LIMIT 10
Получено 10 строк. Затрачено: 1.101 сек. Обработано 8.07 млн строк, 905.86 МБ (7.33 млн строк/с., 823.13 МБ/с.)
```
-
### Файлы с самой длинной историей {#files-with-longest-history}
Только текущие файлы.
@@ -727,7 +714,6 @@ LIMIT 10
Наша основная структура данных MergeTree, разумеется, постоянно развивается и имеет долгую историю доработок!
-
### Распределение вклада контрибьюторов между документацией и кодом в течение месяца {#distribution-of-contributors-with-respect-to-docs-and-code-over-the-month}
**Во время сбора данных изменения в папке `docs/` были исключены из анализа из‑за очень запутанной истории коммитов. Поэтому результаты этого запроса не являются точными.**
@@ -791,7 +777,6 @@ FROM
Возможно, чуть больше ближе к концу месяца, но в целом распределение остаётся достаточно равномерным. Однако на эти данные нельзя полностью полагаться из‑за фильтрации фильтром docs при вставке.
-
### Авторы с наиболее разнообразным вкладом {#authors-with-the-most-diverse-impact}
Под разнообразием вклада здесь мы понимаем количество уникальных файлов, в которые автор вносил изменения.
@@ -869,7 +854,6 @@ LIMIT 10
10 строк в наборе. Затрачено: 0.106 сек. Обработано 266.05 тыс. строк, 21.04 МБ (2.52 млн строк/сек., 198.93 МБ/сек.)
```
-
### Избранные файлы автора {#favorite-files-for-an-author}
Здесь мы выбираем нашего основателя, [Алексея Миловидова](https://github.com/alexey-milovidov), и ограничиваем анализ только текущими файлами.
@@ -956,7 +940,6 @@ LIMIT 10
Это, возможно, лучше отражает его сферы интересов.
-
### Самые большие файлы с наименьшим числом авторов {#largest-files-with-lowest-number-of-authors}
Для этого сначала нужно определить самые большие файлы. Оценивать их с помощью полного восстановления каждого файла по всей истории коммитов — слишком затратно!
@@ -1020,7 +1003,6 @@ LIMIT 10
[запустить](https://sql.clickhouse.com?query_id=BZHGWUIZMPZZUHS5XRBK2M)
-
```sql
WITH current_files AS
(
@@ -1075,7 +1057,6 @@ LIMIT 10
[play](https://sql.clickhouse.com?query_id=RMHHZEDHFUCBGRQVQA2732)
-
```sql
WITH current_files AS
(
@@ -1129,7 +1110,6 @@ LIMIT 10
Получено 10 строк. Прошло: 0.143 сек. Обработано 798.15 тыс. строк, 18.00 МБ (5.58 млн строк/сек., 125.87 МБ/сек.)
```
-
### Распределение коммитов и строк кода по времени: по дням недели, по авторам, для отдельных поддиректорий {#commits-and-lines-of-code-distribution-by-time-by-weekday-by-author-for-specific-subdirectories}
Мы рассматриваем это как количество добавленных и удалённых строк по дням недели. В данном случае мы сосредотачиваемся на [директории Functions](https://github.com/ClickHouse/ClickHouse/tree/master/src/Functions)
@@ -1163,7 +1143,6 @@ GROUP BY toDayOfWeek(time) AS dayOfWeek
[Запустить](https://sql.clickhouse.com?query_id=Q4VDVKEGHHRBCUJHNCVTF1)
-
```sql
SELECT
hourOfDay,
@@ -1208,7 +1187,6 @@ GROUP BY toHour(time) AS hourOfDay
[play](https://sql.clickhouse.com?query_id=9AZ8CENV8N91YGW7T6IB68)
-
```sql
SELECT
hourOfDay,
@@ -1257,7 +1235,6 @@ FROM
Получено 24 строки. Прошло: 0.038 сек. Обработано 266.05 тыс. строк, 14.66 МБ (7.09 млн строк/сек., 390.69 МБ/сек.)
```
-
### Матрица авторов, показывающая, какие из них склонны переписывать код других авторов {#matrix-of-authors-that-shows-what-authors-tends-to-rewrite-another-authors-code}
`sign = -1` указывает на удаление кода. Мы не учитываем знаки препинания и вставку пустых строк.
@@ -1312,7 +1289,6 @@ LIMIT 100
-
### Кто делает наибольшую долю коммитов в каждый день недели? {#who-is-the-highest-percentage-contributor-per-day-of-week}
Если смотреть только на количество коммитов:
@@ -1384,7 +1360,6 @@ LIMIT 1 BY day_of_week
[play](https://sql.clickhouse.com?query_id=VQF4KMRDSUEXGS1JFVDJHV)
-
```sql
SELECT
top_author.day_of_week,
@@ -1429,7 +1404,6 @@ INNER JOIN
Выбрано 7 строк. Затрачено: 0.014 сек. Обработано 106.12 тыс. строк, 1.38 МБ (7.61 млн. строк/сек., 98.65 МБ/сек.)
```
-
### Распределение возраста кода в репозитории {#distribution-of-code-age-across-repository}
Ограничим анализ только текущими файлами. Для краткости установим глубину в 2 уровня и не более 5 файлов в каждом корневом каталоге. При необходимости измените эти параметры.
@@ -1513,7 +1487,6 @@ LIMIT 5 BY root
24 строки в наборе. Затрачено: 0.129 сек. Обработано 798.15 тыс. строк, 15.11 МБ (6.19 млн. строк/сек., 117.08 МБ/сек.)
```
-
### Какой процент кода автора был удалён другими авторами? {#what-percentage-of-code-for-an-author-has-been-removed-by-other-authors}
Для ответа на этот вопрос нам нужно количество строк, написанных автором, разделить на общее количество его строк, которые были удалены другим участником.
@@ -1564,7 +1537,6 @@ LIMIT 10
Получено 10 строк. Затрачено: 0.126 сек. Обработано 15.07 млн. строк, 73.51 МБ (119.97 млн. строк/сек., 585.16 МБ/сек.)
```
-
### Список файлов, которые переписывались чаще всего? {#list-files-that-were-rewritten-most-number-of-times}
Самый простой способ ответить на этот вопрос — просто посчитать максимальное количество изменений строк для каждого пути (ограничившись текущими файлами), например:
@@ -1624,7 +1596,6 @@ LIMIT 10
[play](https://sql.clickhouse.com?query_id=5PL1QLNSH6QQTR8H9HINNP)
-
```sql
WITH
current_files AS
@@ -1707,7 +1678,6 @@ LIMIT 10
Выбрано 10 строк. Затрачено: 0.299 сек. Обработано 798.15 тыс. строк, 31.52 МБ (2.67 млн. строк/сек., 105.29 МБ/сек.)
```
-
### В какой день недели у кода наибольший шанс остаться в репозитории? {#what-weekday-does-the-code-have-the-highest-chance-to-stay-in-the-repository}
Для этого нам нужно однозначно идентифицировать строку кода. Мы делаем это (так как одна и та же строка может встречаться в файле несколько раз) с помощью пути и содержимого строки.
@@ -1770,7 +1740,6 @@ GROUP BY dayOfWeek(added_day) AS day_of_week_added
7 rows in set. Elapsed: 3.965 sec. Processed 15.07 million rows, 1.92 GB (3.80 million rows/s., 483.50 MB/s.)
```
-
### Файлы, отсортированные по среднему возрасту кода {#files-sorted-by-average-code-age}
Этот запрос использует тот же принцип, что и [В какой день недели у кода наибольший шанс остаться в репозитории](#what-weekday-does-the-code-have-the-highest-chance-to-stay-in-the-repository): мы стремимся однозначно идентифицировать строку кода по пути и её содержимому.
@@ -1861,7 +1830,6 @@ LIMIT 10
Получено 10 строк. Прошло: 3.134 сек. Обработано 16.13 млн строк, 1.83 ГБ (5.15 млн строк/с., 582.99 МБ/с.)
```
-
### Кто, как правило, пишет больше тестов / C++‑кода / комментариев? {#who-tends-to-write-more-tests--cpp-code--comments}
Есть несколько способов подойти к этому вопросу. Если сосредоточиться на соотношении кода и тестов, то этот запрос относительно прост — нужно посчитать количество изменений в каталогах, содержащих `tests`, и вычислить их долю от общего числа изменений.
@@ -1912,7 +1880,6 @@ LIMIT 20
[play](https://sql.clickhouse.com?query_id=S5AJIIRGSUAY1JXEVHQDAK)
-
```sql
WITH (
SELECT histogram(10)(ratio_code) AS hist
@@ -1956,7 +1923,6 @@ SELECT
[play](https://sql.clickhouse.com?query_id=EXPHDIURBTOXXOK1TGNNYD)
-
```sql
SELECT
author,
@@ -1995,7 +1961,6 @@ LIMIT 10
Обратите внимание, что сортировка ведётся по количеству вкладов в код. У всех наших крупнейших контрибьюторов удивительно высокий процент — это одна из причин, почему наш код такой читаемый.
-
### Как со временем меняется доля кода и комментариев в коммитах автора? {#how-does-an-authors-commits-change-over-time-with-respect-to-codecomments-percentage}
Вычислить это по каждому автору тривиально,
@@ -2040,7 +2005,6 @@ LIMIT 10
[выполнить](https://sql.clickhouse.com?query_id=SBHEWR8XC4PRHY13HPPKCN)
-
```sql
WITH author_ratios_by_offset AS
(
@@ -2113,7 +2077,6 @@ LIMIT 20
Обнадеживает, что наша доля комментариев остается примерно постоянной и не снижается по мере роста стажа авторов.
-
### Каково среднее время до переписывания кода и медиана (период «полураспада» кода)? {#what-is-the-average-time-before-code-will-be-rewritten-and-the-median-half-life-of-code-decay}
Мы можем использовать тот же принцип, что и в разделе [List files that were rewritten most number of time or by most of authors](#list-files-that-were-rewritten-most-number-of-times) для определения переписываний, но применить его ко всем файлам. Оконная функция позволяет вычислить время между переписываниями для каждого файла. На этой основе мы можем посчитать среднее и медиану по всем файлам.
@@ -2174,7 +2137,6 @@ FROM rewrites
1 row in set. Elapsed: 0.388 sec. Processed 266.05 thousand rows, 22.85 MB (685.82 thousand rows/s., 58.89 MB/s.)
```
-
### В какое время писать код хуже всего с точки зрения наибольшей вероятности его последующего переписывания? {#what-is-the-worst-time-to-write-code-in-sense-that-the-code-has-highest-chance-to-be-re-written}
Аналогично разделам [Каково среднее время до переписывания кода и медиана (период полураспада кода)?](#what-is-the-average-time-before-code-will-be-rewritten-and-the-median-half-life-of-code-decay) и [Список файлов, которые переписывались больше всего раз или наибольшим числом авторов](#list-files-that-were-rewritten-most-number-of-times), за исключением того, что здесь мы агрегируем по дням недели. При необходимости скорректируйте, например, по месяцам года.
@@ -2239,7 +2201,6 @@ GROUP BY dayOfWeek
7 rows in set. Elapsed: 0.466 sec. Processed 7.54 million rows, 701.52 MB (16.15 million rows/s., 1.50 GB/s.)
```
-
### Чей код «держится» дольше всего? {#which-authors-code-is-the-most-sticky}
Мы определяем «липкость» как то, как долго код автора остается в репозитории, прежде чем его перепишут. Аналогично предыдущему вопросу [Какое среднее время до переписывания кода и медианное значение (период полураспада деградации кода)?](#what-is-the-average-time-before-code-will-be-rewritten-and-the-median-half-life-of-code-decay) — используем тот же критерий переписывания, то есть 50% добавлений и 50% удалений в файле. Мы вычисляем среднее время до переписывания для каждого автора и учитываем только контрибьюторов с более чем двумя файлами.
@@ -2317,7 +2278,6 @@ LIMIT 10
Получено 10 строк. Затрачено: 0.555 сек. Обработано 7.54 млн строк, 720.60 МБ (13.58 млн строк/сек., 1.30 ГБ/сек.)
```
-
### Наибольшее количество последовательных дней с коммитами у автора {#most-consecutive-days-of-commits-by-an-author}
Сначала в этом запросе необходимо определить дни, в которые автор делал коммиты. Используя оконную функцию с разбиением по автору, мы можем вычислить количество дней между его коммитами. Для каждого коммита, если с момента предыдущего прошёл 1 день, мы помечаем его как последовательный (1), в противном случае — 0, сохраняя результат в поле `consecutive_day`.
@@ -2373,7 +2333,6 @@ LIMIT 10
10 строк в наборе. Прошло: 0.025 сек. Обработано 62.78 тыс. строк, 395.47 КБ (2.54 млн строк/с., 16.02 МБ/с.)
```
-
### Построчная история коммитов файла {#line-by-line-commit-history-of-a-file}
Файлы могут быть переименованы. Когда это происходит, мы получаем событие переименования, в котором столбец `path` содержит новый путь к файлу, а `old_path` — его прежнее расположение, например:
@@ -2426,7 +2385,6 @@ SELECT file_path_history('src/Storages/StorageReplicatedMergeTree.cpp') AS paths
Получена 1 строка. Затрачено: 0,074 сек. Обработано 344,06 тыс. строк, 6,27 МБ (4,65 млн строк/с., 84,71 МБ/с.)
```
-
Теперь мы можем использовать эту функциональность, чтобы собрать все коммиты за всю историю файла. В этом примере мы показываем по одному коммиту для каждого значения `path`.
```sql
@@ -2452,7 +2410,6 @@ FORMAT PrettyCompactMonoBlock
Получено 3 строки. Затрачено: 0.170 сек. Обработано 611.53 тыс. строк, 41.76 МБ (3.60 млн строк/с., 246.07 МБ/с.)
```
-
## Открытые вопросы {#unsolved-questions}
### Git blame {#git-blame}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/laion.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/laion.md
index 954067b6288..b7d2b97c592 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/laion.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/laion.md
@@ -75,7 +75,6 @@ seq 0 409 | xargs -P1 -I{} bash -c './download.sh {}'
(Приведённый выше скрипт на Python очень медленный (~2–10 минут на файл), потребляет много памяти (41 ГБ на файл), а получающиеся CSV‑файлы большие (10 ГБ каждый), поэтому будьте осторожны. Если у вас достаточно RAM, увеличьте значение `-P1` для большего параллелизма. Если этого всё ещё недостаточно и обработка остаётся слишком медленной, рассмотрите более эффективную процедуру ингестии — например, сначала конвертировать файлы .npy в parquet, а затем выполнять всю остальную обработку с помощью ClickHouse.)
-
## Создание таблицы {#create-table}
Чтобы сначала создать таблицу без индексов, выполните:
@@ -104,7 +103,6 @@ INSERT INTO laion FROM INFILE '{path_to_csv_files}/*.csv'
Обратите внимание, что столбец `id` служит лишь для иллюстрации и заполняется скриптом неуникальными значениями.
-
## Запуск векторного поиска методом перебора {#run-a-brute-force-vector-similarity-search}
Чтобы выполнить векторный поиск методом перебора, выполните:
@@ -136,7 +134,6 @@ SELECT url, caption FROM laion ORDER BY cosineDistance(image_embedding, {target:
Получено 10 строк. Время выполнения: 4.605 сек. Обработано 100.38 млн строк, 309.98 ГБ (21.80 млн строк/сек., 67.31 ГБ/сек.)
```
-
## Выполните приближённый поиск по сходству векторов с использованием индекса сходства векторов {#run-an-approximate-vector-similarity-search-with-a-vector-similarity-index}
Теперь определим два индекса сходства векторов для таблицы.
@@ -167,7 +164,6 @@ SELECT url, caption FROM laion ORDER BY cosineDistance(image_embedding, {target:
**Результат**
-
```response
┌─url───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─caption──────────────────────────────────────────────────────────────────────────┐
1. │ https://s4.thcdn.com/productimg/600/600/11340490-9914447026352671.jpg │ LEGO Friends: Puppy Treats & Tricks (41304) │
@@ -189,7 +185,6 @@ SELECT url, caption FROM laion ORDER BY cosineDistance(image_embedding, {target:
Поиск по векторному сходству с использованием векторного индекса сходства может возвращать результаты, которые немного отличаются от результатов поиска полным перебором.
Индекс HNSW при тщательном подборе его параметров и оценке качества индекса потенциально может обеспечивать полноту, близкую к 1 (ту же точность, что и поиск полным перебором).
-
## Создание эмбеддингов с помощью UDF {#creating-embeddings-with-udfs}
Обычно требуется создавать эмбеддинги для новых изображений или новых подписей к изображениям и искать в данных похожие пары «изображение — подпись к изображению». Мы можем использовать [UDF](/sql-reference/functions/udf), чтобы создать вектор `target`, не выходя за пределы клиентского приложения. Важно использовать одну и ту же модель и для исходных данных, и для новых эмбеддингов при выполнении поисковых запросов. В следующих скриптах используется модель `ViT-B/32`, которая также лежит в основе набора данных.
@@ -255,7 +250,6 @@ LIMIT 10
Обратите внимание, что сам UDF `encode_text()` может занимать несколько секунд на вычисление и выдачу векторного представления (эмбеддинга).
-
### Векторные представления изображений {#image-embeddings}
Векторные представления изображений можно создать аналогичным образом; для этого мы предоставляем сценарий на Python, который генерирует векторное представление изображения, сохранённого локально в файле.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/menus.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/menus.md
index 2a720e37590..98d404b0441 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/menus.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/menus.md
@@ -30,7 +30,6 @@ md5sum 2021_08_01_07_01_17_data.tgz
При необходимости замените ссылку на актуальную с [http://menus.nypl.org/data](http://menus.nypl.org/data).
Размер загрузки составляет около 35 МБ.
-
## Распакуйте датасет {#unpack-dataset}
```bash
@@ -46,7 +45,6 @@ tar xvf 2021_08_01_07_01_17_data.tgz
* `MenuPage` — Информация о страницах в меню, поскольку каждая страница относится к какому‑то меню.
* `MenuItem` — Позиция меню. Блюдо вместе с его ценой на определённой странице меню: ссылки на блюдо и страницу меню.
-
## Создайте таблицы {#create-tables}
Для хранения цен мы используем тип данных [Decimal](../../sql-reference/data-types/decimal.md).
@@ -114,7 +112,6 @@ CREATE TABLE menu_item
) ENGINE = MergeTree ORDER BY id;
```
-
## Импортируйте данные {#import-data}
Чтобы загрузить данные в ClickHouse, выполните следующую команду:
@@ -134,7 +131,6 @@ clickhouse-client --format_csv_allow_single_quotes 0 --input_format_null_as_defa
Настройка [date_time_input_format best_effort](/operations/settings/formats#date_time_input_format) позволяет разбирать поля [DateTime](../../sql-reference/data-types/datetime.md) в широком диапазоне форматов. Например, будет распознан формат ISO-8601 без секунд, такой как '2000-01-01 01:02'. Без этой настройки разрешён только фиксированный формат DateTime.
-
## Денормализация данных {#denormalize-data}
Данные представлены в нескольких таблицах в [нормализованной форме](https://en.wikipedia.org/wiki/Database_normalization#Normal_forms). Это означает, что вам нужно выполнять [JOIN](/sql-reference/statements/select/join), если вы хотите, например, получить названия блюд из пунктов меню.
@@ -187,7 +183,6 @@ FROM menu_item
JOIN menu ON menu_page.menu_id = menu.id;
```
-
## Проверьте данные {#validate-data}
Запрос:
@@ -204,7 +199,6 @@ SELECT count() FROM menu_item_denorm;
└─────────┘
```
-
## Выполните несколько запросов {#run-queries}
### Средние исторические цены на блюда {#query-averaged-historical-prices}
@@ -249,7 +243,6 @@ ORDER BY d ASC;
Не воспринимайте это слишком всерьёз.
-
### Цены на бургеры {#query-burger-prices}
Запрос:
@@ -287,7 +280,6 @@ ORDER BY d ASC;
└──────┴─────────┴──────────────────────┴───────────────────────────────────────┘
```
-
### Водка {#query-vodka}
Запрос:
@@ -322,7 +314,6 @@ ORDER BY d ASC;
Чтобы получить «водку», нам нужно написать `ILIKE '%vodka%'`, и это, мягко говоря, звучит многозначительно.
-
### Икра {#query-caviar}
Выведем цены на икру, а также название любого блюда с икрой.
@@ -366,7 +357,6 @@ ORDER BY d ASC;
Зато у них хотя бы есть икра с водкой. Очень неплохо.
-
## Онлайн-песочница {#playground}
Данные загружаются в ClickHouse Playground, см. [пример](https://sql.clickhouse.com?query_id=KB5KQJJFNBKHE5GBUJCP1B).
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/noaa.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/noaa.md
index 816e4a6af05..02d02561537 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/noaa.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/noaa.md
@@ -50,7 +50,6 @@ keywords: ['пример набора данных', 'noaa', 'погодные
wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/noaa/noaa_enriched.parquet
```
-
### Исходные данные {#original-data}
Ниже приведены шаги по скачиванию и преобразованию исходных данных перед их загрузкой в ClickHouse.
@@ -63,7 +62,6 @@ wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/noaa/noaa_enriche
for i in {1900..2023}; do wget https://noaa-ghcn-pds.s3.amazonaws.com/csv.gz/${i}.csv.gz; done
```
-
#### Сэмплирование данных {#sampling-the-data}
```bash
@@ -86,7 +84,6 @@ $ clickhouse-local --query "SELECT * FROM '2021.csv.gz' LIMIT 10" --format Prett
Подытожим документацию по формату и столбцы по порядку:
-
- 11-символьный код идентификации станции. Сам по себе он кодирует некоторую полезную информацию
- YEAR/MONTH/DAY = 8-символьная дата в формате YYYYMMDD (например, 19860529 = 29 мая 1986 г.)
- ELEMENT = 4-символьный индикатор типа элемента, фактически тип измерения. Хотя доступно много типов измерений, мы выбираем следующие:
@@ -121,7 +118,6 @@ FROM file('*.csv.gz', CSV, 'station_id String, date String, measurement String,
При объёме более 2,6 миллиарда строк этот запрос получается не очень быстрым, так как нужно разобрать все файлы. На нашей машине с 8 ядрами это занимает около 160 секунд.
-
### Преобразование данных (pivot) {#pivot-data}
Хотя структуру «одно измерение на строку» можно использовать с ClickHouse, она будет излишне усложнять будущие запросы. В идеале нам нужна одна строка по идентификатору станции и дате, где каждый тип измерения и соответствующее ему значение представлены отдельным столбцом, т. е.
@@ -160,7 +156,6 @@ done
Этот запрос создаёт один файл `noaa.csv` размером 50 ГБ.
-
### Обогащение данных {#enriching-the-data}
В данных нет информации о местоположении, кроме идентификатора станции, который включает префикс с кодом страны. В идеале у каждой станции должны быть указаны широта и долгота. Для этого NOAA предоставляет сведения о каждой станции в отдельном файле [ghcnd-stations.txt](https://github.com/awslabs/open-data-docs/tree/main/docs/noaa/noaa-ghcn#format-of-ghcnd-stationstxt-file). Этот файл содержит [несколько столбцов](https://github.com/awslabs/open-data-docs/tree/main/docs/noaa/noaa-ghcn#format-of-ghcnd-stationstxt-file), из которых пять пригодятся для нашего дальнейшего анализа: id, latitude, longitude, elevation и name.
@@ -193,7 +188,6 @@ FROM file('noaa.csv', CSV,
Этот запрос выполняется в течение нескольких минут и создаёт файл размером 6,4 ГБ, `noaa_enriched.parquet`.
-
## Создание таблицы {#create-table}
Создайте таблицу MergeTree в ClickHouse (в клиенте ClickHouse).
@@ -220,7 +214,6 @@ CREATE TABLE noaa
```
-
## Добавление данных в ClickHouse {#inserting-into-clickhouse}
### Вставка из локального файла {#inserting-from-local-file}
@@ -235,7 +228,6 @@ INSERT INTO noaa FROM INFILE '<путь>/noaa_enriched.parquet'
См. [здесь](https://clickhouse.com/blog/real-world-data-noaa-climate-data#load-the-data), чтобы узнать, как ускорить загрузку данных.
-
### Вставка из S3 {#inserting-from-s3}
```sql
@@ -246,7 +238,6 @@ FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/noaa/noaa_enr
Подробные рекомендации по ускорению этого процесса см. в нашей статье в блоге о [настройке загрузки больших объёмов данных](https://clickhouse.com/blog/supercharge-your-clickhouse-data-loads-part2).
-
## Примеры запросов {#sample-queries}
### Максимальная температура за всё время {#highest-temperature-ever}
@@ -277,7 +268,6 @@ LIMIT 5
Обнадеживающе соответствует [задокументированному рекорду](https://en.wikipedia.org/wiki/List_of_weather_records#Highest_temperatures_ever_recorded) в [Furnace Creek](https://www.google.com/maps/place/36%C2%B027'00.0%22N+116%C2%B052'00.1%22W/@36.1329666,-116.1104099,8.95z/data=!4m5!3m4!1s0x0:0xf2ed901b860f4446!8m2!3d36.45!4d-116.8667) по состоянию на 2023 год.
-
### Лучшие горнолыжные курорты {#best-ski-resorts}
Используя [список горнолыжных курортов](https://gist.githubusercontent.com/gingerwizard/dd022f754fd128fdaf270e58fa052e35/raw/622e03c37460f17ef72907afe554cb1c07f91f23/ski_resort_stats.csv) в США и их координаты, мы объединяем его с топ-1000 метеостанций с наибольшими снегопадами в любой месяц за последние 5 лет. Отсортировав результат этого объединения по [geoDistance](/sql-reference/functions/geo/coordinates/#geodistance) и ограничив выборку расстоянием менее 20 км, мы выбираем лучший результат для каждого курорта и затем сортируем полученный список по суммарному количеству снега. Обратите внимание, что мы также ограничиваем выборку курортами, расположенными выше 1800 м, как общим индикатором хороших условий для катания.
@@ -347,7 +337,6 @@ LIMIT 5
Пиковое использование памяти: 67.66 МиБ.
```
-
## Благодарности {#credits}
Мы хотели бы отметить вклад Global Historical Climatology Network в подготовку, очистку и распространение этих данных. Мы благодарим их за проделанную работу.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/nyc-taxi.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/nyc-taxi.md
index 0dafaa6a050..816bad86c76 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/nyc-taxi.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/nyc-taxi.md
@@ -23,7 +23,6 @@ import TabItem from '@theme/TabItem';
[«Характеристики Playground»](/getting-started/playground#specifications).
:::
-
## Создайте таблицу trips {#create-the-table-trips}
Сначала создайте таблицу для поездок на такси:
@@ -55,7 +54,6 @@ ENGINE = MergeTree
PRIMARY KEY (pickup_datetime, dropoff_datetime);
```
-
## Загрузка данных напрямую из объектного хранилища {#load-the-data-directly-from-object-storage}
Вы можете взять небольшой поднабор данных (3 миллиона строк), чтобы познакомиться с ним. Данные хранятся в TSV-файлах в объектном хранилище, откуда их можно легко потоково загрузить в
@@ -182,7 +180,6 @@ GROUP BY passenger_count
ORDER BY passenger_count ASC
```
-
## Скачивание подготовленных партиций {#download-of-prepared-partitions}
:::note
@@ -209,7 +206,6 @@ $ clickhouse-client --query "select count(*) from datasets.trips_mergetree"
Если вы собираетесь выполнять запросы, описанные ниже, вы должны использовать полное имя таблицы — `datasets.trips_mergetree`.
:::
-
## Результаты на одном сервере {#results-on-single-server}
Q1:
@@ -257,7 +253,6 @@ ORDER BY year, count(*) DESC;
На каждом сервере:
-
```sql
CREATE TABLE default.trips_mergetree_third ( trip_id UInt32, vendor_id Enum8('1' = 1, '2' = 2, 'CMT' = 3, 'VTS' = 4, 'DDS' = 5, 'B02512' = 10, 'B02598' = 11, 'B02617' = 12, 'B02682' = 13, 'B02764' = 14), pickup_date Date, pickup_datetime DateTime, dropoff_date Date, dropoff_datetime DateTime, store_and_fwd_flag UInt8, rate_code_id UInt8, pickup_longitude Float64, pickup_latitude Float64, dropoff_longitude Float64, dropoff_latitude Float64, passenger_count UInt8, trip_distance Float64, fare_amount Float32, extra Float32, mta_tax Float32, tip_amount Float32, tolls_amount Float32, ehail_fee Float32, improvement_surcharge Float32, total_amount Float32, payment_type_ Enum8('UNK' = 0, 'CSH' = 1, 'CRE' = 2, 'NOC' = 3, 'DIS' = 4), trip_type UInt8, pickup FixedString(25), dropoff FixedString(25), cab_type Enum8('yellow' = 1, 'green' = 2, 'uber' = 3), pickup_nyct2010_gid UInt8, pickup_ctlabel Float32, pickup_borocode UInt8, pickup_boroname Enum8('' = 0, 'Manhattan' = 1, 'Bronx' = 2, 'Brooklyn' = 3, 'Queens' = 4, 'Staten Island' = 5), pickup_ct2010 FixedString(6), pickup_boroct2010 FixedString(7), pickup_cdeligibil Enum8(' ' = 0, 'E' = 1, 'I' = 2), pickup_ntacode FixedString(4), pickup_ntaname Enum16('' = 0, 'Airport' = 1, 'Allerton-Pelham Gardens' = 2, 'Annadale-Huguenot-Prince\'s Bay-Eltingville' = 3, 'Arden Heights' = 4, 'Astoria' = 5, 'Auburndale' = 6, 'Baisley Park' = 7, 'Bath Beach' = 8, 'Battery Park City-Lower Manhattan' = 9, 'Bay Ridge' = 10, 'Bayside-Bayside Hills' = 11, 'Bedford' = 12, 'Bedford Park-Fordham North' = 13, 'Bellerose' = 14, 'Belmont' = 15, 'Bensonhurst East' = 16, 'Bensonhurst West' = 17, 'Borough Park' = 18, 'Breezy Point-Belle Harbor-Rockaway Park-Broad Channel' = 19, 'Briarwood-Jamaica Hills' = 20, 'Brighton Beach' = 21, 'Bronxdale' = 22, 'Brooklyn Heights-Cobble Hill' = 23, 'Brownsville' = 24, 'Bushwick North' = 25, 'Bushwick South' = 26, 'Cambria Heights' = 27, 'Canarsie' = 28, 'Carroll Gardens-Columbia Street-Red Hook' = 29, 'Central Harlem North-Polo Grounds' = 30, 'Central Harlem South' = 31, 'Charleston-Richmond Valley-Tottenville' = 32, 'Chinatown' = 33, 'Claremont-Bathgate' = 34, 'Clinton' = 35, 'Clinton Hill' = 36, 'Co-op City' = 37, 'College Point' = 38, 'Corona' = 39, 'Crotona Park East' = 40, 'Crown Heights North' = 41, 'Crown Heights South' = 42, 'Cypress Hills-City Line' = 43, 'DUMBO-Vinegar Hill-Downtown Brooklyn-Boerum Hill' = 44, 'Douglas Manor-Douglaston-Little Neck' = 45, 'Dyker Heights' = 46, 'East Concourse-Concourse Village' = 47, 'East Elmhurst' = 48, 'East Flatbush-Farragut' = 49, 'East Flushing' = 50, 'East Harlem North' = 51, 'East Harlem South' = 52, 'East New York' = 53, 'East New York (Pennsylvania Ave)' = 54, 'East Tremont' = 55, 'East Village' = 56, 'East Williamsburg' = 57, 'Eastchester-Edenwald-Baychester' = 58, 'Elmhurst' = 59, 'Elmhurst-Maspeth' = 60, 'Erasmus' = 61, 'Far Rockaway-Bayswater' = 62, 'Flatbush' = 63, 'Flatlands' = 64, 'Flushing' = 65, 'Fordham South' = 66, 'Forest Hills' = 67, 'Fort Greene' = 68, 'Fresh Meadows-Utopia' = 69, 'Ft. Totten-Bay Terrace-Clearview' = 70, 'Georgetown-Marine Park-Bergen Beach-Mill Basin' = 71, 'Glen Oaks-Floral Park-New Hyde Park' = 72, 'Glendale' = 73, 'Gramercy' = 74, 'Grasmere-Arrochar-Ft. Wadsworth' = 75, 'Gravesend' = 76, 'Great Kills' = 77, 'Greenpoint' = 78, 'Grymes Hill-Clifton-Fox Hills' = 79, 'Hamilton Heights' = 80, 'Hammels-Arverne-Edgemere' = 81, 'Highbridge' = 82, 'Hollis' = 83, 'Homecrest' = 84, 'Hudson Yards-Chelsea-Flatiron-Union Square' = 85, 'Hunters Point-Sunnyside-West Maspeth' = 86, 'Hunts Point' = 87, 'Jackson Heights' = 88, 'Jamaica' = 89, 'Jamaica Estates-Holliswood' = 90, 'Kensington-Ocean Parkway' = 91, 'Kew Gardens' = 92, 'Kew Gardens Hills' = 93, 'Kingsbridge Heights' = 94, 'Laurelton' = 95, 'Lenox Hill-Roosevelt Island' = 96, 'Lincoln Square' = 97, 'Lindenwood-Howard Beach' = 98, 'Longwood' = 99, 'Lower East Side' = 100, 'Madison' = 101, 'Manhattanville' = 102, 'Marble Hill-Inwood' = 103, 'Mariner\'s Harbor-Arlington-Port Ivory-Graniteville' = 104, 'Maspeth' = 105, 'Melrose South-Mott Haven North' = 106, 'Middle Village' = 107, 'Midtown-Midtown South' = 108, 'Midwood' = 109, 'Morningside Heights' = 110, 'Morrisania-Melrose' = 111, 'Mott Haven-Port Morris' = 112, 'Mount Hope' = 113, 'Murray Hill' = 114, 'Murray Hill-Kips Bay' = 115, 'New Brighton-Silver Lake' = 116, 'New Dorp-Midland Beach' = 117, 'New Springville-Bloomfield-Travis' = 118, 'North Corona' = 119, 'North Riverdale-Fieldston-Riverdale' = 120, 'North Side-South Side' = 121, 'Norwood' = 122, 'Oakland Gardens' = 123, 'Oakwood-Oakwood Beach' = 124, 'Ocean Hill' = 125, 'Ocean Parkway South' = 126, 'Old Astoria' = 127, 'Old Town-Dongan Hills-South Beach' = 128, 'Ozone Park' = 129, 'Park Slope-Gowanus' = 130, 'Parkchester' = 131, 'Pelham Bay-Country Club-City Island' = 132, 'Pelham Parkway' = 133, 'Pomonok-Flushing Heights-Hillcrest' = 134, 'Port Richmond' = 135, 'Prospect Heights' = 136, 'Prospect Lefferts Gardens-Wingate' = 137, 'Queens Village' = 138, 'Queensboro Hill' = 139, 'Queensbridge-Ravenswood-Long Island City' = 140, 'Rego Park' = 141, 'Richmond Hill' = 142, 'Ridgewood' = 143, 'Rikers Island' = 144, 'Rosedale' = 145, 'Rossville-Woodrow' = 146, 'Rugby-Remsen Village' = 147, 'Schuylerville-Throgs Neck-Edgewater Park' = 148, 'Seagate-Coney Island' = 149, 'Sheepshead Bay-Gerritsen Beach-Manhattan Beach' = 150, 'SoHo-TriBeCa-Civic Center-Little Italy' = 151, 'Soundview-Bruckner' = 152, 'Soundview-Castle Hill-Clason Point-Harding Park' = 153, 'South Jamaica' = 154, 'South Ozone Park' = 155, 'Springfield Gardens North' = 156, 'Springfield Gardens South-Brookville' = 157, 'Spuyten Duyvil-Kingsbridge' = 158, 'St. Albans' = 159, 'Stapleton-Rosebank' = 160, 'Starrett City' = 161, 'Steinway' = 162, 'Stuyvesant Heights' = 163, 'Stuyvesant Town-Cooper Village' = 164, 'Sunset Park East' = 165, 'Sunset Park West' = 166, 'Todt Hill-Emerson Hill-Heartland Village-Lighthouse Hill' = 167, 'Turtle Bay-East Midtown' = 168, 'University Heights-Morris Heights' = 169, 'Upper East Side-Carnegie Hill' = 170, 'Upper West Side' = 171, 'Van Cortlandt Village' = 172, 'Van Nest-Morris Park-Westchester Square' = 173, 'Washington Heights North' = 174, 'Washington Heights South' = 175, 'West Brighton' = 176, 'West Concourse' = 177, 'West Farms-Bronx River' = 178, 'West New Brighton-New Brighton-St. George' = 179, 'West Village' = 180, 'Westchester-Unionport' = 181, 'Westerleigh' = 182, 'Whitestone' = 183, 'Williamsbridge-Olinville' = 184, 'Williamsburg' = 185, 'Windsor Terrace' = 186, 'Woodhaven' = 187, 'Woodlawn-Wakefield' = 188, 'Woodside' = 189, 'Yorkville' = 190, 'park-cemetery-etc-Bronx' = 191, 'park-cemetery-etc-Brooklyn' = 192, 'park-cemetery-etc-Manhattan' = 193, 'park-cemetery-etc-Queens' = 194, 'park-cemetery-etc-Staten Island' = 195), pickup_puma UInt16, dropoff_nyct2010_gid UInt8, dropoff_ctlabel Float32, dropoff_borocode UInt8, dropoff_boroname Enum8('' = 0, 'Manhattan' = 1, 'Bronx' = 2, 'Brooklyn' = 3, 'Queens' = 4, 'Staten Island' = 5), dropoff_ct2010 FixedString(6), dropoff_boroct2010 FixedString(7), dropoff_cdeligibil Enum8(' ' = 0, 'E' = 1, 'I' = 2), dropoff_ntacode FixedString(4), dropoff_ntaname Enum16('' = 0, 'Airport' = 1, 'Allerton-Pelham Gardens' = 2, 'Annadale-Huguenot-Prince\'s Bay-Eltingville' = 3, 'Arden Heights' = 4, 'Astoria' = 5, 'Auburndale' = 6, 'Baisley Park' = 7, 'Bath Beach' = 8, 'Battery Park City-Lower Manhattan' = 9, 'Bay Ridge' = 10, 'Bayside-Bayside Hills' = 11, 'Bedford' = 12, 'Bedford Park-Fordham North' = 13, 'Bellerose' = 14, 'Belmont' = 15, 'Bensonhurst East' = 16, 'Bensonhurst West' = 17, 'Borough Park' = 18, 'Breezy Point-Belle Harbor-Rockaway Park-Broad Channel' = 19, 'Briarwood-Jamaica Hills' = 20, 'Brighton Beach' = 21, 'Bronxdale' = 22, 'Brooklyn Heights-Cobble Hill' = 23, 'Brownsville' = 24, 'Bushwick North' = 25, 'Bushwick South' = 26, 'Cambria Heights' = 27, 'Canarsie' = 28, 'Carroll Gardens-Columbia Street-Red Hook' = 29, 'Central Harlem North-Polo Grounds' = 30, 'Central Harlem South' = 31, 'Charleston-Richmond Valley-Tottenville' = 32, 'Chinatown' = 33, 'Claremont-Bathgate' = 34, 'Clinton' = 35, 'Clinton Hill' = 36, 'Co-op City' = 37, 'College Point' = 38, 'Corona' = 39, 'Crotona Park East' = 40, 'Crown Heights North' = 41, 'Crown Heights South' = 42, 'Cypress Hills-City Line' = 43, 'DUMBO-Vinegar Hill-Downtown Brooklyn-Boerum Hill' = 44, 'Douglas Manor-Douglaston-Little Neck' = 45, 'Dyker Heights' = 46, 'East Concourse-Concourse Village' = 47, 'East Elmhurst' = 48, 'East Flatbush-Farragut' = 49, 'East Flushing' = 50, 'East Harlem North' = 51, 'East Harlem South' = 52, 'East New York' = 53, 'East New York (Pennsylvania Ave)' = 54, 'East Tremont' = 55, 'East Village' = 56, 'East Williamsburg' = 57, 'Eastchester-Edenwald-Baychester' = 58, 'Elmhurst' = 59, 'Elmhurst-Maspeth' = 60, 'Erasmus' = 61, 'Far Rockaway-Bayswater' = 62, 'Flatbush' = 63, 'Flatlands' = 64, 'Flushing' = 65, 'Fordham South' = 66, 'Forest Hills' = 67, 'Fort Greene' = 68, 'Fresh Meadows-Utopia' = 69, 'Ft. Totten-Bay Terrace-Clearview' = 70, 'Georgetown-Marine Park-Bergen Beach-Mill Basin' = 71, 'Glen Oaks-Floral Park-New Hyde Park' = 72, 'Glendale' = 73, 'Gramercy' = 74, 'Grasmere-Arrochar-Ft. Wadsworth' = 75, 'Gravesend' = 76, 'Great Kills' = 77, 'Greenpoint' = 78, 'Grymes Hill-Clifton-Fox Hills' = 79, 'Hamilton Heights' = 80, 'Hammels-Arverne-Edgemere' = 81, 'Highbridge' = 82, 'Hollis' = 83, 'Homecrest' = 84, 'Hudson Yards-Chelsea-Flatiron-Union Square' = 85, 'Hunters Point-Sunnyside-West Maspeth' = 86, 'Hunts Point' = 87, 'Jackson Heights' = 88, 'Jamaica' = 89, 'Jamaica Estates-Holliswood' = 90, 'Kensington-Ocean Parkway' = 91, 'Kew Gardens' = 92, 'Kew Gardens Hills' = 93, 'Kingsbridge Heights' = 94, 'Laurelton' = 95, 'Lenox Hill-Roosevelt Island' = 96, 'Lincoln Square' = 97, 'Lindenwood-Howard Beach' = 98, 'Longwood' = 99, 'Lower East Side' = 100, 'Madison' = 101, 'Manhattanville' = 102, 'Marble Hill-Inwood' = 103, 'Mariner\'s Harbor-Arlington-Port Ivory-Graniteville' = 104, 'Maspeth' = 105, 'Melrose South-Mott Haven North' = 106, 'Middle Village' = 107, 'Midtown-Midtown South' = 108, 'Midwood' = 109, 'Morningside Heights' = 110, 'Morrisania-Melrose' = 111, 'Mott Haven-Port Morris' = 112, 'Mount Hope' = 113, 'Murray Hill' = 114, 'Murray Hill-Kips Bay' = 115, 'New Brighton-Silver Lake' = 116, 'New Dorp-Midland Beach' = 117, 'New Springville-Bloomfield-Travis' = 118, 'North Corona' = 119, 'North Riverdale-Fieldston-Riverdale' = 120, 'North Side-South Side' = 121, 'Norwood' = 122, 'Oakland Gardens' = 123, 'Oakwood-Oakwood Beach' = 124, 'Ocean Hill' = 125, 'Ocean Parkway South' = 126, 'Old Astoria' = 127, 'Old Town-Dongan Hills-South Beach' = 128, 'Ozone Park' = 129, 'Park Slope-Gowanus' = 130, 'Parkchester' = 131, 'Pelham Bay-Country Club-City Island' = 132, 'Pelham Parkway' = 133, 'Pomonok-Flushing Heights-Hillcrest' = 134, 'Port Richmond' = 135, 'Prospect Heights' = 136, 'Prospect Lefferts Gardens-Wingate' = 137, 'Queens Village' = 138, 'Queensboro Hill' = 139, 'Queensbridge-Ravenswood-Long Island City' = 140, 'Rego Park' = 141, 'Richmond Hill' = 142, 'Ridgewood' = 143, 'Rikers Island' = 144, 'Rosedale' = 145, 'Rossville-Woodrow' = 146, 'Rugby-Remsen Village' = 147, 'Schuylerville-Throgs Neck-Edgewater Park' = 148, 'Seagate-Coney Island' = 149, 'Sheepshead Bay-Gerritsen Beach-Manhattan Beach' = 150, 'SoHo-TriBeCa-Civic Center-Little Italy' = 151, 'Soundview-Bruckner' = 152, 'Soundview-Castle Hill-Clason Point-Harding Park' = 153, 'South Jamaica' = 154, 'South Ozone Park' = 155, 'Springfield Gardens North' = 156, 'Springfield Gardens South-Brookville' = 157, 'Spuyten Duyvil-Kingsbridge' = 158, 'St. Albans' = 159, 'Stapleton-Rosebank' = 160, 'Starrett City' = 161, 'Steinway' = 162, 'Stuyvesant Heights' = 163, 'Stuyvesant Town-Cooper Village' = 164, 'Sunset Park East' = 165, 'Sunset Park West' = 166, 'Todt Hill-Emerson Hill-Heartland Village-Lighthouse Hill' = 167, 'Turtle Bay-East Midtown' = 168, 'University Heights-Morris Heights' = 169, 'Upper East Side-Carnegie Hill' = 170, 'Upper West Side' = 171, 'Van Cortlandt Village' = 172, 'Van Nest-Morris Park-Westchester Square' = 173, 'Washington Heights North' = 174, 'Washington Heights South' = 175, 'West Brighton' = 176, 'West Concourse' = 177, 'West Farms-Bronx River' = 178, 'West New Brighton-New Brighton-St. George' = 179, 'West Village' = 180, 'Westchester-Unionport' = 181, 'Westerleigh' = 182, 'Whitestone' = 183, 'Williamsbridge-Olinville' = 184, 'Williamsburg' = 185, 'Windsor Terrace' = 186, 'Woodhaven' = 187, 'Woodlawn-Wakefield' = 188, 'Woodside' = 189, 'Yorkville' = 190, 'park-cemetery-etc-Bronx' = 191, 'park-cemetery-etc-Brooklyn' = 192, 'park-cemetery-etc-Manhattan' = 193, 'park-cemetery-etc-Queens' = 194, 'park-cemetery-etc-Staten Island' = 195), dropoff_puma UInt16) ENGINE = MergeTree(pickup_date, pickup_datetime, 8192);
```
@@ -295,7 +290,6 @@ Q4: 0.072 сек.
В этом случае время обработки запросов определяется прежде всего сетевыми задержками.
Мы выполняли запросы с клиента, расположенного в другом дата-центре, чем кластер, что добавило порядка 20 мс задержки.
-
## Сводка {#summary}
| серверы | Q1 | Q2 | Q3 | Q4 |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/nypd_complaint_data.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/nypd_complaint_data.md
index 89f81878b6e..12976e333aa 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/nypd_complaint_data.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/nypd_complaint_data.md
@@ -119,7 +119,6 @@ New Georeferenced Column Nullable(String)
На этом этапе вам следует проверить, что столбцы в TSV‑файле совпадают по названиям и типам с указанными в разделе **Columns in this Dataset** на [веб‑странице набора данных](https://data.cityofnewyork.us/Public-Safety/NYPD-Complaint-Data-Current-Year-To-Date-/5uac-w243). Типы данных заданы не очень строго: все числовые поля имеют тип `Nullable(Float64)`, а все остальные поля — `Nullable(String)`. При создании таблицы ClickHouse для хранения этих данных вы можете задать более подходящие и эффективные типы.
-
### Определите подходящую схему {#determine-the-proper-schema}
Чтобы определить, какие типы следует использовать для полей, необходимо понимать, как выглядят данные. Например, поле `JURISDICTION_CODE` представляет собой числовое значение: должно ли оно иметь тип `UInt8`, `Enum` или подойдет `Float64`?
@@ -210,7 +209,6 @@ clickhouse-local --input_format_max_rows_to_read_for_schema_inference=2000 \
В используемом на момент написания наборе данных всего несколько сотен уникальных парков и игровых площадок в столбце `PARK_NM`. Это небольшое количество и оно укладывается в рекомендацию для [LowCardinality](/sql-reference/data-types/lowcardinality#description) — не превышать 10 000 различных строк в поле типа `LowCardinality(String)`.
-
### Поля DateTime {#datetime-fields}
Согласно разделу **Columns in this Dataset** на [веб‑странице набора данных](https://data.cityofnewyork.us/Public-Safety/NYPD-Complaint-Data-Current-Year-To-Date-/5uac-w243), в этом наборе данных есть поля даты и времени для начала и окончания зарегистрированного события. Анализ минимальных и максимальных значений полей `CMPLNT_FR_DT` и `CMPLT_TO_DT` позволяет понять, всегда ли эти поля заполняются:
@@ -279,7 +277,6 @@ FORMAT PrettyCompact"
└───────────────────┴───────────────────┘
```
-
## Составьте план {#make-a-plan}
Основываясь на вышеописанном анализе:
@@ -328,7 +325,6 @@ FORMAT PrettyCompact"
└─────────────────────┘
```
-
## Преобразование строкового значения даты и времени в тип DateTime64 {#convert-the-date-and-time-string-to-a-datetime64-type}
Ранее в этом руководстве мы обнаружили, что в TSV-файле есть даты до 1 января 1970 года, что означает, что нам нужен 64-битный тип DateTime64 для хранения дат. Даты также нужно преобразовать из формата `MM/DD/YYYY` в формат `YYYY/MM/DD`. Оба этих действия можно выполнить с помощью функции [`parseDateTime64BestEffort()`](../../sql-reference/functions/type-conversion-functions.md#parsedatetime64besteffort).
@@ -350,7 +346,6 @@ FORMAT PrettyCompact"
Результат:
-
```response
┌─────────complaint_begin─┬───────────complaint_end─┐
│ 1925-01-01 10:00:00.000 │ 2021-02-12 09:30:00.000 │
@@ -385,7 +380,6 @@ FORMAT PrettyCompact"
Даты, показанные выше как `1925`, являются результатом ошибок в данных. В исходных данных есть несколько записей с датами в годах `1019`–`1022`, которые на самом деле должны быть `2019`–`2022`. Они сохраняются как 1 января 1925 года, так как это самая ранняя дата, поддерживаемая 64-битным `DateTime`.
:::
-
## Создание таблицы {#create-a-table}
Принятые выше решения относительно типов данных, используемых для столбцов, отражены в приведённой ниже схеме таблицы. Нам также необходимо определить `ORDER BY` и `PRIMARY KEY`, которые будут использоваться в таблице. Должен быть указан как минимум один из `ORDER BY` или `PRIMARY KEY`. Ниже приведены некоторые рекомендации по выбору столбцов для включения в `ORDER BY`; дополнительная информация приведена в разделе *Next Steps* в конце этого документа.
@@ -485,7 +479,6 @@ CREATE TABLE NYPD_Complaint (
ORDER BY ( borough, offense_description, date_reported )
```
-
### Поиск первичного ключа таблицы {#finding-the-primary-key-of-a-table}
Системная база данных ClickHouse `system`, в частности таблица `system.table`, содержит всю информацию о таблице, которую вы только что создали. Этот запрос показывает `ORDER BY` (ключ сортировки) и `PRIMARY KEY`:
@@ -516,7 +509,6 @@ table: NYPD_Complaint
1 строка. Затрачено: 0.001 сек.
```
-
## Предварительная обработка и импорт данных {#preprocess-import-data}
Используем утилиту `clickhouse-local` для предварительной обработки данных и `clickhouse-client` для их загрузки.
@@ -571,7 +563,6 @@ cat ${HOME}/NYPD_Complaint_Data_Current__Year_To_Date_.tsv \
| clickhouse-client --query='INSERT INTO NYPD_Complaint FORMAT TSV'
```
-
## Проверка данных {#validate-data}
:::note
@@ -613,7 +604,6 @@ WHERE name = 'NYPD_Complaint'
└─────────────────────────────────┘
```
-
## Выполните несколько запросов {#run-queries}
### Запрос 1. Сравнение количества жалоб по месяцам {#query-1-compare-the-number-of-complaints-by-month}
@@ -653,7 +643,6 @@ Query id: 7fbd4244-b32a-4acf-b1f3-c3aa198e74d9
Получено 12 строк. Прошло: 0.006 сек. Обработано 208.99 тыс. строк, 417.99 КБ (37.48 млн строк/с., 74.96 МБ/с.)
```
-
### Запрос 2. Сравнение общего числа жалоб по районам {#query-2-compare-total-number-of-complaints-by-borough}
Запрос:
@@ -685,7 +674,6 @@ Query id: 8cdcdfd4-908f-4be0-99e3-265722a2ab8d
6 строк в наборе. Затрачено: 0.008 сек. Обработано 208.99 тыс. строк, 209.43 КБ (27.14 млн. строк/сек., 27.20 МБ/сек.)
```
-
## Дальнейшие шаги {#next-steps}
[A Practical Introduction to Sparse Primary Indexes in ClickHouse](/guides/best-practices/sparse-primary-indexes.md) рассматривает, чем индексирование в ClickHouse отличается от традиционных реляционных баз данных, как ClickHouse строит и использует разреженный первичный индекс, а также лучшие практики индексирования.
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/ontime.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/ontime.md
index 13c6e0c4de2..ca830463ef2 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/ontime.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/ontime.md
@@ -143,7 +143,6 @@ ls -1 *.zip | xargs -I{} -P $(nproc) bash -c "echo {}; unzip -cq {} '*.csv' | se
(если на вашем сервере будет нехватка памяти или возникнут другие проблемы, удалите флаг `-P $(nproc)`)
-
## Импорт из сохранённой копии {#import-from-a-saved-copy}
Также вы можете импортировать данные из сохранённой копии с помощью следующего запроса:
@@ -154,7 +153,6 @@ INSERT INTO ontime SELECT * FROM s3('https://clickhouse-public-datasets.s3.amazo
Снимок был создан 29.05.2022.
-
## Запросы {#queries}
Q0.
@@ -335,7 +333,6 @@ GROUP BY Year;
Q10.
-
```sql
SELECT
min(Year), max(Year), IATA_CODE_Reporting_Airline AS Carrier, count(*) AS cnt,
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/stackoverflow.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/stackoverflow.md
index 55aa0bcb402..f03ce94e514 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/stackoverflow.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/stackoverflow.md
@@ -21,7 +21,6 @@ import stackoverflow from '@site/static/images/getting-started/example-datasets/
Описание схемы этих данных можно найти [здесь](https://meta.stackexchange.com/questions/2677/database-schema-documentation-for-the-public-data-dump-and-sede).
-
## Заранее подготовленные данные {#pre-prepared-data}
Мы предоставляем копию этих данных в формате Parquet, актуальную по состоянию на апрель 2024 года. Хотя этот набор данных и невелик для ClickHouse с точки зрения количества строк (60 миллионов постов), он содержит значительные объемы текста и большие столбцы строкового типа (String).
@@ -32,7 +31,6 @@ CREATE DATABASE stackoverflow
Приведённые ниже замеры времени относятся к кластеру ClickHouse Cloud с 96 GiB памяти и 24 vCPU, расположенному в регионе `eu-west-2`. Набор данных находится в регионе `eu-west-3`.
-
### Публикации {#posts}
```sql
@@ -72,7 +70,6 @@ INSERT INTO stackoverflow.posts SELECT * FROM s3('https://datasets-documentation
Публикации также доступны по годам, например, по адресу [https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/posts/2020.parquet](https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/posts/2020.parquet)
-
### Голоса {#votes}
```sql
@@ -95,7 +92,6 @@ INSERT INTO stackoverflow.votes SELECT * FROM s3('https://datasets-documentation
Голоса также доступны по годам, например, по адресу [https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/posts/2020.parquet](https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/votes/2020.parquet)
-
### Комментарии {#comments}
```sql
@@ -119,7 +115,6 @@ INSERT INTO stackoverflow.comments SELECT * FROM s3('https://datasets-documentat
Комментарии также доступны по годам, например, по адресу: [https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/posts/2020.parquet](https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/comments/2020.parquet)
-
### Пользователи {#users}
```sql
@@ -146,7 +141,6 @@ INSERT INTO stackoverflow.users SELECT * FROM s3('https://datasets-documentation
0 rows in set. Elapsed: 10.988 sec. Processed 22.48 million rows, 1.36 GB (2.05 million rows/s., 124.10 MB/s.)
```
-
### Значки {#badges}
```sql
@@ -167,7 +161,6 @@ INSERT INTO stackoverflow.badges SELECT * FROM s3('https://datasets-documentatio
0 строк в наборе. Прошло: 6.635 сек. Обработано 51.29 млн строк, 797.05 МБ (7.73 млн строк/с., 120.13 МБ/с.)
```
-
### PostLinks {#postlinks}
```sql
@@ -187,7 +180,6 @@ INSERT INTO stackoverflow.postlinks SELECT * FROM s3('https://datasets-documenta
0 rows in set. Elapsed: 1.534 sec. Processed 6.55 million rows, 129.70 MB (4.27 million rows/s., 84.57 MB/s.)
```
-
### PostHistory {#posthistory}
```sql
@@ -212,7 +204,6 @@ INSERT INTO stackoverflow.posthistory SELECT * FROM s3('https://datasets-documen
0 строк в наборе. Прошло: 422.795 сек. Обработано 160.79 млн строк, 67.08 ГБ (380.30 тыс. строк/с., 158.67 МБ/с.)
```
-
## Исходный набор данных {#original-dataset}
Исходный набор данных доступен в сжатом XML-формате (7zip) по адресу [https://archive.org/download/stackexchange](https://archive.org/download/stackexchange) — файлы с префиксом `stackoverflow.com*`.
@@ -231,7 +222,6 @@ wget https://archive.org/download/stackexchange/stackoverflow.com-Votes.7z
Размер этих файлов может достигать 35 ГБ, и их загрузка может занять около 30 минут в зависимости от интернет-соединения — сервер загрузки ограничивает скорость примерно до 20 МБ/с.
-
### Преобразование в JSON {#convert-to-json}
На момент написания ClickHouse не имеет встроенной поддержки XML в качестве входного формата. Чтобы загрузить данные в ClickHouse, мы сначала преобразуем их в NDJSON.
@@ -278,7 +268,6 @@ find . -maxdepth 1 -type f -exec xq -c '.rows.row[]' {} \; | sed -e 's:"@:":g' >
clickhouse local --query "SELECT * FROM file('posts.json', JSONEachRow, 'Id Int32, PostTypeId UInt8, AcceptedAnswerId UInt32, CreationDate DateTime64(3, \'UTC\'), Score Int32, ViewCount UInt32, Body String, OwnerUserId Int32, OwnerDisplayName String, LastEditorUserId Int32, LastEditorDisplayName String, LastEditDate DateTime64(3, \'UTC\'), LastActivityDate DateTime64(3, \'UTC\'), Title String, Tags String, AnswerCount UInt16, CommentCount UInt8, FavoriteCount UInt8, ContentLicense String, ParentId String, CommunityOwnedDate DateTime64(3, \'UTC\'), ClosedDate DateTime64(3, \'UTC\')') FORMAT Native" | clickhouse client --host --secure --password --query "INSERT INTO stackoverflow.posts_v2 FORMAT Native"
```
-
## Примеры запросов {#example-queries}
Несколько простых запросов для начала работы.
@@ -312,7 +301,6 @@ LIMIT 10
Пиковое использование памяти: 224.03 МиБ.
```
-
### Пользователь с наибольшим количеством ответов (активные учётные записи) {#user-with-the-most-answers-active-accounts}
Для учётной записи требуется `UserId`.
@@ -339,7 +327,6 @@ LIMIT 5
Пиковое потребление памяти: 206.45 МиБ.
```
-
### Самые популярные статьи о ClickHouse {#clickhouse-related-posts-with-the-most-views}
```sql
@@ -370,7 +357,6 @@ LIMIT 10
Пиковое использование памяти: 240,01 МиБ.
```
-
### Самые спорные публикации {#most-controversial-posts}
```sql
@@ -405,7 +391,6 @@ LIMIT 3
Пиковое использование памяти: 6.05 ГиБ.
```
-
## Благодарности {#attribution}
Мы благодарим Stack Overflow за предоставление этих данных по лицензии `cc-by-sa 4.0` и отмечаем их вклад, а также исходный источник данных: [https://archive.org/details/stackexchange](https://archive.org/details/stackexchange).
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/tw-weather.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/tw-weather.md
index 2ecf71eeafa..525a3d7abd9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/tw-weather.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/tw-weather.md
@@ -59,7 +59,6 @@ md5sum daily_weather_preprocessed_1896_2023.csv
# Контрольная сумма должна совпадать с: 1132248c78195c43d93f843753881754 {#checksum-should-be-equal-to-1132248c78195c43d93f843753881754}
```
-
### Исходные сырые данные {#original-raw-data}
Далее приведены сведения о шагах по загрузке исходных необработанных данных, которые затем можно преобразовать и конвертировать по своему усмотрению.
@@ -89,7 +88,6 @@ cat *.csv | md5sum
# Контрольная сумма должна совпадать с: b26db404bf84d4063fac42e576464ce1 {#checksum-should-be-equal-to-b26db404bf84d4063fac42e576464ce1}
```
-
#### Получение данных метеостанций Тайваня {#retrieve-the-taiwan-weather-stations}
```bash
@@ -99,7 +97,6 @@ wget -O weather_sta_list.csv https://github.com/Raingel/weather_station_list/raw
sed -i '1s/^\xEF\xBB\xBF//' weather_sta_list.csv
```
-
## Создание схемы таблицы {#create-table-schema}
Создайте таблицу MergeTree в ClickHouse (через клиент ClickHouse).
@@ -141,7 +138,6 @@ ENGINE = MergeTree
ORDER BY (MeasuredDate);
```
-
## Вставка данных в ClickHouse {#inserting-into-clickhouse}
### Вставка данных из локального файла {#inserting-from-local-file}
@@ -164,7 +160,6 @@ INSERT INTO tw_weather_data FROM INFILE '/path/to/daily_weather_preprocessed_189
Пиковое использование памяти: 583.23 МиБ.
```
-
### Вставка из URL {#inserting-from-url}
```sql
@@ -175,7 +170,6 @@ FROM url('https://storage.googleapis.com/taiwan-weather-observaiton-datasets/dai
Чтобы узнать, как ускорить этот процесс, ознакомьтесь с нашей публикацией в блоге о [настройке загрузки больших объёмов данных](https://clickhouse.com/blog/supercharge-your-clickhouse-data-loads-part2).
-
## Проверка числа строк и объёма данных {#check-data-rows-and-sizes}
1. Посмотрим, сколько строк было вставлено:
@@ -207,7 +201,6 @@ WHERE (`table` = 'tw_weather_data') AND active
└───────────┴───────────────────┘
```
-
## Примеры запросов {#sample-queries}
### Q1: Получите максимальное значение температуры точки росы для каждой метеостанции за заданный год {#q1-retrieve-the-highest-dew-point-temperature-for-each-weather-station-in-the-specific-year}
@@ -256,7 +249,6 @@ GROUP BY StationId
Получено 30 строк. Затрачено: 0,045 сек. Обработано 6,41 млн строк, 187,33 МБ (143,92 млн строк/сек., 4,21 ГБ/сек.)
```
-
### Q2: Выборка сырых данных за заданный интервал времени, по полям и метеостанции {#q2-raw-data-fetching-with-the-specific-duration-time-range-fields-and-weather-station}
```sql
@@ -295,7 +287,6 @@ LIMIT 10
Получено 10 строк. Затрачено: 0.009 сек. Обработано 91.70 тыс. строк, 2.33 МБ (9.67 млн. строк/сек., 245.31 МБ/сек.)
```
-
## Благодарности {#credits}
Мы хотели бы отметить работу Центрального метеорологического управления и сети агрометеорологических наблюдательных станций Совета по сельскому хозяйству по подготовке, очистке и распространению этого набора данных. Мы высоко ценим их усилия.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/uk-price-paid.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/uk-price-paid.md
index 25dfa2e506a..f5679effff0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/uk-price-paid.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/uk-price-paid.md
@@ -39,7 +39,6 @@ ENGINE = MergeTree
ORDER BY (postcode1, postcode2, addr1, addr2);
```
-
## Предобработка и вставка данных {#preprocess-import-data}
Мы будем использовать функцию `url` для потоковой передачи данных в ClickHouse. Сначала нам нужно предварительно обработать часть входящих данных, включая:
@@ -94,7 +93,6 @@ FROM url(
Дождитесь, пока данные будут вставлены — это может занять одну-две минуты в зависимости от скорости сети.
-
## Проверка данных {#validate-data}
Проверим, что всё сработало, посмотрев, сколько строк было записано:
@@ -114,7 +112,6 @@ WHERE name = 'uk_price_paid'
Обратите внимание, размер таблицы всего лишь 221,43 MiB!
-
## Выполним несколько запросов {#run-queries}
Давайте выполним несколько запросов, чтобы проанализировать данные:
@@ -132,7 +129,6 @@ GROUP BY year
ORDER BY year
```
-
### Запрос 2. Средняя цена по годам в Лондоне {#average-price-london}
```sql runnable
@@ -149,7 +145,6 @@ ORDER BY year
Что-то произошло с ценами на жильё в 2020 году! Однако, вероятно, это не стало сюрпризом...
-
### Запрос 3. Самые дорогие районы {#most-expensive-neighborhoods}
```sql runnable
@@ -169,7 +164,6 @@ ORDER BY price DESC
LIMIT 100
```
-
## Ускорение выполнения запросов с помощью проекций {#speeding-up-queries-with-projections}
Мы можем ускорить выполнение этих запросов с помощью проекций. См. раздел ["Проекции"](/data-modeling/projections) с примерами для этого набора данных.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/youtube-dislikes.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/youtube-dislikes.md
index 0e75010ffb5..29beec7138a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/youtube-dislikes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/youtube-dislikes.md
@@ -296,7 +296,6 @@ ORDER BY
Включение комментариев, как правило, коррелирует с более высоким уровнем вовлечённости.
-
### Как со временем меняется количество видео — какие при этом можно выделить события? {#insert-data}
```sql
@@ -335,7 +334,6 @@ ORDER BY month ASC;
Всплеск числа авторов, загружающих видео, [в период COVID-19 заметен](https://www.theverge.com/2020/3/27/21197642/youtube-with-me-style-videos-views-coronavirus-cook-workout-study-home-beauty).
-
### Больше субтитров со временем: когда это произошло {#count-row-numbers}
С развитием технологий распознавания речи создавать субтитры для видео стало проще, чем когда-либо: YouTube добавил автоматическое создание субтитров в конце 2009 года — стал ли это переломным моментом?
@@ -373,7 +371,6 @@ ORDER BY month ASC;
Данные показывают всплеск в 2009 году. По‑видимому, в это время YouTube убрал функцию «Субтитры сообщества», которая позволяла загружать субтитры к чужим видео.
Это привело к запуску очень успешной кампании, призывавшей авторов добавлять субтитры к своим видео для слабослышащих и глухих зрителей.
-
### Лидеры по загрузкам во времени {#explore-the-data}
```sql
@@ -417,7 +414,6 @@ ORDER BY
│ 2008-09-01 │ WWE │ 3717092 │ 0.07872802579349912 │
```
-
### Как меняется соотношение лайков по мере увеличения числа просмотров?
```sql
@@ -466,7 +462,6 @@ ORDER BY
└───────────────────┴─────────────────────┴────────────┘
```
-
### Как распределяются представления? {#if-someone-disables-comments-does-it-lower-the-chance-someone-will-actually-click-like-or-dislike}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_docker.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_docker.md
index aa6e0a09b84..8c9d09f4b41 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_docker.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_docker.md
@@ -10,7 +10,6 @@
docker pull clickhouse/clickhouse-server
```
-
## Версии {#versions}
- Тег `latest` указывает на последний релиз последней стабильной ветки.
@@ -31,8 +30,6 @@ docker pull clickhouse/clickhouse-server
содержащей соответствующий [патч](https://github.com/moby/moby/commit/977283509f75303bc6612665a04abf76ff1d2468). В качестве обходного решения можно
использовать `docker run --security-opt seccomp=unconfined`, однако это имеет последствия для безопасности.
-
-
## Как использовать этот образ {#how-to-use-image}
### Запуск экземпляра сервера {#start-server-instance}
@@ -47,7 +44,6 @@ docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 clickh
### Подключение к нему из нативного клиента {#connect-to-it-from-native-client}
-
```bash
docker run -it --rm --network=container:some-clickhouse-server --entrypoint clickhouse-client clickhouse/clickhouse-server
# ИЛИ {#or}
@@ -118,7 +114,6 @@ docker run -d \
* `/etc/clickhouse-server/users.d/*.xml` - файлы с изменениями настроек пользователей
* `/docker-entrypoint-initdb.d/` - каталог со скриптами инициализации базы данных (см. ниже).
-
## Возможности Linux {#linear-capabilities}
У ClickHouse есть дополнительная функциональность, для работы которой требуется включить несколько [возможностей Linux (capabilities)](https://man7.org/linux/man-pages/man7/capabilities.7.html).
@@ -133,7 +128,6 @@ docker run -d \
Дополнительные сведения см. в разделе ["Настройка возможностей CAP_IPC_LOCK и CAP_SYS_NICE в Docker"](/knowledgebase/configure_cap_ipc_lock_and_cap_sys_nice_in_docker)
-
## Конфигурация {#configuration}
Контейнер открывает порт 8123 для [HTTP-интерфейса](https://clickhouse.com/docs/interfaces/http_interface/) и порт 9000 для [нативного клиента](https://clickhouse.com/docs/interfaces/tcp/).
@@ -148,7 +142,6 @@ docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -v /pa
### Запуск сервера от имени отдельного пользователя {#start-server-custom-user}
-
```bash
# Директория $PWD/data/clickhouse должна существовать и принадлежать текущему пользователю {#pwddataclickhouse-should-exist-and-be-owned-by-current-user}
docker run --rm --user "${UID}:${GID}" --name some-clickhouse-server --ulimit nofile=262144:262144 -v "$PWD/logs/clickhouse:/var/log/clickhouse-server" -v "$PWD/data/clickhouse:/var/lib/clickhouse" clickhouse/clickhouse-server
@@ -183,7 +176,6 @@ docker run --rm -e CLICKHOUSE_DB=my_database -e CLICKHOUSE_USER=username -e CLIC
docker run --rm -e CLICKHOUSE_SKIP_USER_SETUP=1 -p 9000:9000/tcp clickhouse/clickhouse-server
```
-
## Как расширить этот образ {#how-to-extend-image}
Чтобы выполнить дополнительную инициализацию в образе, производном от этого, добавьте один или несколько скриптов `*.sql`, `*.sql.gz` или `*.sh` в каталог `/docker-entrypoint-initdb.d`. После того как entrypoint-скрипт вызовет `initdb`, он выполнит все файлы `*.sql`, запустит все исполняемые скрипты `*.sh` и подключит (source) все неисполняемые скрипты `*.sh`, найденные в этом каталоге, для дальнейшей инициализации перед запуском сервиса.\
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_linux_tar_install.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_linux_tar_install.md
index a20cc32147d..64420e756fd 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_linux_tar_install.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_linux_tar_install.md
@@ -4,7 +4,6 @@
-
## Загрузка и установка последней стабильной версии {#install-latest-stable}
Необходимую версию можно скачать с помощью `curl` или `wget` из репозитория по адресу https://packages.clickhouse.com/tgz/.
@@ -18,8 +17,6 @@
с постфиксом `-stable`.
:::
-
-
## Получите последнюю версию ClickHouse {#get-latest-version}
Получите последнюю версию ClickHouse с GitHub и сохраните её в переменной `LATEST_VERSION`.
@@ -30,7 +27,6 @@ LATEST_VERSION=$(curl -s https://raw.githubusercontent.com/ClickHouse/ClickHouse
export LATEST_VERSION
```
-
## Определите архитектуру системы {#detect-system-architecture}
Определите архитектуру системы и задайте переменную ARCH соответствующим образом:
@@ -43,7 +39,6 @@ case $(uname -m) in
esac
```
-
## Загрузка tar-архивов для каждого компонента ClickHouse {#download-tarballs}
Скачайте tar-архивы для каждого компонента ClickHouse. Цикл сначала пытается использовать пакеты, специфичные для архитектуры, затем при необходимости переходит к универсальным.
@@ -56,14 +51,11 @@ do
done
```
-
## Извлечение и установка пакетов {#extract-and-install}
Выполните следующие команды для распаковки и установки этих пакетов:
- `clickhouse-common-static`
-
-
```bash
# Извлечение и установка пакета clickhouse-common-static {#extract-and-install-clickhouse-common-static-package}
tar -xzvf "clickhouse-common-static-$LATEST_VERSION-${ARCH}.tgz" \
@@ -73,7 +65,6 @@ sudo "clickhouse-common-static-$LATEST_VERSION/install/doinst.sh"
* `clickhouse-common-static-dbg`
-
```bash
# Извлеките и установите пакет отладочных символов {#extract-and-install-debug-symbols-package}
tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION-${ARCH}.tgz" \
@@ -83,7 +74,6 @@ sudo "clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh"
* `clickhouse-server`
-
```bash
# Извлечение и установка серверного пакета с конфигурацией {#extract-and-install-server-package-with-configuration}
tar -xzvf "clickhouse-server-$LATEST_VERSION-${ARCH}.tgz" \
@@ -94,7 +84,6 @@ sudo /etc/init.d/clickhouse-server start # Запуск сервера
* `clickhouse-client`
-
```bash
# Извлечь и установить клиентский пакет {#extract-and-install-client-package}
tar -xzvf "clickhouse-client-$LATEST_VERSION-${ARCH}.tgz" \
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_macos.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_macos.md
index 610900f143c..063176177e6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_macos.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_macos.md
@@ -3,13 +3,10 @@ import dev_error from "@site/static/images/knowledgebase/fix-the-developer-verif
import privacy_default from "@site/static/images/knowledgebase/fix-the-developer-verification-error-in-macos/privacy-and-security-default-view.png";
import privacy_allow from "@site/static/images/knowledgebase/fix-the-developer-verification-error-in-macos/privacy-and-security-screen-allow-anyway.png";
-
-
# Установите ClickHouse с помощью Homebrew {#install-clickhouse-using-homebrew}
-
## Установка с помощью формулы Homebrew сообщества {#install-using-community-homebrew-formula}
Чтобы установить ClickHouse на macOS с помощью [Homebrew](https://brew.sh/), воспользуйтесь формулой Homebrew, поддерживаемой сообществом ClickHouse ([clickhouse](https://formulae.brew.sh/cask/clickhouse)).
@@ -18,7 +15,6 @@ import privacy_allow from "@site/static/images/knowledgebase/fix-the-developer-v
brew install --cask clickhouse
```
-
## Исправление ошибки проверки разработчика в macOS {#fix-developer-verification-error-macos}
Если вы устанавливаете ClickHouse с помощью `brew`, вы можете столкнуться с ошибкой со стороны macOS.
@@ -88,7 +84,6 @@ clickhouse client [args]
clickhouse benchmark [args]
```
-
## Устранение проблемы путём переустановки ClickHouse {#fix-issue}
Brew имеет параметр командной строки, который предотвращает помещение устанавливаемых бинарных файлов в карантин.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_quick_install.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_quick_install.md
index c7b0e931dab..1492254bfc3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_quick_install.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_quick_install.md
@@ -4,7 +4,6 @@
-
## Установка ClickHouse с помощью curl {#install-clickhouse-using-curl}
Выполните следующую команду, чтобы скачать один бинарный файл для вашей операционной системы.
@@ -17,7 +16,6 @@ curl https://clickhouse.com/ | sh
Для пользователей Mac: если вы получаете сообщение об ошибке о том, что разработчик бинарного файла не может быть проверен, подробнее см. [здесь](/knowledgebase/fix-developer-verification-error-in-macos).
:::
-
## Запустите clickhouse-local {#start-clickhouse-local}
`clickhouse-local` позволяет обрабатывать локальные и удалённые файлы, используя
@@ -31,7 +29,6 @@ curl https://clickhouse.com/ | sh
./clickhouse
```
-
## Запуск clickhouse-server {#start-clickhouse-server}
Если вы хотите хранить данные, вам потребуется запустить `clickhouse-server`. Вы можете
@@ -41,7 +38,6 @@ curl https://clickhouse.com/ | sh
./clickhouse server
```
-
## Запуск clickhouse-client {#start-clickhouse-client}
После запуска сервера откройте новое окно терминала и выполните следующую команду для запуска `clickhouse-client`:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_rpm_install.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_rpm_install.md
index 32576a9da4e..01960836a70 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_rpm_install.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_rpm_install.md
@@ -4,7 +4,6 @@
-
## Настройка RPM-репозитория {#setup-the-rpm-repository}
Добавьте официальный репозиторий, выполнив следующую команду:
@@ -23,7 +22,6 @@ sudo zypper --gpg-auto-import-keys refresh clickhouse-stable
В шагах ниже команду `yum install` можно заменить на `zypper install` в зависимости от используемого менеджера пакетов.
-
## Установка сервера и клиента ClickHouse {#install-clickhouse-server-and-client-1}
Установите ClickHouse, выполнив следующие команды:
@@ -41,7 +39,6 @@ sudo yum install -y clickhouse-server clickhouse-client
sudo yum install clickhouse-server-22.8.7.34
```
-
## Запуск сервера ClickHouse {#start-clickhouse-server-1}
Чтобы запустить сервер ClickHouse, выполните команду:
@@ -64,7 +61,6 @@ clickhouse-client
clickhouse-client --password
```
-
## Установка отдельного ClickHouse Keeper {#install-standalone-clickhouse-keeper-1}
:::tip
@@ -79,7 +75,6 @@ clickhouse-client --password
sudo yum install -y clickhouse-keeper
```
-
## Включение и запуск ClickHouse Keeper {#enable-and-start-clickhouse-keeper-1}
```bash
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_windows_install.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_windows_install.md
index 3db2fcee5ed..83e3574891b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_windows_install.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/_snippets/_windows_install.md
@@ -1,7 +1,5 @@
# Установка ClickHouse на Windows с помощью WSL {#install-clickhouse-on-windows-with-wsl}
-
-
## Требования {#requirements}
:::note
@@ -10,7 +8,6 @@
-
## Установка WSL {#install-wsl}
Откройте Windows PowerShell от имени администратора и выполните следующую команду:
@@ -25,7 +22,6 @@ wsl --install
Добро пожаловать в Ubuntu 24.04.1 LTS (GNU/Linux 5.15.133.1-microsoft-WSL2 x86_64)
```
-
## Установите ClickHouse с помощью скрипта curl {#install-clickhouse-via-script-using-curl}
Выполните следующую команду, чтобы установить ClickHouse с помощью скрипта curl:
@@ -41,7 +37,6 @@ curl https://clickhouse.com/ | sh
./clickhouse
```
-
## Запуск clickhouse-local {#start-clickhouse-local}
`clickhouse-local` позволяет обрабатывать локальные и удалённые файлы с
@@ -55,7 +50,6 @@ curl https://clickhouse.com/ | sh
./clickhouse
```
-
## Запуск clickhouse-server {#start-clickhouse-server}
Если вы хотите обеспечить сохранность данных, вам нужно запустить `clickhouse-server`. Вы можете
@@ -65,7 +59,6 @@ curl https://clickhouse.com/ | sh
./clickhouse server
```
-
## Start clickhouse-client {#start-clickhouse-client}
При работающем сервере откройте новое окно терминала и выполните следующую команду
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/advanced.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/advanced.md
index 5142035a658..c116b616e44 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/advanced.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install/advanced.md
@@ -8,8 +8,6 @@ hide_title: false
doc_type: 'guide'
---
-
-
## Сборка из исходных кодов {#compile-from-source}
Чтобы вручную собрать ClickHouse, следуйте инструкциям по сборке для [Linux](/development/build.md) или [macOS](/development/build-osx.md).
@@ -30,7 +28,6 @@ doc_type: 'guide'
В Gentoo можно просто выполнить `emerge clickhouse`, чтобы установить ClickHouse из исходного кода.
-
## Установка бинарника, сгенерированного CI {#install-a-ci-generated-binary}
Инфраструктура непрерывной интеграции (CI) ClickHouse создает специализированные сборки для каждого коммита в [репозитории
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/playground.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/playground.md
index 0a45394e905..a8f63b8df05 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/playground.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/playground.md
@@ -7,8 +7,6 @@ title: 'Песочница ClickHouse'
doc_type: 'guide'
---
-
-
# Песочница ClickHouse {#clickhouse-playground}
[ClickHouse Playground](https://sql.clickhouse.com) позволяет экспериментировать с ClickHouse, мгновенно выполняя запросы без необходимости развертывать собственный сервер или кластер.
@@ -16,8 +14,6 @@ doc_type: 'guide'
Вы можете отправлять запросы в Playground с помощью любого HTTP‑клиента, например [curl](https://curl.haxx.se) или [wget](https://www.gnu.org/software/wget/), или настроить подключение с использованием драйверов [JDBC](../interfaces/jdbc.md) или [ODBC](../interfaces/odbc.md). Дополнительная информация о программном обеспечении, поддерживающем ClickHouse, доступна [здесь](../integrations/index.mdx).
-
-
## Учетные данные {#credentials}
| Параметр | Значение |
@@ -27,8 +23,6 @@ doc_type: 'guide'
| Пользователь | `explorer` или `play` |
| Пароль | (пустой) |
-
-
## Ограничения {#limitations}
Запросы выполняются от имени пользователя только с правами чтения. Это накладывает некоторые ограничения:
@@ -38,8 +32,6 @@ doc_type: 'guide'
Для использования сервиса также установлены квоты.
-
-
## Примеры {#examples}
Пример HTTPS-эндпоинта с использованием `curl`:
@@ -54,7 +46,6 @@ curl "https://play.clickhouse.com/?user=explorer" --data-binary "SELECT 'Поп
clickhouse client --secure --host play.clickhouse.com --user explorer
```
-
## Характеристики Playground {#specifications}
Наш ClickHouse Playground работает со следующими характеристиками:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/prewhere.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/prewhere.md
index af8d05f6252..1f3e4ae9b3a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/prewhere.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/prewhere.md
@@ -16,15 +16,12 @@ import visual05 from '@site/static/images/guides/best-practices/prewhere_05.gif'
import Image from '@theme/IdealImage';
-
# Как работает оптимизация PREWHERE? {#how-does-the-prewhere-optimization-work}
[Предложение PREWHERE](/sql-reference/statements/select/prewhere) — это оптимизация выполнения запроса в ClickHouse. Она уменьшает объём операций ввода-вывода и ускоряет выполнение запроса, избегая ненужного чтения данных и отфильтровывая лишние данные до чтения со встроенного диска столбцов, не участвующих в фильтрации.
В этом руководстве объясняется, как работает PREWHERE, как измерить его влияние и как настроить его для наилучшей производительности.
-
-
## Обработка запроса без оптимизации PREWHERE {#query-processing-without-prewhere-optimization}
Рассмотрим, как обрабатывается запрос к таблице [uk_price_paid_simple](/parts) без использования PREWHERE:
@@ -44,8 +41,6 @@ import Image from '@theme/IdealImage';
Как видно, без PREWHERE все потенциально подходящие столбцы загружаются до фильтрации, даже если фактически совпадает лишь небольшое количество строк.
-
-
## Как PREWHERE повышает эффективность запросов {#how-prewhere-improves-query-efficiency}
Следующие анимации показывают, как приведённый выше запрос обрабатывается с предложением PREWHERE, применённым ко всем предикатам запроса.
@@ -95,8 +90,6 @@ ClickHouse начинает обработку PREWHERE, ① читая выбр
Обратите внимание, что ClickHouse обрабатывает одинаковое количество строк как в варианте запроса с PREWHERE, так и без него. Однако при применении оптимизаций PREWHERE нет необходимости загружать значения всех столбцов для каждой обрабатываемой строки.
:::
-
-
## Оптимизация PREWHERE применяется автоматически {#prewhere-optimization-is-automatically-applied}
Предложение PREWHERE можно добавить вручную, как показано в примере выше. Однако нет необходимости указывать PREWHERE вручную. Когда настройка [`optimize_move_to_prewhere`](/operations/settings/settings#optimize_move_to_prewhere) включена (по умолчанию true), ClickHouse автоматически переносит условия фильтрации из WHERE в PREWHERE, отдавая приоритет тем, которые сильнее всего уменьшают объём чтения.
@@ -107,8 +100,6 @@ ClickHouse начинает обработку PREWHERE, ① читая выбр
Начиная с версии [23.11](https://clickhouse.com/blog/clickhouse-release-23-11#column-statistics-for-prewhere), дополнительная статистика по столбцам позволяет ещё больше улучшить это поведение, выбирая порядок применения фильтров на основе фактической селективности данных, а не только размера столбца.
-
-
## Как измерить влияние PREWHERE {#how-to-measure-prewhere-impact}
Чтобы убедиться, что PREWHERE действительно ускоряет ваши запросы, вы можете сравнить их производительность с включённой и выключенной настройкой `optimize_move_to_prewhere`.
@@ -214,7 +205,6 @@ SETTINGS send_logs_level = 'test';
...
```
-
## Ключевые выводы {#key-takeaways}
* PREWHERE позволяет не считывать данные столбцов, которые позже будут отфильтрованы, экономя I/O и память.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/query-optimization.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/query-optimization.md
index 1b0d0f96257..8f1dbedee54 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/query-optimization.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/query-optimization.md
@@ -10,13 +10,10 @@ keywords: ['оптимизация запросов', 'производител
import queryOptimizationDiagram1 from '@site/static/images/guides/best-practices/query_optimization_diagram_1.png';
import Image from '@theme/IdealImage';
-
# Простое руководство по оптимизации запросов {#a-simple-guide-for-query-optimization}
В этом разделе на распространённых сценариях показано, как использовать различные методы повышения производительности и оптимизации, такие как [анализатор](/operations/analyzer), [профилирование запросов](/operations/optimizing-performance/sampling-query-profiler) и [отказ от использования Nullable-столбцов](/optimize/avoid-nullable-columns), чтобы улучшить производительность выполнения запросов в ClickHouse.
-
-
## Понимание производительности запросов {#understand-query-performance}
Лучшее время задуматься об оптимизации производительности — когда вы настраиваете [схему данных](/data-modeling/schema-design) перед первым приёмом данных в ClickHouse.
@@ -29,8 +26,6 @@ ClickHouse предоставляет богатый набор инструме
В этом разделе мы рассмотрим эти инструменты и то, как их использовать.
-
-
## Общие соображения {#general-considerations}
Чтобы понять производительность запросов, давайте рассмотрим, что происходит в ClickHouse при выполнении запроса.
@@ -59,8 +54,6 @@ ClickHouse предоставляет богатый набор инструме
Имея это общее представление, давайте рассмотрим инструменты, которые предоставляет ClickHouse, и то, как мы можем использовать их для отслеживания метрик, влияющих на производительность запросов.
-
-
## Набор данных {#dataset}
Мы используем реальный пример, чтобы проиллюстрировать наш подход к оптимизации производительности запросов.
@@ -111,7 +104,6 @@ CREATE TABLE nyc_taxi.trips_small_inferred
ORDER BY tuple()
```
-
## Найдите медленные запросы {#spot-the-slow-queries}
### Журнал запросов {#query-logs}
@@ -227,7 +219,6 @@ tables: ['nyc_taxi.trips_small_inferred']
Также может быть полезно понять, какие запросы сильнее всего нагружают систему, проанализировав запросы с наибольшим потреблением памяти или CPU.
-
```sql
-- Топ-запросы по потреблению памяти
SELECT
@@ -324,7 +315,6 @@ SELECT count()
FROM nyc_taxi.trips_small_inferred
```
-
Query id: 733372c5-deaf-4719-94e3-261540933b23
┌───count()─┐
@@ -402,13 +392,10 @@ Query id: c7e11e7b-d970-4e35-936c-ecfc24e3b879
12. │ MergeTreeSelect(pool: PrefetchedReadPool, algorithm: Thread) × 59 0 → 1 │
```
-
Здесь мы можем отметить количество потоков, использованных для выполнения запроса: 59 потоков, что указывает на высокую степень параллелизма. Это ускоряет выполнение запроса, который занял бы больше времени на менее мощной машине. Количество потоков, работающих параллельно, может объяснить большой объём памяти, потребляемый запросом.
В идеале вам следует анализировать все медленные запросы таким же образом, чтобы выявлять избыточно сложные планы выполнения запросов, понимать количество строк, читаемых каждым запросом, и ресурсы, которые они потребляют.
-
-
## Методология {#methodology}
В продуктивной среде может быть сложно выявить проблемные запросы, так как в каждый момент времени в вашем развертывании ClickHouse, вероятно, выполняется большое количество запросов.
@@ -429,8 +416,6 @@ Query id: c7e11e7b-d970-4e35-936c-ecfc24e3b879
_Наконец, будьте внимательны к выбросам: довольно часто бывает, что запрос выполняется медленно, потому что пользователь запустил разовый дорогой запрос или система находилась под нагрузкой по другой причине. Вы можете выполнять группировку по полю `normalized_query_hash`, чтобы выявить дорогие запросы, выполняющиеся регулярно. Именно их, вероятнее всего, стоит исследовать в первую очередь._
-
-
## Базовая оптимизация {#basic-optimization}
Теперь, когда у нас есть фреймворк для тестирования, можно приступать к оптимизации.
@@ -521,7 +506,6 @@ ClickHouse поддерживает большое количество типо
Для числовых значений вы можете проверить минимальное и максимальное значения в своём наборе данных, чтобы убедиться, что текущая разрядность/точность выбранного типа соответствует реальным данным вашего набора.
-
```sql
-- Найти минимальные/максимальные значения для поля payment_type
SELECT
@@ -603,7 +587,6 @@ ORDER BY size DESC
Новая таблица значительно меньше предыдущей. Мы наблюдаем сокращение объёма дискового пространства, занимаемого таблицей, примерно на 34% (7,38 GiB против 4,89 GiB).
-
## Важность первичных ключей {#the-importance-of-primary-keys}
Первичные ключи в ClickHouse работают иначе, чем в большинстве традиционных систем управления базами данных. В таких системах первичные ключи обеспечивают уникальность и целостность данных. Любая попытка вставки дублирующихся значений первичного ключа отклоняется, а для быстрого поиска обычно создаётся индекс на основе B-tree или хэша.
@@ -698,7 +681,6 @@ INSERT INTO trips_small_pk SELECT * FROM trips_small_inferred
-
@@ -816,7 +798,6 @@ Query id: 30116a77-ba86-4e9f-a9a2-a01670ad2e15
Благодаря первичному ключу была отобрана только часть гранул таблицы. Это само по себе значительно улучшает производительность запроса, поскольку ClickHouse должен обрабатывать существенно меньший объём данных.
-
## Дальнейшие шаги {#next-steps}
Надеемся, это руководство помогло вам лучше понять, как анализировать медленные запросы в ClickHouse и как ускорять их. Чтобы глубже изучить эту тему, вы можете подробнее ознакомиться с [анализатором запросов](/operations/analyzer) и [профилированием](/operations/optimizing-performance/sampling-query-profiler), чтобы лучше понять, как именно ClickHouse выполняет ваш запрос.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/query-parallelism.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/query-parallelism.md
index befb3ef4e91..0ae0674b951 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/query-parallelism.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/query-parallelism.md
@@ -16,7 +16,6 @@ import visual05 from '@site/static/images/guides/best-practices/query-parallelis
import Image from '@theme/IdealImage';
-
# Как ClickHouse выполняет запросы параллельно {#how-clickhouse-executes-a-query-in-parallel}
ClickHouse [создан для высокой скорости](/concepts/why-clickhouse-is-so-fast). Он выполняет запросы в высокопараллельном режиме, используя все доступные ядра CPU, распределяя данные по потокам обработки и часто подводя оборудование к пределам его возможностей.
@@ -25,8 +24,6 @@ ClickHouse [создан для высокой скорости](/concepts/why-c
Для иллюстрации ключевых концепций мы используем агрегирующий запрос к набору данных [uk_price_paid_simple](/parts).
-
-
## Пошагово: как ClickHouse параллелизует агрегирующий запрос {#step-by-step-how-clickHouse-parallelizes-an-aggregation-query}
Когда ClickHouse ① выполняет агрегирующий запрос с фильтром по первичному ключу таблицы, он ② загружает первичный индекс в память, чтобы ③ определить, какие гранулы нужно обработать, а какие можно безопасно пропустить:
@@ -64,8 +61,6 @@ ClickHouse [создан для высокой скорости](/concepts/why-c
В ClickHouse Cloud тот же параллелизм достигается с помощью [параллельных реплик](https://clickhouse.com/docs/deployment-guides/parallel-replicas), которые работают аналогично шардам в кластерах с архитектурой shared-nothing. Каждая реплика ClickHouse Cloud — вычислительный узел без сохранения состояния — обрабатывает часть данных параллельно и вносит вклад в итоговый результат, так же как это делал бы независимый шард.
:::
-
-
## Мониторинг параллелизма запросов {#monitoring-query-parallelism}
Используйте эти инструменты, чтобы убедиться, что ваш запрос полностью задействует доступные ресурсы CPU и диагностировать случаи, когда это не так.
@@ -130,7 +125,6 @@ FROM
Обратите внимание, что операторы `Resize` в физическом плане выше [переразбивают на части и перераспределяют](/academic_overview#4-2-multi-core-parallelization) потоки блоков данных между конвейерами обработки, чтобы поддерживать их равномерную загрузку. Такое перебалансирование особенно важно, когда диапазоны данных различаются по количеству строк, удовлетворяющих предикатам запроса, иначе некоторые конвейеры могут быть перегружены, в то время как другие простаивают. Перераспределяя работу, более быстрые конвейеры фактически помогают более медленным, оптимизируя общее время выполнения запроса.
-
## Почему max_threads не всегда соблюдается {#why-max-threads-isnt-always-respected}
Как отмечалось выше, количество параллельных потоков обработки `n` контролируется параметром `max_threads`, который по умолчанию равен числу ядер CPU, доступных ClickHouse на сервере:
@@ -229,7 +223,6 @@ WHERE town = 'LONDON';
* [Merge_tree_min_read_task_size](https://clickhouse.com/docs/operations/settings/settings#merge_tree_min_read_task_size) + [merge_tree_min_bytes_per_task_for_remote_reading](https://clickhouse.com/docs/operations/settings/settings#merge_tree_min_bytes_per_task_for_remote_reading)
-
:::warning Не изменяйте эти настройки
Мы не рекомендуем изменять эти настройки в продакшене. Они приведены здесь только для того, чтобы показать, почему `max_threads` не всегда определяет фактический уровень параллелизма.
:::
@@ -260,15 +253,12 @@ MergeTreeSelect(pool: PrefetchedReadPool, algorithm: Thread) × 59
Это показывает, что для запросов к небольшим наборам данных ClickHouse намеренно ограничивает уровень параллелизма. Используйте переопределения настроек только для тестирования — не в продакшене, — поскольку они могут приводить к неэффективному выполнению или конфликтам за ресурсы.
-
## Основные выводы {#key-takeaways}
* ClickHouse параллелизует запросы с помощью линий обработки, количество которых привязано к `max_threads`.
* Фактическое число линий зависит от объёма данных, выбранных для обработки.
* Используйте `EXPLAIN PIPELINE` и трассировочные логи для анализа использования линий.
-
-
## Где найти дополнительную информацию {#where-to-find-more-information}
Если вы хотите глубже разобраться в том, как ClickHouse выполняет запросы параллельно и достигает высокой производительности при масштабировании, ознакомьтесь со следующими материалами:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/skipping-indexes-examples.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/skipping-indexes-examples.md
index c8e59e8fbde..2e435d36a82 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/skipping-indexes-examples.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/skipping-indexes-examples.md
@@ -8,8 +8,6 @@ doc_type: 'guide'
keywords: ['индексы пропуска данных', 'пропуск данных', 'производительность', 'индексирование', 'лучшие практики']
---
-
-
# Примеры индексов пропуска данных {#data-skipping-index-examples}
На этой странице собраны примеры индексов пропуска данных ClickHouse, показано, как объявить каждый тип, когда их использовать и как проверить, что они используются. Все возможности работают с [таблицами семейства MergeTree](/engines/table-engines/mergetree-family/mergetree).
@@ -32,7 +30,6 @@ ClickHouse поддерживает пять типов индексов про
В каждом разделе приводятся примеры с демонстрационными данными и показывается, как проверить использование индекса при выполнении запроса.
-
## Индекс MinMax {#minmax-index}
Индекс `minmax` лучше всего подходит для диапазонных предикатов по слабо упорядоченным данным или по столбцам, коррелированным с `ORDER BY`.
@@ -63,7 +60,6 @@ SELECT count() FROM events WHERE ts >= now() - 3600;
См. [подробный пример](/best-practices/use-data-skipping-indices-where-appropriate#example) с `EXPLAIN` и отсечением данных.
-
## Индекс set {#set-index}
Используйте индекс `set`, когда локальная кардинальность на уровне блока низкая; он неэффективен, если в каждом блоке много различных значений.
@@ -80,7 +76,6 @@ SELECT * FROM events WHERE user_id IN (101, 202);
Процесс создания и материализации, а также эффект до/после показаны в [базовом руководстве по работе](/optimize/skipping-indexes#basic-operation).
-
## Универсальный Bloom-фильтр (скалярный) {#generic-bloom-filter-scalar}
Индекс `bloom_filter` хорошо подходит для поиска «иголки в стоге сена» по условию равенства или проверки принадлежности (оператор IN). Он принимает необязательный параметр — вероятность ложноположительных срабатываний (по умолчанию 0.025).
@@ -95,7 +90,6 @@ EXPLAIN indexes = 1
SELECT * FROM events WHERE value IN (7, 42, 99);
```
-
## N-граммный фильтр Блума (ngrambf_v1) для поиска подстрок {#n-gram-bloom-filter-ngrambf-v1-for-substring-search}
Индекс `ngrambf_v1` разбивает строки на n-граммы. Он хорошо подходит для запросов вида `LIKE '%...%'`. Поддерживаются типы String/FixedString/Map (через mapKeys/mapValues), а также настраиваемые размер, количество хэшей и значение seed. Дополнительные сведения см. в документации по [N-граммному фильтру Блума](/engines/table-engines/mergetree-family/mergetree#n-gram-bloom-filter).
@@ -132,7 +126,6 @@ SELECT bfEstimateFunctions(4300, bfEstimateBmSize(4300, 0.0001)) AS k; -- ~13
См. [документацию по параметрам](/engines/table-engines/mergetree-family/mergetree#n-gram-bloom-filter) для получения подробных рекомендаций по настройке.
-
## Токен-блум-фильтр (tokenbf_v1) для поиска по словам {#token-bloom-filter-tokenbf-v1-for-word-based-search}
`tokenbf_v1` индексирует токены, разделённые небуквенно-цифровыми символами. Используйте его с [`hasToken`](/sql-reference/functions/string-search-functions#hasToken), с шаблонами слов `LIKE` или с операторами равенства (`=`) и `IN`. Поддерживает типы `String`/`FixedString`/`Map`.
@@ -152,7 +145,6 @@ SELECT count() FROM logs WHERE hasToken(lower(msg), 'exception');
См. примеры по наблюдаемости и рекомендации по выбору token vs ngram [здесь](/use-cases/observability/schema-design#bloom-filters-for-text-search).
-
## Добавление индексов при выполнении CREATE TABLE (несколько примеров) {#add-indexes-during-create-table-multiple-examples}
Индексы пропуска данных также поддерживают составные выражения и типы `Map`/`Tuple`/`Nested`. Это показано в примере ниже:
@@ -174,7 +166,6 @@ ENGINE = MergeTree
ORDER BY u64;
```
-
## Материализация индекса на существующих данных и проверка {#materializing-on-existing-data-and-verifying}
Вы можете добавить индекс к уже существующим частям данных с помощью `MATERIALIZE` и проверить отсечение с помощью `EXPLAIN` или трассировочных журналов, как показано ниже:
@@ -191,7 +182,6 @@ SET send_logs_level = 'trace';
Этот [подробный пример с minmax](/best-practices/use-data-skipping-indices-where-appropriate#example) демонстрирует структуру вывода EXPLAIN и счётчики отсечения.
-
## Когда использовать и когда избегать индексов пропуска данных {#when-use-and-when-to-avoid}
**Используйте индексы пропуска данных, когда:**
@@ -209,8 +199,6 @@ SET send_logs_level = 'trace';
Если значение встречается хотя бы один раз в блоке данных, ClickHouse должен прочитать весь блок. Тестируйте индексы на реалистичных наборах данных и корректируйте гранулярность и зависящие от типа параметры на основе фактических показателей производительности.
:::
-
-
## Временно игнорировать или принудительно использовать индексы {#temporarily-ignore-or-force-indexes}
Отключайте отдельные индексы по имени для конкретных запросов во время тестирования и устранения неполадок. Также доступны настройки для принудительного использования индексов при необходимости. См. [`ignore_data_skipping_indices`](/operations/settings/settings#ignore_data_skipping_indices).
@@ -222,15 +210,12 @@ WHERE hasToken(lower(msg), 'exception')
SETTINGS ignore_data_skipping_indices = 'msg_token';
```
-
## Примечания и ограничения {#notes-and-caveats}
* Индексы пропуска данных поддерживаются только для [таблиц семейства MergeTree](/engines/table-engines/mergetree-family/mergetree); отсечение данных выполняется на уровне гранулы/блока.
* Индексы на основе Bloom-фильтра являются вероятностными (ложные срабатывания приводят к дополнительным чтениям, но не приводят к пропуску корректных данных).
* Bloom-фильтры и другие индексы пропуска данных следует проверять с помощью `EXPLAIN` и трассировки; подбирайте гранулярность, чтобы сбалансировать степень отсечения данных и размер индекса.
-
-
## Связанные материалы {#related-docs}
- [Руководство по индексам пропуска данных](/optimize/skipping-indexes)
- [Руководство по лучшим практикам](/best-practices/use-data-skipping-indices-where-appropriate)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/skipping-indexes.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/skipping-indexes.md
index 7e09f3a40c9..ba1fa066dd9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/skipping-indexes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/skipping-indexes.md
@@ -12,11 +12,8 @@ import simple_skip from '@site/static/images/guides/best-practices/simple_skip.p
import bad_skip from '@site/static/images/guides/best-practices/bad_skip.png';
import Image from '@theme/IdealImage';
-
# Что такое индексы пропуска данных в ClickHouse {#understanding-clickhouse-data-skipping-indexes}
-
-
## Введение {#introduction}
На производительность запросов в ClickHouse влияет множество факторов. Критическим элементом в большинстве сценариев является то, может ли ClickHouse использовать первичный ключ при вычислении условия WHERE запроса. Соответственно, выбор первичного ключа, который соответствует наиболее распространённым паттернам запросов, жизненно важен для эффективного проектирования таблиц.
@@ -27,8 +24,6 @@ import Image from '@theme/IdealImage';
Вместо этого ClickHouse предоставляет другой тип индекса, который при определённых обстоятельствах может значительно повысить скорость выполнения запросов. Эти структуры называются индексами пропуска (skip indexes), поскольку они позволяют ClickHouse пропускать чтение значительных блоков данных, которые гарантированно не содержат подходящих значений.
-
-
## Базовый принцип работы {#basic-operation}
Пользователи могут использовать индексы пропуска данных (Data Skipping Indexes) только для таблиц семейства MergeTree. Каждый индекс пропуска данных имеет четыре основных аргумента:
@@ -116,7 +111,6 @@ SET send_logs_level='trace';
Это позволит получить полезную отладочную информацию при настройке SQL‑запроса и индексов таблицы. Из приведённого выше примера видно, что в отладочном логе указано, что индекс пропуска (skip index) отбросил все гранулы, кроме двух:
-
```sql
default.skip_table (933d4b2c-8cea-4bf9-8c93-c56e900eefd1) (SelectExecutor): Индекс `vix` пропустил 6102/6104 гранул.
```
@@ -166,7 +160,6 @@ SET send_logs_level='trace';
Этот индекс также может быть полезен для текстового поиска, особенно для языков без разделителей слов, таких как китайский.
-
## Функции индексов пропуска данных {#skip-index-functions}
Основная цель индексов пропуска данных — ограничить объём данных, анализируемых популярными запросами. Учитывая аналитический характер данных ClickHouse, такие запросы в большинстве случаев включают функциональные выражения. Соответственно, индексы пропуска данных должны корректно взаимодействовать с распространёнными функциями, чтобы быть эффективными. Это возможно в двух случаях:
@@ -176,8 +169,6 @@ SET send_logs_level='trace';
Каждый тип индекса пропуска данных работает с подмножеством доступных функций ClickHouse, соответствующим реализации индекса, перечисленной
[здесь](/engines/table-engines/mergetree-family/mergetree/#functions-support). В общем случае set-индексы и индексы на основе Bloom-фильтра (ещё один тип set-индекса) неупорядочены и поэтому не работают с диапазонами. Напротив, minmax-индексы особенно хорошо работают с диапазонами, поскольку определение того, пересекаются ли диапазоны, выполняется очень быстро. Эффективность функций частичного совпадения LIKE, startsWith, endsWith и hasToken зависит от используемого типа индекса, индексного выражения и конкретной структуры данных.
-
-
## Настройки индексов пропуска данных {#skip-index-settings}
Существует две настройки, которые применяются к индексам пропуска данных.
@@ -185,8 +176,6 @@ SET send_logs_level='trace';
* **use_skip_indexes** (0 или 1, по умолчанию 1). Не все запросы могут эффективно использовать индексы пропуска данных. Если конкретное условие фильтрации, скорее всего, включает большинство гранул, применение индекса пропуска данных приводит к ненужным и иногда значительным накладным расходам. Установите значение 0 для запросов, которые с высокой вероятностью не получат выгоды от использования индексов пропуска данных.
* **force_data_skipping_indices** (список имён индексов, разделённых запятыми). Эта настройка может использоваться для предотвращения некоторых видов неэффективных запросов. В ситуациях, когда выполнение запроса к таблице слишком дорого без использования индекса пропуска данных, указание одного или нескольких имён индексов в этой настройке приведёт к возникновению исключения для любого запроса, который не использует перечисленные индексы. Это позволяет предотвратить потребление ресурсов сервера неэффективно написанными запросами.
-
-
## Рекомендации по использованию skip index {#skip-best-practices}
Skip-индексы неочевидны, особенно для пользователей, привыкших к вторичным строковым индексам из мира СУБД или инвертированным индексам из документных хранилищ. Чтобы получить от них пользу, применение индекса пропуска данных (data skipping index) в ClickHouse должно позволять избежать достаточного количества чтений гранул, чтобы компенсировать стоимость вычисления индекса. Критически важно, что если значение встречается хотя бы один раз в индексируемом блоке, это означает, что весь блок должен быть считан в память и обработан, а затраты на вычисление индекса окажутся напрасными.
@@ -230,7 +219,6 @@ SELECT timestamp, url FROM table WHERE visitor_id = 1001`
включать вариации типа, размера гранулы и других параметров. Тестирование часто выявляет закономерности и подводные камни, которые неочевидны
исключительно из мысленных экспериментов.
-
## Связанные материалы {#related-docs}
- [Руководство по лучшим практикам](/best-practices/use-data-skipping-indices-where-appropriate)
- [Примеры индексов пропуска данных](/optimize/skipping-indexes/examples)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/sparse-primary-indexes.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/sparse-primary-indexes.md
index c8440883b2e..2f17bc30eb1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/sparse-primary-indexes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/best-practices/sparse-primary-indexes.md
@@ -35,7 +35,6 @@ import sparsePrimaryIndexes15a from '@site/static/images/guides/best-practices/s
import sparsePrimaryIndexes15b from '@site/static/images/guides/best-practices/sparse-primary-indexes-15b.png';
import Image from '@theme/IdealImage';
-
# Практическое введение в первичные индексы ClickHouse {#a-practical-introduction-to-primary-indexes-in-clickhouse}
## Введение {#introduction}
@@ -91,7 +90,6 @@ PRIMARY KEY tuple();
Затем вставьте подмножество набора данных hits в таблицу с помощью следующего оператора SQL INSERT.
Для этого используется [табличная функция URL](/sql-reference/table-functions/url.md), чтобы загрузить подмножество полного набора данных, размещённого удалённо на clickhouse.com:
-
```sql
INSERT INTO hits_NoPrimaryKey SELECT
intHash32(UserID) AS UserID,
@@ -113,7 +111,6 @@ Ok.
Наконец, чтобы упростить дальнейшее обсуждение в этом руководстве и сделать диаграммы и результаты воспроизводимыми, мы [оптимизируем](/sql-reference/statements/optimize.md) таблицу с помощью ключевого слова FINAL:
-
```sql
OPTIMIZE TABLE hits_NoPrimaryKey FINAL;
```
@@ -159,7 +156,6 @@ LIMIT 10;
Чтобы сделать этот процесс (значительно) более эффективным и (намного) быстрее, нам нужно использовать таблицу с подходящим первичным ключом. Это позволит ClickHouse автоматически (на основе столбцов первичного ключа) создать разреженный первичный индекс, который затем можно будет использовать для существенного ускорения выполнения нашего примерного запроса.
-
## Проектирование индексов в ClickHouse {#clickhouse-index-design}
### Проектирование индекса для колоссальных объёмов данных {#an-index-design-for-massive-data-scales}
@@ -242,7 +238,6 @@ SETTINGS index_granularity = 8192, index_granularity_bytes = 0, compress_primary
Затем вставьте данные:
-
```sql
INSERT INTO hits_UserID_URL SELECT
intHash32(UserID) AS UserID,
@@ -270,7 +265,6 @@ OPTIMIZE TABLE hits_UserID_URL FINAL;
Мы можем использовать следующий запрос для получения метаданных о таблице:
-
```sql
SELECT
part_type,
@@ -310,7 +304,6 @@ bytes_on_disk: 207.07 MiB
* Таблица имеет первичный индекс с 1083 записями (называемыми «метками»), размер индекса — 96,93 KB.
* В сумме файлы данных и меток таблицы, а также файл первичного индекса занимают на диске 207,07 MB.
-
### Данные хранятся на диске в порядке, определяемом столбцами первичного ключа {#data-is-stored-on-disk-ordered-by-primary-key-columns}
Наша таблица, которую мы создали выше, имеет
@@ -576,7 +569,6 @@ LIMIT 10;
Ответ будет выглядеть так:
-
```response
┌─explain───────────────────────────────────────────────────────────────────────────────┐
│ Expression (Проекция) │
@@ -617,7 +609,6 @@ LIMIT 10;
В следующем разделе мы более подробно рассмотрим эту вторую стадию.
-
### Файлы меток используются для определения местоположения гранул {#mark-files-are-used-for-locating-granules}
На следующей диаграмме показана часть файла первичного индекса для нашей таблицы.
@@ -794,7 +785,6 @@ LIMIT 10;
-
### Универсальный алгоритм поиска с исключением {#generic-exclusion-search-algorithm}
Ниже показано, как работает универсальный алгоритм поиска с исключением в ClickHouse, когда гранулы выбираются по вторичной колонке, где предшествующая ключевая колонка имеет низкую (или высокую) кардинальность.
@@ -870,7 +860,6 @@ ClickHouse создал дополнительный индекс, которы
Конкретное значение URL, которое ищет запрос (т. е. '[http://public_search'](http://public\_search\');) с высокой вероятностью находится между минимальным и максимальным значением, сохранённым индексом для каждой группы гранул, что вынуждает ClickHouse выбирать группу гранул (поскольку они могут содержать строки, соответствующие запросу).
-
### Необходимость использования нескольких первичных индексов {#a-need-to-use-multiple-primary-indexes}
Таким образом, если мы хотим значительно ускорить наш пример запроса, который фильтрует строки с конкретным URL-адресом, нам нужно использовать первичный индекс, оптимизированный под этот запрос.
@@ -1001,7 +990,6 @@ LIMIT 10;
При URL в качестве первого столбца в первичном индексе ClickHouse теперь выполняет двоичный поиск по меткам индекса.
Соответствующая запись трассировки в журнале сервера ClickHouse подтверждает это:
-
```response
...Executor): Условие по ключу: (столбец 0 в ['http://public_search',
'http://public_search'])
@@ -1077,8 +1065,7 @@ ClickHouse выбрал только 39 меток индекса вместо 1
Теперь у нас есть две таблицы, каждая из которых оптимизирована для ускорения запросов с фильтрацией по `UserIDs` и по URL соответственно:
-
-### Вариант 2: материализованное представление
+### Вариант 2: материализованное представление {#option-2-materialized-views}
Создайте [материализованное представление](/sql-reference/statements/create/view.md) на основе нашей существующей таблицы.
@@ -1155,7 +1142,6 @@ LIMIT 10;
Соответствующая запись трассировки в журнале сервера ClickHouse подтверждает, что ClickHouse выполняет двоичный поиск по меткам индекса:
-
```response
...Executor): Key condition: (column 0 in ['http://public_search',
'http://public_search'])
@@ -1168,8 +1154,7 @@ LIMIT 10;
...Executor): Reading approx. 335872 rows with 4 streams
```
-
-### Вариант 3: проекции
+### Вариант 3: проекции {#option-3-projections}
Создайте проекцию для нашей существующей таблицы:
@@ -1245,7 +1230,6 @@ LIMIT 10;
Соответствующая трассировочная запись в серверном журнале ClickHouse подтверждает, что ClickHouse выполняет двоичный поиск по меткам индекса:
-
```response
...Executor): Условие по ключу: (столбец 0 в ['http://public_search',
'http://public_search'])
@@ -1261,7 +1245,6 @@ LIMIT 10;
...Executor): Чтение приблизительно 319488 строк с использованием 2 потоков
```
-
### Итоги {#summary}
Первичный индекс нашей [таблицы со составным первичным ключом (UserID, URL)](#a-table-with-a-primary-key) был очень полезен для ускорения [запроса с фильтрацией по UserID](#the-primary-index-is-used-for-selecting-granules). Но этот индекс почти не помогает при ускорении [запроса с фильтрацией по URL](/guides/best-practices/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient), несмотря на то, что столбец URL является частью составного первичного ключа.
@@ -1277,7 +1260,7 @@ LIMIT 10;
Чем больше разница в кардинальности между столбцами ключа, тем сильнее порядок этих столбцов в ключе влияет на эффективность. В следующем разделе мы это продемонстрируем.
-## Эффективный порядок столбцов ключа
+## Эффективный порядок столбцов ключа {#ordering-key-columns-efficiently}
@@ -1376,7 +1359,6 @@ PRIMARY KEY (IsRobot, UserID, URL);
И заполните её теми же 8,87 миллионами строк, которые мы использовали для предыдущей таблицы:
-
```sql
INSERT INTO hits_IsRobot_UserID_URL SELECT
intHash32(c11::UInt64) AS UserID,
@@ -1392,8 +1374,7 @@ WHERE URL != '';
0 строк в наборе. Прошло: 95,959 сек. Обработано 8,87 млн строк, 15,88 ГБ (92,48 тыс. строк/сек., 165,50 МБ/сек.)
```
-
-### Эффективная фильтрация по вторичным столбцам ключа
+### Эффективная фильтрация по вторичным столбцам ключа {#efficient-filtering-on-secondary-key-columns}
Когда запрос фильтрует по крайней мере одному столбцу, который является частью составного ключа и является первым столбцом ключа, [ClickHouse выполняет алгоритм бинарного поиска по индексным меткам ключевого столбца](#the-primary-index-is-used-for-selecting-granules).
@@ -1447,7 +1428,6 @@ WHERE UserID = 112304
Причина в том, что [generic exclusion search algorithm](https://github.com/ClickHouse/ClickHouse/blob/22.3/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp#L1444) работает наиболее эффективно, когда [гранулы](#the-primary-index-is-used-for-selecting-granules) выбираются по столбцу вторичного ключа, при этом предшествующий ему столбец ключа имеет более низкую кардинальность. Мы подробно показали это в [предыдущем разделе](#generic-exclusion-search-algorithm) данного руководства.
-
### Оптимальный коэффициент сжатия файлов данных {#efficient-filtering-on-secondary-key-columns}
Этот запрос сравнивает коэффициент сжатия столбца `UserID` в двух таблицах, созданных выше:
@@ -1502,7 +1482,6 @@ ORDER BY Ratio ASC
-
Теперь строки таблицы сначала упорядочены по их значению `ch`, а строки с одинаковым значением `ch` — по их значению `cl`.
Но поскольку первый ключевой столбец `ch` имеет высокую кардинальность, маловероятно, что вообще есть строки с одинаковым значением `ch`. А из‑за этого также маловероятно, что значения `cl` будут упорядочены (локально — для строк с одинаковым значением `ch`).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/debugging-memory-issues.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/debugging-memory-issues.md
index 1c6ce42d6ba..fc8a1d39160 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/debugging-memory-issues.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/debugging-memory-issues.md
@@ -8,14 +8,10 @@ title: 'Диагностика проблем с памятью'
doc_type: 'guide'
---
-
-
# Отладка проблем с памятью {#debugging-memory-issues}
При возникновении проблем с памятью или утечки памяти важно понимать, какие запросы и ресурсы потребляют значительный объём памяти. Ниже приведены запросы, которые помогут вам диагностировать проблемы с памятью, выявив, какие запросы, базы данных и таблицы можно оптимизировать:
-
-
## Вывод списка текущих процессов по пиковому потреблению памяти {#list-currently-running-processes-by-peak-memory}
```sql
@@ -30,7 +26,6 @@ ORDER BY peak_memory_usage DESC
LIMIT 100;
```
-
## Список метрик использования памяти {#list-metrics-for-memory-usage}
```sql
@@ -45,7 +40,6 @@ ORDER BY
value DESC;
```
-
## Список таблиц по текущему потреблению памяти {#list-tables-by-current-memory-usage}
```sql
@@ -57,28 +51,24 @@ FROM system.tables
WHERE engine IN ('Memory','Set','Join');
```
-
## Вывести общий объём памяти, используемой слияниями {#output-total-memory-used-by-merges}
```sql
SELECT formatReadableSize(sum(memory_usage)) FROM system.merges;
```
-
## Вывести общий объём памяти, используемой текущими процессами {#output-total-memory-used-by-currently-running-processes}
```sql
SELECT formatReadableSize(sum(memory_usage)) FROM system.processes;
```
-
## Вывод общего объёма памяти, используемой словарями {#output-total-memory-used-by-dictionaries}
```sql
SELECT formatReadableSize(sum(bytes_allocated)) FROM system.dictionaries;
```
-
## Вывести общий объём памяти, используемый первичными ключами и гранулами индекса {#output-total-memory-used-by-primary-keys}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/deduplicating-inserts-on-retries.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/deduplicating-inserts-on-retries.md
index 55fcebbf665..14503a04193 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/deduplicating-inserts-on-retries.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/deduplicating-inserts-on-retries.md
@@ -10,8 +10,6 @@ doc_type: 'guide'
Когда выполняется повторная попытка вставки, ClickHouse пытается определить, были ли данные уже успешно записаны. Если вставленные данные помечены как дубликат, ClickHouse не вставляет их в целевую таблицу. Однако пользователь по-прежнему получит статус успешного выполнения операции, как если бы данные были вставлены обычным образом.
-
-
## Ограничения {#limitations}
### Неопределённый статус вставки {#uncertain-insert-status}
@@ -22,8 +20,6 @@ doc_type: 'guide'
Если во время последовательности повторных попыток выполняется более `*_deduplication_window` других операций вставки, дедупликация может работать не так, как ожидается. В этом случае одни и те же данные могут быть вставлены несколько раз.
-
-
## Включение дедупликации вставок при повторах {#enabling-insert-deduplication-on-retries}
### Дедупликация вставок для таблиц {#insert-deduplication-for-tables}
@@ -38,8 +34,6 @@ doc_type: 'guide'
Настройка `insert_deduplicate=1` включает дедупликацию на уровне запроса. Обратите внимание, что если вы вставляете данные с `insert_deduplicate=0`, эти данные не могут быть дедуплицированы, даже если вы повторите вставку с `insert_deduplicate=1`. Это связано с тем, что `block_id` не записываются для блоков при вставках с `insert_deduplicate=0`.
-
-
## Как работает дедупликация вставок {#how-insert-deduplication-works}
Когда данные вставляются в ClickHouse, они разбиваются на блоки в зависимости от количества строк и объема данных в байтах.
@@ -52,8 +46,6 @@ doc_type: 'guide'
Для запросов `INSERT ... SELECT` важно, чтобы часть запроса `SELECT` возвращала одни и те же данные в том же порядке при каждой операции. Учтите, что этого сложно добиться на практике. Чтобы обеспечить стабильный порядок данных при повторных попытках, задайте точный раздел `ORDER BY` в части запроса `SELECT`. Имейте в виду, что выбранная таблица может быть изменена между повторными попытками: результирующие данные могли измениться, и дедупликация не произойдет. Кроме того, в ситуациях, когда вы вставляете большие объемы данных, возможно, что количество блоков после вставок переполнит окно журнала дедупликации, и ClickHouse не сможет определить, что блоки нужно дедуплицировать.
-
-
## Дедупликация вставок с материализованными представлениями {#insert-deduplication-with-materialized-views}
Когда у таблицы есть одно или несколько материализованных представлений, вставленные данные также записываются в целевые таблицы этих представлений с заданными преобразованиями. Преобразованные данные также дедуплицируются при повторных попытках вставки. ClickHouse выполняет дедупликацию для материализованных представлений так же, как он дедуплицирует данные, вставленные в целевую таблицу.
@@ -69,8 +61,6 @@ doc_type: 'guide'
При вставке блоков в таблицы, которые являются целевыми для материализованных представлений, ClickHouse вычисляет `block_id` путём хеширования строки, объединяющей `block_id` из исходной таблицы и дополнительные идентификаторы. Это обеспечивает корректную дедупликацию в рамках материализованных представлений, позволяя различать данные по их исходной вставке, независимо от любых преобразований, применённых перед попаданием в целевую таблицу материализованного представления.
-
-
## Примеры {#examples}
### Идентичные блоки после преобразований в материализованном представлении {#identical-blocks-after-materialized-view-transformations}
@@ -216,7 +206,6 @@ FROM dst
ORDER BY all;
```
-
┌─'from dst'─┬─key─┬─value─┬─_part─────┐
│ from dst │ 0 │ A │ all_0_0_0 │
└────────────┴─────┴───────┴───────────┘
@@ -340,7 +329,6 @@ AS SELECT
FROM dst;
```
-
SET deduplicate_blocks_in_dependent_materialized_views=1;
select 'first attempt';
@@ -481,7 +469,6 @@ FROM dst
ORDER BY all;
```
-
┌─'from dst'─┬─key─┬─value─┬─_part─────┐
│ from dst │ 1 │ A │ all_0_0_0 │
└────────────┴─────┴───────┴───────────┘
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/deduplication.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/deduplication.md
index 2ec89b69d4a..4a0430855b0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/deduplication.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/deduplication.md
@@ -11,7 +11,6 @@ doc_type: 'guide'
import deduplication from '@site/static/images/guides/developer/de_duplication.png';
import Image from '@theme/IdealImage';
-
# Стратегии дедупликации {#deduplication-strategies}
**Дедупликация** — это процесс ***удаления дублирующихся строк из набора данных***. В OLTP-СУБД это делается проще, так как каждая строка имеет уникальный первичный ключ — но ценой более медленных вставок. Каждую вставляемую строку сначала нужно найти, и, если она найдена, заменить.
@@ -30,8 +29,6 @@ ClickHouse оптимизирован для высокой скорости в
-
-
## Варианты дедупликации {#options-for-deduplication}
Дедупликация в ClickHouse реализуется с использованием следующих движков таблиц:
@@ -42,8 +39,6 @@ ClickHouse оптимизирован для высокой скорости в
Ниже мы рассмотрим оба этих подхода. Для получения дополнительной информации ознакомьтесь с нашим бесплатным онлайн‑[обучающим модулем по удалению и обновлению данных](https://learn.clickhouse.com/visitor_catalog_class/show/1328954/?utm_source=clickhouse&utm_medium=docs).
-
-
## Использование ReplacingMergeTree для операций upsert {#using-replacingmergetree-for-upserts}
Рассмотрим простой пример, в котором таблица содержит комментарии Hacker News со столбцом views, представляющим количество просмотров комментария. Предположим, что мы добавляем новую строку при публикации статьи и раз в день выполняем upsert новой строки с общим числом просмотров, если это значение увеличилось:
@@ -133,7 +128,6 @@ SELECT *
FROM hackernews_rmt
```
-
```response
┌─id─┬─author──┬─comment─────────┬─views─┐
│ 2 │ ch_fan │ This is post #2 │ 200 │
@@ -172,7 +166,6 @@ GROUP BY (id, author, comment)
Наш [учебный модуль «Deleting and Updating Data»](https://learn.clickhouse.com/visitor_catalog_class/show/1328954/?utm_source=clickhouse\&utm_medium=docs) подробнее разбирает этот пример, в том числе показывает, как использовать столбец `version` с `ReplacingMergeTree`.
-
## Использование CollapsingMergeTree для частого обновления столбцов {#using-collapsingmergetree-for-updating-columns-frequently}
Обновление столбца подразумевает удаление существующей строки и замену её новыми значениями. Как вы уже видели, такие мутации в ClickHouse происходят *не сразу*, а во время слияний (merges). Если вам нужно обновить много строк, на практике может быть эффективнее не использовать `ALTER TABLE..UPDATE`, а вместо этого просто вставлять новые данные вместе с существующими. Мы могли бы добавить столбец, который указывает, являются ли данные устаревшими или новыми... и на самом деле уже существует движок таблицы, который очень хорошо реализует такое поведение, особенно с учётом того, что он автоматически удаляет устаревшие данные за вас. Давайте посмотрим, как это работает.
@@ -258,7 +251,6 @@ INSERT INTO hackernews_views(id, author, sign) VALUES
:::
-
## Обновления в реальном времени из нескольких потоков {#real-time-updates-from-multiple-threads}
В таблице `CollapsingMergeTree` строки взаимно погашают друг друга с помощью столбца `sign`, а состояние строки определяется последней вставленной строкой. Но это может быть проблемой, если вы вставляете строки из разных потоков, где строки могут вставляться в произвольном порядке. Использование "последней" строки в этой ситуации не работает.
@@ -349,7 +341,6 @@ FROM hackernews_views_vcmt
Таблица `VersionedCollapsingMergeTree` особенно удобна, когда нужно реализовать дедупликацию при одновременной вставке строк из нескольких клиентов и/или потоков.
-
## Почему мои строки не дедуплицируются? {#why-arent-my-rows-being-deduplicated}
Одна из причин, по которой вставленные строки могут не дедуплицироваться, состоит в использовании неидемпотентной функции или выражения в операторе `INSERT`. Например, если вы вставляете строки со столбцом `createdAt DateTime64(3) DEFAULT now()`, ваши строки гарантированно будут уникальными, поскольку каждая строка будет иметь уникальное значение по умолчанию для столбца `createdAt`. Движок таблицы MergeTree / ReplicatedMergeTree не сможет дедуплицировать строки, так как для каждой вставленной строки будет генерироваться уникальная контрольная сумма.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/on-fly-mutations.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/on-fly-mutations.md
index e0753a7fe47..4c4630edc1e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/on-fly-mutations.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/on-fly-mutations.md
@@ -7,8 +7,6 @@ description: 'Описание мутаций, выполняемых на ле
doc_type: 'guide'
---
-
-
## Мгновенные мутации {#on-the-fly-mutations}
Когда мгновенные мутации включены, обновлённые строки сразу же помечаются как изменённые, и последующие запросы `SELECT` автоматически возвращают новые значения. Если мгновенные мутации отключены, может потребоваться подождать, пока мутации будут применены фоновым процессом, чтобы увидеть изменённые значения.
@@ -19,7 +17,6 @@ doc_type: 'guide'
SET apply_mutations_on_fly = 1;
```
-
## Пример {#example}
Давайте создадим таблицу и выполним несколько мутаций:
@@ -79,7 +76,6 @@ SELECT id, v FROM test_on_fly_mutations ORDER BY id;
└────┴───┘
```
-
## Влияние на производительность {#performance-impact}
Когда включены мутации «на лету», мутации не материализуются немедленно, а применяются только во время запросов `SELECT`. Однако обратите внимание, что мутации по-прежнему асинхронно материализуются в фоновом режиме, и это ресурсоёмкий процесс.
@@ -88,8 +84,6 @@ SELECT id, v FROM test_on_fly_mutations ORDER BY id;
Мы рекомендуем включать настройку `apply_mutations_on_fly` вместе с другими настройками уровня MergeTree, такими как `number_of_mutations_to_throw` и `number_of_mutations_to_delay`, чтобы ограничить бесконечный рост числа нематериализованных мутаций.
-
-
## Поддержка подзапросов и недетерминированных функций {#support-for-subqueries-and-non-deterministic-functions}
Мутации «на лету» ограниченно поддерживают подзапросы и недетерминированные функции. Поддерживаются только скалярные подзапросы с результатом разумного размера (контролируется настройкой `mutations_max_literal_size_to_replace`). Поддерживаются только константные недетерминированные функции (например, функция `now()`).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/replacing-merge-tree.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/replacing-merge-tree.md
index f98c4f66584..17fc995e994 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/replacing-merge-tree.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/replacing-merge-tree.md
@@ -12,7 +12,6 @@ import Image from '@theme/IdealImage';
Транзакционные базы данных оптимизированы для рабочих нагрузок с частыми транзакционными операциями обновления и удаления, тогда как OLAP-базы данных предоставляют ослабленные гарантии для таких операций. Вместо этого они оптимизированы под работу с неизменяемыми данными, вставляемыми пакетами, что обеспечивает значительно более высокую скорость аналитических запросов. Хотя ClickHouse предоставляет операции обновления через мутации, а также облегчённый механизм удаления строк, его колоночная структура означает, что эти операции следует планировать с осторожностью, как было описано выше. Эти операции обрабатываются асинхронно, выполняются в одном потоке и требуют (в случае обновлений) перезаписи данных на диске. Поэтому их не следует использовать для большого количества небольших изменений.
Чтобы обрабатывать поток операций обновления и удаления строк, избегая описанных выше сценариев использования, мы можем использовать табличный движок ClickHouse ReplacingMergeTree.
-
## Автоматические upsert-операции для вставленных строк {#automatic-upserts-of-inserted-rows}
Движок таблицы [ReplacingMergeTree](/engines/table-engines/mergetree-family/replacingmergetree) позволяет применять операции обновления к строкам без необходимости использовать неэффективные операторы `ALTER` или `DELETE`. Это достигается за счёт того, что пользователи могут вставлять несколько копий одной и той же строки и помечать одну из них как последнюю версию. Фоновый процесс, в свою очередь, асинхронно удаляет более старые версии той же строки, эффективно имитируя операцию обновления за счёт использования неизменяемых вставок.
@@ -52,7 +51,6 @@ ReplacingMergeTree дополнительно позволяет указать
> Совет: пользователи также могут выполнить `OPTIMIZE FINAL CLEANUP` для выборочных партиций, которые больше не подвержены изменениям.
-
## Выбор первичного/дедупликационного ключа {#choosing-a-primarydeduplication-key}
Выше мы выделили важное дополнительное ограничение, которое также должно соблюдаться в случае ReplacingMergeTree: значения столбцов, указанных в `ORDER BY`, должны однозначно идентифицировать строку при любых изменениях. Если выполняется миграция из транзакционной базы данных, такой как Postgres, исходный первичный ключ Postgres, таким образом, должен быть включён в предложение `ORDER BY` в ClickHouse.
@@ -98,7 +96,6 @@ ORDER BY (PostTypeId, toDate(CreationDate), CreationDate, Id)
Мы используем ключ `ORDER BY` вида `(PostTypeId, toDate(CreationDate), CreationDate, Id)`. Столбец `Id`, уникальный для каждого поста, обеспечивает возможность удаления дубликатов строк. В схему при необходимости добавляются столбцы `Version` и `Deleted`.
-
## Выполнение запросов к ReplacingMergeTree {#querying-replacingmergetree}
При слиянии данных движок ReplacingMergeTree определяет дублирующиеся строки, используя значения столбцов `ORDER BY` как уникальный идентификатор, и либо сохраняет только строку с наибольшей версией, либо удаляет все дубликаты, если последняя версия помечает строку как удалённую. Однако это даёт лишь корректность «со временем» — нет гарантии, что строки действительно будут дедуплицированы, и на это не следует полагаться. В результате запросы могут возвращать некорректные ответы, поскольку строки с обновлениями и удалениями продолжают участвовать в выборках.
@@ -210,7 +207,6 @@ FROM posts_updateable
Ваши результаты здесь будут различаться в зависимости от выполненных слияний. Мы видим, что общий итог отличается, так как у нас есть дублирующиеся строки. Применение `FINAL` к таблице даёт корректный результат.
-
```sql
SELECT count()
FROM posts_updateable
@@ -224,7 +220,6 @@ FINAL
Пиковое потребление памяти: 8.14 MiB.
```
-
## Производительность с `FINAL` {#final-performance}
Оператор `FINAL` действительно оказывает небольшое влияние на производительность запросов.
@@ -235,8 +230,6 @@ FINAL
Если условие `WHERE` не использует столбец ключа, ClickHouse в текущей реализации не использует оптимизацию `PREWHERE` при использовании `FINAL`. Эта оптимизация направлена на сокращение количества строк, читаемых для столбцов, по которым не происходит фильтрация. Примеры эмуляции такого поведения `PREWHERE` и, соответственно, потенциального улучшения производительности можно найти [здесь](https://clickhouse.com/blog/clickhouse-postgresql-change-data-capture-cdc-part-1#final-performance).
-
-
## Эффективное использование партиций с ReplacingMergeTree {#exploiting-partitions-with-replacingmergetree}
Слияние данных в ClickHouse происходит на уровне партиций. При использовании ReplacingMergeTree мы рекомендуем разбивать таблицу на партиции в соответствии с лучшими практиками при условии, что **ключ партиционирования для строки не изменяется**. Это гарантирует, что обновления, относящиеся к одной и той же строке, будут попадать в одну и ту же партицию ClickHouse. Вы можете использовать тот же ключ партиционирования, что и в Postgres, при условии соблюдения лучших практик, описанных здесь.
@@ -325,7 +318,6 @@ ORDER BY year ASC
Как видно, секционирование в данном случае значительно улучшило производительность запроса, позволив выполнять процесс дедупликации параллельно на уровне партиций.
-
## Особенности поведения слияний {#merge-behavior-considerations}
Механизм выбора слияний в ClickHouse выходит за рамки простого объединения частей. Ниже мы рассматриваем это поведение в контексте ReplacingMergeTree, включая параметры конфигурации для более агрессивного слияния старых данных и аспекты, касающиеся крупных частей.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/stored-procedures-and-prepared-statements.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/stored-procedures-and-prepared-statements.md
index 794d7dce5ec..772061ed8c7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/stored-procedures-and-prepared-statements.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/stored-procedures-and-prepared-statements.md
@@ -11,7 +11,6 @@ doc_type: 'guide'
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-
# Хранимые процедуры и параметры запросов в ClickHouse {#stored-procedures-and-query-parameters-in-clickhouse}
Если вы привыкли к традиционной реляционной базе данных, вы можете ожидать наличия в ClickHouse хранимых процедур и подготовленных запросов.
@@ -110,7 +109,6 @@ SELECT format_phone('5551234567');
Полный синтаксис см. в [`CREATE FUNCTION`](/sql-reference/statements/create/function).
-
#### Исполняемые UDF-функции {#executable-udfs}
Для более сложной логики используйте исполняемые UDF-функции, которые вызывают внешние программы:
@@ -143,7 +141,6 @@ FROM customer_reviews;
Подробности см. в разделе [Исполняемые UDF](/sql-reference/functions/udf).
-
### Параметризованные представления {#parameterized-views}
Параметризованные представления ведут себя как функции, возвращающие наборы данных.
@@ -201,7 +198,6 @@ FROM sales_by_date(start_date='2024-01-01', end_date='2024-01-31')
WHERE product_id = 12345;
```
-
#### Типовые сценарии использования {#common-use-cases}
* Динамическая фильтрация по диапазону дат
@@ -247,7 +243,6 @@ SELECT * FROM top_products_by_category(
См. раздел [Параметризованные представления](/sql-reference/statements/create/view#parameterized-view) для получения дополнительной информации.
-
### Материализованные представления {#materialized-views}
Материализованные представления идеально подходят для предварительного вычисления дорогостоящих операций агрегации, которые традиционно выполнялись бы в хранимых процедурах. Если вы привыкли к традиционным СУБД, представляйте материализованное представление как **триггер INSERT**, который автоматически преобразует и агрегирует данные при их вставке в исходную таблицу:
@@ -301,7 +296,6 @@ WHERE date BETWEEN '2024-01-01' AND '2024-01-31'
GROUP BY user_id;
```
-
#### Обновляемые материализованные представления {#refreshable-materialized-views}
Для пакетной обработки по расписанию (например, для ночного запуска хранимых процедур):
@@ -328,7 +322,6 @@ WHERE month = toStartOfMonth(today());
См. раздел [Cascading Materialized Views](/guides/developer/cascading-materialized-views) для более продвинутых паттернов.
-
### Внешняя оркестрация {#external-orchestration}
Для сложной бизнес-логики, ETL-пайплайнов или многошаговых процессов всегда можно реализовать логику вне ClickHouse,
@@ -605,7 +598,7 @@ WHERE month = toStartOfMonth(today());
Есть два способа задавать параметры запроса:
-#### Метод 1: с использованием `SET`
+#### Метод 1: с использованием `SET` {#method-1-using-set}
Пример таблицы и данных
@@ -657,8 +650,7 @@ WHERE user_id = {user_id: UInt64}
GROUP BY event_name;
```
-
-#### Метод 2: с использованием параметров CLI
+#### Метод 2: с использованием параметров CLI {#method-2-using-cli-parameters}
```bash
clickhouse-client \
@@ -670,7 +662,6 @@ clickhouse-client \
AND event_date BETWEEN {start_date: Date} AND {end_date: Date}"
```
-
### Синтаксис параметров {#parameter-syntax}
Параметры задаются в виде: `{parameter_name: DataType}`
@@ -840,7 +831,6 @@ ALTER TABLE {table: Identifier} ADD COLUMN new_col String; -- НЕ ПОДДЕР
{statements: String}; -- НЕ ПОДДЕРЖИВАЕТСЯ
```
-
### Рекомендации по безопасности {#data-type-examples}
**Всегда используйте параметры запроса для пользовательского ввода:**
@@ -877,8 +867,7 @@ def get_user_orders(user_id: int, start_date: str):
)
```
-
-### Подготовленные выражения в протоколе MySQL
+### Подготовленные выражения в протоколе MySQL {#mysql-protocol-prepared-statements}
[Интерфейс MySQL](/interfaces/mysql) в ClickHouse включает минимальную поддержку подготовленных выражений (`COM_STMT_PREPARE`, `COM_STMT_EXECUTE`, `COM_STMT_CLOSE`), в основном для обеспечения совместимости с инструментами вроде Tableau Online, которые оборачивают запросы в подготовленные выражения.
@@ -909,7 +898,6 @@ SELECT * FROM users WHERE id = {user_id: UInt64};
Подробнее см. [документацию по интерфейсу MySQL](/interfaces/mysql) и [запись в блоге о поддержке MySQL](https://clickhouse.com/blog/mysql-support-in-clickhouse-the-journey).
-
## Резюме {#summary}
### Альтернативы хранимым процедурам в ClickHouse {#summary-stored-procedures}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/ttl.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/ttl.md
index e49ef069a0a..e4fffd1ec54 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/ttl.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/ttl.md
@@ -11,11 +11,8 @@ doc_type: 'guide'
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Управление сроком жизни данных (TTL, time to live) {#manage-data-with-ttl-time-to-live}
-
-
## Обзор TTL {#overview-of-ttl}
TTL (time-to-live) — это механизм, позволяющий перемещать, удалять или агрегировать строки или столбцы по истечении определённого интервала времени. Хотя выражение «time-to-live» звучит так, будто оно относится только к удалению старых данных, у TTL есть несколько сценариев использования:
@@ -28,8 +25,6 @@ TTL (time-to-live) — это механизм, позволяющий пере
TTL может применяться ко всей таблице или к отдельным столбцам.
:::
-
-
## Синтаксис TTL {#ttl-syntax}
Предложение `TTL` может располагаться после определения столбца и/или в конце определения таблицы. Используйте предложение `INTERVAL`, чтобы задать продолжительность интервала (значение должно иметь тип данных `Date` или `DateTime`). Например, в следующей таблице есть два столбца
@@ -54,7 +49,6 @@ ORDER BY tuple()
Правила TTL можно изменить или удалить. Дополнительные сведения см. на странице [Manipulations with Table TTL](/sql-reference/statements/alter/ttl.md).
:::
-
## Запуск событий TTL {#triggering-ttl-events}
Удаление или агрегирование просроченных строк происходит не сразу — оно выполняется только во время слияний таблицы. Если у вас есть таблица, для которой по какой-либо причине не выполняются слияния, существуют два параметра, которые запускают события TTL:
@@ -73,7 +67,6 @@ OPTIMIZE TABLE example1 FINAL
`OPTIMIZE` запускает внеплановое слияние частей вашей таблицы, а `FINAL` принудительно выполняет повторную оптимизацию, даже если таблица уже состоит из одной части.`
-
## Удаление строк {#removing-rows}
Чтобы удалять целые строки из таблицы по истечении определённого времени, задайте правило TTL на уровне таблицы:
@@ -107,7 +100,6 @@ TTL time + INTERVAL 1 MONTH DELETE WHERE event != 'error',
time + INTERVAL 6 MONTH DELETE WHERE event = 'error'
```
-
## Удаление столбцов {#removing-columns}
Вместо удаления всей строки предположим, что вы хотите задать срок действия только для столбцов `balance` и `address`. Давайте изменим таблицу `customers` и добавим для обоих столбцов TTL в 2 часа:
@@ -118,7 +110,6 @@ MODIFY COLUMN balance Int32 TTL timestamp + INTERVAL 2 HOUR,
MODIFY COLUMN address String TTL timestamp + INTERVAL 2 HOUR
```
-
## Реализация rollup-агрегирования {#implementing-a-rollup}
Предположим, мы хотим удалять строки по истечении определённого времени, но при этом сохранять часть данных для отчётности. Нам не нужны все детали — только несколько агрегированных результатов по историческим данным. Это можно реализовать, добавив предложение `GROUP BY` к выражению `TTL`, а также несколько столбцов в таблицу для хранения агрегированных результатов.
@@ -148,7 +139,6 @@ TTL timestamp + INTERVAL 1 DAY
* Мы добавили два поля для хранения агрегированных результатов: `max_hits` и `sum_hits`
* Задание значения по умолчанию для `max_hits` и `sum_hits`, равного `hits`, необходимо для корректной работы нашей логики, исходя из того, как определено предложение `SET`
-
## Реализация архитектуры «hot/warm/cold» {#implementing-a-hotwarmcold-architecture}
@@ -264,7 +254,6 @@ WHERE (table = 'my_table') AND (active = 1)
Ответ будет выглядеть следующим образом:
-
```response
┌─name────────┬─disk_name─┐
│ all_1_3_1_5 │ warm_disk │
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/understanding-query-execution-with-the-analyzer.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/understanding-query-execution-with-the-analyzer.md
index 61086b44685..c3a23e26451 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/understanding-query-execution-with-the-analyzer.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/developer/understanding-query-execution-with-the-analyzer.md
@@ -14,7 +14,6 @@ import analyzer4 from '@site/static/images/guides/developer/analyzer4.png';
import analyzer5 from '@site/static/images/guides/developer/analyzer5.png';
import Image from '@theme/IdealImage';
-
# Понимание выполнения запросов с помощью анализатора {#understanding-query-execution-with-the-analyzer}
ClickHouse обрабатывает запросы чрезвычайно быстро, но процесс их выполнения довольно сложен. Попробуем разобраться, как выполняется запрос `SELECT`. Чтобы проиллюстрировать это, добавим немного данных в таблицу ClickHouse:
@@ -41,7 +40,6 @@ INSERT INTO session_events SELECT * FROM generateRandom('clientId UUID,
Давайте посмотрим на каждый объект в действии во время выполнения запроса. Мы возьмём несколько запросов и затем рассмотрим их с помощью оператора `EXPLAIN`.
-
## Парсер {#parser}
Задача парсера — преобразовать текст запроса в AST (Abstract Syntax Tree, абстрактное синтаксическое дерево). Этот шаг можно визуализировать с помощью `EXPLAIN AST`:
@@ -73,7 +71,6 @@ EXPLAIN AST SELECT min(timestamp), max(timestamp) FROM session_events;
Каждый узел имеет соответствующие дочерние элементы, а дерево целиком представляет структуру вашего запроса. Это логическая структура, помогающая при обработке запроса. С точки зрения конечного пользователя (если только его не интересует выполнение запроса) она не особенно полезна; этот инструмент в основном используется разработчиками.
-
## Анализатор {#analyzer}
В ClickHouse в настоящее время есть две архитектуры анализатора. Вы можете использовать старую архитектуру, установив `enable_analyzer=0`. Новая архитектура включена по умолчанию. Здесь мы будем описывать только новую архитектуру, поскольку старая будет признана устаревшей, как только новый анализатор станет общедоступным.
@@ -131,7 +128,6 @@ EXPLAIN QUERY TREE passes=20 SELECT min(timestamp) AS minimum_date, max(timestam
Между двумя выполнениями вы можете увидеть, как разрешаются псевдонимы и проекции.
-
## Планировщик {#planner}
Планировщик принимает дерево запроса и на его основе строит план запроса. Дерево запроса описывает, что мы хотим сделать с конкретным запросом, а план запроса описывает, как мы это сделаем. Дополнительные оптимизации выполняются на этапе построения плана запроса. Вы можете использовать `EXPLAIN PLAN` или `EXPLAIN`, чтобы посмотреть план запроса (`EXPLAIN` выполнит `EXPLAIN PLAN`).
@@ -205,7 +201,6 @@ FROM session_events
GROUP BY type
```
-
┌─explain────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Выражение ((Projection + Before ORDER BY)) │
│ Действия: INPUT :: 0 -> type String : 0 │
@@ -248,7 +243,6 @@ GROUP BY type
Теперь вы можете видеть все входные данные, функции, псевдонимы и типы данных, которые используются. Некоторые оптимизации, которые будет применять планировщик, можно посмотреть [здесь](https://github.com/ClickHouse/ClickHouse/blob/master/src/Processors/QueryPlan/Optimizations/Optimizations.h).
```
-
## Конвейер запроса {#query-pipeline}
Конвейер запроса генерируется из плана запроса. Конвейер запроса очень похож на план запроса, но представляет собой не дерево, а граф. Он показывает, как ClickHouse будет выполнять запрос и какие ресурсы будут использоваться. Анализ конвейера запроса очень полезен для выявления узких мест с точки зрения ввода/вывода. Возьмём наш предыдущий запрос и посмотрим на выполнение конвейера запроса:
@@ -363,7 +357,6 @@ GROUP BY type
FORMAT TSV
```
-
```response
digraph
{
@@ -447,7 +440,6 @@ digraph
Таким образом, исполнитель запроса решил не параллелизировать операции, поскольку объем данных был недостаточно большим. После того как было добавлено больше строк, исполнитель запроса решил использовать несколько потоков, как видно на графике.
-
## Исполнитель {#executor}
На последнем шаге запрос выполняется исполнителем. Он берёт конвейер запроса и запускает его. Существуют разные типы исполнителей в зависимости от того, выполняете ли вы `SELECT`, `INSERT` или `INSERT SELECT`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/anyIf.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/anyIf.md
index bebb42c1193..63115745e15 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/anyIf.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/anyIf.md
@@ -7,20 +7,14 @@ sidebar_label: 'anyIf'
doc_type: 'reference'
---
-
-
# anyIf {#avgif}
-
-
## Описание {#description}
Комбинатор [`If`](/sql-reference/aggregate-functions/combinators#-if) может быть применён к агрегатной функции [`any`](/sql-reference/aggregate-functions/reference/any)
для выбора первого встретившегося элемента из заданного столбца,
который удовлетворяет указанному условию.
-
-
## Пример использования {#example-usage}
В этом примере мы создадим таблицу, которая хранит данные о продажах с флагами успешности,
@@ -60,7 +54,6 @@ FROM sales;
└────────────┴────────────┘
```
-
## См. также {#see-also}
- [`any`](/sql-reference/aggregate-functions/reference/any)
- [`комбинатор If`](/sql-reference/aggregate-functions/combinators#-if)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/argMaxIf.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/argMaxIf.md
index 12274bde525..6e4c682f66d 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/argMaxIf.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/argMaxIf.md
@@ -7,12 +7,8 @@ sidebar_label: 'argMaxIf'
doc_type: 'reference'
---
-
-
# argMaxIf {#argmaxif}
-
-
## Описание {#description}
Комбинатор [`If`](/sql-reference/aggregate-functions/combinators#-if) может быть применён к функции [`argMax`](/sql-reference/aggregate-functions/reference/argmax),
@@ -23,8 +19,6 @@ doc_type: 'reference'
максимальным значением в наборе данных, но только для строк, которые удовлетворяют определённому
условию.
-
-
## Пример использования {#example-usage}
В этом примере мы используем демонстрационный набор данных о продажах товаров, чтобы показать, как работает `argMaxIf`. Мы найдём название товара с наивысшей ценой, но только среди тех товаров, которые были проданы как минимум 10 раз.
@@ -59,7 +53,6 @@ FROM product_sales;
└──────────────────────────┘
```
-
## См. также {#see-also}
- [`argMax`](/sql-reference/aggregate-functions/reference/argmax)
- [`argMin`](/sql-reference/aggregate-functions/reference/argmin)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/argMinIf.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/argMinIf.md
index 4bd12cdfda6..fb98fc1edc3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/argMinIf.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/argMinIf.md
@@ -7,12 +7,8 @@ sidebar_label: 'argMinIf'
doc_type: 'reference'
---
-
-
# argMinIf {#argminif}
-
-
## Описание {#description}
Комбинатор [`If`](/sql-reference/aggregate-functions/combinators#-if) может быть применён к функции [`argMin`](/sql-reference/aggregate-functions/reference/argmin),
@@ -22,8 +18,6 @@ doc_type: 'reference'
с минимальным значением `val` в наборе данных, но только для строк, которые удовлетворяют определённому
условию.
-
-
## Пример использования {#example-usage}
В этом примере мы создадим таблицу, которая хранит цены товаров и их временные метки,
@@ -65,7 +59,6 @@ GROUP BY product_id;
└────────────┴────────────────────────────┘
```
-
## См. также {#see-also}
- [`argMin`](/sql-reference/aggregate-functions/reference/argmin)
- [`argMax`](/sql-reference/aggregate-functions/reference/argmax)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgIf.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgIf.md
index 2c4e5093707..9b1e6089a4b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgIf.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgIf.md
@@ -7,20 +7,14 @@ sidebar_label: 'avgIf'
doc_type: 'reference'
---
-
-
# avgIf {#avgif}
-
-
## Описание {#description}
Комбинатор [`If`](/sql-reference/aggregate-functions/combinators#-if) может быть применён к функции [`avg`](/sql-reference/aggregate-functions/reference/avg)
для вычисления арифметического среднего значений в строках, для которых выполняется условие,
с помощью агрегатной функции-комбинатора `avgIf`.
-
-
## Пример использования {#example-usage}
В этом примере мы создадим таблицу, которая хранит данные о продажах и признак успешности,
@@ -55,7 +49,6 @@ FROM sales;
└─────────────────────┘
```
-
## См. также {#see-also}
- [`avg`](/sql-reference/aggregate-functions/reference/avg)
- [`If combinator`](/sql-reference/aggregate-functions/combinators#-if)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgMap.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgMap.md
index 09374cb1e83..8367cd518d9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgMap.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgMap.md
@@ -7,19 +7,13 @@ sidebar_label: 'avgMap'
doc_type: 'reference'
---
-
-
# avgMap {#avgmap}
-
-
## Описание {#description}
Комбинатор [`Map`](/sql-reference/aggregate-functions/combinators#-map) может быть применён к функции [`avg`](/sql-reference/aggregate-functions/reference/avg)
для вычисления среднего арифметического значений в `Map` по каждому ключу с использованием агрегатной функции-комбинатора `avgMap`.
-
-
## Пример использования {#example-usage}
В этом примере мы создадим таблицу, которая хранит коды статусов и количество их появлений для разных временных интервалов,
@@ -67,7 +61,6 @@ GROUP BY timeslot;
└─────────────────────┴──────────────────────────────────────┘
```
-
## См. также {#see-also}
- [`avg`](/sql-reference/aggregate-functions/reference/avg)
- [`Комбинатор Map`](/sql-reference/aggregate-functions/combinators#-map)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgMergeState.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgMergeState.md
index 1182e708c04..139a7e90d3b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgMergeState.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgMergeState.md
@@ -10,11 +10,8 @@ doc_type: 'reference'
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-
# avgMergeState {#avgMergeState}
-
-
## Описание {#description}
Комбинатор [`MergeState`](/sql-reference/aggregate-functions/combinators#-state)
@@ -22,8 +19,6 @@ import TabItem from '@theme/TabItem';
для объединения частичных агрегатных состояний типа `AverageFunction(avg, T)` и
формирования нового промежуточного агрегатного состояния.
-
-
## Пример использования {#example-usage}
Комбинатор `MergeState` особенно полезен в сценариях многоуровневой агрегации,
@@ -128,7 +123,6 @@ INSERT INTO raw_server_metrics (timestamp, server_id, region, datacenter, respon
Мы напишем по три запроса для каждого уровня:
-
```sql
@@ -219,7 +213,6 @@ ORDER BY datacenter;
└────────────┴────────────────────┘
```
-
## Смотрите также {#see-also}
- [`avg`](/sql-reference/aggregate-functions/reference/avg)
- [`AggregateFunction`](/sql-reference/data-types/aggregatefunction)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgResample.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgResample.md
index c7d807ec275..d23183895da 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgResample.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgResample.md
@@ -7,12 +7,8 @@ sidebar_label: 'avgResample'
doc_type: 'reference'
---
-
-
# countResample {#countResample}
-
-
## Описание {#description}
Комбинатор [`Resample`](/sql-reference/aggregate-functions/combinators#-resample)
@@ -20,8 +16,6 @@ doc_type: 'reference'
для подсчёта значений указанного ключевого столбца в фиксированном количестве
интервалов (`N`).
-
-
## Пример использования {#example-usage}
### Базовый пример {#basic-example}
@@ -71,7 +65,6 @@ FROM avg_wage;
└──────────────────┘
```
-
## См. также {#see-also}
- [`count`](/sql-reference/aggregate-functions/reference/count)
- [комбинатор `Resample`](/sql-reference/aggregate-functions/combinators#-resample)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgState.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgState.md
index 9eeeeaaefdf..9ed14ef1f02 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgState.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/avgState.md
@@ -7,12 +7,8 @@ sidebar_label: 'avgState'
doc_type: 'reference'
---
-
-
# avgState {#avgState}
-
-
## Описание {#description}
Комбинатор [`State`](/sql-reference/aggregate-functions/combinators#-state)
@@ -20,8 +16,6 @@ doc_type: 'reference'
для получения промежуточного состояния типа `AggregateFunction(avg, T)`, где
`T` — указанный тип для среднего значения.
-
-
## Пример использования {#example-usage}
В этом примере мы рассмотрим, как можно использовать тип `AggregateFunction`
@@ -138,7 +132,6 @@ ORDER BY page_id;
Теперь мы видим корректные средние значения:
-
```response
┌─page_id─┬─page_name─┬─average_response_time_ms─┐
│ 1 │ Главная │ 135 │
@@ -148,7 +141,6 @@ ORDER BY page_id;
└─────────┴───────────┴──────────────────────────┘
```
-
## Смотрите также {#see-also}
- [`avg`](/sql-reference/aggregate-functions/reference/avg)
- [`State`](/sql-reference/aggregate-functions/combinators#-state)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/countIf.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/countIf.md
index 57068834889..84bbd237b9c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/countIf.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/countIf.md
@@ -7,20 +7,14 @@ sidebar_label: 'countIf'
doc_type: 'reference'
---
-
-
# countIf {#countif}
-
-
## Описание {#description}
Комбинатор [`If`](/sql-reference/aggregate-functions/combinators#-if) может быть применён к функции [`count`](/sql-reference/aggregate-functions/reference/count)
для подсчёта числа строк, удовлетворяющих условию,
с помощью агрегатной функции-комбинатора `countIf`.
-
-
## Пример использования {#example-usage}
В этом примере мы создадим таблицу, которая хранит попытки входа пользователей в систему,
@@ -57,7 +51,6 @@ GROUP BY user_id;
└─────────┴───────────────────┘
```
-
## См. также {#see-also}
- [`count`](/sql-reference/aggregate-functions/reference/count)
- [`Комбинатор If`](/sql-reference/aggregate-functions/combinators#-if)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/countResample.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/countResample.md
index c8e92d89b93..f5020547d69 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/countResample.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/countResample.md
@@ -7,12 +7,8 @@ sidebar_label: 'countResample'
doc_type: 'reference'
---
-
-
# countResample {#countResample}
-
-
## Описание {#description}
Комбинатор [`Resample`](/sql-reference/aggregate-functions/combinators#-resample)
@@ -20,8 +16,6 @@ doc_type: 'reference'
чтобы подсчитать значения заданного ключевого столбца по фиксированному числу
интервалов (`N`).
-
-
## Пример использования {#example-usage}
### Базовый пример {#basic-example}
@@ -63,7 +57,6 @@ SELECT countResample(30, 75, 30)(name, age) AS amount FROM employee_data
└────────┘
```
-
## См. также {#see-also}
- [`count`](/sql-reference/aggregate-functions/reference/count)
- [`Комбинатор Resample`](/sql-reference/aggregate-functions/combinators#-resample)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/groupArrayDistinct.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/groupArrayDistinct.md
index eef18948904..1c4774e7439 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/groupArrayDistinct.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/groupArrayDistinct.md
@@ -7,20 +7,14 @@ sidebar_label: 'groupArrayDistinct'
doc_type: 'reference'
---
-
-
# groupArrayDistinct {#sumdistinct}
-
-
## Описание {#description}
Комбинатор [`groupArrayDistinct`](/sql-reference/aggregate-functions/combinators#-foreach)
можно применить к агрегатной функции [`groupArray`](/sql-reference/aggregate-functions/reference/sum), чтобы создать массив
различных значений аргументов.
-
-
## Пример использования {#example-usage}
В этом примере мы воспользуемся набором данных `hits`, доступным в нашей [SQL‑песочнице](https://sql.clickhouse.com/).
@@ -38,7 +32,6 @@ ORDER BY URLDomain ASC
LIMIT 20;
```
-
## См. также {#see-also}
- [`groupArray`](/sql-reference/aggregate-functions/reference/grouparray)
- [`Комбинатор Distinct`](/sql-reference/aggregate-functions/combinators#-distinct)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/groupArrayResample.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/groupArrayResample.md
index 4eb1af15583..62801a46a7c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/groupArrayResample.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/groupArrayResample.md
@@ -7,12 +7,8 @@ sidebar_label: 'groupArrayResample'
doc_type: 'reference'
---
-
-
# groupArrayResample {#grouparrayresample}
-
-
## Описание {#description}
Комбинатор [`Resample`](/sql-reference/aggregate-functions/combinators#-resample)
@@ -22,8 +18,6 @@ doc_type: 'reference'
(соответствующему минимальному ключу) из точек данных, попадающих в каждый интервал.
Он формирует укрупнённое (downsampled) представление данных вместо сбора всех значений.
-
-
## Пример использования {#example-usage}
Рассмотрим пример. Мы создадим таблицу, содержащую столбцы `name`, `age` и
@@ -66,7 +60,6 @@ SELECT groupArrayResample(30, 75, 30)(name, age) FROM employee_data
└───────────────────────────────────────────────┘
```
-
## См. также {#see-also}
- [`groupArray`](/sql-reference/aggregate-functions/reference/grouparray)
- [`Комбинатор Resample`](/sql-reference/aggregate-functions/combinators#-resample)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/maxMap.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/maxMap.md
index 62b79fdedc9..250c8af7963 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/maxMap.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/maxMap.md
@@ -7,19 +7,13 @@ sidebar_label: 'maxMap'
doc_type: 'reference'
---
-
-
# maxMap {#maxmap}
-
-
## Описание {#description}
Комбинатор [`Map`](/sql-reference/aggregate-functions/combinators#-map) можно применить к функции [`max`](/sql-reference/aggregate-functions/reference/max),
чтобы вычислять максимальное значение в Map по каждому ключу с использованием агрегатной функции-комбинатора `maxMap`.
-
-
## Пример использования {#example-usage}
В этом примере мы создадим таблицу, которая хранит коды статусов и число их вхождений для разных временных интервалов,
@@ -67,7 +61,6 @@ GROUP BY timeslot;
└─────────────────────┴──────────────────────────────────────┘
```
-
## См. также {#see-also}
- [`max`](/sql-reference/aggregate-functions/reference/max)
- [`Комбинатор Map`](/sql-reference/aggregate-functions/combinators#-map)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/minMap.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/minMap.md
index 03919705c57..65d70502bba 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/minMap.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/minMap.md
@@ -7,19 +7,13 @@ sidebar_label: 'minMap'
doc_type: 'reference'
---
-
-
# minMap {#minmap}
-
-
## Описание {#description}
Комбинатор [`Map`](/sql-reference/aggregate-functions/combinators#-map) может быть применён к функции [`min`](/sql-reference/aggregate-functions/reference/min)
для вычисления минимального значения в Map отдельно для каждого ключа с использованием агрегатной функции-комбинатора `minMap`.
-
-
## Пример использования {#example-usage}
В этом примере мы создадим таблицу, которая хранит коды статуса и их количество для различных временных слотов,
@@ -67,7 +61,6 @@ GROUP BY timeslot;
└─────────────────────┴──────────────────────────────────────┘
```
-
## См. также {#see-also}
- [`min`](/sql-reference/aggregate-functions/reference/min)
- [`Map combinator`](/sql-reference/aggregate-functions/combinators#-map)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/minSimpleState.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/minSimpleState.md
index 9fa09a8befd..f7f60c9453a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/minSimpleState.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/minSimpleState.md
@@ -7,20 +7,14 @@ sidebar_label: 'minSimpleState'
doc_type: 'reference'
---
-
-
# minSimpleState {#minsimplestate}
-
-
## Описание {#description}
Комбинатор [`SimpleState`](/sql-reference/aggregate-functions/combinators#-simplestate) может быть применён к функции [`min`](/sql-reference/aggregate-functions/reference/min)
для получения минимального значения по всем входным значениям. Он возвращает
результат типа [`SimpleAggregateFunction`](/docs/sql-reference/data-types/simpleaggregatefunction).
-
-
## Пример использования {#example-usage}
Рассмотрим практический пример с таблицей, в которой хранятся ежедневные
@@ -155,7 +149,6 @@ ORDER BY location_id;
Теперь мы видим ожидаемый результат:
-
```sql
┌─location_id─┬─location_name─┬─min_temp─┬─max_temp─┐
│ 1 │ Север │ 3 │ 8 │
@@ -170,7 +163,6 @@ ORDER BY location_id;
частичных агрегатных состояний.
:::
-
## См. также {#see-also}
- [`min`](/sql-reference/aggregate-functions/reference/min)
- [`комбинатор SimpleState`](/sql-reference/aggregate-functions/combinators#-simplestate)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/quantilesTimingArrayIf.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/quantilesTimingArrayIf.md
index 4c76922c40c..13effaa6a57 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/quantilesTimingArrayIf.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/quantilesTimingArrayIf.md
@@ -7,12 +7,8 @@ sidebar_label: 'quantilesTimingArrayIf'
doc_type: 'reference'
---
-
-
# quantilesTimingArrayIf {#quantilestimingarrayif}
-
-
## Описание {#description}
К комбинатору [`Array`](/sql-reference/aggregate-functions/combinators#-array) и [`If`](/sql-reference/aggregate-functions/combinators#-if)
@@ -20,8 +16,6 @@ doc_type: 'reference'
для вычисления квантилей временных значений в массивах для строк, где условие истинно,
используя агрегатную функцию-комбинатор `quantilesTimingArrayIf`.
-
-
## Пример использования {#example-usage}
В этом примере мы создадим таблицу, в которой будет храниться время отклика API для разных эндпоинтов
@@ -65,7 +59,6 @@ GROUP BY endpoint;
└──────────┴─────────────────────────────────────────────────────────────────────┘
```
-
## См. также {#see-also}
- [`quantilesTiming`](/sql-reference/aggregate-functions/reference/quantiletiming)
- [Комбинатор `If`](/sql-reference/aggregate-functions/combinators#-if)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/quantilesTimingIf.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/quantilesTimingIf.md
index 8897b7eb005..8fad334eb83 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/quantilesTimingIf.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/quantilesTimingIf.md
@@ -7,20 +7,14 @@ sidebar_label: 'quantilesTimingIf'
doc_type: 'reference'
---
-
-
# quantilesTimingIf {#quantilestimingif}
-
-
## Описание {#description}
Комбинатор [`If`](/sql-reference/aggregate-functions/combinators#-if) может быть применён к функции [`quantilesTiming`](/sql-reference/aggregate-functions/reference/quantiletiming)
для вычисления квантилей значений времени для строк, для которых условие истинно,
с использованием агрегатной функции-комбинатора `quantilesTimingIf`.
-
-
## Пример использования {#example-usage}
В этом примере мы создадим таблицу, которая хранит время ответа API для различных эндпоинтов
@@ -85,7 +79,6 @@ GROUP BY endpoint;
└─────────────────┴─────────────────────────────────────────────────────────────────────┘
```
-
## См. также {#see-also}
- [`quantilesTiming`](/sql-reference/aggregate-functions/reference/quantiletiming)
- [`Комбинатор If`](/sql-reference/aggregate-functions/combinators#-if)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumArray.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumArray.md
index b8ec06ebf4c..11080089b48 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumArray.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumArray.md
@@ -7,12 +7,8 @@ sidebar_label: 'sumArray'
doc_type: 'reference'
---
-
-
# sumArray {#sumarray}
-
-
## Описание {#description}
Комбинатор [`Array`](/sql-reference/aggregate-functions/combinators#-array)
@@ -22,8 +18,6 @@ doc_type: 'reference'
Функция `sumArray` полезна, когда необходимо вычислить общую сумму
всех элементов во множестве массивов в наборе данных.
-
-
## Пример использования {#example-usage}
В этом примере мы используем демонстрационный набор данных о ежедневных продажах по разным
@@ -55,7 +49,6 @@ GROUP BY date, category_sales;
Например, для `2024-01-01` она суммирует `100 + 200 + 150 = 450`. Это даёт
тот же результат, что и `arraySum`.
-
## См. также {#see-also}
- [`sum`](/sql-reference/aggregate-functions/reference/sum)
- [`arraySum`](/sql-reference/functions/array-functions#arraySum)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumForEach.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumForEach.md
index e53729d22db..16a8b60642e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumForEach.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumForEach.md
@@ -7,12 +7,8 @@ sidebar_label: 'sumForEach'
doc_type: 'reference'
---
-
-
# sumForEach {#sumforeach}
-
-
## Описание {#description}
Комбинатор [`ForEach`](/sql-reference/aggregate-functions/combinators#-foreach)
@@ -20,8 +16,6 @@ doc_type: 'reference'
функции, работающей со значениями строк, в агрегатную функцию, работающую со
столбцами-массивами и применяющую агрегирование к каждому элементу массива по всем строкам.
-
-
## Пример использования {#example-usage}
В этом примере мы воспользуемся набором данных `hits`, доступным в нашем [SQL playground](https://sql.clickhouse.com/).
@@ -48,7 +42,6 @@ GROUP BY hour_of_day
ORDER BY hour_of_day;
```
-
## См. также {#see-also}
- [`sum`](/sql-reference/aggregate-functions/reference/sum)
- [комбинатор `ForEach`](/sql-reference/aggregate-functions/combinators#-foreach)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumIf.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumIf.md
index 3ef11b258b8..51a06601b73 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumIf.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumIf.md
@@ -7,20 +7,14 @@ sidebar_label: 'sumIf'
doc_type: 'reference'
---
-
-
# sumIf {#sumif}
-
-
## Описание {#description}
Комбинатор [`If`](/sql-reference/aggregate-functions/combinators#-if) может быть применён к агрегатной функции [`sum`](/sql-reference/aggregate-functions/reference/sum)
для вычисления суммы значений по строкам, для которых условие истинно,
используя агрегатную функцию-комбинатор `sumIf`.
-
-
## Пример использования {#example-usage}
В этом примере мы создадим таблицу, которая хранит данные о продажах с флагами успешности,
@@ -92,7 +86,6 @@ ORDER BY month;
### Рассчитать торговый объём по тикеру {#calculate-trading-volume}
-
В этом примере мы будем использовать таблицу `stock`, доступную в [ClickHouse playground](https://sql.clickhouse.com/),
чтобы посчитать объём торгов по биржевому тикеру в 2006 году для трёх крупнейших
технологических компаний того времени.
@@ -128,7 +121,6 @@ ORDER BY month;
└────────────┴────────────────┴──────────────────┴────────────────┴──────────────┴───────────────────────┘
```
-
## Смотрите также {#see-also}
- [`sum`](/sql-reference/aggregate-functions/reference/sum)
- [`If combinator`](/sql-reference/aggregate-functions/combinators#-if)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumMap.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumMap.md
index 5ea58a3371e..35f0651904b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumMap.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumMap.md
@@ -7,19 +7,13 @@ sidebar_label: 'sumMap'
doc_type: 'reference'
---
-
-
# sumMap {#summap}
-
-
## Описание {#description}
Комбинатор [`Map`](/sql-reference/aggregate-functions/combinators#-map) может быть применён к функции [`sum`](/sql-reference/aggregate-functions/reference/sum)
для вычисления суммы значений в `Map` по каждому ключу с использованием агрегирующего комбинатора `sumMap`.
-
-
## Пример использования {#example-usage}
В этом примере мы создадим таблицу, в которой хранятся коды статусов и их количества для различных временных интервалов, где каждая строка содержит `Map`, сопоставляющую коды статусов с соответствующими им количествами. Мы будем использовать функцию `sumMap` для вычисления общего количества для каждого кода статуса в каждом временном интервале.
@@ -65,7 +59,6 @@ GROUP BY timeslot;
└─────────────────────┴──────────────────────────────────────┘
```
-
## См. также {#see-also}
- [`sum`](/sql-reference/aggregate-functions/reference/sum)
- [`Комбинатор Map`](/sql-reference/aggregate-functions/combinators#-map)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumSimpleState.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumSimpleState.md
index 366afd4b146..8f5b8aac5db 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumSimpleState.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/sumSimpleState.md
@@ -7,18 +7,12 @@ sidebar_label: 'sumSimpleState'
doc_type: 'reference'
---
-
-
# sumSimpleState {#sumsimplestate}
-
-
## Описание {#description}
Комбинатор [`SimpleState`](/sql-reference/aggregate-functions/combinators#-simplestate) может быть применён к функции [`sum`](/sql-reference/aggregate-functions/reference/sum) для вычисления суммы по всем входным значениям. Результат имеет тип [`SimpleAggregateFunction`](/docs/sql-reference/data-types/simpleaggregatefunction).
-
-
## Пример использования {#example-usage}
### Отслеживание голосов «за» и «против» {#tracking-post-votes}
@@ -105,7 +99,6 @@ ORDER BY post_id ASC;
└─────────┴──────────────────┴───────────────────────┴────────────┘
```
-
## См. также {#see-also}
- [`sum`](/sql-reference/aggregate-functions/reference/sum)
- [комбинатор `SimpleState`](/sql-reference/aggregate-functions/combinators#-simplestate)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/uniqArray.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/uniqArray.md
index 7c0e1f6d7c3..4064ab4464e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/uniqArray.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/uniqArray.md
@@ -7,12 +7,8 @@ sidebar_label: 'uniqArray'
doc_type: 'reference'
---
-
-
# uniqArray {#uniqarray}
-
-
## Описание {#description}
Комбинатор [`Array`](/sql-reference/aggregate-functions/combinators#-array)
@@ -24,8 +20,6 @@ doc_type: 'reference'
множестве массивов в наборе данных. Она эквивалентна использованию `uniq(arrayJoin())`, где
`arrayJoin` сначала разворачивает массивы, а затем `uniq` считает уникальные элементы.
-
-
## Пример использования {#example-usage}
В этом примере мы используем демонстрационный набор данных с пользовательскими интересами по разным категориям, чтобы показать, как работает `uniqArray`. Мы сравним его с
@@ -61,7 +55,6 @@ FROM user_interests;
└────────────────────────┴────────────────────────────┘
```
-
## См. также {#see-also}
- [`uniq`](/sql-reference/aggregate-functions/reference/uniq)
- [`arrayJoin`](/sql-reference/functions/array-join)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/uniqArrayIf.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/uniqArrayIf.md
index 62fdeef5ea8..6c087a25eb0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/uniqArrayIf.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/aggregate_function_combinators/uniqArrayIf.md
@@ -7,12 +7,8 @@ sidebar_label: 'uniqArrayIf'
doc_type: 'reference'
---
-
-
# uniqArrayIf {#uniqarrayif}
-
-
## Описание {#description}
Комбинаторы [`Array`](/sql-reference/aggregate-functions/combinators#-array) и [`If`](/sql-reference/aggregate-functions/combinators#-if) могут быть применены к функции [`uniq`](/sql-reference/aggregate-functions/reference/uniq)
@@ -26,8 +22,6 @@ doc_type: 'reference'
Это полезно, когда нужно посчитать уникальные элементы в массиве на основе
определённых условий, не используя `arrayJoin`.
-
-
## Пример использования {#example-usage}
### Подсчёт уникальных товаров, просмотренных по типу сегмента и уровню вовлечённости {#count-unique-products}
@@ -82,7 +76,6 @@ returning_customer_products: 2
total_unique_products: 7
```
-
## См. также {#see-also}
- [`uniq`](/sql-reference/aggregate-functions/reference/uniq)
- [`Array combinator`](/sql-reference/aggregate-functions/combinators#-array)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/keeper/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/keeper/index.md
index 9ac77290b30..c4894a32410 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/keeper/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/keeper/index.md
@@ -9,8 +9,6 @@ title: 'ClickHouse Keeper'
doc_type: 'guide'
---
-
-
# ClickHouse Keeper (clickhouse-keeper) {#clickhouse-keeper-clickhouse-keeper}
import SelfManaged from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_self_managed_only_automated.md';
@@ -39,7 +37,6 @@ ClickHouse Keeper может использоваться как самосто
Основной конфигурационный тег ClickHouse Keeper — `` и имеет следующие параметры:
-
| Parameter | Description | Default |
|--------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| `tcp_port` | Порт для подключения клиента. | `2181` |
@@ -64,8 +61,6 @@ ClickHouse Keeper может использоваться как самосто
Внутренние настройки координации находятся в секции `.` и включают следующие параметры:
-
-
| Параметр | Описание | Значение по умолчанию |
|-----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
| `operation_timeout_ms` | Таймаут для одной клиентской операции (мс) | `10000` |
@@ -101,8 +96,6 @@ ClickHouse Keeper может использоваться как самосто
Основные параметры для каждого ``:
-
-
* `id` — Идентификатор сервера в кворуме.
* `hostname` — Имя хоста, на котором размещён этот сервер.
* `port` — Порт, на котором этот сервер принимает подключения.
@@ -187,7 +180,6 @@ echo mntr | nc localhost 9181
imok
```
-
* `mntr`: Выводит список переменных, которые можно использовать для мониторинга работоспособности кластера.
```response
@@ -295,7 +287,6 @@ configuration_change_tries_count=20
* `envi`: Вывести сведения о рабочем окружении сервиса
-
```response
Environment:
clickhouse.keeper.version=v21.11.1.1-prestable-7a4a0b0edef0ad6e0aa662cd3b90c3f4acf796e7
@@ -396,7 +387,6 @@ check_not_exists 0
* `pfev`: Возвращает значения для всех собранных событий. Для каждого события возвращает его имя, значение и описание.
-
```response
FileOpen 62 Количество открытых файлов.
Seek 4 Количество вызовов функции 'lseek'.
@@ -472,7 +462,6 @@ Keeper полностью совместим с ZooKeeper и его клиент
Рекомендуемый способ обновления Keeper до версии 25.7+ — сначала обновиться до версии 24.9+.
:::
-
### Миграция с ZooKeeper {#migration-from-zookeeper}
Бесшовная миграция с ZooKeeper на ClickHouse Keeper невозможна. Необходимо остановить кластер ZooKeeper, преобразовать данные и запустить ClickHouse Keeper. Утилита `clickhouse-keeper-converter` позволяет преобразовать журналы и снимки состояния ZooKeeper в снимок состояния ClickHouse Keeper. Она работает только с ZooKeeper > 3.4. Шаги миграции:
@@ -527,7 +516,6 @@ clickhouse keeper-converter ...
6. В режиме восстановления ведущий (лидирующий) узел будет возвращать сообщение об ошибке на команду `mntr` до тех пор, пока не достигнет кворума с новыми узлами, и будет отклонять любые запросы от клиента и ведомых узлов.
7. После достижения кворума ведущий узел вернётся в нормальный режим работы и начнёт принимать все запросы через Raft — проверьте это с помощью `mntr`, который должен вернуть `leader` в поле `zk_server_state`.
-
## Использование дисков с Keeper {#using-disks-with-keeper}
Keeper поддерживает ограниченный набор [внешних дисков](/operations/storing-data.md) для хранения снимков, файлов журнала и файла состояния.
@@ -620,7 +608,6 @@ Keeper с параметром `keeper_server.coordination_settings.force_sync`,
Следующая конфигурация показывает, как можно перейти с предыдущей конфигурации с двумя дисками на полностью новую конфигурацию с одним диском:
-
```xml
@@ -638,7 +625,6 @@ Keeper с параметром `keeper_server.coordination_settings.force_sync`,
При запуске все файлы журналов будут перемещены с дисков `log_local` и `log_s3_plain` на диск `log_local2`.
Кроме того, все файлы снимков состояния будут перемещены с дисков `snapshot_local` и `snapshot_s3_plain` на диск `snapshot_local2`.
-
## Настройка кэша логов {#configuring-logs-cache}
Чтобы минимизировать объём данных, читаемых с диска, Keeper кэширует записи журнала в памяти.
@@ -654,8 +640,6 @@ Keeper с параметром `keeper_server.coordination_settings.force_sync`,
Также вы можете использовать метрики с эндпоинта Prometheus для отслеживания текущего размера обоих кэшей.
:::
-
-
## Prometheus {#prometheus}
Keeper может предоставлять метрики для сбора с помощью [Prometheus](https://prometheus.io).
@@ -695,7 +679,6 @@ curl 127.0.0.1:9363/metrics
См. также раздел ClickHouse Cloud [Интеграция с Prometheus](/integrations/prometheus).
-
## Руководство пользователя ClickHouse Keeper {#clickhouse-keeper-user-guide}
В этом руководстве приведены простые и минимальные настройки для конфигурации ClickHouse Keeper с примером проверки распределённых операций. Пример выполняется с использованием 3 узлов под управлением Linux.
@@ -795,8 +778,6 @@ curl 127.0.0.1:9363/metrics
WHERE path IN ('/', '/clickhouse')
```
-
-
Таблица выглядит так:
```response
@@ -864,7 +845,6 @@ curl 127.0.0.1:9363/metrics
CREATE DATABASE db1 ON CLUSTER 'cluster_2S_1R';
```
-
2. Создайте новую таблицу в базе данных `db1`. Как и раньше, `ON CLUSTER` создаёт таблицу на обоих узлах.
```sql
CREATE TABLE db1.table1 on cluster 'cluster_2S_1R'
@@ -961,8 +941,6 @@ curl 127.0.0.1:9363/metrics
В этом руководстве показано, как настроить кластер с использованием ClickHouse Keeper. С ClickHouse Keeper вы можете настраивать кластеры и создавать распределённые таблицы, которые могут реплицироваться по шардам.
-
-
## Настройка ClickHouse Keeper с уникальными путями {#configuring-clickhouse-keeper-with-unique-paths}
@@ -1074,7 +1052,6 @@ ORDER BY id
Query id: 8f542664-4548-4a02-bd2a-6f2c973d0dc4
```
-
┌─host──────────────────┬─port─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐
│ chnode1.marsnet.local │ 9440 │ 0 │ │ 1 │ 0 │
│ chnode2.marsnet.local │ 9440 │ 0 │ │ 0 │ 0 │
@@ -1208,7 +1185,6 @@ ENGINE = ReplicatedMergeTree
ORDER BY id
```
-
ID запроса: ab68cda9-ae41-4d6d-8d3b-20d8255774ee
┌─хост──────────────────┬─порт─┬─статус─┬─ошибка─┬─число_оставшихся_хостов─┬─число_активных_хостов─┐
@@ -1284,7 +1260,6 @@ Query id: b047d459-a1d2-4016-bcf9-3e97e30e49c2
Результат: 1 строка. Затрачено: 0.004 сек.
```
-
## Динамическая переконфигурация ClickHouse Keeper {#reconfiguration}
@@ -1324,7 +1299,6 @@ server.3=zoo3:9234;participant;1
Вы можете использовать команду `reconfig`, чтобы добавлять новые серверы, удалять существующие и изменять их приоритеты. Ниже приведены примеры (с использованием `clickhouse-keeper-client`):
-
```bash
# Добавление двух новых серверов {#add-two-new-servers}
reconfig add "server.5=localhost:123,server.6=localhost:234;learner"
@@ -1336,13 +1310,11 @@ reconfig add "server.5=localhost:5123;participant;8"
Вот несколько примеров для `kazoo`:
-
```python
# Добавление двух новых серверов и удаление двух других серверов {#add-two-new-servers-remove-two-other-servers}
reconfig(joining="server.5=localhost:123,server.6=localhost:234;learner", leaving="3,4")
```
-
# Изменить приоритет существующего сервера на 8 {#change-existing-server-priority-to-8}
reconfig(joining="server.5=localhost:5123;participant;8", leaving=None)
@@ -1381,7 +1353,6 @@ reconfig(joining="server.5=localhost:5123;participant;8", leaving=None
было применено.
```
-
## Преобразование одиночного узла Keeper в кластер {#converting-a-single-node-keeper-into-a-cluster}
Иногда требуется расширить экспериментальный узел Keeper до полноценного кластера. Ниже приведена пошаговая схема, как это сделать для кластера из 3 узлов:
@@ -1396,8 +1367,6 @@ reconfig(joining="server.5=localhost:5123;participant;8", leaving=None
Чтобы лучше освоить этот процесс, можно воспользоваться [репозиторием-песочницей](https://github.com/ClickHouse/keeper-extend-cluster).
-
-
## Неподдерживаемые функции {#unsupported-features}
Хотя ClickHouse Keeper стремится быть полностью совместимым с ZooKeeper, есть несколько функций, которые в настоящее время не реализованы (разработка продолжается):
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/configuring-ldap.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/configuring-ldap.md
index cf8102b97be..3415b29e1ab 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/configuring-ldap.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/configuring-ldap.md
@@ -10,15 +10,12 @@ doc_type: 'guide'
import SelfManaged from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_self_managed_only_no_roadmap.md';
-
# Настройка ClickHouse для использования LDAP при аутентификации и сопоставлении ролей {#configuring-clickhouse-to-use-ldap-for-authentication-and-role-mapping}
ClickHouse можно настроить на использование LDAP для аутентификации пользователей базы данных. В этом руководстве приведён простой пример интеграции ClickHouse с системой LDAP, которая аутентифицирует пользователей по общедоступному каталогу.
-
-
## 1. Настройка параметров подключения LDAP в ClickHouse {#1-configure-ldap-connection-settings-in-clickhouse}
1. Протестируйте подключение к этому публичному серверу LDAP:
@@ -116,8 +113,6 @@ ClickHouse можно настроить на использование LDAP д
4. Перезапустите сервер ClickHouse, чтобы применить настройки.
-
-
## 2. Настройте роли и разрешения базы данных ClickHouse {#2-configure-clickhouse-database-roles-and-permissions}
:::note
@@ -134,8 +129,6 @@ ClickHouse можно настроить на использование LDAP д
GRANT ALL ON *.* TO scientists_role;
```
-
-
## 3. Тестирование конфигурации LDAP {#3-test-the-ldap-configuration}
1. Войдите в систему с помощью клиента ClickHouse
@@ -175,7 +168,5 @@ ClickHouse можно настроить на использование LDAP д
9 rows in set. Elapsed: 0.004 sec.
```
-
-
## Итоги {#summary}
В этой статье были продемонстрированы основы настройки ClickHouse для аутентификации через LDAP-сервер, а также для привязки к роли. Также доступны варианты настройки отдельных пользователей в ClickHouse, при этом аутентифицируя этих пользователей через LDAP без настройки автоматического сопоставления ролей. Модуль LDAP также можно использовать для подключения к Active Directory.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/index.md
index 86cf6761d73..1255bb1d9c7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/index.md
@@ -8,8 +8,6 @@ description: 'Описывает контроль доступа и управл
doc_type: 'guide'
---
-
-
# Создание пользователей и ролей в ClickHouse {#creating-users-and-roles-in-clickhouse}
ClickHouse поддерживает управление доступом на основе подхода [RBAC](https://en.wikipedia.org/wiki/Role-based_access_control).
@@ -41,8 +39,6 @@ ClickHouse поддерживает управление доступом на
Чтобы просмотреть всех пользователей, роли, профили и т. д., а также все их выдачи (grants), используйте оператор [`SHOW ACCESS`](/sql-reference/statements/show#show-access).
-
-
## Обзор {#access-control-usage}
По умолчанию сервер ClickHouse предоставляет учетную запись `default`, для которой нельзя использовать управление доступом и учетными записями на основе SQL, но которая имеет все права и разрешения. Учетная запись `default` используется во всех случаях, когда имя пользователя не определено, например, при входе с клиента или в распределенных запросах. При обработке распределенного запроса учетная запись `default` используется, если в конфигурации сервера или кластера не указаны свойства [user и password](/engines/table-engines/special/distributed.md).
@@ -113,8 +109,6 @@ ClickHouse поддерживает управление доступом на
#### Политика строк {#row-policy-management}
-
-
Политика строк — это фильтр, который определяет, какие строки доступны пользователю или роли. Политика строк содержит фильтры для одной конкретной таблицы, а также список ролей и/или пользователей, к которым применяется эта политика строк.
:::note
@@ -166,8 +160,6 @@ ClickHouse поддерживает управление доступом на
По умолчанию управление доступом и учетными записями на основе SQL отключено для всех пользователей. Необходимо настроить как минимум одного пользователя в конфигурационном файле `users.xml` и установить значения настроек [`access_management`](/operations/settings/settings-users.md#access_management-user-setting), `named_collection_control`, `show_named_collections` и `show_named_collections_secrets` равными 1.
-
-
## Определение SQL-пользователей и ролей {#defining-sql-users-and-roles}
:::tip
@@ -209,8 +201,6 @@ ClickHouse поддерживает управление доступом на
GRANT ALL ON *.* TO clickhouse_admin WITH GRANT OPTION;
```
-
-
## Изменение прав доступа {#alter-permissions}
Эта статья предназначена для того, чтобы помочь вам лучше понять, как определять права доступа и как они работают при использовании операторов `ALTER` для привилегированных пользователей.
@@ -339,7 +329,6 @@ GRANT ALTER COLUMN ON my_db.my_table TO my_user;
SHOW GRANTS FOR my_user;
```
-
```response
SHOW GRANTS FOR my_user
@@ -495,7 +484,6 @@ DESCRIBE TABLE my_db.my_table
Query id: ab9cb2d0-5b1a-42e1-bc9c-c7ff351cb272
```
-
┌─имя─────┬─тип────┬─тип_по_умолчанию─┬─выражение_по_умолчанию─┬─комментарий─┬─выражение_кодека─┬─выражение_TTL─┐
│ id │ UInt64 │ │ │ │ │ │
│ column1 │ String │ │ │ │ │ │
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/ssl-user-auth.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/ssl-user-auth.md
index d862eb9f9af..77c4d647219 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/ssl-user-auth.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/sre/user-management/ssl-user-auth.md
@@ -8,8 +8,6 @@ doc_type: 'guide'
keywords: ['ssl', 'authentication', 'security', 'certificates', 'user management']
---
-
-
# Настройка аутентификации по пользовательскому SSL‑сертификату {#configuring-ssl-user-certificate-for-authentication}
import SelfManaged from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_self_managed_only_no_roadmap.md';
@@ -28,7 +26,6 @@ import SelfManaged from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_s
> I would like to be able to configure our NLB proxy protocol v2 as below `proxy_protocol_v2.client_to_server.header_placement,Value=on_first_ack`.
> :::
-
## 1. Создание пользовательских сертификатов SSL {#1-create-ssl-user-certificates}
:::note
@@ -56,8 +53,6 @@ import SelfManaged from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_s
openssl x509 -req -in chnode1_cert_user.csr -out chnode1_cert_user.crt -CA marsnet_ca.crt -CAkey marsnet_ca.key -days 365
```
-
-
## 2. Создание SQL‑пользователя и выдача прав {#2-create-a-sql-user-and-grant-permissions}
:::note
@@ -96,8 +91,6 @@ import SelfManaged from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_s
```
:::
-
-
## 3. Тестирование {#3-testing}
1. Скопируйте пользовательский сертификат, пользовательский ключ и сертификат CA (центра сертификации) на удалённый узел.
@@ -122,8 +115,6 @@ import SelfManaged from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_s
Обратите внимание, что пароль, переданный в clickhouse-client, игнорируется, если в конфигурации указан сертификат.
:::
-
-
## 4. Тестирование HTTP {#4-testing-http}
1. Скопируйте пользовательский сертификат, пользовательский ключ и сертификат УЦ на удалённый узел.
@@ -147,8 +138,6 @@ import SelfManaged from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_s
Обратите внимание, что пароль не указывался: сертификат используется вместо пароля, и именно с его помощью ClickHouse аутентифицирует пользователя.
:::
-
-
## Итоги {#summary}
В этой статье мы рассмотрели основы создания и настройки пользователя для аутентификации с использованием SSL-сертификата. Этот метод может применяться с `clickhouse-client` или любыми клиентами, которые поддерживают интерфейс `https` и позволяют задавать HTTP-заголовки. Сгенерированные сертификат и ключ должны храниться в конфиденциальности и с ограниченным доступом, поскольку сертификат используется для аутентификации и авторизации пользователя при выполнении операций в базе данных ClickHouse. Относитесь к сертификату и ключу так же, как к паролям.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/creating-tables.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/creating-tables.md
index b3fe91e7eb0..2e48d3bc386 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/creating-tables.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/creating-tables.md
@@ -8,8 +8,6 @@ keywords: ['создание таблиц', 'CREATE TABLE', 'создание т
doc_type: 'guide'
---
-
-
# Создание таблиц в ClickHouse {#creating-tables-in-clickhouse}
Как и большинство систем управления базами данных, ClickHouse логически группирует таблицы в **базы данных**. Используйте команду `CREATE DATABASE`, чтобы создать новую базу данных в ClickHouse:
@@ -52,7 +50,6 @@ PRIMARY KEY (user_id, timestamp)
Существует множество движков, но для простой таблицы на одноузловом сервере ClickHouse, скорее всего, подойдёт [MergeTree](/engines/table-engines/mergetree-family/mergetree.md).
:::
-
## Краткое введение в первичные ключи {#a-brief-intro-to-primary-keys}
Прежде чем двигаться дальше, важно понять, как работают первичные ключи в ClickHouse (их реализация
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/inserting-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/inserting-data.md
index f452f3ac315..e9bf3792cf5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/inserting-data.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/inserting-data.md
@@ -11,7 +11,6 @@ doc_type: 'guide'
import postgres_inserts from '@site/static/images/guides/postgres-inserts.png';
import Image from '@theme/IdealImage';
-
## Вставка в ClickHouse по сравнению с OLTP-базами данных {#inserting-into-clickhouse-vs-oltp-databases}
Как СУБД класса OLAP (Online Analytical Processing), ClickHouse оптимизирован для высокой производительности и масштабируемости, позволяя потенциально вставлять миллионы строк в секунду.
@@ -25,8 +24,6 @@ PostgreSQL использует MVCC (Multi-Version Concurrency Control) для
Чтобы достичь высокой производительности вставки при сохранении строгих гарантий согласованности, пользователям следует придерживаться простых правил, описанных ниже, при вставке данных в ClickHouse.
Следование этим правилам поможет избежать проблем, с которыми пользователи часто сталкиваются при первом использовании ClickHouse, пытаясь воспроизвести стратегию вставки, применимую к OLTP-базам данных.
-
-
## Рекомендации по вставке данных {#best-practices-for-inserts}
### Вставка данных крупными батчами {#insert-in-large-batch-sizes}
@@ -83,8 +80,6 @@ PostgreSQL использует MVCC (Multi-Version Concurrency Control) для
:::note
Обратите внимание, что данные недоступны для поиска в запросах до их сброса в хранилище базы данных и что параметры сброса буфера настраиваются.
-
-
Полную информацию по настройке асинхронных вставок можно найти [здесь](/optimize/asynchronous-inserts#enabling-asynchronous-inserts), подробный разбор — [здесь](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse).
:::
@@ -120,8 +115,6 @@ ClickHouse поддерживает множество [форматов вво
См. [HTTP Interface](/interfaces/http) для получения более подробной информации.
-
-
## Простой пример {#basic-example}
Вы можете использовать знакомую команду `INSERT INTO TABLE` в ClickHouse. Давайте добавим немного данных в таблицу, которую мы создали в руководстве по началу работы ["Создание таблиц в ClickHouse"](./creating-tables).
@@ -150,7 +143,6 @@ user_id message timestamp
102 Сортируйте данные по часто используемым запросам 2024-11-13 00:00:00 2.718
```
-
## Загрузка данных из Postgres {#loading-data-from-postgres}
Для загрузки данных из Postgres можно использовать:
@@ -165,8 +157,6 @@ user_id message timestamp
Если вам нужна помощь с загрузкой больших наборов данных или вы сталкиваетесь с ошибками при импорте данных в ClickHouse Cloud, свяжитесь с нами по адресу support@clickhouse.com, и мы поможем.
:::
-
-
## Вставка данных из командной строки {#inserting-data-from-command-line}
**Предварительные требования**
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/working_with_arrays.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/working_with_arrays.md
index 25404de1e3d..8ffe3ed5668 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/working_with_arrays.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/working_with_arrays.md
@@ -9,8 +9,6 @@ doc_type: 'guide'
> В этом руководстве вы узнаете, как использовать массивы в ClickHouse, а также познакомитесь с некоторыми наиболее часто используемыми [функциями работы с массивами](/sql-reference/functions/array-functions).
-
-
## Введение в массивы {#array-basics}
Массив — это хранящаяся в памяти структура данных, которая группирует значения.
@@ -126,7 +124,6 @@ SELECT [1::UInt8, 2.5::Float32, 3::UInt8] AS mixed_array, toTypeName([1, 2.5, 3]
В ClickHouse важно учитывать, что индексация массивов всегда начинается с **1**.
Это может отличаться от других языков программирования, к которым вы привыкли, где массивы индексируются с нуля.
-
Например, для заданного массива можно выбрать его первый элемент, написав:
```sql
@@ -163,7 +160,6 @@ SELECT string_array[0]
└──────────────────────────┘
```
-
## Функции для работы с массивами {#array-functions}
ClickHouse предоставляет множество полезных функций для работы с массивами.
@@ -230,7 +226,6 @@ hasAll_true: 1
hasAll_false: 0
```
-
## Исследование данных о перелётах с помощью массивов {#exploring-flight-data-with-array-functions}
До сих пор примеры были довольно простыми.
@@ -332,7 +327,6 @@ WITH arrayMap(
) AS statuses
```
-
SELECT
Origin,
toStringCutToZero(Dest) AS Destination,
@@ -415,7 +409,6 @@ LIMIT 10
Затем для каждой пары используется функция `arrayIntersect`, чтобы найти направления, которые присутствуют в списках обоих аэропортов.
Функция `length` подсчитывает, сколько общих направлений у них есть.
-
Условие `a1.Origin < a2.Origin` гарантирует, что каждая пара появляется только один раз.
Без него вы получили бы и JFK-LAX, и LAX-JFK как отдельные результаты, что было бы избыточно, поскольку они представляют одно и то же сравнение.
Наконец, запрос сортирует результаты, чтобы показать, какие пары аэропортов имеют наибольшее количество общих направлений, и возвращает только топ-10.
@@ -506,7 +499,6 @@ GROUP BY ALL
ORDER BY flightsDelayed DESC
```
-
## Дальнейшие шаги {#next-steps}
Поздравляем! Вы узнали, как работать с массивами в ClickHouse — от базового создания и индексирования массивов до использования мощных функций, таких как `groupArray`, `arrayFilter`, `arrayMap`, `arrayReduce` и `arrayJoin`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/working_with_joins.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/working_with_joins.md
index 67e821cb1fe..e0d501e41c2 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/working_with_joins.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/starter_guides/working_with_joins.md
@@ -21,7 +21,6 @@ import asof_example from '@site/static/images/starter_guides/joins/asof_example.
ClickHouse полностью поддерживает стандартные операции JOIN в SQL, что позволяет эффективно анализировать данные.
В этом руководстве вы ознакомитесь с некоторыми из наиболее распространённых типов JOIN и узнаете, как использовать их с помощью диаграмм Венна и примеров запросов к нормализованному набору данных [IMDb](https://en.wikipedia.org/wiki/IMDb) из [репозитория реляционных наборов данных](https://relational.fit.cvut.cz/dataset/IMDb).
-
## Тестовые данные и ресурсы {#test-data-and-resources}
Инструкции по созданию и загрузке таблиц можно найти [здесь](/integrations/dbt/guides).
@@ -97,7 +96,6 @@ LIMIT 10;
Поведение `INNER JOIN` может быть расширено или изменено с помощью одного из следующих типов соединения.
-
## (LEFT / RIGHT / FULL) OUTER JOIN {#left--right--full-outer-join}
`LEFT OUTER JOIN` ведёт себя как `INNER JOIN`, а для несовпадающих строк левой таблицы ClickHouse возвращает [значения по умолчанию](/sql-reference/statements/create/table#default_values) для столбцов правой таблицы.
@@ -144,7 +142,6 @@ LIMIT 10;
Ключевое слово `OUTER` можно не указывать.
:::
-
## CROSS JOIN {#cross-join}
`CROSS JOIN` создаёт полное декартово произведение двух таблиц, не учитывая ключи соединения.
@@ -241,7 +238,6 @@ ALL
И поскольку, как упоминалось выше, ключевое слово `OUTER` можно опустить для `RIGHT OUTER JOIN`, а ключевое слово `ALL` при необходимости добавить, вы можете написать `ALL RIGHT JOIN`, и это будет работать корректно.
-
## (LEFT / RIGHT) SEMI JOIN {#left--right-semi-join}
Запрос `LEFT SEMI JOIN` возвращает значения столбцов для каждой строки из левой таблицы, у которой есть хотя бы одно совпадение по ключу соединения в правой таблице.
@@ -280,7 +276,6 @@ LIMIT 10;
└────────────┴────────────────────────┘
```
-
## (LEFT / RIGHT) ANTI JOIN {#left--right-anti-join}
`LEFT ANTI JOIN` возвращает значения столбцов для всех несовпадающих строк из левой таблицы.
@@ -316,7 +311,6 @@ LIMIT 10;
└───────────────────────────────────────────┘
```
-
## (LEFT / RIGHT / INNER) ANY JOIN {#left--right--inner-any-join}
`LEFT ANY JOIN` — это комбинация `LEFT OUTER JOIN` и `LEFT SEMI JOIN`. Это означает, что ClickHouse возвращает значения столбцов для каждой строки из левой таблицы, либо объединяя их со значениями столбцов совпадающей строки из правой таблицы, либо объединяя их со значениями столбцов по умолчанию для правой таблицы, если совпадающей строки не существует.
@@ -392,7 +386,6 @@ INNER ANY JOIN right_table AS r ON l.c = r.c;
└─────┴─────┘
```
-
## ASOF JOIN {#asof-join}
`ASOF JOIN` предоставляет возможности неточного сопоставления.
@@ -450,7 +443,6 @@ final_price: 9645
Клауза `ON` в `ASOF JOIN` является обязательной и задаёт условие точного соответствия в дополнение к неточному условию соответствия в клаузе `AND`.
:::
-
## Краткое описание {#summary}
В этом руководстве описано, как ClickHouse поддерживает все стандартные типы операций SQL JOIN, а также специализированные варианты для выполнения аналитических запросов.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/troubleshooting.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/troubleshooting.md
index fe013d1765f..2a584b9ece3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/troubleshooting.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/troubleshooting.md
@@ -6,8 +6,6 @@ doc_type: 'guide'
keywords: ['устранение неполадок', 'отладка', 'решение проблем', 'ошибки', 'диагностика']
---
-
-
## Установка {#installation}
### Не удаётся импортировать ключи GPG с keyserver.ubuntu.com с помощью apt-key {#cannot-import-gpg-keys-from-keyserverubuntucom-with-apt-key}
@@ -78,7 +76,6 @@ sudo rm -f /etc/yum.repos.d/clickhouse.repo
Затем следуйте [руководству по установке](/install/redhat)
-
## Подключение к серверу {#connecting-to-the-server}
Возможные проблемы:
@@ -180,7 +177,6 @@ sudo -u clickhouse /usr/bin/clickhouse-server --config-file /etc/clickhouse-serv
* Возможно, вы используете неверное имя пользователя или пароль.
-
## Обработка запросов {#query-processing}
Если ClickHouse не может выполнить запрос, он отправляет описание ошибки клиенту. В `clickhouse-client` вы получаете описание ошибки в консоли. Если вы используете HTTP-интерфейс, ClickHouse отправляет описание ошибки в теле ответа. Например:
@@ -194,7 +190,6 @@ Code: 47, e.displayText() = DB::Exception: Unknown identifier: a. Note that ther
Вы можете увидеть сообщение о разорванном соединении. В этом случае можно повторить запрос. Если соединение обрывается каждый раз при выполнении запроса, проверьте журналы сервера на наличие ошибок.
-
## Эффективность обработки запросов {#efficiency-of-query-processing}
Если вы замечаете, что ClickHouse работает слишком медленно, следует проанализировать нагрузку на ресурсы сервера и сеть при выполнении ваших запросов.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/apache-spark/spark-jdbc.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/apache-spark/spark-jdbc.md
index e07bddea868..e0fff1ba246 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/apache-spark/spark-jdbc.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/apache-spark/spark-jdbc.md
@@ -13,7 +13,6 @@ import TabItem from '@theme/TabItem';
import TOCInline from '@theme/TOCInline';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Spark JDBC {#spark-jdbc}
@@ -24,8 +23,6 @@ JDBC является одним из самых распространённы
-
-
## Чтение данных {#read-data}
@@ -121,7 +118,6 @@ jar_files = [
```
-
# Инициализация сессии Spark с JAR-файлами {#initialize-spark-session-with-jars}
spark = SparkSession.builder \
@@ -168,7 +164,6 @@ df.show()
-
## Запись данных {#write-data}
@@ -291,7 +286,6 @@ jar_files = [
```
-
# Инициализация Spark-сессии с JAR-файлами {#initialize-spark-session-with-jars}
spark = SparkSession.builder \
.appName("example") \
@@ -299,8 +293,6 @@ spark = SparkSession.builder \
.config("spark.jars", ",".join(jar_files)) \
.getOrCreate()
-
-
# Создание DataFrame {#create-dataframe}
data = [Row(id=11, name="John"), Row(id=12, name="Doe")]
df = spark.createDataFrame(data)
@@ -310,8 +302,6 @@ user = "your_user"
password = "your_password"
driver = "com.clickhouse.jdbc.ClickHouseDriver"
-
-
# Запись DataFrame в ClickHouse {#write-dataframe-to-clickhouse}
df.write \
@@ -348,7 +338,6 @@ df.write \
-
## Параллелизм {#parallelism}
При использовании Spark JDBC Spark читает данные, используя один раздел (partition). Чтобы добиться более высокой степени параллелизма, необходимо указать
@@ -357,8 +346,6 @@ df.write \
Дополнительную информацию см. в официальной документации Apache Spark
по [параметрам JDBC](https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html#data-source-option).
-
-
## Ограничения JDBC {#jdbc-limitations}
* На данный момент с помощью JDBC можно вставлять данные только в уже существующие таблицы (нет возможности автоматически создавать таблицу при вставке DataFrame, как это делает Spark с другими подключениями).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/apache-spark/spark-native-connector.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/apache-spark/spark-native-connector.md
index 6208191afca..9891e3c2146 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/apache-spark/spark-native-connector.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/apache-spark/spark-native-connector.md
@@ -12,7 +12,6 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import TOCInline from '@theme/TOCInline';
-
# Коннектор Spark {#spark-connector}
Этот коннектор использует оптимизации, специфичные для ClickHouse, такие как продвинутое разбиение на партиции и проталкивание предикатов (predicate pushdown), чтобы
@@ -173,7 +172,6 @@ clickhouse-spark-runtime-${spark_binary_version}_${scala_binary_version}-${versi
[матрицей совместимости](#compatibility-matrix).
:::
-
## Зарегистрируйте каталог (обязательно) {#register-the-catalog-required}
Чтобы получить доступ к своим таблицам ClickHouse, необходимо настроить новый каталог Spark со следующими параметрами:
@@ -223,7 +221,6 @@ spark.sql.catalog.clickhouse2.option.ssl true
:::
-
## Настройки ClickHouse Cloud {#clickhouse-cloud-settings}
При подключении к [ClickHouse Cloud](https://clickhouse.com) обязательно включите SSL и задайте необходимый режим SSL. Например:
@@ -233,7 +230,6 @@ spark.sql.catalog.clickhouse.option.ssl true
spark.sql.catalog.clickhouse.option.ssl_mode NONE
```
-
## Чтение данных {#read-data}
@@ -467,7 +463,7 @@ df.show()
-## Операции DDL
+## Операции DDL {#ddl-operations}
Вы можете выполнять операции DDL в экземпляре ClickHouse с помощью Spark SQL, при этом все изменения немедленно сохраняются
в ClickHouse.
@@ -500,7 +496,6 @@ TBLPROPERTIES (
Приведённые выше примеры демонстрируют запросы Spark SQL, которые вы можете выполнять в своём приложении с использованием любого из API — Java, Scala, PySpark или оболочки.
-
## Конфигурации {#configurations}
Ниже приведены настраиваемые параметры, доступные в коннекторе:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/aws-glue/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/aws-glue/index.md
index 3f5d71289d8..eed40605ee1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/aws-glue/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/aws-glue/index.md
@@ -15,7 +15,6 @@ import notebook_connections_config from '@site/static/images/integrations/data-i
import dependent_jars_path_option from '@site/static/images/integrations/data-ingestion/aws-glue/dependent_jars_path_option.png';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Интеграция Amazon Glue с ClickHouse и Spark {#integrating-amazon-glue-with-clickhouse-and-spark}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-data-factory/using_azureblobstorage.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-data-factory/using_azureblobstorage.md
index cf4d95c8aa2..7c49dd6a51b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-data-factory/using_azureblobstorage.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-data-factory/using_azureblobstorage.md
@@ -11,7 +11,6 @@ import Image from '@theme/IdealImage';
import azureDataStoreSettings from '@site/static/images/integrations/data-ingestion/azure-data-factory/azure-data-store-settings.png';
import azureDataStoreAccessKeys from '@site/static/images/integrations/data-ingestion/azure-data-factory/azure-data-store-access-keys.png';
-
# Использование табличной функции azureBlobStorage в ClickHouse {#using-azureBlobStorage-function}
Это один из наиболее эффективных и простых способов копирования данных из
@@ -30,8 +29,6 @@ Azure Blob Storage или Azure Data Lake Storage в ClickHouse. С помощь
обратитесь к официальной документации:
странице документации табличной функции [`azureBlobStorage`](https://clickhouse.com/docs/sql-reference/table-functions/azureBlobStorage)
-
-
## Получение ключей доступа к Azure Blob Storage {#acquiring-azure-blob-storage-access-keys}
Чтобы предоставить ClickHouse доступ к Azure Blob Storage, вам понадобится строка подключения с ключом доступа.
@@ -48,8 +45,6 @@ Azure Blob Storage или Azure Data Lake Storage в ClickHouse. С помощь
4. Скопируйте строку подключения — вы будете использовать её в качестве параметра табличной функции azureBlobStorage.
-
-
## Выполнение запросов к данным в Azure Blob Storage {#querying-the-data-from-azure-blob-storage}
Откройте предпочитаемую консоль для выполнения запросов в ClickHouse — это может быть
@@ -83,7 +78,6 @@ SELECT * FROM azureBlobStorage(
Это позволяет эффективно загружать внешние данные в ClickHouse без необходимости выполнения промежуточных ETL-этапов.
-
## Простой пример с использованием набора данных Environmental Sensors {#simple-example-using-the-environmental-sensors-dataset}
В качестве примера мы загрузим один файл из набора данных Environmental Sensors.
@@ -154,7 +148,6 @@ inference from input data](https://clickhouse.com/docs/interfaces/schema-inferen
Теперь таблица sensors заполнена данными из файла `2019-06_bmp180.csv.zst`,
хранящегося в Azure Blob Storage.
-
## Дополнительные ресурсы {#additional-resources}
Это лишь базовое введение в использование функции azureBlobStorage. Для более
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-data-factory/using_http_interface.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-data-factory/using_http_interface.md
index 53eaddd1bfe..2a2e02df204 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-data-factory/using_http_interface.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-data-factory/using_http_interface.md
@@ -35,7 +35,6 @@ import adfCopyDataSource from '@site/static/images/integr
import adfCopyDataSinkSelectPost from '@site/static/images/integrations/data-ingestion/azure-data-factory/adf-copy-data-sink-select-post.png';
import adfCopyDataDebugSuccess from '@site/static/images/integrations/data-ingestion/azure-data-factory/adf-copy-data-debug-success.png';
-
# Использование HTTP-интерфейса ClickHouse в Azure Data Factory {#using-clickhouse-http-interface-in-azure-data-factory}
Табличная функция [`azureBlobStorage`](https://clickhouse.com/docs/sql-reference/table-functions/azureBlobStorage)
@@ -63,8 +62,6 @@ Azure, Azure Data Factory отправляет данные в ClickHouse. Та
runtime](https://learn.microsoft.com/en-us/azure/data-factory/create-self-hosted-integration-runtime?tabs=data-factory)
:::
-
-
## Превращение ClickHouse в REST‑сервис {#turning-clickhouse-to-a-rest-service}
Azure Data Factory поддерживает отправку данных во внешние системы по HTTP в
@@ -123,7 +120,6 @@ Service к вашему экземпляру ClickHouse, определим Data
[REST sink](https://learn.microsoft.com/en-us/azure/data-factory/connector-rest)
и создадим действие Copy Data для отправки данных из Azure в ClickHouse.
-
## Создание экземпляра Azure Data Factory {#create-an-azure-data-factory-instance}
В этом руководстве предполагается, что у вас есть доступ к учетной записи Microsoft Azure
@@ -151,8 +147,6 @@ Service к вашему экземпляру ClickHouse, определим Data
После успешного завершения развертывания вы можете начать использовать новый экземпляр
Azure Data Factory.
-
-
## Создание новой связанной службы на основе REST {#-creating-new-rest-based-linked-service}
1. Войдите в Microsoft Azure Portal и откройте экземпляр Data Factory.
@@ -202,8 +196,6 @@ Azure Data Factory.
Теперь в списке должна появиться вновь созданная связанная служба на основе REST.
-
-
## Создание нового набора данных для интерфейса ClickHouse HTTP {#creating-a-new-dataset-for-the-clickhouse-http-interface}
Теперь, когда у нас настроена связанная служба для интерфейса ClickHouse HTTP,
@@ -288,8 +280,6 @@ Azure Data Factory.
Resources**. Создайте новый набор данных, указывающий на загруженные данные.
Нажмите **Publish all**, чтобы сохранить изменения.
-
-
## Создание действия Copy Data для передачи данных в ClickHouse {#creating-the-copy-activity-to-transfer-data-to-clickhouse}
Теперь, когда мы настроили и входной, и выходной наборы данных, мы можем
@@ -331,8 +321,6 @@ Resources**. Создайте новый набор данных, указыва
6. По завершении нажмите **Publish all**, чтобы сохранить изменения конвейера и наборов данных.
-
-
## Дополнительные ресурсы {#additional-resources-1}
- [HTTP-интерфейс](https://clickhouse.com/docs/interfaces/http)
- [Копирование и преобразование данных в и из конечной точки REST с помощью Azure Data Factory](https://learn.microsoft.com/en-us/azure/data-factory/connector-rest?tabs=data-factory)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-synapse/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-synapse/index.md
index f816832962a..3861c003ef3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-synapse/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/azure-synapse/index.md
@@ -13,7 +13,6 @@ import sparkConfigViaNotebook from '@site/static/images/integrations/data-ingest
import sparkUICHSettings from '@site/static/images/integrations/data-ingestion/azure-synapse/spark_ui_ch_settings.png';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Интеграция Azure Synapse с ClickHouse {#integrating-azure-synapse-with-clickhouse}
@@ -25,8 +24,6 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
-
## Добавление зависимостей коннектора {#add-connector-dependencies}
Azure Synapse поддерживает три уровня [управления пакетами](https://learn.microsoft.com/en-us/azure/synapse-analytics/spark/apache-spark-azure-portal-add-libraries):
1. Пакеты по умолчанию
@@ -41,8 +38,6 @@ Azure Synapse поддерживает три уровня [управления
Ознакомьтесь с документацией [Spark Connector Compatibility Matrix](/integrations/apache-spark/spark-native-connector#compatibility-matrix), чтобы подобрать версии, соответствующие вашим требованиям.
-
-
## Добавить ClickHouse как каталог {#add-clickhouse-as-catalog}
Существует несколько способов добавить конфигурации Spark в ваш сеанс:
@@ -81,7 +76,6 @@ Azure Synapse поддерживает три уровня [управления
При работе с ClickHouse Cloud обязательно задайте [обязательные параметры Spark](/integrations/apache-spark/spark-native-connector#clickhouse-cloud-settings).\
:::
-
## Проверка настройки {#setup-verification}
Чтобы убедиться, что зависимости и конфигурации были успешно настроены, перейдите в Spark UI вашего сеанса и откройте вкладку `Environment`.
@@ -89,8 +83,6 @@ Azure Synapse поддерживает три уровня [управления
-
-
## Дополнительные ресурсы {#additional-resources}
- [Документация по коннектору ClickHouse для Spark](/integrations/apache-spark)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/aws-privatelink.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/aws-privatelink.md
index 242b6328a28..4ad6bf3e36e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/aws-privatelink.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/aws-privatelink.md
@@ -18,15 +18,12 @@ import cp_rpe_settings0 from '@site/static/images/integrations/data-ingestion/cl
import cp_rpe_settings1 from '@site/static/images/integrations/data-ingestion/clickpipes/cp_rpe_settings1.png';
import Image from '@theme/IdealImage';
-
# AWS PrivateLink для ClickPipes {#aws-privatelink-for-clickpipes}
Вы можете использовать [AWS PrivateLink](https://aws.amazon.com/privatelink/) для установления защищенного соединения между VPC, сервисами AWS, вашими локальными системами и ClickHouse Cloud, не выводя трафик в общедоступный интернет.
В этом документе описана функциональность обратных приватных конечных точек (endpoint) ClickPipes, которая позволяет настроить конечную точку VPC AWS PrivateLink.
-
-
## Поддерживаемые источники данных ClickPipes {#supported-sources}
Возможности функции reverse private endpoint в ClickPipes ограничены следующими
@@ -36,8 +33,6 @@ import Image from '@theme/IdealImage';
- MySQL
- MongoDB
-
-
## Поддерживаемые типы конечных точек AWS PrivateLink {#aws-privatelink-endpoint-types}
Обратную частную конечную точку ClickPipes можно настроить с использованием одного из следующих подходов AWS PrivateLink:
@@ -137,7 +132,6 @@ aws vpc-lattice create-resource-configuration \
Для совместного использования вашего ресурса требуется общий ресурс. Это осуществляется через Resource Access Manager (RAM).
-
Вы можете добавить Resource-Configuration в Resource-Share через [консоль AWS](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html) или выполнив следующую команду с идентификатором учетной записи ClickPipes `072088201116` (arn:aws:iam::072088201116:root):
```bash
@@ -201,7 +195,6 @@ aws ram create-resource-share \
может быть настроен для ClickPipes. Добавьте [регион вашего ClickPipe](#aws-privatelink-regions) в список разрешенных регионов в вашей службе конечных точек VPC.
:::
-
## Создание ClickPipe с reverse private endpoint {#creating-clickpipe}
@@ -262,8 +255,6 @@ aws ram create-resource-share \
-
-
## Управление существующими обратными приватными endpoint’ами {#managing-existing-endpoints}
Вы можете управлять существующими обратными приватными endpoint’ами в настройках сервиса ClickHouse Cloud:
@@ -284,8 +275,6 @@ aws ram create-resource-share \
-
-
## Поддерживаемые регионы AWS {#aws-privatelink-regions}
Поддержка AWS PrivateLink для ClickPipes ограничена определёнными регионами AWS.
@@ -293,8 +282,6 @@ aws ram create-resource-share \
Это ограничение не распространяется на службу конечной точки VPC PrivateLink с включённой межрегиональной связностью.
-
-
## Ограничения {#limitations}
Для конечных точек AWS PrivateLink для ClickPipes, созданных в ClickHouse Cloud, не гарантируется, что они будут созданы
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/index.md
index 66257c1483e..c5288830f08 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/index.md
@@ -26,19 +26,14 @@ import cp_custom_role from '@site/static/images/integrations/data-ingestion/clic
import cp_advanced_settings from '@site/static/images/integrations/data-ingestion/clickpipes/cp_advanced_settings.png';
import Image from '@theme/IdealImage';
-
# Интеграция с ClickHouse Cloud {#integrating-with-clickhouse-cloud}
-
-
## Введение {#introduction}
[ClickPipes](/integrations/clickpipes) — это управляемая интеграционная платформа, которая делает приём данных из широкого набора источников таким же простым, как несколько кликов. Разработанная для самых требовательных рабочих нагрузок, масштабируемая и надёжная архитектура ClickPipes обеспечивает стабильную производительность и надёжность. ClickPipes можно использовать как для долгосрочной потоковой передачи данных, так и для разовой загрузки данных.
-
-
## Поддерживаемые источники данных {#supported-data-sources}
| Название | Логотип |Тип| Статус | Описание |
@@ -60,8 +55,6 @@ import Image from '@theme/IdealImage';
В ClickPipes будут появляться новые коннекторы; подробнее вы можете узнать, [связавшись с нами](https://clickhouse.com/company/contact?loc=clickpipes).
-
-
## Список статических IP-адресов {#list-of-static-ips}
Ниже приведены статические IP-адреса NAT (разделенные по регионам), которые ClickPipes использует для подключения к вашим внешним сервисам. Добавьте IP-адреса, соответствующие региону вашего инстанса, в список разрешенных IP-адресов, чтобы разрешить трафик.
@@ -86,8 +79,6 @@ import Image from '@theme/IdealImage';
| **us-west-2** (с 24 июня 2025 г.) | `52.42.100.5`, `44.242.47.162`, `52.40.44.52`, `44.227.206.163`, `44.246.241.23`, `35.83.230.19` |
| **Дополнительно** | `3.132.20.192`, `18.119.76.110`, `3.134.185.180` |
-
-
## Настройка параметров ClickHouse {#adjusting-clickhouse-settings}
ClickHouse Cloud предоставляет разумные значения по умолчанию для большинства сценариев использования. Однако, если вам нужно изменить некоторые настройки ClickHouse для целевых таблиц ClickPipes, наиболее гибким решением будет выделенная роль для ClickPipes.
Шаги:
@@ -96,8 +87,6 @@ ClickHouse Cloud предоставляет разумные значения п
-
-
## Настройка расширенных параметров ClickPipes {#clickpipes-advanced-settings}
ClickPipes предоставляет разумные значения по умолчанию, которые удовлетворяют требованиям большинства вариантов использования. Если в вашем случае требуется дополнительная тонкая настройка, вы можете изменить следующие параметры:
@@ -124,8 +113,6 @@ ClickPipes предоставляет разумные значения по у
|-----------------------------------|------------------------|---------------------------------------------------------------------------------------|
| `Streaming max insert wait time` | 5s | Определяет максимальный период ожидания перед вставкой данных в кластер ClickHouse. |
-
-
## Отчёт об ошибках {#error-reporting}
ClickPipes будет сохранять ошибки в двух отдельных таблицах в зависимости от типа ошибки, возникшей в процессе ингестии.
### Ошибки записей {#record-errors}
@@ -135,8 +122,6 @@ ClickPipes создаст таблицу рядом с вашей целевой
Если ClickPipes не удаётся подключиться к источнику данных в течение 15 минут или к целевой системе в течение 1 часа, экземпляр ClickPipes останавливается и сохраняет соответствующее сообщение в таблице системных ошибок (при условии, что экземпляр ClickHouse доступен).
-
-
## FAQ {#faq}
- **Что такое ClickPipes?**
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kafka/03_reference.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kafka/03_reference.md
index 6b31a78837b..6e4368a6727 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kafka/03_reference.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kafka/03_reference.md
@@ -17,7 +17,6 @@ import redpanda_logo from '@site/static/images/integrations/logos/logo_redpanda.
import Image from '@theme/IdealImage';
import ExperimentalBadge from '@site/src/theme/badges/ExperimentalBadge';
-
# Справочные материалы {#reference}
## Поддерживаемые источники данных {#supported-data-sources}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kafka/04_best_practices.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kafka/04_best_practices.md
index 947a21ebb11..a9f869a1a64 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kafka/04_best_practices.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kafka/04_best_practices.md
@@ -8,30 +8,20 @@ doc_type: 'guide'
keywords: ['лучшие практики kafka', 'clickpipes', 'сжатие', 'аутентификация', 'масштабирование']
---
-
-
# Рекомендации по лучшим практикам {#best-practices}
-
-
## Сжатие сообщений {#compression}
Мы настоятельно рекомендуем использовать сжатие для ваших тем Kafka. Сжатие позволяет существенно сократить затраты на передачу данных практически без влияния на производительность.
Чтобы узнать больше о сжатии сообщений в Kafka, рекомендуем начать с этого [руководства](https://www.confluent.io/blog/apache-kafka-message-compression/).
-
-
## Ограничения {#limitations}
- [`DEFAULT`](/sql-reference/statements/create/table#default) не поддерживается.
-
-
## Семантика доставки {#delivery-semantics}
ClickPipes for Kafka обеспечивает семантику доставки `at-least-once` (одна из наиболее распространённых моделей). Нам будет полезно получить вашу обратную связь по семантике доставки через [форму обратной связи](https://clickhouse.com/company/contact?loc=clickpipes). Если вам нужна семантика `exactly-once`, мы рекомендуем использовать наш официальный sink-коннектор [`clickhouse-kafka-connect`](https://clickhouse.com/blog/real-time-event-streaming-with-kafka-connect-confluent-cloud-clickhouse).
-
-
## Аутентификация {#authentication}
Для источников данных, использующих протокол Apache Kafka, ClickPipes поддерживает аутентификацию [SASL/PLAIN](https://docs.confluent.io/platform/current/kafka/authentication_sasl/authentication_sasl_plain.html) с шифрованием TLS, а также `SASL/SCRAM-SHA-256` и `SASL/SCRAM-SHA-512`. В зависимости от источника потоковых данных (Redpanda, MSK и т. д.) будут доступны все или часть этих механизмов аутентификации в соответствии с требованиями совместимости. Если ваши требования к аутентификации отличаются, пожалуйста, [сообщите нам об этом](https://clickhouse.com/company/contact?loc=clickpipes).
@@ -116,7 +106,6 @@ ClickPipes поддерживает следующие методы аутент
ClickPipes для Kafka поддерживает загрузку пользовательских сертификатов для брокеров Kafka, использующих непубличные серверные сертификаты.
Также поддерживается загрузка клиентских сертификатов и ключей для аутентификации на основе взаимного TLS (mTLS).
-
## Производительность {#performance}
### Пакетная обработка {#batching}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kinesis.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kinesis.md
index 78b3e8f3130..a106179ca49 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kinesis.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/kinesis.md
@@ -25,13 +25,10 @@ import cp_destination from '@site/static/images/integrations/data-ingestion/clic
import cp_overview from '@site/static/images/integrations/data-ingestion/clickpipes/cp_overview.png';
import Image from '@theme/IdealImage';
-
# Интеграция Amazon Kinesis с ClickHouse Cloud {#integrating-amazon-kinesis-with-clickhouse-cloud}
## Предварительные требования {#prerequisite}
Вы ознакомились с [введением в ClickPipes](./index.md) и настроили [учётные данные IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) или [роль IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). Следуйте [руководству по доступу к Kinesis на основе ролей](./secure-kinesis.md), чтобы настроить роль для работы с ClickHouse Cloud.
-
-
## Создание вашего первого ClickPipe {#creating-your-first-clickpipe}
1. Откройте SQL Console для своего сервиса ClickHouse Cloud.
@@ -90,15 +87,11 @@ import Image from '@theme/IdealImage';
10. **Поздравляем!** Вы успешно настроили свой первый ClickPipe. Если это потоковый ClickPipe, он будет постоянно работать, выполняя приём данных в реальном времени из удалённого источника данных. В противном случае приём будет выполнен пакетно и завершится.
-
-
## Поддерживаемые форматы данных {#supported-data-formats}
Поддерживаемые форматы:
- [JSON](/interfaces/formats/JSON)
-
-
## Поддерживаемые типы данных {#supported-data-types}
### Поддержка стандартных типов {#standard-types-support}
@@ -130,8 +123,6 @@ import Image from '@theme/IdealImage';
Поля JSON, которые всегда являются объектом JSON, можно сопоставить с целевым столбцом типа JSON. Вам потребуется вручную изменить
целевой столбец на требуемый тип JSON, включая любые фиксированные или пропускаемые пути.
-
-
## Виртуальные столбцы Kinesis {#kinesis-virtual-columns}
Для потока Kinesis поддерживаются следующие виртуальные столбцы. При создании новой таблицы назначения виртуальные столбцы можно добавить с помощью кнопки `Add Column`.
@@ -146,14 +137,10 @@ import Image from '@theme/IdealImage';
Поле _raw_message можно использовать в случаях, когда требуется только полная JSON-запись Kinesis (например, при использовании функций ClickHouse [`JsonExtract*`](/sql-reference/functions/json-functions#jsonextract-functions) для заполнения дочернего материализованного представления). Для таких конвейеров производительность ClickPipes может повыситься, если удалить все «невиртуальные» столбцы.
-
-
## Ограничения {#limitations}
- [DEFAULT](/sql-reference/statements/create/table#default) не поддерживается.
-
-
## Производительность {#performance}
### Пакетная обработка {#batching}
@@ -180,8 +167,6 @@ ClickPipes обеспечивает высокую доступность бла
Если потребитель или его базовая инфраструктура выходит из строя,
ClickPipe автоматически перезапустит потребителя и продолжит обработку сообщений.
-
-
## Аутентификация {#authentication}
Для доступа к потокам Amazon Kinesis вы можете использовать [учётные данные IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) или [роль IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). Более подробные сведения о настройке роли IAM см. в [этом руководстве](./secure-kinesis.md), где описано, как настроить роль, которая будет работать с ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/add_table.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/add_table.md
index 9456f2a02cd..810d4c135d7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/add_table.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/add_table.md
@@ -11,13 +11,10 @@ keywords: ['clickpipes', 'mongodb', 'cdc', 'ингестия данных', 'с
import Image from '@theme/IdealImage';
import add_table from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/add_table.png'
-
# Добавление отдельных таблиц в ClickPipe {#adding-specific-tables-to-a-clickpipe}
В ряде случаев бывает полезно добавить в ClickPipe отдельные таблицы. По мере масштабирования вашей транзакционной или аналитической нагрузки это становится распространённой необходимостью.
-
-
## Шаги по добавлению отдельных таблиц в ClickPipe {#add-tables-steps}
Выполните следующие шаги:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/faq.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/faq.md
index eabf017230f..10fdf9e8fec 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/faq.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/faq.md
@@ -8,8 +8,6 @@ doc_type: 'reference'
keywords: ['clickpipes', 'mongodb', 'CDC', 'ингестия данных', 'синхронизация в режиме реального времени']
---
-
-
# ClickPipes для MongoDB: часто задаваемые вопросы {#clickpipes-for-mongodb-faq}
### Могу ли я выполнять запросы к отдельным полям JSON? {#can-i-query-for-individual-fields-in-the-json-datatype}
@@ -70,7 +68,6 @@ SELECT sum(doc.shipping.cost::Float32) AS total_shipping_cost FROM t1;
Выбор режима read preference зависит от вашего конкретного варианта использования. Если вы хотите минимизировать нагрузку на основной (primary) узел, мы рекомендуем использовать режим `secondaryPreferred`. Если вы хотите оптимизировать задержку ингестии, мы рекомендуем использовать режим `primaryPreferred`. Подробности см. в [документации MongoDB](https://www.mongodb.com/docs/manual/core/read-preference/#read-preference-modes-1).
-
### Поддерживает ли MongoDB ClickPipe шардированный кластер? {#does-the-mongodb-clickpipe-support-sharded-cluster}
Да, MongoDB ClickPipe поддерживает как Replica Set, так и шардированный кластер.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/index.md
index 49624ed2ccf..398f9514533 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/index.md
@@ -17,7 +17,6 @@ import ch_permissions from '@site/static/images/integrations/data-ingestion/clic
import Image from '@theme/IdealImage';
import ssh_tunnel from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/ssh-tunnel.jpg'
-
# Приём данных из MongoDB в ClickHouse (с использованием CDC) {#ingesting-data-from-mongodb-to-clickhouse-using-cdc}
@@ -32,8 +31,6 @@ import ssh_tunnel from '@site/static/images/integrations/data-ingestion/clickpip
Вы можете использовать ClickPipes, чтобы организовать приём данных из вашей базы данных MongoDB в ClickHouse Cloud. Исходная база данных MongoDB может размещаться в локальной инфраструктуре (on-premises) или в облаке с использованием сервисов, таких как MongoDB Atlas.
-
-
## Предварительные требования {#prerequisites}
Прежде чем начать, необходимо убедиться, что ваша база данных MongoDB корректно настроена для репликации данных. Шаги настройки зависят от того, как вы разворачиваете MongoDB, поэтому выполните инструкции из соответствующего руководства ниже:
@@ -46,8 +43,6 @@ import ssh_tunnel from '@site/static/images/integrations/data-ingestion/clickpip
После того как исходная база данных MongoDB настроена, можно продолжить создание ClickPipe.
-
-
## Создайте свой ClickPipe {#create-your-clickpipe}
Убедитесь, что вы вошли в свою учетную запись ClickHouse Cloud. Если у вас еще нет учетной записи, вы можете зарегистрироваться [здесь](https://cloud.clickhouse.com/).
@@ -115,14 +110,10 @@ import ssh_tunnel from '@site/static/images/integrations/data-ingestion/clickpip
-
-
## Что дальше? {#whats-next}
После того как вы настроили ClickPipe для репликации данных из MongoDB в ClickHouse Cloud, можно сосредоточиться на том, как строить запросы и моделировать данные для оптимальной производительности.
-
-
## Ограничения {#caveats}
Ниже приведены несколько ограничений, которые следует учитывать при использовании этого коннектора:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/atlas.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/atlas.md
index 59141c960a4..db4b8dddfa4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/atlas.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/atlas.md
@@ -15,11 +15,8 @@ import mongo_atlas_add_roles from '@site/static/images/integrations/data-ingesti
import mongo_atlas_restrict_access from '@site/static/images/integrations/data-ingestion/clickpipes/mongodb/mongo-atlas-restrict-access.png'
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника данных MongoDB Atlas {#mongodb-atlas-source-setup-guide}
-
-
## Настроить хранение oplog {#enable-oplog-retention}
Для репликации требуется минимальное время хранения oplog не менее 24 часов. Рекомендуется установить время хранения oplog на 72 часа или дольше, чтобы гарантировать, что он не будет усечён до завершения начального снимка. Чтобы настроить хранение oplog через интерфейс:
@@ -35,8 +32,6 @@ import Image from '@theme/IdealImage';
4. Нажмите `Review Changes` для проверки, затем `Apply Changes` для применения изменений.
-
-
## Настройка пользователя базы данных {#configure-database-user}
После входа в консоль MongoDB Atlas нажмите `Database Access` на вкладке **Security** в левой панели навигации. Затем нажмите **Add New Database User**.
@@ -58,8 +53,6 @@ import Image from '@theme/IdealImage';
-
-
## Что дальше? {#whats-next}
Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра MongoDB в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/documentdb.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/documentdb.md
index 26819eab600..ca527ccb5e6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/documentdb.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/documentdb.md
@@ -13,17 +13,12 @@ import docdb_apply_parameter_group from '@site/static/images/integrations/data-i
import docdb_parameter_group_status from '@site/static/images/integrations/data-ingestion/clickpipes/mongodb/docdb-parameter-group-status.png'
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника данных Amazon DocumentDB {#amazon-documentdb-source-setup-guide}
-
-
## Поддерживаемые версии DocumentDB {#supported-documentdb-versions}
ClickPipes поддерживает DocumentDB версии 5.0.
-
-
## Настройка периода хранения журналов потока изменений {#configure-change-stream-log-retention}
По умолчанию в Amazon DocumentDB период хранения журналов потока изменений составляет 3 часа, тогда как первоначальная загрузка может занять значительно больше времени в зависимости от объёма имеющихся данных в вашем DocumentDB. Рекомендуется установить период хранения журналов потока изменений на 72 часа или дольше, чтобы журналы не были усечены до завершения создания первоначального снимка.
@@ -60,7 +55,6 @@ aws docdb describe-db-cluster-parameters --db-cluster-parameter-group-name --parameters "ParameterName=change_stream_log_retention_duration,ParameterValue=259200,ApplyMethod=immediate"
```
-
## Настройте пользователя базы данных {#configure-database-user}
Подключитесь к своему кластеру DocumentDB с учетной записью администратора и выполните следующую команду, чтобы создать пользователя базы данных для MongoDB CDC ClickPipes:
@@ -77,7 +71,6 @@ db.getSiblingDB("admin").createUser({
Обязательно замените `clickpipes_user` и `some_secure_password` на выбранные вами имя пользователя и пароль.
:::
-
## Что дальше? {#whats-next}
Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра DocumentDB в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/generic.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/generic.md
index 6e3bd0eb2bd..b630aefd6bd 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/generic.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mongodb/source/generic.md
@@ -7,8 +7,6 @@ doc_type: 'guide'
keywords: ['clickpipes', 'mongodb', 'cdc', 'ингестия данных', 'синхронизация в режиме реального времени']
---
-
-
# Общее руководство по настройке источника данных MongoDB {#generic-mongodb-source-setup-guide}
:::info
@@ -17,8 +15,6 @@ keywords: ['clickpipes', 'mongodb', 'cdc', 'ингестия данных', 'с
:::
-
-
## Включение хранения oplog {#enable-oplog-retention}
Для репликации требуется минимальный срок хранения oplog в 24 часа. Рекомендуется устанавливать срок хранения oplog на 72 часа или больше, чтобы избежать его усечения до завершения начального снимка.
@@ -40,7 +36,6 @@ db.adminCommand({
Подробнее о команде `replSetResizeOplog` и хранении журнала операций (oplog) см. [документацию MongoDB](https://www.mongodb.com/docs/manual/reference/command/replSetResizeOplog/).
-
## Настройте пользователя базы данных {#configure-database-user}
Подключитесь к экземпляру MongoDB как пользователь с правами администратора и выполните следующую команду, чтобы создать пользователя для MongoDB CDC в ClickPipes:
@@ -59,7 +54,6 @@ db.getSiblingDB("admin").createUser({
:::
-
## Что дальше? {#whats-next}
Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра MongoDB в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/add_table.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/add_table.md
index 587b36457e1..f5e2c033060 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/add_table.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/add_table.md
@@ -11,13 +11,10 @@ keywords: ['clickpipes', 'mysql', 'cdc', 'ингестия данных', 'си
import Image from '@theme/IdealImage';
import add_table from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/add_table.png'
-
# Добавление отдельных таблиц в ClickPipe {#adding-specific-tables-to-a-clickpipe}
В некоторых случаях может понадобиться добавить в ClickPipe отдельные таблицы. Такая необходимость обычно возникает по мере масштабирования вашей транзакционной или аналитической нагрузки.
-
-
## Шаги по добавлению отдельных таблиц в ClickPipe {#add-tables-steps}
Это можно сделать следующим образом:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/faq.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/faq.md
index 441e0e6484d..7329d1de29a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/faq.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/faq.md
@@ -8,8 +8,6 @@ doc_type: 'reference'
keywords: ['FAQ по MySQL ClickPipes', 'Устранение неполадок ClickPipes для MySQL', 'Репликация MySQL в ClickHouse', 'Поддержка ClickPipes для MySQL', 'MySQL CDC в ClickHouse']
---
-
-
# ClickPipes для MySQL: ответы на часто задаваемые вопросы (FAQ) {#clickpipes-for-mysql-faq}
### Поддерживает ли MySQL ClickPipe MariaDB? {#does-the-clickpipe-support-mariadb}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md
index 6552489eed6..33f249b8d93 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/index.md
@@ -17,7 +17,6 @@ import select_destination_db from '@site/static/images/integrations/data-ingesti
import ch_permissions from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/ch-permissions.jpg'
import Image from '@theme/IdealImage';
-
# Приём данных из MySQL в ClickHouse (с использованием CDC) {#ingesting-data-from-mysql-to-clickhouse-using-cdc}
@@ -28,8 +27,6 @@ import Image from '@theme/IdealImage';
Вы можете использовать ClickPipes для приёма данных из исходной базы данных MySQL в ClickHouse Cloud. Исходная база данных MySQL может размещаться в локальной инфраструктуре (on-premises) или в облаке с использованием таких сервисов, как Amazon RDS, Google Cloud SQL и другие.
-
-
## Предварительные требования {#prerequisites}
Прежде чем начать, необходимо убедиться, что ваша база данных MySQL корректно настроена для репликации binlog. Этапы настройки зависят от способа развертывания MySQL, поэтому следуйте соответствующему руководству ниже:
@@ -48,8 +45,6 @@ import Image from '@theme/IdealImage';
После того как исходная база данных MySQL будет настроена, можно переходить к созданию ClickPipe.
-
-
## Создайте свой ClickPipe {#create-your-clickpipe}
Убедитесь, что вы вошли в свою учетную запись ClickHouse Cloud. Если у вас еще нет учетной записи, вы можете зарегистрироваться [здесь](https://cloud.clickhouse.com/).
@@ -122,8 +117,6 @@ import Image from '@theme/IdealImage';
Наконец, для получения дополнительной информации о распространённых проблемах и способах их решения обратитесь к разделу ["ClickPipes for MySQL FAQ"](/integrations/clickpipes/mysql/faq).
-
-
## Что дальше? {#whats-next}
[//]: # "TODO Write a MySQL-specific migration guide and best practices similar to the existing one for PostgreSQL. The current migration guide points to the MySQL table engine, which is not ideal."
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/aurora.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/aurora.md
index 4bb378bc1dd..cc90565bef9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/aurora.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/aurora.md
@@ -19,13 +19,10 @@ import edit_button from '@site/static/images/integrations/data-ingestion/clickpi
import enable_gtid from '@site/static/images/integrations/data-ingestion/clickpipes/mysql/enable_gtid.png';
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника Aurora MySQL {#aurora-mysql-source-setup-guide}
В этом пошаговом руководстве показано, как настроить Amazon Aurora MySQL для репликации данных в ClickHouse Cloud с помощью [MySQL ClickPipe](../index.md). Ответы на распространённые вопросы о MySQL CDC см. на странице [MySQL FAQs](/integrations/data-ingestion/clickpipes/mysql/faq.md).
-
-
## Включение хранения двоичных журналов {#enable-binlog-retention-aurora}
Двоичный журнал — это набор файлов журнала, содержащих информацию об изменениях данных, внесённых в экземпляр сервера MySQL; файлы двоичного журнала необходимы для репликации. Чтобы настроить хранение двоичных журналов в Aurora MySQL, необходимо [включить двоичное логирование](#enable-binlog-logging) и [увеличить интервал хранения binlog](#binlog-retention-interval).
@@ -54,7 +51,6 @@ mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);
Если эта настройка не задана или установлен слишком короткий интервал, это может привести к разрывам в двоичных логах и не позволит ClickPipes корректно возобновлять репликацию.
-
## Настройка параметров binlog {#binlog-settings}
Группу параметров можно найти, выбрав ваш экземпляр MySQL в консоли RDS, а затем перейдя на вкладку **Configuration**.
@@ -88,8 +84,6 @@ mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);
Затем нажмите **Save Changes** в правом верхнем углу. Возможно, потребуется перезагрузить экземпляр, чтобы изменения вступили в силу — об этом можно судить по индикатору `Pending reboot`, который появится рядом со ссылкой на группу параметров на вкладке **Configuration** экземпляра Aurora.
-
-
## Включение режима GTID (рекомендуется) {#gtid-mode}
:::tip
@@ -111,8 +105,6 @@ MySQL ClickPipe также поддерживает репликацию без
-
-
## Настройка пользователя базы данных {#configure-database-user}
Подключитесь к экземпляру Aurora MySQL с правами администратора и выполните следующие команды:
@@ -136,8 +128,6 @@ MySQL ClickPipe также поддерживает репликацию без
GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
```
-
-
## Настройка сетевого доступа {#configure-network-access}
### Управление доступом по IP-адресам {#ip-based-access-control}
@@ -152,8 +142,6 @@ MySQL ClickPipe также поддерживает репликацию без
Чтобы подключиться к вашему экземпляру Aurora MySQL по частной сети, вы можете использовать AWS PrivateLink. Следуйте [руководству по настройке AWS PrivateLink для ClickPipes](/knowledgebase/aws-privatelink-setup-for-clickpipes), чтобы настроить подключение.
-
-
## Что дальше? {#whats-next}
Теперь, когда ваш экземпляр Amazon Aurora MySQL настроен для репликации binlog и безопасного подключения к ClickHouse Cloud, вы можете [создать свой первый MySQL ClickPipe](/integrations/clickpipes/mysql/#create-your-clickpipe). Ответы на распространённые вопросы по MySQL CDC см. на странице [часто задаваемых вопросов по MySQL](/integrations/data-ingestion/clickpipes/mysql/faq.md).
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/gcp.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/gcp.md
index 29673f2672a..a4696cfa2fa 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/gcp.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/gcp.md
@@ -15,13 +15,10 @@ import gcp_mysql_cert from '@site/static/images/integrations/data-ingestion/clic
import rootca from '@site/static/images/integrations/data-ingestion/clickpipes/mysql/source/gcp/rootca.png';
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника Cloud SQL for MySQL {#cloud-sql-for-mysql-source-setup-guide}
Это пошаговое руководство по настройке экземпляра Cloud SQL for MySQL для репликации данных через MySQL ClickPipe.
-
-
## Включение хранения бинарного лога {#enable-binlog-retention-gcp}
Бинарный лог — это набор файлов журнала, которые содержат информацию об изменениях данных, произведённых в экземпляре сервера MySQL. Файлы бинарного лога необходимы для репликации.
@@ -44,8 +41,6 @@ import Image from '@theme/IdealImage';
-
-
## Настройка пользователя базы данных {#configure-database-user-gcp}
Подключитесь к экземпляру Cloud SQL MySQL от имени пользователя root и выполните следующие команды:
@@ -69,8 +64,6 @@ import Image from '@theme/IdealImage';
GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
```
-
-
## Настройка сетевого доступа {#configure-network-access-gcp-mysql}
Если вы хотите ограничить трафик к экземпляру Cloud SQL, добавьте [указанные статические NAT IP-адреса](../../index.md#list-of-static-ips) в список разрешённых IP-адресов вашего экземпляра Cloud SQL MySQL.
@@ -78,8 +71,6 @@ import Image from '@theme/IdealImage';
-
-
## Загрузка и использование корневого сертификата ЦС {#download-root-ca-certificate-gcp-mysql}
Чтобы подключиться к экземпляру Cloud SQL, необходимо скачать корневой сертификат центра сертификации (ЦС).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/generic.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/generic.md
index e9f5c2818a3..6fc53ee5aa4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/generic.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/generic.md
@@ -7,8 +7,6 @@ doc_type: 'guide'
keywords: ['универсальный mysql', 'clickpipes', 'бинарное логирование', 'ssl/tls', 'mysql 8.x']
---
-
-
# Общее руководство по настройке источника MySQL {#generic-mysql-source-setup-guide}
:::info
@@ -17,8 +15,6 @@ keywords: ['универсальный mysql', 'clickpipes', 'бинарное
:::
-
-
## Включение сохранения двоичных журналов {#enable-binlog-retention}
Двоичные журналы содержат информацию об изменениях данных, внесённых в экземпляр сервера MySQL, и необходимы для репликации.
@@ -100,7 +96,6 @@ expire_logs_days = 1
:::
-
## Настройка пользователя базы данных {#configure-database-user}
Подключитесь к вашему экземпляру MySQL от имени пользователя root и выполните следующие команды:
@@ -130,8 +125,6 @@ expire_logs_days = 1
:::
-
-
## Настройка SSL/TLS (рекомендуется) {#ssl-tls-configuration}
SSL‑сертификаты обеспечивают защищённые подключения к вашей базе данных MySQL. Настройка зависит от типа сертификата:
@@ -146,8 +139,6 @@ SSL‑сертификаты обеспечивают защищённые по
Дополнительную информацию по вариантам SSL/TLS см. в нашем [FAQ](https://clickhouse.com/docs/integrations/clickpipes/mysql/faq#tls-certificate-validation-error).
-
-
## Что дальше? {#whats-next}
Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра MySQL в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/generic_maria.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/generic_maria.md
index 8109160e27d..3d679f53a0d 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/generic_maria.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/generic_maria.md
@@ -7,8 +7,6 @@ doc_type: 'guide'
keywords: ['произвольный mariadb', 'clickpipes', 'binary logging', 'ssl tls', 'самостоятельный хостинг']
---
-
-
# Общая инструкция по настройке источника MariaDB {#generic-mariadb-source-setup-guide}
:::info
@@ -17,8 +15,6 @@ keywords: ['произвольный mariadb', 'clickpipes', 'binary logging', '
:::
-
-
## Включение хранения бинарных логов {#enable-binlog-retention}
Бинарные логи содержат информацию об изменениях данных, внесённых в экземпляр сервера MariaDB, и необходимы для репликации.
@@ -67,7 +63,6 @@ expire_logs_days = 1
:::
-
## Настройка пользователя базы данных {#configure-database-user}
Подключитесь к экземпляру MariaDB под пользователем root и выполните следующие команды:
@@ -97,8 +92,6 @@ expire_logs_days = 1
:::
-
-
## Конфигурация SSL/TLS (рекомендуется) {#ssl-tls-configuration}
Сертификаты SSL обеспечивают защищённые соединения с вашей базой данных MariaDB. Конфигурация зависит от типа сертификата:
@@ -113,8 +106,6 @@ expire_logs_days = 1
Для получения дополнительной информации по вариантам настройки SSL/TLS см. наш [FAQ](https://clickhouse.com/docs/integrations/clickpipes/mysql/faq#tls-certificate-validation-error).
-
-
## Что дальше? {#whats-next}
Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из вашего экземпляра MariaDB в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/rds.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/rds.md
index e3cb4081b83..935dcce4ebe 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/rds.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/rds.md
@@ -19,13 +19,10 @@ import edit_button from '@site/static/images/integrations/data-ingestion/clickpi
import enable_gtid from '@site/static/images/integrations/data-ingestion/clickpipes/mysql/enable_gtid.png';
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника RDS MySQL {#rds-mysql-source-setup-guide}
Это пошаговое руководство описывает, как настроить Amazon RDS MySQL для репликации данных в ClickHouse Cloud с помощью [MySQL ClickPipe](../index.md). Ответы на распространённые вопросы по CDC для MySQL см. на [странице часто задаваемых вопросов по MySQL](/integrations/data-ingestion/clickpipes/mysql/faq.md).
-
-
## Включение хранения бинарного лога {#enable-binlog-retention-rds}
Бинарный лог — это набор файлов журнала, содержащих информацию об изменениях данных, внесённых в экземпляр сервера MySQL; файлы бинарного лога необходимы для репликации. Чтобы настроить хранение бинарного лога в RDS MySQL, необходимо [включить бинарное логирование](#enable-binlog-logging) и [увеличить интервал хранения binlog](#binlog-retention-interval).
@@ -54,7 +51,6 @@ mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);
Если эта конфигурация не задана или для неё установлен слишком малый интервал, это может привести к пропускам в бинарных логах, что нарушит возможность ClickPipes возобновлять репликацию.
-
## Настройка параметров binlog {#binlog-settings}
Группу параметров можно найти, выбрав экземпляр MySQL в консоли RDS, а затем перейдя на вкладку **Configuration**.
@@ -87,8 +83,6 @@ mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);
Затем нажмите **Save Changes** в правом верхнем углу. Возможно, потребуется перезагрузить экземпляр, чтобы изменения вступили в силу — о необходимости этого будет свидетельствовать статус `Pending reboot` рядом со ссылкой на группу параметров на вкладке **Configuration** экземпляра RDS.
-
-
## Включение режима GTID {#gtid-mode}
:::tip
@@ -115,8 +109,6 @@ MySQL ClickPipe также поддерживает репликацию без
MySQL ClickPipe также поддерживает репликацию без режима GTID. Однако включение режима GTID рекомендуется для повышения производительности и упрощения устранения неполадок.
:::
-
-
## Настройка пользователя базы данных {#configure-database-user}
Подключитесь к экземпляру RDS MySQL под учетной записью с правами администратора и выполните следующие команды:
@@ -140,8 +132,6 @@ MySQL ClickPipe также поддерживает репликацию без
GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
```
-
-
## Настройка сетевого доступа {#configure-network-access}
### Управление доступом на основе IP-адресов {#ip-based-access-control}
@@ -156,8 +146,6 @@ MySQL ClickPipe также поддерживает репликацию без
Чтобы подключиться к экземпляру RDS через частную сеть, используйте AWS PrivateLink. Следуйте [руководству по настройке AWS PrivateLink для ClickPipes](/knowledgebase/aws-privatelink-setup-for-clickpipes), чтобы настроить подключение.
-
-
## Дальнейшие шаги {#next-steps}
Теперь, когда ваш экземпляр Amazon RDS MySQL настроен для репликации через binlog и безопасно подключается к ClickHouse Cloud, вы можете [создать свой первый MySQL ClickPipe](/integrations/clickpipes/mysql/#create-your-clickpipe). Ответы на распространённые вопросы по MySQL CDC см. на [странице MySQL FAQs](/integrations/data-ingestion/clickpipes/mysql/faq.md).
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/rds_maria.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/rds_maria.md
index 6fff8d6c89f..4755d28a323 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/rds_maria.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/mysql/source/rds_maria.md
@@ -17,7 +17,6 @@ import security_group_in_rds_mysql from '@site/static/images/integrations/data-i
import edit_inbound_rules from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png';
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника RDS MariaDB {#rds-mariadb-source-setup-guide}
Это пошаговое руководство по настройке экземпляра RDS MariaDB для репликации его данных с помощью MySQL ClickPipe.
@@ -26,8 +25,6 @@ import Image from '@theme/IdealImage';
Рекомендуем также ознакомиться с разделом часто задаваемых вопросов по MySQL [здесь](/integrations/data-ingestion/clickpipes/mysql/faq.md). Страница с вопросами и ответами активно обновляется.
:::
-
-
## Включение хранения двоичного лога {#enable-binlog-retention-rds}
Двоичный лог — это набор файлов журнала, которые содержат информацию об изменениях данных, выполненных в экземпляре сервера MySQL. Файлы двоичного лога необходимы для репликации. Необходимо выполнить оба шага, приведённых ниже:
@@ -50,7 +47,6 @@ Amazon RDS for MariaDB использует иной способ задания
mysql=> call mysql.rds_set_configuration('binlog retention hours', 24);
```
-
## Настройка параметров binlog в группе параметров {#binlog-parameter-group-rds}
Группу параметров можно найти, если нажать на экземпляр MariaDB в консоли RDS, а затем перейти на вкладку `Configurations`.
@@ -82,13 +78,9 @@ mysql=> call mysql.rds_set_configuration('binlog retention hours', 24);
Если у вас кластер MariaDB, указанные выше параметры будут находиться в группе параметров [DB Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.CreatingCluster.html), а не в группе параметров экземпляра БД.
:::
-
-
## Включение режима GTID {#gtid-mode-rds}
Global Transaction Identifiers (GTID) — это уникальные идентификаторы, назначаемые каждой зафиксированной транзакции в MySQL/MariaDB. Они упрощают репликацию с использованием бинарных логов (binlog) и делают устранение неполадок более простым. В MariaDB режим GTID включён по умолчанию, поэтому от пользователя не требуется никаких дополнительных действий для его использования.
-
-
## Настройка пользователя базы данных {#configure-database-user-rds}
Подключитесь к экземпляру RDS MariaDB под учетной записью администратора и выполните следующие команды:
@@ -111,8 +103,6 @@ Global Transaction Identifiers (GTID) — это уникальные идент
GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
-
-
## Настройка сетевого доступа {#configure-network-access}
### Контроль доступа на основе IP-адресов {#ip-based-access-control}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/add_table.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/add_table.md
index fe4b49e776e..d09e508ae70 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/add_table.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/add_table.md
@@ -11,13 +11,10 @@ doc_type: 'guide'
import Image from '@theme/IdealImage';
import add_table from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/add_table.png'
-
# Добавление отдельных таблиц в ClickPipe {#adding-specific-tables-to-a-clickpipe}
В некоторых случаях может потребоваться добавить в ClickPipe только определённые таблицы. Такая необходимость часто возникает по мере масштабирования ваших транзакционных или аналитических нагрузок.
-
-
## Шаги по добавлению отдельных таблиц в ClickPipe {#add-tables-steps}
Это можно сделать, выполнив следующие шаги:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/faq.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/faq.md
index 748b71ada1a..bb9a208c1d7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/faq.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/faq.md
@@ -11,7 +11,6 @@ doc_type: 'reference'
import failover_slot from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/failover_slot.png'
import Image from '@theme/IdealImage';
-
# FAQ по ClickPipes для Postgres {#clickpipes-for-postgres-faq}
### Как режим простоя (idling) влияет на мой Postgres CDC ClickPipe? {#how-does-idling-affect-my-postgres-cdc-clickpipe}
@@ -68,7 +67,6 @@ REPLICA IDENTITY FULL также позволяет реплицировать
* Подробные инструкции по настройке см. в нашей [документации по PrivateLink](/knowledgebase/aws-privatelink-setup-for-clickpipes)
* В регионах, где PrivateLink недоступен, используйте SSH‑туннелирование
-
### Как вы обрабатываете UPDATE и DELETE? {#how-do-you-handle-updates-and-deletes}
ClickPipes for Postgres регистрирует как INSERT, так и UPDATE из Postgres в виде новых строк с разными версиями (с использованием столбца версии `_peerdb_`) в ClickHouse. Движок таблиц ReplacingMergeTree периодически выполняет дедупликацию в фоновом режиме на основе ключа упорядочивания (столбцов ORDER BY), сохраняя только строку с последней версией `_peerdb_`.
@@ -130,8 +128,6 @@ DELETE из Postgres передаются как новые строки, пом
```
Используйте этот запрос, чтобы выявить необычно долго работающие транзакции.
-
-
3. **Операции обслуживания или служебные операции (например, `pg_repack`)**
- Такие инструменты, как `pg_repack`, могут переписывать целые таблицы, создавая большие объёмы данных WAL за короткое время.
- Планируйте эти операции в периоды низкой нагрузки или внимательно отслеживайте использование WAL во время их выполнения.
@@ -175,8 +171,6 @@ Postgres ClickPipe также может быть создан и управля
### Как ускорить начальную загрузку? {#how-do-i-speed-up-my-initial-load}
-
-
Невозможно ускорить уже запущенную начальную загрузку. Однако вы можете оптимизировать будущие начальные загрузки, настроив определённые параметры. По умолчанию заданы 4 параллельных потока и снимок с числом строк на раздел, равным 100 000. Это расширенные настройки, и в большинстве случаев их достаточно.
Для версий Postgres 13 и ниже сканирование диапазонов CTID работает медленнее, и эти настройки становятся более критичными. В таких случаях рассмотрите следующий процесс повышения производительности:
@@ -244,7 +238,6 @@ WHERE
##### Для PostgreSQL 10+ {#for-postgresql-10}
-
```sql
SELECT pg_wal_lsn_diff(pg_current_wal_insert_lsn(), '0/0') / 1024 / 1024 AS wal_generated_mb;
```
@@ -304,7 +297,6 @@ max_slot_wal_keep_size = 200GB
Рекомендуется не выполнять никаких разрушительных операций, таких как обновления или перезапуски базы данных Postgres, пока выполняется начальная загрузка (Initial Load), а также обеспечить стабильность сетевого соединения с вашей базой данных.
-
Чтобы решить эту проблему, вы можете запустить повторную синхронизацию (Resync) из интерфейса ClickPipes. Это перезапустит процесс первоначальной загрузки с самого начала.
### Что произойдет, если я удалю publication в Postgres? {#what-happens-if-i-drop-a-publication-in-postgres}
@@ -368,7 +360,6 @@ CREATE PUBLICATION <имя_публикации> FOR TABLES IN SCHEMA <имя_с
-
Если источник настроен соответствующим образом, слот сохраняется после переключения на реплику для чтения Postgres, обеспечивая непрерывную репликацию данных. Подробнее см. [здесь](https://www.postgresql.org/docs/current/logical-replication-failover.html).
### Я вижу ошибки вида `Internal error encountered during logical decoding of aborted sub-transaction` {#transient-logical-decoding-errors}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/index.md
index 86a0a51f16e..d51c3209421 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/index.md
@@ -21,13 +21,10 @@ import select_destination_db from '@site/static/images/integrations/data-ingesti
import ch_permissions from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/ch-permissions.jpg'
import Image from '@theme/IdealImage';
-
# Приём данных из Postgres в ClickHouse (с использованием CDC) {#ingesting-data-from-postgres-to-clickhouse-using-cdc}
Вы можете использовать ClickPipes для приёма данных из исходной базы данных Postgres в ClickHouse Cloud. Исходная база данных Postgres может быть развернута в локальной инфраструктуре (on-premises) или в облаке, включая Amazon RDS, Google Cloud SQL, Azure Database for Postgres, Supabase и другие.
-
-
## Предварительные требования {#prerequisites}
Прежде чем начать, необходимо убедиться, что ваша база данных Postgres корректно настроена. В зависимости от используемого экземпляра Postgres вы можете следовать одному из следующих руководств:
@@ -58,8 +55,6 @@ import Image from '@theme/IdealImage';
После того как исходная база данных Postgres настроена, вы можете продолжить создание ClickPipe.
-
-
## Создание вашего ClickPipe {#creating-your-clickpipe}
Убедитесь, что вы вошли в свою учетную запись ClickHouse Cloud. Если у вас еще нет учетной записи, вы можете зарегистрироваться [здесь](https://cloud.clickhouse.com/).
@@ -138,8 +133,6 @@ import Image from '@theme/IdealImage';
-
-
7. Вы можете выбрать таблицы, которые нужно реплицировать из исходной базы данных Postgres. При выборе таблиц вы также можете переименовать их в целевой базе данных ClickHouse, а также исключить определённые столбцы.
:::warning
@@ -152,8 +145,6 @@ import Image from '@theme/IdealImage';
-
-
## Что дальше? {#whats-next}
После того как вы настроите ClickPipe для репликации данных из PostgreSQL в ClickHouse Cloud, вы можете сосредоточиться на том, как выполнять запросы к данным и моделировать их для оптимальной производительности. Ознакомьтесь с [руководством по миграции](/migrations/postgresql/overview), чтобы оценить, какая стратегия лучше всего соответствует вашим требованиям, а также со страницами [Стратегии дедупликации (с использованием CDC)](/integrations/clickpipes/postgres/deduplication) и [Ключи упорядочивания](/integrations/clickpipes/postgres/ordering_keys), где описаны передовые практики для сценариев с нагрузками CDC.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md
index 4a1ab82d9ad..4d912709fe0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/aurora.md
@@ -16,17 +16,12 @@ import security_group_in_rds_postgres from '@site/static/images/integrations/dat
import edit_inbound_rules from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png';
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника данных Aurora Postgres {#aurora-postgres-source-setup-guide}
-
-
## Поддерживаемые версии Postgres {#supported-postgres-versions}
ClickPipes поддерживает Aurora PostgreSQL-Compatible Edition версий 12 и выше.
-
-
## Включение логической репликации {#enable-logical-replication}
Вы можете пропустить этот раздел, если в вашем экземпляре Aurora уже настроены следующие параметры:
@@ -70,7 +65,6 @@ postgres=> SHOW wal_sender_timeout ;
-
## Настройка пользователя базы данных {#configure-database-user}
Подключитесь к экземпляру Aurora PostgreSQL writer с учетной записью с правами администратора и выполните следующие команды:
@@ -101,8 +95,6 @@ postgres=> SHOW wal_sender_timeout ;
CREATE PUBLICATION clickpipes_publication FOR ALL TABLES;
```
-
-
## Настройка сетевого доступа {#configure-network-access}
### Управление доступом по IP-адресам {#ip-based-access-control}
@@ -137,8 +129,6 @@ postgres=> SHOW wal_sender_timeout ;
2. При использовании межрегионной репликации рассмотрите возможность настройки отдельных ClickPipes для каждого региона, чтобы снизить задержки и повысить отказоустойчивость.
-
-
## Что дальше? {#whats-next}
Теперь вы можете [создать свой ClickPipe](../index.md) и начать приём данных из своего кластера Aurora PostgreSQL в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md
index c3a7a6c6c23..d2abe67ed0c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres.md
@@ -13,13 +13,10 @@ import restart from '@site/static/images/integrations/data-ingestion/clickpipes/
import firewall from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/firewall.png';
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника Azure Flexible Server для Postgres {#azure-flexible-server-for-postgres-source-setup-guide}
ClickPipes поддерживает Postgres версии 12 и новее.
-
-
## Включение логической репликации {#enable-logical-replication}
**Вам не нужно** выполнять следующие шаги, если параметр `wal_level` уже установлен в значение `logical`. Этот параметр, как правило, уже настроен, если вы мигрируете с другого инструмента репликации данных.
@@ -36,8 +33,6 @@ ClickPipes поддерживает Postgres версии 12 и новее.
-
-
## Создание пользователей ClickPipes и выдача прав доступа {#creating-clickpipes-user-and-granting-permissions}
Подключитесь к вашему Azure Flexible Server Postgres под учетной записью администратора и выполните следующие команды:
@@ -74,8 +69,6 @@ ClickPipes поддерживает Postgres версии 12 и новее.
ALTER ROLE clickpipes_user SET wal_sender_timeout to 0;
```
-
-
## Добавьте IP-адреса ClickPipes в Firewall {#add-clickpipes-ips-to-firewall}
Выполните следующие шаги, чтобы добавить [IP-адреса ClickPipes](../../index.md#list-of-static-ips) в вашу сеть.
@@ -85,8 +78,6 @@ ClickPipes поддерживает Postgres версии 12 и новее.
-
-
## Что дальше? {#whats-next}
Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md
index 9e11ebf16cb..3eab2e9cc8a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/crunchy-postgres.md
@@ -11,13 +11,10 @@ import firewall_rules_crunchy_bridge from '@site/static/images/integrations/data
import add_firewall_rules_crunchy_bridge from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/crunchy-postgres/add_firewall_rules_crunchy_bridge.png'
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника данных Crunchy Bridge Postgres {#crunchy-bridge-postgres-source-setup-guide}
ClickPipes поддерживает Postgres версии 12 и более поздних.
-
-
## Включение логической репликации {#enable-logical-replication}
Crunchy Bridge по умолчанию включает логическую репликацию ([подробнее](https://docs.crunchybridge.com/how-to/logical-replication)). Убедитесь, что приведённые ниже параметры настроены верно. При необходимости измените их.
@@ -28,7 +25,6 @@ SHOW max_wal_senders; -- должно быть 10
SHOW max_replication_slots; -- должно быть 10
```
-
## Создание пользователя ClickPipes и выдача прав доступа {#creating-clickpipes-user-and-granting-permissions}
Подключитесь к своему Crunchy Bridge Postgres под пользователем `postgres` и выполните следующие команды:
@@ -59,8 +55,6 @@ SHOW max_replication_slots; -- должно быть 10
CREATE PUBLICATION clickpipes_publication FOR ALL TABLES;
```
-
-
## Разрешение IP-адресов ClickPipes {#safe-list-clickpipes-ips}
Добавьте [IP-адреса ClickPipes](../../index.md#list-of-static-ips) в список разрешённых, создав соответствующие правила брандмауэра (Firewall Rules) в Crunchy Bridge.
@@ -69,8 +63,6 @@ SHOW max_replication_slots; -- должно быть 10
-
-
## Что дальше? {#whats-next}
Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра Postgres в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md
index c32592b4c40..2f2db1684f0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/generic.md
@@ -7,8 +7,6 @@ doc_type: 'guide'
keywords: ['postgres', 'clickpipes', 'logical replication', 'pg_hba.conf', 'wal level']
---
-
-
# Универсальное руководство по настройке источника Postgres {#generic-postgres-source-setup-guide}
:::info
@@ -19,8 +17,6 @@ keywords: ['postgres', 'clickpipes', 'logical replication', 'pg_hba.conf', 'wal
ClickPipes поддерживает Postgres версий 12 и выше.
-
-
## Включение логической репликации {#enable-logical-replication}
1. Чтобы включить репликацию на вашем экземпляре Postgres, необходимо убедиться, что заданы следующие настройки:
@@ -56,8 +52,6 @@ ClickPipes поддерживает Postgres версий 12 и выше.
```
3. Если вы внесли какие-либо изменения в конфигурацию, как описано выше, вам НЕОБХОДИМО ПЕРЕЗАПУСТИТЬ экземпляр Postgres, чтобы изменения вступили в силу.
-
-
## Создание пользователя с правами и публикацией {#creating-a-user-with-permissions-and-publication}
Создайте нового пользователя для ClickPipes с необходимыми правами, подходящими для CDC,
@@ -84,7 +78,6 @@ ClickPipes поддерживает Postgres версий 12 и выше.
:::
-
## Разрешение подключений в pg_hba.conf для пользователя ClickPipes {#enabling-connections-in-pg_hbaconf-to-the-clickpipes-user}
Если вы развертываете всё самостоятельно, вам необходимо разрешить подключения к пользователю ClickPipes с IP-адресов ClickPipes, выполнив описанные ниже шаги. Если вы используете управляемый сервис, вы можете сделать то же самое, следуя документации провайдера.
@@ -99,8 +92,6 @@ ClickPipes поддерживает Postgres версий 12 и выше.
SELECT pg_reload_conf();
```
-
-
## Увеличение `max_slot_wal_keep_size` {#increase-max_slot_wal_keep_size}
Это рекомендованное изменение конфигурации, которое позволяет предотвратить удаление слота репликации из‑за крупных транзакций и коммитов.
@@ -123,7 +114,6 @@ SELECT pg_reload_conf();
:::
-
## Что дальше? {#whats-next}
Теперь вы можете [создать свой ClickPipe](../index.md) и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md
index f70c7711408..bc6bcf5cafd 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql.md
@@ -17,7 +17,6 @@ import firewall1 from '@site/static/images/integrations/data-ingestion/clickpipe
import firewall2 from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall2.png';
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника Google Cloud SQL Postgres {#google-cloud-sql-postgres-source-setup-guide}
:::info
@@ -26,14 +25,10 @@ import Image from '@theme/IdealImage';
:::
-
-
## Поддерживаемые версии Postgres {#supported-postgres-versions}
Любая версия Postgres 12 и новее
-
-
## Включение логической репликации {#enable-logical-replication}
**Вам не нужно** выполнять следующие шаги, если параметр `cloudsql.logical_decoding` включен, а `wal_sender_timeout` равен 0. Эти параметры, как правило, уже настроены заранее, если вы мигрируете с другого инструмента репликации данных.
@@ -48,8 +43,6 @@ import Image from '@theme/IdealImage';
-
-
## Создание пользователя ClickPipes и выдача прав {#creating-clickpipes-user-and-granting-permissions}
Подключитесь к вашему Cloud SQL Postgres под администраторской учетной записью и выполните следующие команды:
@@ -82,8 +75,6 @@ import Image from '@theme/IdealImage';
[//]: # (TODO Добавить SSH-туннелирование)
-
-
## Добавление IP-адресов ClickPipes в брандмауэр {#add-clickpipes-ips-to-firewall}
Выполните следующие шаги, чтобы добавить IP-адреса ClickPipes в вашу сеть.
@@ -107,8 +98,6 @@ import Image from '@theme/IdealImage';
-
-
## Что дальше? {#whats-next}
Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра Postgres в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md
index 6362019253d..4b4d381bcb0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/neon-postgres.md
@@ -14,14 +14,11 @@ import neon_ip_allow from '@site/static/images/integrations/data-ingestion/click
import neon_conn_details from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/neon-postgres/neon-conn-details.png'
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника Neon Postgres {#neon-postgres-source-setup-guide}
Это руководство по настройке Neon Postgres, который вы можете использовать для репликации данных в ClickPipes.
Для выполнения этой настройки убедитесь, что вы вошли в свою [консоль Neon](https://console.neon.tech/app/projects).
-
-
## Создание пользователя с правами доступа {#creating-a-user-with-permissions}
Давайте создадим нового пользователя для ClickPipes с необходимыми правами доступа для CDC,
@@ -47,7 +44,6 @@ import Image from '@theme/IdealImage';
Нажмите **Run**, чтобы создать пользователя и публикацию.
-
## Включите логическую репликацию {#enable-logical-replication}
В Neon вы можете включить логическую репликацию через интерфейс. Это необходимо для работы CDC (фиксации изменений данных) в ClickPipes, чтобы реплицировать данные.
@@ -67,15 +63,12 @@ SHOW max_wal_senders; -- должно быть 10
SHOW max_replication_slots; -- должно быть 10
```
-
## Разрешение IP-адресов (для тарифа Neon Enterprise) {#ip-whitelisting-for-neon-enterprise-plan}
Если вы используете тариф Neon Enterprise, вы можете разрешить [IP-адреса ClickPipes](../../index.md#list-of-static-ips), чтобы включить репликацию из ClickPipes в экземпляр Neon Postgres.
Для этого откройте вкладку **Settings** и перейдите в раздел **IP Allow**.
-
-
## Скопируйте данные подключения {#copy-connection-details}
Теперь, когда у нас создан пользователь, подготовлена публикация и включена репликация, мы можем скопировать данные подключения, чтобы создать новый ClickPipe.
Перейдите в **Dashboard** и в текстовом поле, где отображается строка подключения,
@@ -83,8 +76,6 @@ SHOW max_replication_slots; -- должно быть 10
-
-
## Что дальше? {#whats-next}
Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра Postgres в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md
index 2372414d922..6540dba47e1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/planetscale.md
@@ -11,21 +11,16 @@ import planetscale_wal_level_logical from '@site/static/images/integrations/data
import planetscale_max_slot_wal_keep_size from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/planetscale/planetscale_max_slot_wal_keep_size.png';
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника данных PlanetScale for Postgres {#planetscale-for-postgres-source-setup-guide}
:::info
В настоящее время PlanetScale for Postgres находится в [программе раннего доступа](https://planetscale.com/postgres).
:::
-
-
## Поддерживаемые версии Postgres {#supported-postgres-versions}
ClickPipes поддерживает Postgres, начиная с версии 12.
-
-
## Включение логической репликации {#enable-logical-replication}
1. Чтобы включить репликацию в вашем инстансе Postgres, необходимо убедиться, что задан следующий параметр:
@@ -50,8 +45,6 @@ ClickPipes поддерживает Postgres, начиная с версии 12.
-
-
## Создание пользователя с правами доступа и публикацией {#creating-a-user-with-permissions-and-publication}
Создадим нового пользователя для ClickPipes с необходимыми правами доступа, подходящими для CDC,
@@ -78,14 +71,11 @@ ClickPipes поддерживает Postgres, начиная с версии 12.
Обязательно замените `clickpipes_user` и `clickpipes_password` на выбранные вами имя пользователя и пароль.
:::
-
## Особенности и ограничения {#caveats}
1. Для подключения к PlanetScale Postgres к имени пользователя, созданному выше, необходимо добавить текущую ветку. Например, если созданный пользователь назывался `clickpipes_user`, фактическое имя пользователя, указываемое при создании ClickPipe, должно быть `clickpipes_user`.`branch`, где `branch` — это `id` текущей [ветки](https://planetscale.com/docs/postgres/branching) PlanetScale Postgres. Чтобы быстро определить это значение, вы можете посмотреть на имя пользователя `postgres`, под которым вы создавали этого пользователя ранее, — часть после точки и будет идентификатором ветки.
2. Не используйте порт `PSBouncer` (сейчас `6432`) для CDC-конвейеров, подключающихся к PlanetScale Postgres, необходимо использовать стандартный порт `5432`. Любой из портов может использоваться только для конвейеров, выполняющих только начальную загрузку (initial-load only).
3. Убедитесь, что вы подключаетесь только к основной (primary) инстанции, так как [подключение к репликам](https://planetscale.com/docs/postgres/scaling/replicas#how-to-query-postgres-replicas) в настоящее время не поддерживается.
-
-
## Что дальше? {#whats-next}
Теперь вы можете [создать свой ClickPipe](../index.md) и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md
index 48f7898875c..fff2d6b2516 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/rds.md
@@ -16,17 +16,12 @@ import security_group_in_rds_postgres from '@site/static/images/integrations/dat
import edit_inbound_rules from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png';
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника данных RDS Postgres {#rds-postgres-source-setup-guide}
-
-
## Поддерживаемые версии Postgres {#supported-postgres-versions}
ClickPipes поддерживает Postgres версии 12 и выше.
-
-
## Включите логическую репликацию {#enable-logical-replication}
Вы можете пропустить этот раздел, если в экземпляре базы данных RDS уже настроены следующие параметры:
@@ -70,7 +65,6 @@ postgres=> SHOW wal_sender_timeout ;
-
## Настройка пользователя базы данных {#configure-database-user}
Подключитесь к вашему экземпляру RDS PostgreSQL под учетной записью администратора и выполните следующие команды:
@@ -101,8 +95,6 @@ postgres=> SHOW wal_sender_timeout ;
CREATE PUBLICATION clickpipes_publication FOR ALL TABLES;
```
-
-
## Настройка сетевого доступа {#configure-network-access}
### Контроль доступа на основе IP-адресов {#ip-based-access-control}
@@ -125,8 +117,6 @@ RDS Proxy не поддерживает подключения для логич
3. Постоянный экземпляр EC2: разверните экземпляр EC2, который будет выступать в роли сервиса опроса или прокси на основе IP-адресов.
4. Автоматизируйте управление IP-адресами с помощью таких инструментов, как Terraform или CloudFormation.
-
-
## Что дальше? {#whats-next}
Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md
index a18464557bc..335e5be5002 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/supabase.md
@@ -11,7 +11,6 @@ import supabase_commands from '@site/static/images/integrations/data-ingestion/c
import supabase_connection_details from '@site/static/images/integrations/data-ingestion/clickpipes/postgres/source/setup/supabase/supabase-connection-details.jpg'
import Image from '@theme/IdealImage';
-
# Руководство по настройке источника Supabase {#supabase-source-setup-guide}
Это руководство по настройке Supabase Postgres для использования в ClickPipes.
@@ -22,8 +21,6 @@ ClickPipes нативно поддерживает Supabase через IPv6 дл
:::
-
-
## Создание пользователя с правами доступа и слотом репликации {#creating-a-user-with-permissions-and-replication-slot}
Давайте создадим нового пользователя для ClickPipes с необходимыми правами, подходящими для CDC,
@@ -57,7 +54,6 @@ ClickPipes нативно поддерживает Supabase через IPv6 дл
:::
-
## Увеличение `max_slot_wal_keep_size` {#increase-max_slot_wal_keep_size}
:::warning
@@ -70,8 +66,6 @@ ClickPipes нативно поддерживает Supabase через IPv6 дл
:::
-
-
## Параметры подключения для использования с Supabase {#connection-details-to-use-for-supabase}
Перейдите в `Project Settings` вашего проекта Supabase, затем в `Database` (в разделе `Configuration`).
@@ -86,8 +80,6 @@ ClickPipes нативно поддерживает Supabase через IPv6 дл
:::
-
-
## Примечание по RLS {#note-on-rls}
К пользователю ClickPipes Postgres не должны применяться политики RLS, так как это может привести к потере данных. Вы можете отключить политики RLS для этого пользователя, выполнив следующую команду:
@@ -96,7 +88,6 @@ ClickPipes нативно поддерживает Supabase через IPv6 дл
ALTER USER clickpipes_user BYPASSRLS;
```
-
## Что дальше? {#whats-next}
Теперь вы можете [создать ClickPipe](../index.md) и начать приём данных из экземпляра Postgres в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md
index 1f16fb48966..9530ac4cc5b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/source/timescale.md
@@ -9,13 +9,10 @@ doc_type: 'guide'
import BetaBadge from '@theme/badges/BetaBadge';
-
# Руководство по настройке источника данных Postgres с TimescaleDB {#postgres-with-timescaledb-source-setup-guide}
-
-
## Предпосылки {#background}
[TimescaleDB](https://github.com/timescale/timescaledb) — это расширение Postgres с открытым исходным кодом, разработанное компанией Timescale Inc,
@@ -35,14 +32,10 @@ import BetaBadge from '@theme/badges/BetaBadge';
при их репликации, поэтому возможность репликации гипертаблиц Timescale следует рассматривать как
**выполняемую по принципу «best effort»**.
-
-
## Поддерживаемые версии Postgres {#supported-postgres-versions}
ClickPipes поддерживает Postgres версии 12 и выше.
-
-
## Включение логической репликации {#enable-logical-replication}
Необходимые шаги зависят от того, как развернут ваш экземпляр Postgres с TimescaleDB.
@@ -59,8 +52,6 @@ Timescale Cloud не поддерживает включение логичес
Postgres ClickPipe.
:::
-
-
## Конфигурация {#configuration}
Hypertable в Timescale не хранят данные, вставляемые непосредственно в них. Вместо этого данные сохраняются в нескольких соответствующих таблицах‑фрагментах («chunk»), которые находятся в схеме `_timescaledb_internal`. Для выполнения запросов к hypertable это не является проблемой. Но при логической репликации, вместо того чтобы отслеживать изменения в hypertable, мы отслеживаем их в таблицах chunk. Postgres ClickPipe содержит логику автоматического сопоставления изменений из таблиц chunk с родительской hypertable, но для этого требуются дополнительные шаги.
@@ -112,7 +103,6 @@ Hypertable в Timescale не хранят данные, вставляемые
После выполнения этих шагов вы сможете перейти к [созданию ClickPipe](../index.md).
-
## Настройте сетевой доступ {#configure-network-access}
Если вы хотите ограничить трафик к своему экземпляру Timescale, добавьте в список разрешённых адресов [задокументированные статические NAT IP-адреса](../../index.md#list-of-static-ips).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/toast.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/toast.md
index 79ed6c5b457..1960aa0b0b4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/toast.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/clickpipes/postgres/toast.md
@@ -8,8 +8,6 @@ keywords: ['clickpipes', 'postgresql', 'cdc', 'ингестия данных', '
При репликации данных из PostgreSQL в ClickHouse важно понимать ограничения и особенности работы со столбцами TOAST (The Oversized-Attribute Storage Technique). Это руководство поможет вам выявить и корректно обрабатывать столбцы TOAST в процессе репликации.
-
-
## Что такое столбцы TOAST в PostgreSQL? {#what-are-toast-columns-in-postgresql}
TOAST (The Oversized-Attribute Storage Technique) — это механизм PostgreSQL, предназначенный для обработки значений больших полей. Когда строка превышает максимальный размер строки (обычно 2 КБ, но это может варьироваться в зависимости от версии PostgreSQL и конкретных настроек), PostgreSQL автоматически переносит большие значения полей в отдельную таблицу TOAST, сохраняя в основной таблице только указатель.
@@ -20,8 +18,6 @@ TOAST (The Oversized-Attribute Storage Technique) — это механизм Po
Подробнее о TOAST и его реализации в PostgreSQL можно прочитать здесь: https://www.postgresql.org/docs/current/storage-toast.html
-
-
## Определение столбцов TOAST в таблице {#identifying-toast-columns-in-a-table}
Чтобы определить, есть ли в таблице столбцы TOAST, вы можете использовать следующий SQL-запрос:
@@ -38,7 +34,6 @@ WHERE c.relname = 'имя_вашей_таблицы'
Этот запрос вернёт имена и типы данных столбцов, которые потенциально могут быть помещены в TOAST-хранилище. Однако важно отметить, что этот запрос лишь определяет столбцы, которые являются кандидатами для хранения в TOAST на основе их типа данных и атрибутов хранения. Чтобы понять, содержат ли эти столбцы фактически данные, вынесенные в TOAST, нужно учитывать, превышают ли значения в этих столбцах соответствующий порог размера. Фактическое вынесение данных в TOAST зависит от конкретного содержимого, хранящегося в этих столбцах.
-
## Обеспечение корректной обработки столбцов TOAST {#ensuring-proper-handling-of-toast-columns}
Чтобы гарантировать корректную обработку столбцов TOAST при репликации, необходимо установить для таблицы значение `REPLICA IDENTITY` в `FULL`. Это указывает PostgreSQL включать полную старую строку в WAL для операций UPDATE и DELETE, обеспечивая доступность всех значений столбцов (включая столбцы TOAST) для репликации.
@@ -51,7 +46,6 @@ ALTER TABLE имя_вашей_таблицы REPLICA IDENTITY FULL;
См. [эту запись в блоге](https://xata.io/blog/replica-identity-full-performance) о нюансах производительности при использовании `REPLICA IDENTITY FULL`.
-
## Поведение репликации, когда REPLICA IDENTITY FULL не задан {#replication-behavior-when-replica-identity-full-is-not-set}
Если для таблицы с TOAST-столбцами не задано значение `REPLICA IDENTITY FULL`, при репликации в ClickHouse вы можете столкнуться со следующими проблемами:
@@ -66,8 +60,6 @@ ALTER TABLE имя_вашей_таблицы REPLICA IDENTITY FULL;
Такое поведение может приводить к несогласованности данных между исходной базой PostgreSQL и целевой ClickHouse. Поэтому крайне важно задать `REPLICA IDENTITY FULL` для таблиц с TOAST-столбцами, чтобы обеспечить точную и полную репликацию данных.
-
-
## Заключение {#conclusion}
Корректная обработка столбцов TOAST имеет ключевое значение для сохранения целостности данных при репликации из PostgreSQL в ClickHouse. Определяя столбцы TOAST и задавая соответствующий `REPLICA IDENTITY`, вы можете обеспечить точную и полную репликацию данных.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/arrow-avro-orc.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/arrow-avro-orc.md
index d031b9bda5c..2596ee629e4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/arrow-avro-orc.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/arrow-avro-orc.md
@@ -8,14 +8,10 @@ keywords: ['Apache Avro', 'Apache Arrow', 'формат ORC', 'колоночн
doc_type: 'guide'
---
-
-
# Работа с данными Avro, Arrow и ORC в ClickHouse {#working-with-avro-arrow-and-orc-data-in-clickhouse}
Apache разработал несколько форматов данных, активно используемых в аналитических системах, включая популярные [Avro](https://avro.apache.org/), [Arrow](https://arrow.apache.org/) и [ORC](https://orc.apache.org/). ClickHouse поддерживает импорт и экспорт данных с использованием любого из этих форматов.
-
-
## Импорт и экспорт в формате Avro {#importing-and-exporting-in-avro-format}
ClickHouse поддерживает чтение и запись файлов данных [Apache Avro](https://avro.apache.org/), которые широко используются в системах Hadoop.
@@ -92,7 +88,6 @@ kafka_group_name = 'some_group',
kafka_format = 'AvroConfluent';
```
-
## Работа с форматом Arrow {#working-with-arrow-format}
Ещё один колоночный формат — [Apache Arrow](https://arrow.apache.org/), который также поддерживается ClickHouse для импорта и экспорта данных. Чтобы импортировать данные из [файла в формате Arrow](assets/data.arrow), мы используем формат [Arrow](/interfaces/formats/Arrow):
@@ -147,7 +142,6 @@ arrow-stream | clickhouse-client -q "INSERT INTO sometable FORMAT ArrowStream"
Мы использовали `arrow-stream` как один из возможных источников потоковых данных Arrow.
-
## Импорт и экспорт данных ORC {#importing-and-exporting-orc-data}
Формат [Apache ORC](https://orc.apache.org/) — это колоночный формат хранения, обычно используемый с Hadoop. ClickHouse поддерживает импорт и экспорт [данных ORC](assets/data.orc) с использованием [формата ORC](/interfaces/formats/ORC):
@@ -165,7 +159,6 @@ FORMAT ORC;
Также проверьте [соответствие типов данных](/interfaces/formats/ORC) и [дополнительные настройки](/interfaces/formats/Parquet#format-settings) для настройки экспорта и импорта.
-
## Дополнительные материалы {#further-reading}
ClickHouse поддерживает множество форматов, как текстовых, так и бинарных, чтобы охватить различные сценарии и платформы. Узнайте больше о форматах и способах работы с ними в следующих статьях:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/binary.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/binary.md
index 00a13a35afc..c441077a411 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/binary.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/binary.md
@@ -9,15 +9,12 @@ doc_type: 'guide'
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Использование формата Native и бинарных форматов в ClickHouse {#using-native-and-binary-formats-in-clickhouse}
ClickHouse поддерживает несколько бинарных форматов, которые обеспечивают более высокую производительность и эффективность использования дискового пространства. Бинарные форматы также безопасны с точки зрения кодировки символов, поскольку данные сохраняются в двоичном виде.
Для демонстрации мы будем использовать [таблицу some_data](assets/some_data.sql) и [данные](assets/some_data.tsv); вы можете воспроизвести это в своём экземпляре ClickHouse.
-
-
## Экспорт в нативном формате ClickHouse {#exporting-in-a-native-clickhouse-format}
Наиболее эффективный формат данных для экспорта и импорта между узлами ClickHouse — формат [Native](/interfaces/formats/Native). Экспорт выполняется с помощью оператора `INTO OUTFILE`:
@@ -77,7 +74,6 @@ COMPRESSION 'lz4'
FORMAT Native
```
-
## Экспорт в RowBinary {#exporting-to-rowbinary}
Ещё один поддерживаемый двоичный формат — [RowBinary](/interfaces/formats/RowBinary), который позволяет импортировать и экспортировать данные в виде строк в двоичном формате:
@@ -121,7 +117,6 @@ FROM INFILE 'data.binary'
FORMAT RowBinary
```
-
## Импорт одного двоичного значения с помощью RawBLOB {#importing-single-binary-value-using-rawblob}
Предположим, что мы хотим прочитать весь двоичный файл и сохранить его в поле таблицы.
@@ -161,7 +156,6 @@ FORMAT RawBLOB
Обратите внимание, что нам пришлось использовать `LIMIT 1`, так как экспорт более чем одного значения приведёт к повреждению файла.
-
## MessagePack {#messagepack}
ClickHouse поддерживает импорт и экспорт данных в формат [MessagePack](https://msgpack.org/) с использованием формата [MsgPack](/interfaces/formats/MsgPack). Чтобы экспортировать данные в формат MessagePack:
@@ -181,7 +175,6 @@ FROM INFILE 'data.msgpk'
FORMAT MsgPack
```
-
## Protocol Buffers {#protocol-buffers}
@@ -209,7 +202,6 @@ SETTINGS format_schema = 'schema:MessageType'
Это сохраняет данные в файл [proto.bin](assets/proto.bin). ClickHouse также поддерживает импорт данных Protobuf, включая вложенные сообщения. Рассмотрите возможность использования [ProtobufSingle](/interfaces/formats/ProtobufSingle) для работы с одним сообщением Protocol Buffer (в этом случае разделители длины будут опущены).
-
## Cap'n Proto {#capn-proto}
@@ -241,7 +233,6 @@ SETTINGS format_schema = 'schema:PathStats'
Обратите внимание, что нам пришлось привести столбец `Date` к типу `UInt32`, чтобы [типы данных совпадали](/interfaces/formats/CapnProto#data_types-matching-capnproto).
-
## Другие форматы {#other-formats}
ClickHouse поддерживает множество форматов, как текстовых, так и двоичных, чтобы охватывать различные сценарии и платформы. Узнайте больше о форматах и способах работы с ними в следующих статьях:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/csv-tsv.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/csv-tsv.md
index c4c87b2f931..571eb9e531f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/csv-tsv.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/csv-tsv.md
@@ -7,14 +7,10 @@ keywords: ['формат CSV', 'формат TSV', 'значения, разде
doc_type: 'guide'
---
-
-
# Работа с данными CSV и TSV в ClickHouse {#working-with-csv-and-tsv-data-in-clickhouse}
ClickHouse поддерживает импорт данных из CSV и экспорт в CSV. Поскольку CSV‑файлы могут иметь различные особенности формата, включая строки заголовков, пользовательские разделители и escape‑символы, ClickHouse предоставляет форматы и настройки для эффективной обработки всех таких вариантов.
-
-
## Импорт данных из CSV‑файла {#importing-data-from-a-csv-file}
Перед импортом данных создадим таблицу с соответствующей структурой:
@@ -126,7 +122,6 @@ Joe,Nothing
Nothing,70
```
-
Если мы загрузим данные из этого файла, ClickHouse будет интерпретировать `Nothing` как `String` (что корректно):
```sql
@@ -161,7 +156,6 @@ SELECT * FROM file('nulls.csv')
└────────┴──────┘
```
-
## TSV‑файлы (со значениями, разделёнными табуляцией) {#tsv-tab-separated-files}
Формат данных с разделителями табуляции широко используется в качестве формата обмена данными. Для загрузки данных из [TSV‑файла](assets/data_small.tsv) в ClickHouse используется формат [TabSeparated](/interfaces/formats/TabSeparated):
@@ -176,7 +170,6 @@ clickhouse-client -q "INSERT INTO sometable FORMAT TabSeparated" < data_small.ts
Иногда TSV‑файлы сохраняются без экранирования табуляций и символов перевода строки. Для обработки таких файлов следует использовать [TabSeparatedRaw](/interfaces/formats/TabSeparatedRaw).
-
## Экспорт в CSV {#exporting-to-csv}
Любой формат, использованный в наших предыдущих примерах, можно также использовать для экспорта данных. Чтобы экспортировать данные из таблицы (или результата запроса) в формат CSV, мы используем ту же конструкцию `FORMAT`:
@@ -264,7 +257,6 @@ FORMAT CSV
SET output_format_csv_crlf_end_of_line = 1;
```
-
## Автоматическое определение схемы для файлов CSV {#schema-inference-for-csv-files}
Во многих случаях нам приходится работать с неизвестными CSV-файлами, поэтому необходимо определить, какие типы данных использовать для столбцов. По умолчанию ClickHouse пытается определить форматы данных на основе анализа заданного CSV-файла. Это называется «автоматическим определением схемы». Обнаруженные типы данных можно изучить с помощью оператора `DESCRIBE` в сочетании с функцией [file()](/sql-reference/table-functions/file.md):
@@ -326,7 +318,6 @@ DESCRIBE file('data_csv_types.csv', CSVWithNamesAndTypes)
Теперь ClickHouse определяет типы столбцов по (второй) строке заголовка, а не пытается их угадывать.
-
## Пользовательские разделители, сепараторы и правила экранирования {#custom-delimiters-separators-and-escaping-rules}
В сложных случаях текстовые данные могут быть отформатированы в сильно кастомизированном виде, но при этом сохранять структуру. В ClickHouse есть специальный формат [CustomSeparated](/interfaces/formats/CustomSeparated) для таких случаев, который позволяет задавать собственные правила экранирования, разделители, разделители строк и начальные/конечные символы.
@@ -365,7 +356,6 @@ LIMIT 3
Мы также можем использовать [CustomSeparatedWithNames](/interfaces/formats/CustomSeparatedWithNames), чтобы корректно экспортировать и импортировать заголовки. Изучите форматы [regex and template](templates-regex.md) для работы с ещё более сложными случаями.
-
## Работа с большими CSV‑файлами {#working-with-large-csv-files}
CSV‑файлы могут быть большими, и ClickHouse эффективно работает с файлами любого размера. Крупные файлы обычно бывают сжаты, и ClickHouse умеет работать с ними без предварительной распаковки. Мы можем использовать предложение `COMPRESSION` при вставке:
@@ -387,7 +377,6 @@ COMPRESSION 'gzip' FORMAT CSV
В результате будет создан сжатый файл `data_csv.csv.gz`.
-
## Другие форматы {#other-formats}
ClickHouse поддерживает множество форматов, как текстовых, так и бинарных, чтобы охватить различные сценарии и платформы. Узнайте больше о форматах и способах работы с ними в следующих статьях:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/intro.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/intro.md
index 9f42ccbeecf..10ff4ab4cc9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/intro.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/intro.md
@@ -9,8 +9,6 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Импорт данных из различных форматов в ClickHouse {#importing-from-various-data-formats-to-clickhouse}
В этом разделе документации вы найдёте примеры загрузки данных из различных типов файлов.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/inference.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/inference.md
index aefd7163286..defba7f0533 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/inference.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/inference.md
@@ -8,8 +8,6 @@ doc_type: 'guide'
ClickHouse может автоматически определять структуру данных в формате JSON. Это можно использовать для непосредственного выполнения запросов к JSON-данным, например на локальном диске с помощью `clickhouse-local` или в S3-бакетах, и/или для автоматического создания схем перед загрузкой данных в ClickHouse.
-
-
## Когда использовать вывод типов {#when-to-use-type-inference}
* **Однородная структура** — данные, на основе которых вы собираетесь выводить типы, содержат все ключи, которые вас интересуют. Вывод типов основан на выборке данных до [максимального числа строк](/operations/settings/formats#input_format_max_rows_to_read_for_schema_inference) или [байт](/operations/settings/formats#input_format_max_bytes_to_read_for_schema_inference). Данные после выборки, с дополнительными столбцами, будут игнорироваться и будут недоступны для запросов.
@@ -17,8 +15,6 @@ ClickHouse может автоматически определять струк
Если у вас более динамический JSON, в который добавляются новые ключи и для одного и того же пути возможны несколько типов, см. раздел ["Работа с полуструктурированными и динамическими данными"](/integrations/data-formats/json/inference#working-with-semi-structured-data).
-
-
## Определение типов {#detecting-types}
Далее предполагается, что JSON имеет согласованную структуру и один тип для каждого пути.
@@ -101,13 +97,10 @@ SETTINGS describe_compact_output = 1
Мы видим, что большинство столбцов были автоматически определены как `String`, при этом столбец `update_date` корректно определён как `Date`. Столбец `versions` был создан как `Array(Tuple(created String, version String))` для хранения списка объектов, а `authors_parsed` определён как `Array(Array(String))` для вложенных массивов.
-
:::note Контроль определения типов
Автоопределение значений типов `date` и `datetime` настраивается с помощью параметров [`input_format_try_infer_dates`](/operations/settings/formats#input_format_try_infer_dates) и [`input_format_try_infer_datetimes`](/operations/settings/formats#input_format_try_infer_datetimes) соответственно (оба включены по умолчанию). Интерпретация объектов как кортежей контролируется параметром [`input_format_json_try_infer_named_tuples_from_objects`](/operations/settings/formats#input_format_json_try_infer_named_tuples_from_objects). Другие параметры, управляющие определением схемы для JSON (например, автоопределением чисел), можно найти [здесь](/interfaces/schema-inference#text-formats).
:::
-
-
## Запросы к JSON {#querying-json}
Далее предполагается, что JSON имеет единообразную структуру и один тип данных для каждого пути.
@@ -154,7 +147,6 @@ LIMIT 1 BY year
Автоматическое определение схемы позволяет выполнять запросы к JSON-файлам без необходимости явно её задавать, что ускоряет выполнение разовых задач по анализу данных.
-
## Создание таблиц {#creating-tables}
Мы можем использовать вывод схемы для автоматического создания структуры таблицы. Следующая команда `CREATE AS EMPTY` заставляет систему вывести DDL для таблицы и создать её. При этом данные не загружаются:
@@ -229,7 +221,6 @@ ENGINE = MergeTree
ORDER BY update_date
```
-
## Загрузка JSON-данных {#loading-json-data}
Далее предполагается, что JSON имеет единообразную структуру и содержит один тип значений для каждого пути.
@@ -284,13 +275,10 @@ FORMAT PrettyJSONEachRow
Получена 1 строка. Прошло: 0.009 сек.
```
-
## Обработка ошибок {#handling-errors}
Иногда во входных данных могут встречаться ошибки. Например, отдельные столбцы могут иметь неверный тип или JSON-объект может быть некорректно отформатирован. Для таких случаев вы можете использовать настройки [`input_format_allow_errors_num`](/operations/settings/formats#input_format_allow_errors_num) и [`input_format_allow_errors_ratio`](/operations/settings/formats#input_format_allow_errors_ratio), чтобы разрешить игнорирование определённого числа строк, если данные вызывают ошибки операции вставки. Дополнительно можно задать [подсказки](/operations/settings/formats#schema_inference_hints), чтобы упростить вывод схемы.
-
-
## Работа с полуструктурированными и динамическими данными {#working-with-semi-structured-data}
В нашем предыдущем примере использовался JSON с фиксированной схемой, с хорошо известными именами ключей и типами. На практике это часто не так — ключи могут добавляться, а их типы меняться. Это типично, например, для данных для наблюдаемости (Observability).
@@ -384,7 +372,6 @@ DESCRIBE s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/json/conf
Прошло: 0.755 сек.
```
-
Получено исключение от сервера (версия 24.12.1):
Код: 636. DB::Exception: Получено от sql-clickhouse.clickhouse.com:9440. DB::Exception: Не удаётся извлечь структуру таблицы из файла в формате JSON. Ошибка:
Код: 53. DB::Exception: Тип Tuple(b Int64), автоматически определённый для столбца 'a' в строке 1, отличается от типа, определённого в предыдущих строках: Int64. Вы можете явно указать тип для этого столбца с помощью настройки schema_inference_hints.
@@ -404,7 +391,6 @@ SETTINGS enable_json_type = 1, describe_compact_output = 1
1 row in set. Elapsed: 0.010 sec.
````
-
## Дополнительные материалы {#further-reading}
Подробнее о выводе типов данных см. на [этой странице документации](/interfaces/schema-inference).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/loading.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/loading.md
index 7dc6de90385..4cbd059745e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/loading.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/loading.md
@@ -9,14 +9,10 @@ score: 15
doc_type: 'guide'
---
-
-
# Загрузка JSON {#loading-json}
Ниже приведены очень простые примеры загрузки структурированных и полуструктурированных данных в формате JSON. Для более сложного JSON, включая вложенные структуры, см. руководство [**Проектирование схемы JSON**](/integrations/data-formats/json/schema).
-
-
## Загрузка структурированного JSON {#loading-structured-json}
В этом разделе предполагается, что данные находятся в формате [`NDJSON`](https://github.com/ndjson/ndjson-spec) (Newline delimited JSON — JSON, где объекты разделены переводами строки), который в ClickHouse известен как [`JSONEachRow`](/interfaces/formats/JSONEachRow), и хорошо структурированы, то есть имена и типы столбцов фиксированы. Формат `NDJSON` является предпочтительным для загрузки JSON из‑за своей компактности и эффективного использования места, но поддерживаются и другие форматы как для [ввода, так и вывода](/interfaces/formats/JSON).
@@ -103,7 +99,6 @@ Ok.
SELECT * FROM pypi LIMIT 2
```
-
┌───────date─┬─country_code─┬─project────────────┬─type──┬─installer────┬─python_minor─┬─system─┬─version─┐
│ 2022-05-26 │ CN │ clickhouse-connect │ sdist │ bandersnatch │ │ │ 0.0.7 │
│ 2022-05-26 │ CN │ clickhouse-connect │ sdist │ bandersnatch │ │ │ 0.0.7 │
@@ -123,7 +118,6 @@ FORMAT JSONEachRow
В этих примерах используется формат `JSONEachRow`. Поддерживаются и другие распространённые форматы JSON; примеры их загрузки приведены [здесь](/integrations/data-formats/json/other-formats).
-
## Загрузка полуструктурированного JSON {#loading-semi-structured-json}
В нашем предыдущем примере мы загружали JSON с фиксированной структурой и хорошо известными именами ключей и типами. На практике так бывает не всегда — ключи могут добавляться, а их типы меняться. Это часто встречается в сценариях, связанных с данными для наблюдаемости (Observability).
@@ -210,7 +204,6 @@ LIMIT 2
Если структура ваших данных известна и стабильна, необходимость в типе JSON возникает редко, даже если ваши данные находятся в формате JSON. В частности, если ваши данные имеют:
-
* **Плоская структура с известными ключами**: используйте стандартные типы столбцов, например String.
* **Предсказуемая вложенность**: используйте типы Tuple, Array или Nested для таких структур.
* **Предсказуемая структура с изменяющимися типами**: в таком случае рассмотрите использование типов Dynamic или Variant.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/schema.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/schema.md
index db143fbcf73..66d48f8646f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/schema.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/json/schema.md
@@ -12,7 +12,6 @@ import json_column_per_type from '@site/static/images/integrations/data-ingestio
import json_offsets from '@site/static/images/integrations/data-ingestion/data-formats/json_offsets.png';
import shared_json_column from '@site/static/images/integrations/data-ingestion/data-formats/json_shared_column.png';
-
# Проектирование схемы {#designing-your-schema}
Хотя [вывод схемы](/integrations/data-formats/json/inference) можно использовать для формирования начальной схемы JSON‑данных и выполнения запросов к JSON‑файлам непосредственно в хранилище, например в S3, пользователям следует стремиться разработать оптимизированную версионируемую схему для своих данных. Ниже рассматривается рекомендуемый подход к моделированию JSON‑структур.
@@ -87,7 +86,6 @@ import shared_json_column from '@site/static/images/integrations/data-ingestion/
* Столбец `tags` является **динамическим**. Мы предполагаем, что в этот объект могут добавляться новые произвольные теги любого типа и структуры.
* Объект `company` является **статическим** и будет содержать не более трёх указанных ключей. Вложенные ключи `name` и `catchPhrase` имеют тип `String`. Ключ `labels` является **динамическим**. Мы предполагаем, что в этот объект могут добавляться новые произвольные теги. Значения всегда будут парами ключ–значение типа `String`.
-
:::note
Структуры с сотнями или тысячами статических ключей можно считать динамическими, так как редко бывает реалистично статически объявлять для них столбцы. Тем не менее, при возможности [пропускайте пути](#using-type-hints-and-skipping-paths), которые не нужны, чтобы сократить затраты как на хранение, так и на определение типов.
:::
@@ -202,7 +200,6 @@ ENGINE = MergeTree
ORDER BY company.name
```
-
### Обработка значений по умолчанию {#handling-default-values}
Даже если объекты JSON структурированы, они часто разреженные и содержат только подмножество известных ключей. К счастью, тип `Tuple` не требует, чтобы в JSON-полезной нагрузке присутствовали все столбцы. Если какие-либо из них не указаны, будут использованы значения по умолчанию.
@@ -281,7 +278,6 @@ FORMAT PrettyJSONEachRow
Если пользователям нужно различать ситуацию, когда значение пустое, и когда оно отсутствует, можно использовать тип [Nullable](/sql-reference/data-types/nullable). [Следует избегать](/best-practices/select-data-types#avoid-nullable-columns) его использования, если только это не абсолютно необходимо, поскольку это отрицательно сказывается на хранении данных и производительности запросов по этим столбцам.
:::
-
### Обработка новых столбцов {#handling-new-columns}
Хотя структурированный подход наиболее прост, когда ключи JSON статичны, его все же можно использовать и в том случае, если изменения схемы можно спланировать, то есть новые ключи известны заранее и схему можно соответствующим образом изменить.
@@ -359,7 +355,6 @@ SELECT id, nickname FROM people
Получено 2 строки. Затрачено: 0,001 сек.
```
-
## Обработка полуструктурированных/динамических структур {#handling-semi-structured-dynamic-structures}
Если JSON-данные являются полуструктурированными, где ключи могут динамически добавляться и/или иметь несколько типов, рекомендуется использовать тип [`JSON`](/sql-reference/data-types/newjson).
@@ -486,7 +481,6 @@ SELECT id, nickname FROM people
Строгая схема имеет ряд преимуществ:
-
- **Проверка данных** – строгая схема позволяет избежать риска взрывного роста числа столбцов, за пределами специально предусмотренных структур.
- **Избежание риска взрывного роста числа столбцов** – хотя тип JSON масштабируется потенциально до тысяч столбцов, где подстолбцы хранятся как отдельные столбцы, это может привести к «взрыву» файлов столбцов, когда создаётся чрезмерное количество файлов столбцов, что ухудшает производительность. Чтобы минимизировать этот риск, базовый [тип Dynamic](/sql-reference/data-types/dynamic), используемый JSON, предоставляет параметр [`max_dynamic_paths`](/sql-reference/data-types/newjson#reading-json-paths-as-sub-columns), который ограничивает количество уникальных путей, хранимых как отдельные файлы столбцов. После достижения порога дополнительные пути сохраняются в общем файле столбца с использованием компактного кодированного формата, что позволяет сохранить производительность и эффективность хранения при обеспечении гибкости ингестии данных. Однако доступ к этому общему файлу столбца менее эффективен по производительности. Обратите внимание, что столбец JSON может использоваться с [подсказками типов](#using-type-hints-and-skipping-paths). Столбцы с «подсказками» будут обеспечивать ту же производительность, что и выделенные столбцы.
- **Упрощённая интроспекция путей и типов** – хотя тип JSON поддерживает [функции интроспекции](/sql-reference/data-types/newjson#introspection-functions) для определения выведенных типов и путей, статические структуры зачастую проще исследовать, например, с помощью `DESCRIBE`.
@@ -530,7 +524,6 @@ INSERT INTO people FORMAT JSONAsObject
Вставлена 1 строка. Время выполнения: 0.004 сек.
```
-
```sql
SELECT *
FROM people
@@ -615,7 +608,6 @@ SELECT json.name, json.email FROM people
Обратите внимание, что отсутствующие в строках столбцы возвращаются как `NULL`.
-
Также для путей одного и того же типа создаётся отдельный подстолбец. Например, подстолбец существует для `company.labels.type` как для типа `String`, так и для `Array(Nullable(String))`. Оба подстолбца будут возвращены, когда это возможно, но при необходимости можно обращаться к конкретным подстолбцам, используя синтаксис `.:`:
```sql
@@ -666,7 +658,6 @@ FROM people
2 rows in set. Elapsed: 0.004 sec.
```
-
### Целевой столбец JSON {#targeted-json-column}
Хотя такой подход полезен при прототипировании и решении задач инженерии данных, в продуктивной среде мы рекомендуем по возможности использовать явную схему.
@@ -741,7 +732,6 @@ tags: {"hobby":"Databases","holidays":[{"year":2024,"location":"Azores,
[Функции интроспекции](/sql-reference/data-types/newjson#introspection-functions) можно использовать для определения выведенных путей и типов столбца `company.labels`.
-
```sql
SELECT JSONDynamicPathsWithTypes(company.labels) AS paths
FROM people
@@ -766,7 +756,6 @@ FORMAT PrettyJsonEachRow
Получено 2 строки. Прошло: 0.003 сек.
```
-
### Использование подсказок типов и пропуска путей {#using-type-hints-and-skipping-paths}
Подсказки типов позволяют указать тип для пути и его подстолбца, предотвращая излишний вывод типов. Рассмотрим следующий пример, в котором мы задаём типы для JSON-ключей `dissolved`, `employees` и `founded` внутри JSON-столбца `company.labels`.
@@ -840,7 +829,6 @@ FORMAT PrettyJsonEachRow
Кроме того, мы можем пропускать пути внутри JSON, которые не хотим сохранять, с помощью параметров [`SKIP` и `SKIP REGEXP`](/sql-reference/data-types/newjson), чтобы минимизировать объём занимаемого места и избежать ненужного вывода структуры по неиспользуемым путям. Например, предположим, что мы используем один столбец JSON для приведённых выше данных. Мы можем пропустить пути `address` и `company`:
-
```sql
CREATE TABLE people
(
@@ -925,7 +913,6 @@ FORMAT PrettyJSONEachRow
Выбрано 2 строки. Затрачено: 0.004 сек.
```
-
#### Оптимизация производительности с помощью подсказок типов {#optimizing-performance-with-type-hints}
Подсказки типов позволяют не только избежать лишнего вывода типов — они полностью устраняют дополнительный уровень косвенности при хранении и обработке, а также позволяют указывать [оптимальные примитивные типы](/data-modeling/schema-design#optimizing-types). JSON‑пути с подсказками типов всегда хранятся так же, как традиционные столбцы, без необходимости в [**дискриминаторных столбцах**](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse#storage-extension-for-dynamically-changing-data) или динамическом разрешении во время выполнения запроса.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/parquet.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/parquet.md
index 9652f1d8def..2df875eb22f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/parquet.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/parquet.md
@@ -8,8 +8,6 @@ doc_type: 'guide'
keywords: ['parquet', 'колоночный формат', 'формат данных', 'сжатие', 'apache parquet']
---
-
-
# Работа с Parquet в ClickHouse {#working-with-parquet-in-clickhouse}
Parquet — это эффективный файловый формат для хранения данных в колоночном формате.
@@ -22,8 +20,6 @@ ClickHouse поддерживает как чтение, так и запись
Если вы используете ClickHouse Server или ClickHouse Cloud через `clickhouse client`, чтение будет выполняться из пути, относительно директории `/var/lib/clickhouse/user_files/` на сервере.
:::
-
-
## Импорт из Parquet {#importing-from-parquet}
Перед загрузкой данных мы можем использовать функцию [file()](/sql-reference/functions/files.md/#file), чтобы изучить структуру [примерного файла формата Parquet](assets/data.parquet):
@@ -63,7 +59,6 @@ LIMIT 3;
В этом случае ClickHouse автоматически определит формат по расширению файла.
:::
-
## Импорт в существующую таблицу {#importing-to-an-existing-table}
Создадим таблицу, в которую будем импортировать данные в формате Parquet:
@@ -102,7 +97,6 @@ LIMIT 5;
Обратите внимание, что ClickHouse автоматически преобразовал строки формата Parquet (в столбце `date`) в тип `Date`. Это происходит потому, что ClickHouse выполняет приведение типов на основе типов в целевой таблице.
-
## Загрузка локального файла на удалённый сервер {#inserting-a-local-file-to-remote-server}
Если вы хотите загрузить локальный файл Parquet на удалённый сервер ClickHouse, вы можете сделать это, передав его содержимое в `clickhouse-client` через pipe, как показано ниже:
@@ -111,7 +105,6 @@ LIMIT 5;
clickhouse client -q "INSERT INTO sometable FORMAT Parquet" < data.parquet
```
-
## Создание новых таблиц из файлов Parquet {#creating-new-tables-from-parquet-files}
Поскольку ClickHouse читает схему файлов Parquet, мы можем динамически создавать таблицы:
@@ -140,7 +133,6 @@ DESCRIBE TABLE imported_from_parquet;
По умолчанию ClickHouse строго проверяет имена столбцов, их типы и значения. Но иногда при импорте можно игнорировать несуществующие столбцы или неподдерживаемые значения. Это можно настроить с помощью [настроек Parquet](/interfaces/formats/Parquet#format-settings).
-
## Экспорт в формат Parquet {#exporting-to-parquet-format}
:::tip
@@ -158,7 +150,6 @@ FORMAT Parquet
В результате в текущем рабочем каталоге будет создан файл `export.parquet`.
-
## Типы данных ClickHouse и Parquet {#clickhouse-and-parquet-data-types}
Типы данных ClickHouse и Parquet в основном совпадают, но всё же [имеют некоторые отличия](/interfaces/formats/Parquet#data-types-matching-parquet). Например, ClickHouse экспортирует тип `DateTime` как значение типа `int64` в формате Parquet. Если затем импортировать его обратно в ClickHouse, мы увидим числа ([файл time.parquet](assets/time.parquet)):
@@ -196,7 +187,6 @@ FROM file('time.parquet', Parquet);
└───┴─────────────────────┘
```
-
## Дополнительные материалы {#further-reading}
ClickHouse поддерживает множество форматов, как текстовых, так и бинарных, для самых разных сценариев и платформ. Подробнее о форматах и работе с ними см. в следующих статьях:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/sql.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/sql.md
index c6717999b4d..fb61c8e78fa 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/sql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/sql.md
@@ -7,14 +7,10 @@ doc_type: 'guide'
keywords: ['формат SQL', 'экспорт данных', 'импорт данных', 'резервное копирование', 'дампы SQL']
---
-
-
# Вставка и выгрузка SQL-данных в ClickHouse {#inserting-and-dumping-sql-data-in-clickhouse}
ClickHouse можно легко интегрировать в OLTP‑инфраструктуры баз данных разными способами. Один из вариантов — передавать данные между другими базами данных и ClickHouse с помощью SQL‑дампов.
-
-
## Создание SQL-дампов {#creating-sql-dumps}
Данные можно выгрузить в формате SQL с помощью [SQLInsert](/interfaces/formats/SQLInsert). ClickHouse запишет данные в виде `INSERT INTO
VALUES(...` и будет использовать настройку [`output_format_sql_insert_table_name`](/operations/settings/settings-formats.md/#output_format_sql_insert_table_name) в качестве имени таблицы:
@@ -58,7 +54,6 @@ SELECT * FROM some_data LIMIT 3 FORMAT Values
('Bangor_City_Forest','2015-07-01',34),('Alireza_Afzal','2017-02-01',24),('Akhaura-Laksam-Chittagong_Line','2015-09-01',30)
```
-
## Импорт данных из SQL-дампов {#inserting-data-from-sql-dumps}
Для чтения SQL-дампов используется формат [MySQLDump](/interfaces/formats/MySQLDump):
@@ -110,7 +105,6 @@ DESCRIBE TABLE table_from_mysql;
└───────┴──────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
## Другие форматы {#other-formats}
ClickHouse поддерживает множество форматов, как текстовых, так и бинарных, чтобы охватить различные сценарии и платформы. Узнайте больше о форматах и способах работы с ними в следующих статьях:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/templates-regex.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/templates-regex.md
index f65e20847f1..94fd637a778 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/templates-regex.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/data-formats/templates-regex.md
@@ -8,14 +8,10 @@ doc_type: 'guide'
keywords: ['форматы данных', 'шаблоны', 'regex', 'пользовательские форматы', 'парсинг']
---
-
-
# Импорт и экспорт произвольных текстовых данных с помощью форматов Template и Regex в ClickHouse {#importing-and-exporting-custom-text-data-using-templates-and-regex-in-clickhouse}
Нам часто приходится работать с данными в произвольных текстовых форматах. Это может быть нестандартный формат, некорректный JSON или «сломанный» CSV. Использование стандартных парсеров, таких как CSV или JSON, в таких случаях не всегда работает. Но в ClickHouse для этого предусмотрены мощные форматы Template и Regex.
-
-
## Импорт на основе шаблона {#importing-based-on-a-template}
Предположим, что мы хотим импортировать данные из следующего [файла журнала](assets/error.log):
@@ -97,7 +93,6 @@ Template: --> "p1: ${p1:CSV}, p2: ${p2:CSV}"
TemplateIgnoreSpaces --> "p1:${p1:CSV}, p2:${p2:CSV}"
```
-
## Экспорт данных с использованием шаблонов {#exporting-data-using-templates}
Мы также можем экспортировать данные в любой текстовый формат с помощью шаблонов. В этом случае нужно создать два файла:
@@ -202,7 +197,6 @@ FORMAT XML
```
-
## Импорт данных на основе регулярных выражений {#importing-data-based-on-regular-expressions}
Формат [Regexp](/interfaces/formats/Regexp) предназначен для более сложных случаев, когда входные данные необходимо разбирать более сложным способом. Давайте разберём наш пример с файлом [error.log](assets/error.log), но на этот раз извлечём имя файла и протокол, чтобы сохранить их в отдельные столбцы. Для начала подготовим для этого новую таблицу:
@@ -251,7 +245,6 @@ SELECT * FROM error_log LIMIT 5
SET format_regexp_skip_unmatched = 1;
```
-
## Другие форматы {#other-formats}
ClickHouse поддерживает множество форматов, как текстовых, так и двоичных, чтобы охватить различные сценарии и платформы. Изучите дополнительные форматы и способы работы с ними в следующих статьях:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/dynamodb/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/dynamodb/index.md
index 1cb59452e6c..b38e2a93010 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/dynamodb/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/dynamodb/index.md
@@ -2,7 +2,7 @@
sidebar_label: 'DynamoDB'
sidebar_position: 10
slug: /integrations/dynamodb
-description: 'ClickPipes позволяет подключать ClickHouse к DynamoDB.'
+description: 'ClickPipes позволяют подключить ClickHouse к DynamoDB.'
keywords: ['DynamoDB']
title: 'CDC из DynamoDB в ClickHouse'
show_related_blogs: true
@@ -10,7 +10,6 @@ doc_type: 'guide'
---
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import dynamodb_kinesis_stream from '@site/static/images/integrations/data-ingestion/dbms/dynamodb/dynamodb-kinesis-stream.png';
import dynamodb_s3_export from '@site/static/images/integrations/data-ingestion/dbms/dynamodb/dynamodb-s3-export.png';
import dynamodb_map_columns from '@site/static/images/integrations/data-ingestion/dbms/dynamodb/dynamodb-map-columns.png';
@@ -19,38 +18,31 @@ import Image from '@theme/IdealImage';
# CDC из DynamoDB в ClickHouse {#cdc-from-dynamodb-to-clickhouse}
-
+На этой странице описано, как настроить CDC из DynamoDB в ClickHouse с использованием ClickPipes. Эта интеграция состоит из двух компонентов:
-На этой странице описано, как настроить CDC из DynamoDB в ClickHouse с использованием ClickPipes. В эту интеграцию входят два компонента:
-1. Начальный снимок через S3 ClickPipes
-2. Обновления в режиме реального времени через Kinesis ClickPipes
+1. Начальный снимок данных через S3 ClickPipes
+2. Обновления в реальном времени через Kinesis ClickPipes
-Данные будут поступать в таблицу на движке `ReplacingMergeTree`. Этот движок таблицы обычно используется для сценариев CDC, чтобы обеспечить применение операций обновления. Подробнее об этом подходе можно прочитать в следующих статьях блога:
+Данные будут приниматься в таблицу `ReplacingMergeTree`. Этот движок таблицы обычно используется в сценариях CDC, чтобы можно было применять операции обновления. Подробнее об этом подходе можно узнать в следующих статьях блога:
-* [Change Data Capture (CDC) с PostgreSQL и ClickHouse — Часть 1](https://clickhouse.com/blog/clickhouse-postgresql-change-data-capture-cdc-part-1?loc=docs-rockest-migrations)
-* [Change Data Capture (CDC) с PostgreSQL и ClickHouse — Часть 2](https://clickhouse.com/blog/clickhouse-postgresql-change-data-capture-cdc-part-2?loc=docs-rockest-migrations)
+* [Change Data Capture (CDC) with PostgreSQL and ClickHouse - Part 1](https://clickhouse.com/blog/clickhouse-postgresql-change-data-capture-cdc-part-1?loc=docs-rockest-migrations)
+* [Change Data Capture (CDC) with PostgreSQL and ClickHouse - Part 2](https://clickhouse.com/blog/clickhouse-postgresql-change-data-capture-cdc-part-2?loc=docs-rockest-migrations)
+## 1. Настройте поток Kinesis {#1-set-up-kinesis-stream}
+Сначала необходимо включить поток Kinesis для таблицы DynamoDB, чтобы фиксировать изменения в режиме реального времени. Делайте это до создания снимка, чтобы не пропустить ни одних данных.
+Подробности см. в руководстве AWS [здесь](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/kds.html).
-## 1. Настройка потока Kinesis {#1-set-up-kinesis-stream}
+
-Сначала включите поток Kinesis для таблицы DynamoDB, чтобы фиксировать изменения в режиме реального времени. Это нужно сделать до создания снимка, чтобы не пропустить какие-либо данные.
-Руководство AWS доступно по ссылке [здесь](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/kds.html).
+## 2. Создайте снимок {#2-create-the-snapshot}
-
-
-
-
-## 2. Создание снимка {#2-create-the-snapshot}
-
-Теперь создадим снимок таблицы DynamoDB. Это можно сделать с помощью экспорта AWS в S3. Руководство AWS доступно [здесь](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.HowItWorks.html).
-**Вам нужен «Full export» в формате DynamoDB JSON.**
+Далее мы создадим снимок таблицы DynamoDB. Это можно сделать, выполнив экспорт AWS в S3. Руководство AWS находится [здесь](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.HowItWorks.html).
+**Необходимо выполнить полную выгрузку («Full export») в формате DynamoDB JSON.**
-
-
-## 3. Загрузка снимка в ClickHouse {#3-load-the-snapshot-into-clickhouse}
+## 3. Загрузите снимок в ClickHouse {#3-load-the-snapshot-into-clickhouse}
### Создайте необходимые таблицы {#create-necessary-tables}
@@ -70,15 +62,15 @@ import Image from '@theme/IdealImage';
}
```
-Обратите внимание, что данные имеют вложенную структуру. Нам нужно будет привести их к плоскому виду перед загрузкой в ClickHouse. Это можно сделать с помощью функции `JSONExtract` в ClickHouse в материализованном представлении.
+Обратите внимание, что данные имеют вложенный формат. Нам нужно будет развернуть (flatten) эти данные перед загрузкой в ClickHouse. Это можно сделать с помощью функции `JSONExtract` в ClickHouse в materialized view.
Нам нужно создать три таблицы:
-1. Таблица для хранения «сырых» данных из DynamoDB
-2. Таблица для хранения окончательно развёрнутых данных (таблица назначения)
-3. Материализованное представление для преобразования данных в плоский формат
+1. Таблица для хранения исходных данных из DynamoDB
+2. Таблица для хранения итоговых развернутых данных (таблица назначения)
+3. materialized view для разворачивания данных
-Для приведённых выше примерных данных из DynamoDB таблицы в ClickHouse будут выглядеть следующим образом:
+Для приведённого выше примера данных из DynamoDB таблицы в ClickHouse будут выглядеть следующим образом:
```sql
/* Таблица снимков */
@@ -107,48 +99,47 @@ ENGINE ReplacingMergeTree("version")
ORDER BY id;
```
-Есть несколько требований к целевой таблице:
+Для целевой таблицы есть несколько требований:
* Эта таблица должна быть таблицей `ReplacingMergeTree`
* В таблице должен быть столбец `version`
- * На последующих шагах мы сопоставим поле `ApproximateCreationDateTime` из потока Kinesis со столбцом `version`.
-* Таблица должна использовать ключ партиционирования в качестве ключа сортировки (задаваемого в `ORDER BY`)
- * Строки с одинаковым ключом сортировки будут очищаться от дубликатов на основе столбца `version`.
+ * На последующих шагах мы будем сопоставлять поле `ApproximateCreationDateTime` из потока Kinesis со столбцом `version`.
+* Таблица должна использовать ключ партиционирования в качестве ключа сортировки (задается через `ORDER BY`)
+ * Строки с одним и тем же ключом сортировки будут дедуплироваться на основе столбца `version`.
+
-### Создание snapshot ClickPipe {#create-the-snapshot-clickpipe}
+### Создайте ClickPipe для снимка {#create-the-snapshot-clickpipe}
-Теперь вы можете создать ClickPipe для загрузки snapshot-данных из S3 в ClickHouse. Следуйте руководству по S3 ClickPipe [здесь](/integrations/clickpipes/object-storage), но используйте следующие настройки:
+Теперь вы можете создать ClickPipe для загрузки данных снимка из S3 в ClickHouse. Следуйте руководству по S3 ClickPipe [здесь](/integrations/clickpipes/object-storage), но используйте следующие настройки:
-* **Ingest path**: вам нужно определить путь к экспортированным JSON-файлам в S3. Путь будет выглядеть примерно так:
+* **Ingest path**: вам нужно будет найти путь к экспортированным json‑файлам в S3. Путь будет выглядеть примерно так:
```text
https://{bucket}.s3.amazonaws.com/{prefix}/AWSDynamoDB/{export-id}/data/*
```
-* **Формат**: JSONEachRow
-* **Таблица**: ваша таблица снимка (например, `default.snapshot` в приведённом выше примере)
+* **Format**: JSONEachRow
+* **Table**: Ваша таблица snapshot (например, `default.snapshot` в примере выше)
-После её создания данные начнут поступать в таблицу снимка и целевую таблицу. Вам не нужно дожидаться окончания загрузки снимка, чтобы перейти к следующему шагу.
+После создания данные начнут поступать в таблицу snapshot и целевую таблицу. Вам не нужно дожидаться завершения загрузки snapshot, чтобы переходить к следующему шагу.
-## 4. Создайте Kinesis ClickPipe {#4-create-the-kinesis-clickpipe}
+## 4. Создание Kinesis ClickPipe {#4-create-the-kinesis-clickpipe}
-Теперь мы можем настроить Kinesis ClickPipe для захвата изменений в реальном времени из потока Kinesis. Следуйте руководству по Kinesis ClickPipe [здесь](/integrations/data-ingestion/clickpipes/kinesis.md), но используйте следующие настройки:
+Теперь мы можем настроить Kinesis ClickPipe для фиксации изменений в реальном времени из потока Kinesis. Следуйте руководству по Kinesis ClickPipe [здесь](/integrations/data-ingestion/clickpipes/kinesis.md), при этом используйте следующие настройки:
-- **Stream**: Поток Kinesis, использованный на шаге 1
-- **Table**: Ваша целевая таблица (например, `default.destination` в примере выше)
+- **Stream**: поток Kinesis, использованный на шаге 1
+- **Table**: ваша целевая таблица (например, `default.destination` в примере выше)
- **Flatten object**: true
- **Column mappings**:
- `ApproximateCreationDateTime`: `version`
- - Отобразите остальные поля в соответствующие целевые столбцы, как показано ниже
+ - Сопоставьте остальные поля с соответствующими целевыми столбцами, как показано ниже
-
-
## 5. Очистка (необязательно) {#5-cleanup-optional}
-После завершения снапшотного ClickPipe вы можете удалить таблицу снимка и материализованное представление.
+После завершения snapshot ClickPipe вы можете удалить snapshot-таблицу и materialized view.
```sql
DROP TABLE IF EXISTS "default"."snapshot";
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/jdbc-with-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/jdbc-with-clickhouse.md
index 9b57b6703ae..f7126f6679c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/jdbc-with-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/jdbc-with-clickhouse.md
@@ -15,7 +15,6 @@ import Jdbc01 from '@site/static/images/integrations/data-ingestion/dbms/jdbc-01
import Jdbc02 from '@site/static/images/integrations/data-ingestion/dbms/jdbc-02.png';
import Jdbc03 from '@site/static/images/integrations/data-ingestion/dbms/jdbc-03.png';
-
# Подключение ClickHouse к внешним источникам данных с помощью JDBC {#connecting-clickhouse-to-external-data-sources-with-jdbc}
:::note
@@ -42,8 +41,6 @@ import Jdbc03 from '@site/static/images/integrations/data-ingestion/dbms/jdbc-03
5. установлена и запущена актуальная версия **ClickHouse** ([см. установку](/getting-started/install/install.mdx))
:::
-
-
## Установка ClickHouse JDBC Bridge локально {#install-the-clickhouse-jdbc-bridge-locally}
Самый простой способ использовать ClickHouse JDBC Bridge — установить и запустить его на той же машине, где работает ClickHouse:
@@ -106,7 +103,6 @@ java -jar clickhouse-jdbc-bridge-2.0.7-shaded.jar
Мы запустили ClickHouse JDBC Bridge в режиме переднего плана. Чтобы остановить Bridge, вы можете вернуть показанное выше окно оболочки Unix на передний план и нажать `CTRL+C`.
:::
-
## Использование JDBC-подключения из ClickHouse {#use-the-jdbc-connection-from-within-clickhouse}
Теперь ClickHouse может получать доступ к данным MySQL с помощью [табличной функции jdbc](/sql-reference/table-functions/jdbc.md) или [движка таблицы JDBC](/engines/table-engines/integrations/jdbc.md).
@@ -141,7 +137,6 @@ SELECT * FROM mytable;
Схема таблицы движка ClickHouse JDBC и схема подключённой таблицы MySQL должны быть согласованы: например, имена и порядок столбцов должны совпадать, а типы данных столбцов — быть совместимыми.
:::
-
## Внешняя установка ClickHouse JDBC Bridge {#install-the-clickhouse-jdbc-bridge-externally}
Для распределённого кластера ClickHouse (кластера с более чем одним хостом ClickHouse) имеет смысл установить и запускать ClickHouse JDBC Bridge отдельно, на выделенном хосте:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql.md
index 8f824b5de13..0ff9871867b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql.md
@@ -289,7 +289,7 @@ host db1 clickhouse_user 192.168.1.0/24 password
psql -U clickhouse_user -W -d db1 -h <ваш_хост_postgresql>
```
-### 2. В ClickHouse
+### 2. В ClickHouse {#2-in-clickhouse}
1. подключитесь к CLI ClickHouse
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/emqx/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/emqx/index.md
index 6decd83a1f8..ae937eb31cb 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/emqx/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/emqx/index.md
@@ -39,11 +39,8 @@ import rule_monitor from '@site/static/images/integrations/data-ingestion/emqx/r
import clickhouse_result from '@site/static/images/integrations/data-ingestion/emqx/clickhouse_result.png';
import Image from '@theme/IdealImage';
-
# Интеграция EMQX с ClickHouse {#integrating-emqx-with-clickhouse}
-
-
## Подключение EMQX {#connecting-emqx}
[EMQX](https://www.emqx.com/en/try?product=enterprise) — это брокер MQTT с открытым исходным кодом и высокопроизводительным движком обработки сообщений в режиме реального времени, обеспечивающий потоковую обработку событий для IoT‑устройств в очень крупном масштабе. Будучи наиболее масштабируемым брокером MQTT, EMQX помогает подключать любые устройства при любом масштабе. Перемещайте и обрабатывайте ваши IoT‑данные где угодно.
@@ -61,8 +58,6 @@ import Image from '@theme/IdealImage';
* Вы подготовили экземпляр ClickHouse Cloud для долговременного хранения данных устройств.
* Мы используем [MQTT X](https://mqttx.app/) как тестовый MQTT‑клиент для подключения к развертыванию EMQX Cloud и публикации MQTT‑данных. Также подойдут и другие способы подключения к брокеру MQTT.
-
-
## Получение сервиса ClickHouse Cloud {#get-your-clickhouse-cloudservice}
В ходе этой настройки мы развернули экземпляр ClickHouse в AWS в регионе N. Virginia (us-east -1), при этом экземпляр EMQX Cloud также был развернут в том же регионе.
@@ -102,7 +97,6 @@ PRIMARY KEY (client_id, timestamp)
-
## Создание MQTT-сервиса в EMQX Cloud {#create-an-mqtt-service-on-emqx-cloud}
Создать выделенный MQTT-брокер в EMQX Cloud так же просто, всего в несколько кликов.
@@ -151,8 +145,6 @@ EMQX Cloud по умолчанию не допускает анонимные п
После его создания вы найдёте публичный IP-адрес в этом виджете. Обратите внимание, что если вы выбрали «Connect from a specific location» при настройке ClickHouse Cloud, вам нужно будет добавить этот IP-адрес в список разрешённых IP-адресов.
-
-
## Интеграция EMQX Cloud с ClickHouse Cloud {#integration-emqx-cloud-with-clickhouse-cloud}
[EMQX Cloud Data Integrations](https://docs.emqx.com/en/cloud/latest/rule_engine/introduction.html#general-flow) используется для настройки правил обработки и реакции на потоки сообщений EMQX и события устройств. Data Integrations не только предоставляет понятное и гибкое «конфигурируемое» архитектурное решение, но также упрощает процесс разработки, повышает удобство использования и снижает степень связности между бизнес-системой и EMQX Cloud. Кроме того, он обеспечивает превосходную инфраструктуру для кастомизации проприетарных возможностей EMQX Cloud.
@@ -233,7 +225,6 @@ INSERT INTO temp_hum (client_id, timestamp, topic, temp, hum) VALUES ('${client_
Все MQTT-сообщения, отправленные в топик `temp_hum/emqx`, будут сохранены в вашей базе данных ClickHouse Cloud.
-
## Сохранение данных в ClickHouse {#saving-data-into-clickhouse}
Мы будем имитировать данные о температуре и влажности и отправлять их в EMQX Cloud через MQTT X, а затем использовать EMQX Cloud Data Integrations для сохранения данных в ClickHouse Cloud.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md
index c01cd2bab10..a509a4fc4aa 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md
@@ -24,7 +24,6 @@ import airbyte08 from '@site/static/images/integrations/data-ingestion/etl-tools
import airbyte09 from '@site/static/images/integrations/data-ingestion/etl-tools/airbyte_09.png';
import PartnerBadge from '@theme/badges/PartnerBadge';
-
# Подключение Airbyte к ClickHouse {#connect-airbyte-to-clickhouse}
@@ -49,7 +48,6 @@ import PartnerBadge from '@theme/badges/PartnerBadge';
-
## Загрузка и запуск Airbyte {#1-download-and-run-airbyte}
1. Airbyte работает в Docker и использует `docker-compose`. Убедитесь, что у вас установлены последние версии Docker.
@@ -70,8 +68,6 @@ import PartnerBadge from '@theme/badges/PartnerBadge';
В качестве альтернативы вы можете зарегистрироваться и использовать Airbyte Cloud
:::
-
-
## Добавьте ClickHouse в качестве приемника данных {#2-add-clickhouse-as-a-destination}
В этом разделе мы покажем, как добавить экземпляр ClickHouse в качестве приемника данных.
@@ -103,7 +99,6 @@ GRANT CREATE ON * TO my_airbyte_user;
:::
-
## Добавьте датасет в качестве источника {#3-add-a-dataset-as-a-source}
В качестве примерного датасета мы будем использовать New York City Taxi Data (на GitHub). В этом руководстве мы используем подмножество этого датасета за январь 2022 года.
@@ -122,8 +117,6 @@ GRANT CREATE ON * TO my_airbyte_user;
3. Поздравляем! Теперь вы добавили файл-источник в Airbyte.
-
-
## Создайте подключение и загрузите набор данных в ClickHouse {#4-create-a-connection-and-load-the-dataset-into-clickhouse}
1. В Airbyte перейдите на страницу "Connections" и добавьте новое подключение.
@@ -156,8 +149,6 @@ GRANT CREATE ON * TO my_airbyte_user;
```response
Query id: 4f79c106-fe49-4145-8eba-15e1cb36d325
-
-
┌─extra─┬─mta_tax─┬─VendorID─┬─RatecodeID─┬─tip_amount─┬─airport_fee─┬─fare_amount─┬─DOLocationID─┬─PULocationID─┬─payment_type─┬─tolls_amount─┬─total_amount─┬─trip_distance─┬─passenger_count─┬─store_and_fwd_flag─┬─congestion_surcharge─┬─tpep_pickup_datetime─┬─improvement_surcharge─┬─tpep_dropoff_datetime─┬─_airbyte_ab_id───────────────────────┬─────_airbyte_emitted_at─┬─_airbyte_normalized_at─┬─_airbyte_nyc_taxi_2022_hashid────┐
│ 0 │ 0.5 │ 2 │ 1 │ 2.03 │ 0 │ 17 │ 41 │ 162 │ 1 │ 0 │ 22.33 │ 4.25 │ 3 │ N │ 2.5 │ 2022-01-24T16:02:27 │ 0.3 │ 2022-01-24T16:22:23 │ 000022a5-3f14-4217-9938-5657f9041c8a │ 2022-07-19 04:35:31.000 │ 2022-07-19 04:39:20 │ 91F83E2A3AF3CA79E27BD5019FA7EC94 │
│ 3 │ 0.5 │ 1 │ 1 │ 1.75 │ 0 │ 5 │ 186 │ 246 │ 1 │ 0 │ 10.55 │ 0.9 │ 1 │ N │ 2.5 │ 2022-01-22T23:23:05 │ 0.3 │ 2022-01-22T23:27:03 │ 000036b6-1c6a-493b-b585-4713e433b9cd │ 2022-07-19 04:34:53.000 │ 2022-07-19 04:39:20 │ 5522F328014A7234E23F9FC5FA78FA66 │
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/bladepipe-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/bladepipe-and-clickhouse.md
index 188cd0480b1..8bda4ec1754 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/bladepipe-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/bladepipe-and-clickhouse.md
@@ -20,7 +20,6 @@ import bp_ck_8 from '@site/static/images/integrations/data-ingestion/etl-tools/b
import bp_ck_9 from '@site/static/images/integrations/data-ingestion/etl-tools/bp_ck_9.png';
import PartnerBadge from '@theme/badges/PartnerBadge';
-
# Подключение BladePipe к ClickHouse {#connect-bladepipe-to-clickhouse}
@@ -29,8 +28,6 @@ import PartnerBadge from '@theme/badges/PartnerBadge';
ClickHouse — один из готовых коннекторов BladePipe, что позволяет пользователям автоматически интегрировать данные из различных источников в ClickHouse. На этой странице показано, как пошагово настроить загрузку данных в ClickHouse в режиме реального времени.
-
-
## Поддерживаемые источники {#supported-sources}
В настоящее время BladePipe поддерживает интеграцию данных в ClickHouse из следующих источников:
- MySQL/MariaDB/AuroraMySQL
@@ -44,8 +41,6 @@ ClickHouse — один из готовых коннекторов BladePipe, ч
В дальнейшем планируется поддержка дополнительных источников.
-
-
## Загрузите и запустите BladePipe {#1-run-bladepipe}
1. Войдите в BladePipe Cloud.
@@ -56,7 +51,6 @@ ClickHouse — один из готовых коннекторов BladePipe, ч
Также вы можете загрузить и развернуть BladePipe Enterprise.
:::
-
## Добавление ClickHouse в качестве целевого хранилища {#2-add-clickhouse-as-a-target}
:::note
@@ -72,8 +66,6 @@ ClickHouse — один из готовых коннекторов BladePipe, ч
3. Нажмите "Add DataSource" внизу, после чего будет добавлен экземпляр ClickHouse.
-
-
## Добавление MySQL в качестве источника {#3-add-mysql-as-a-source}
В этом руководстве мы используем экземпляр MySQL в качестве источника и рассматриваем процесс загрузки данных MySQL в ClickHouse.
@@ -89,8 +81,6 @@ ClickHouse — один из готовых коннекторов BladePipe, ч
3. Нажмите "Add DataSource" внизу — экземпляр MySQL будет добавлен.
-
-
## Создание конвейера {#4-create-a-pipeline}
1. В BladePipe нажмите "DataJob" > "Create DataJob".
@@ -110,8 +100,6 @@ ClickHouse — один из готовых коннекторов BladePipe, ч
6. Подтвердите создание DataJob — после этого он запустится автоматически.
-
-
## Проверка данных {#5-verify-the-data}
1. Остановите запись данных в экземпляр MySQL и дождитесь завершения слияния данных в ClickHouse.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/features-and-configurations.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/features-and-configurations.md
index 9667959ac4b..b6594954a01 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/features-and-configurations.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/features-and-configurations.md
@@ -20,9 +20,7 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
-
-## Конфигурация Profile.yml {#profile-yml-configurations}
+## Конфигурации Profile.yml {#profile-yml-configurations}
Чтобы подключиться к ClickHouse из dbt, вам потребуется добавить [профиль](https://docs.getdbt.com/docs/core/connect-data-platform/connection-profiles) в файл `profiles.yml`. Профиль ClickHouse должен соответствовать следующему синтаксису:
@@ -52,8 +50,8 @@ your_profile_name:
cluster_mode: [False] # Использовать специальные настройки для улучшения работы с реплицируемыми базами данных (рекомендуется для ClickHouse Cloud)
use_lw_deletes: [False] # Использовать стратегию `delete+insert` в качестве инкрементной стратегии по умолчанию.
check_exchange: [True] # Проверить, что ClickHouse поддерживает атомарную команду EXCHANGE TABLES. (Не требуется для большинства версий ClickHouse)
- local_suffix: [_local] # Суффикс локальных таблиц на шардах для распределённых материализаций.
- local_db_prefix: [] # Префикс базы данных для локальных таблиц на шардах при распределённых материализациях. Если не указано, используется та же база данных, что и для распределённой таблицы.
+ local_suffix: [_local] # Суффикс локальных таблиц на сегментах для распределённых материализаций.
+ local_db_prefix: [] # Префикс базы данных для локальных таблиц на сегментах при распределённых материализациях. Если не указано, используется та же база данных, что и для распределённой таблицы.
allow_automatic_deduplication: [False] # Включить автоматическую дедупликацию ClickHouse для реплицируемых таблиц
tcp_keepalive: [False] # Только для нативного клиента, задаёт конфигурацию TCP keepalive. Укажите пользовательские настройки keepalive в формате [idle_time_sec, interval_sec, probes].
custom_settings: [{}] # Словарь пользовательских настроек ClickHouse для соединения — по умолчанию пустой.
@@ -65,6 +63,7 @@ your_profile_name:
compress_block_size: [1048576] # Размер блока сжатия, если сжатие включено
```
+
### Схема и база данных {#schema-vs-database}
Идентификатор отношения модели dbt `database.schema.table` не совместим с ClickHouse, поскольку ClickHouse не
@@ -83,7 +82,6 @@ your_profile_name:
### Настройка `quote_columns` {#setting-quote_columns}
-
Чтобы избежать предупреждения, обязательно явно задайте значение параметра `quote_columns` в файле `dbt_project.yml`. Дополнительную информацию смотрите в [документации по quote_columns](https://docs.getdbt.com/reference/resource-configs/quote_columns).
```yaml
@@ -91,6 +89,7 @@ seeds:
+quote_columns: false #или `true`, если в заголовках столбцов CSV есть пробелы
```
+
### О кластере ClickHouse {#about-the-clickhouse-cluster}
При использовании кластера ClickHouse нужно учитывать две вещи:
@@ -121,21 +120,21 @@ seeds:
```
-табличные и инкрементальные материализации с нереплицируемым движком не будут затронуты настройкой `cluster` (модель
+табличные и инкрементальные материализации с нереплицируемым движком не будут зависеть от настройки `cluster` (модель
будет создана только на подключённом узле).
**Совместимость**
Если модель была создана без настройки `cluster`, dbt-clickhouse обнаружит это и выполнит все DDL/DML
-без предложения `on cluster` для этой модели.
+без оператора `ON CLUSTER` для этой модели.
+
#### Согласованность чтения после записи (read-after-write) {#read-after-write-consistency}
dbt полагается на модель согласованности чтения после вставки (read-after-insert). Это несовместимо с кластерами ClickHouse с более чем одной репликой, если вы не можете гарантировать, что все операции будут направляться на одну и ту же реплику. В повседневной работе с dbt вы можете не столкнуться с проблемами, но в зависимости от конфигурации кластера есть несколько стратегий, позволяющих обеспечить такую гарантию:
-* Если вы используете кластер ClickHouse Cloud, вам достаточно установить `select_sequential_consistency: 1` в свойстве `custom_settings` вашего профиля. Дополнительную информацию об этой настройке можно найти [здесь](https://clickhouse.com/docs/operations/settings/settings#select_sequential_consistency).
-* Если вы используете кластер с самостоятельным размещением (self-hosted), убедитесь, что все запросы dbt отправляются на одну и ту же реплику ClickHouse. Если поверх него есть балансировщик нагрузки, попробуйте использовать механизм `replica aware routing`/`sticky sessions`, чтобы всегда попадать на одну и ту же реплику. Добавление настройки `select_sequential_consistency = 1` в кластерах вне ClickHouse Cloud [не рекомендуется](https://clickhouse.com/docs/operations/settings/settings#select_sequential_consistency).
-
+* Если вы используете кластер ClickHouse Cloud, вам достаточно установить `select_sequential_consistency: 1` в свойстве `custom_settings` вашего профиля. Дополнительную информацию об этой настройке можно найти [здесь](/operations/settings/settings#select_sequential_consistency).
+* Если вы используете кластер с самостоятельным размещением (self-hosted), убедитесь, что все запросы dbt отправляются на одну и ту же реплику ClickHouse. Если поверх него есть балансировщик нагрузки, попробуйте использовать механизм `replica aware routing`/`sticky sessions`, чтобы всегда попадать на одну и ту же реплику. Добавление настройки `select_sequential_consistency = 1` в кластерах вне ClickHouse Cloud [не рекомендуется](/operations/settings/settings#select_sequential_consistency).
## Общая информация о возможностях {#general-information-about-features}
@@ -171,6 +170,7 @@ Data skipping индексы доступны только для материа
) }}
```
+
#### О проекциях {#projections}
Вы можете добавить [проекции](/data-modeling/projections) к материализациям типов `table` и `distributed_table` с помощью конфигурации `projections`:
@@ -187,7 +187,8 @@ Data skipping индексы доступны только для материа
) }}
```
-**Примечание**: Для распределённых таблиц проекция применяется к таблицам `_local`, а не к распределённой прокси-таблице.
+**Примечание**: Для распределённых таблиц проекции применяются к `_local`-таблицам, а не к распределённой прокси-таблице.
+
### Поддерживаемые движки таблиц {#supported-table-engines}
@@ -200,8 +201,7 @@ Data skipping индексы доступны только для материа
| EmbeddedRocksDB | [https://clickhouse.com/docs/en/engines/table-engines/integrations/embedded-rocksdb](https://clickhouse.com/docs/en/engines/table-engines/integrations/embedded-rocksdb) |
| Hive | [https://clickhouse.com/docs/en/engines/table-engines/integrations/hive](https://clickhouse.com/docs/en/engines/table-engines/integrations/hive) |
-### Поддерживаемые экспериментальные движки таблиц {#experimental-supported-table-engines}
-
+### Экспериментально поддерживаемые табличные движки {#experimental-supported-table-engines}
| Тип | Подробности |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -238,7 +238,7 @@ Data skipping индексы доступны только для материа
```yaml
models:
- name: table_column_configs
- description: 'Тестирование конфигураций на уровне колонок'
+ description: 'Тестирование конфигураций на уровне столбцов'
config:
contract:
enforced: true
@@ -251,6 +251,7 @@ models:
ttl: ts + INTERVAL 1 DAY
```
+
#### Добавление сложных типов данных {#adding-complex-types}
dbt автоматически определяет тип данных каждого столбца, анализируя SQL, используемый для создания модели. Однако в некоторых случаях этот процесс может некорректно определить тип данных, что приводит к конфликтам с типами, указанными в свойстве контракта `data_type`. Чтобы избежать этого, рекомендуется использовать функцию `CAST()` в SQL-коде модели для явного указания требуемого типа. Например:
@@ -280,7 +281,7 @@ group by event_type
### Материализация: view {#materialization-view}
-Модель dbt может быть создана как [представление ClickHouse](https://clickhouse.com/docs/en/sql-reference/table-functions/view/)
+Модель dbt может быть создана как [представление ClickHouse](/sql-reference/table-functions/view/)
и настроена с использованием следующего синтаксиса:
Файл проекта (`dbt_project.yml`):
@@ -297,9 +298,10 @@ models:
{{ config(materialized = "view") }}
```
+
### Материализация: таблица {#materialization-table}
-Модель dbt может быть создана как [таблица ClickHouse](https://clickhouse.com/docs/en/operations/system-tables/tables/) и
+Модель dbt может быть создана как [таблица ClickHouse](/operations/system-tables/tables/) и
настроена с использованием следующего синтаксиса:
Файл проекта (`dbt_project.yml`):
@@ -318,17 +320,18 @@ models:
```python
{{ config(
materialized = "table",
- engine = "<тип-движка>",
- order_by = [ "<имя-столбца>", ... ],
- partition_by = [ "<имя-столбца>", ... ],
+ engine = "",
+ order_by = [ "", ... ],
+ partition_by = [ "", ... ],
...
]
) }}
```
+
### Материализация: incremental {#materialization-incremental}
-Модель таблицы будет пересоздаваться при каждом выполнении dbt. Это может быть неосуществимо и крайне затратно для больших наборов данных или сложных трансформаций. Чтобы решить эту проблему и сократить время сборки, модель dbt может быть создана как инкрементальная таблица ClickHouse и настраивается с помощью следующего синтаксиса:
+Модель таблицы будет пересоздаваться при каждом выполнении dbt. Это может быть неосуществимо и крайне затратно для больших наборов данных или сложных трансформаций. Чтобы решить эту проблему и сократить время сборки, модель dbt может быть создана как инкрементальная таблица ClickHouse и настраивается с использованием следующего синтаксиса:
Определение модели в `dbt_project.yml`:
@@ -343,7 +346,7 @@ models:
+inserts_only: [ True|False ]
```
-Или конфигурационный блок в `models/<model_name>.sql`:
+Или конфигурационный блок в `models/.sql`:
```python
{{ config(
@@ -358,6 +361,7 @@ models:
) }}
```
+
#### Конфигурации {#configurations}
Конфигурации, специфические для этого типа материализации, перечислены ниже:
@@ -367,7 +371,7 @@ models:
| `unique_key` | Кортеж имён столбцов, которые однозначно идентифицируют строки. Подробности об ограничениях уникальности см. [здесь](https://docs.getdbt.com/docs/build/incremental-models#defining-a-unique-key-optional). | Обязателен. Если не указано, изменённые строки будут добавлены в инкрементальную таблицу дважды. |
| `inserts_only` | Параметр устарел в пользу инкрементальной `strategy` `append`, которая работает аналогичным образом. Если для инкрементальной модели установлено значение `True`, инкрементальные обновления будут вставляться напрямую в целевую таблицу без создания промежуточной таблицы. Если задан `inserts_only`, `incremental_strategy` игнорируется. | Необязателен (по умолчанию: `False`) |
| `incremental_strategy` | Стратегия, используемая для инкрементальной материализации. Поддерживаются `delete+insert`, `append`, `insert_overwrite` или `microbatch`. Дополнительные сведения о стратегиях см. [здесь](/integrations/dbt/features-and-configurations#incremental-model-strategies). | Необязателен (по умолчанию: 'default') |
-| `incremental_predicates` | Дополнительные условия, которые будут применяться к инкрементальной материализации (применяются только для стратегии `delete+insert`). | Необязателен |
+| `incremental_predicates` | Дополнительные условия, которые будут применяться к инкрементальной материализации (применяются только для стратегии `delete+insert`). | Необязателен |
#### Стратегии инкрементальных моделей {#incremental-model-strategies}
@@ -386,10 +390,9 @@ dbt-clickhouse по умолчанию создаёт новую временн
##### Стратегия Delete+Insert {#delete-insert-strategy}
-
ClickHouse добавил «облегчённые удаления» (lightweight deletes) как экспериментальную возможность в версии 22.8. Облегчённые удаления значительно
быстрее операций ALTER TABLE ... DELETE,
-поскольку они не требуют перезаписи кусков данных ClickHouse. Инкрементальная стратегия `delete+insert`
+поскольку они не требуют перезаписи частей данных ClickHouse. Инкрементальная стратегия `delete+insert`
использует облегчённые удаления для реализации
инкрементальных материализаций, которые работают значительно лучше, чем «устаревшая» (legacy) стратегия. Однако при использовании этой стратегии есть важные
ограничения:
@@ -417,6 +420,7 @@ ClickHouse добавил «облегчённые удаления» (lightweig
`batch_size`.
Помимо обработки крупных преобразований, microbatch позволяет:
+
- [Повторно обрабатывать неуспешные батчи](https://docs.getdbt.com/docs/build/incremental-microbatch#retry).
- Автоматически определять [параллельное выполнение батчей](https://docs.getdbt.com/docs/build/parallel-batch-execution).
- Устранить необходимость в сложной условной логике при [дозагрузке (backfilling)](https://docs.getdbt.com/docs/build/incremental-microbatch#backfills).
@@ -441,15 +445,13 @@ ClickHouse добавил «облегчённые удаления» (lightweig
подход, если дубликаты либо допускаются
в данных, либо исключаются предложением/фильтром WHERE в инкрементальном запросе.
-##### Стратегия insert_overwrite (экспериментальная) {#insert-overwrite-strategy}
+##### Стратегия insert_overwrite (экспериментально) {#insert-overwrite-strategy}
-> [IMPORTANT]
-> В настоящее время стратегия insert_overwrite работает некорректно с распределёнными материализациями.
+> [ВАЖНО]
+> В настоящее время стратегия insert_overwrite пока не полностью поддерживает распределённые материализации.
Выполняет следующие шаги:
-
-
1. Создайте промежуточную (временную) таблицу с той же структурой, что и инкрементальная модель:
`CREATE TABLE AS `.
2. Вставьте в промежуточную таблицу только новые записи (полученные с помощью `SELECT`).
@@ -498,16 +500,17 @@ select a,b,c from {{ source('raw', 'table_2') }}
>
> При обновлении модели с несколькими материализованными представлениями (MV), особенно при переименовании одного из них,
> `dbt-clickhouse` не удаляет старое MV автоматически. Вместо этого
-> вы получите следующее предупреждение:
+> вы увидите следующее предупреждение:
> `Warning - Table was detected with the same pattern as model name but was not found in this run. In case it is a renamed mv that was previously part of this model, drop it manually (!!!) `
+
#### Догрузка данных {#data-catch-up}
В настоящее время при создании материализованного представления (MV) целевая таблица сначала заполняется историческими данными, и только затем создается само MV.
Другими словами, `dbt-clickhouse` сначала создает целевую таблицу и загружает в нее исторические данные на основе запроса, определенного для MV. Лишь после этого шага создается MV.
-Если вы не хотите выполнять предварительную загрузку исторических данных при создании MV, вы можете отключить это поведение, установив параметр `catch-up` в значение `False`:
+Если вы не хотите выполнять предварительную загрузку исторических данных при создании MV, вы можете отключить это поведение, установив параметр `catchup` в значение `False`:
```python
{{config(
@@ -518,12 +521,12 @@ select a,b,c from {{ source('raw', 'table_2') }}
)}}
```
-#### Обновляемые материализованные представления {#refreshable-materialized-views}
-Чтобы использовать [Refreshable Materialized View](https://clickhouse.com/docs/en/materialized-view/refreshable-materialized-view),
-при необходимости скорректируйте следующие параметры в вашей MV‑модели (все эти параметры должны быть заданы внутри
-объекта конфигурации refreshable):
+#### Refreshable materialized view {#refreshable-materialized-views}
+Чтобы использовать [Refreshable Materialized View](/materialized-view/refreshable-materialized-view),
+настройте следующие параметры в вашей модели MV (все эти параметры должны быть заданы внутри объекта конфигурации
+`refreshable`):
| Option | Description | Required | Default Value |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------- |
@@ -550,6 +553,7 @@ select a,b,c from {{ source('raw', 'table_2') }}
}}
```
+
#### Ограничения {#limitations}
* При создании обновляемого материализованного представления (MV) в ClickHouse, которое имеет зависимость, ClickHouse не
@@ -566,11 +570,11 @@ select a,b,c from {{ source('raw', 'table_2') }}
### Материализация: dictionary (экспериментальная) {#materialization-dictionary}
См. тесты
-в [https://github.com/ClickHouse/dbt-clickhouse/blob/main/tests/integration/adapter/dictionary/test_dictionary.py](https://github.com/ClickHouse/dbt-clickhouse/blob/main/tests/integration/adapter/dictionary/test_dictionary.py) для
+в [https://github.com/ClickHouse/dbt-clickhouse/blob/main/tests/integration/adapter/dictionary/test_dictionary.py](https://github.com/ClickHouse/dbt-clickhouse/blob/main/tests/integration/adapter/dictionary/test_dictionary.py) для
примеров того, как
реализовывать материализации для словарей ClickHouse.
-### Материализация: distributed_table (экспериментальная) {#materialization-distributed-table}
+### Материализация: distributed_table (экспериментальная) {#materialization-distributed-table}
Распределённая таблица создаётся следующими шагами:
@@ -585,7 +589,7 @@ select a,b,c from {{ source('raw', 'table_2') }}
корректное выполнение последующих операций инкрементальной материализации. Это может привести к тому, что некоторые
вставки в распределённые таблицы будут выполняться медленнее, чем ожидается.
-#### Пример модели распределённой таблицы {#distributed-table-model-example}
+#### Пример модели distributed таблицы {#distributed-table-model-example}
```sql
{{
@@ -601,6 +605,7 @@ select id, created_at, item
from {{ source('db', 'table') }}
```
+
#### Сгенерированные миграции {#distributed-table-generated-migrations}
```sql
@@ -621,20 +626,20 @@ CREATE TABLE db.table on cluster cluster (
ENGINE = Distributed ('cluster', 'db', 'table_local', cityHash64(id));
```
-### materialization: distributed_incremental (экспериментальная) {#materialization-distributed-incremental}
+
+### materialization: distributed_incremental (экспериментальная) {#materialization-distributed-incremental}
Инкрементальная модель, основанная на той же идее, что и распределённая таблица; основная сложность — корректно обрабатывать все стратегии инкрементального обновления.
-1. *Стратегия Append* просто вставляет данные в распределённую таблицу.
-2. *Стратегия Delete+Insert* создаёт распределённую временную таблицу для работы со всеми данными на каждом шарде.
-3. *Стратегия Default (Legacy)* создаёт распределённые временные и промежуточные таблицы по той же причине.
+1. _Стратегия Append_ просто вставляет данные в распределённую таблицу.
+2. _Стратегия Delete+Insert_ создаёт распределённую временную таблицу для работы со всеми данными в каждом сегменте.
+3. _Стратегия Default (Legacy)_ создаёт распределённые временные и промежуточные таблицы по той же причине.
-Заменяются только таблицы шардов, потому что распределённая таблица не хранит данные.
-Распределённая таблица пересоздаётся только при включённом режиме full_refresh или если структура таблицы могла измениться.
+Заменяются только таблицы сегментов, потому что распределённая таблица не хранит данные.
+Распределённая таблица пересоздаётся только при включённом режиме full_refresh или если структура таблицы могла измениться.
#### Пример распределённой инкрементальной модели {#distributed-incremental-model-example}
-
```sql
{{
config(
@@ -649,6 +654,7 @@ select id, created_at, item
from {{ source('db', 'table') }}
```
+
#### Сгенерированные миграции {#distributed-incremental-generated-migrations}
```sql
@@ -668,9 +674,10 @@ CREATE TABLE db.table on cluster cluster (
ENGINE = Distributed ('cluster', 'db', 'table_local', cityHash64(id));
```
+
### Snapshot {#snapshot}
-Снимки dbt позволяют фиксировать изменения изменяемой модели со временем. В свою очередь, это позволяет выполнять запросы к моделям в разрезе конкретного момента времени, когда аналитики могут «заглянуть в прошлое» и увидеть предыдущее состояние модели. Эта функциональность поддерживается коннектором ClickHouse и настраивается с помощью следующего синтаксиса:
+Снимки dbt позволяют фиксировать изменения изменяемой модели со временем. В свою очередь, это позволяет выполнять запросы к моделям на конкретный момент времени, позволяя аналитикам «заглянуть в прошлое» и увидеть предыдущее состояние модели. Эта функциональность поддерживается коннектором ClickHouse и настраивается с помощью следующего синтаксиса:
Блок конфигурации в `snapshots/.sql`:
@@ -685,15 +692,16 @@ CREATE TABLE db.table on cluster cluster (
}}
```
-Для получения дополнительной информации о конфигурации см. справочную страницу [snapshot configs](https://docs.getdbt.com/docs/build/snapshots#snapshot-configs).
+Для получения более подробной информации о настройке см. справочную страницу [snapshot configs](https://docs.getdbt.com/docs/build/snapshots#snapshot-configs).
+
### Контракты и ограничения {#contracts-and-constraints}
Поддерживаются только контракты с точным совпадением типов столбцов. Например, контракт с типом столбца UInt32 завершится с ошибкой, если модель
вернёт UInt64 или другой целочисленный тип.
-ClickHouse также поддерживает *только* ограничения `CHECK` на уровне всей таблицы/модели. Ограничения первичного ключа, внешнего ключа, уникальности и
+В ClickHouse также поддерживаются *только* ограничения `CHECK` на уровне всей таблицы/модели. Ограничения первичного ключа, внешнего ключа, уникальности и
ограничения CHECK на уровне отдельных столбцов не поддерживаются.
-(См. документацию ClickHouse по первичным ключам/ключам ORDER BY.)
+(См. документацию ClickHouse по первичным ключам и ключам ORDER BY.)
### Дополнительные макросы ClickHouse {#additional-clickhouse-macros}
@@ -716,13 +724,10 @@ ClickHouse также поддерживает *только* ограничен
#### Вспомогательный макрос s3Source {#s3source-helper-macro}
-Макрос `s3source` упрощает процесс выборки данных ClickHouse непосредственно из S3 с помощью табличной функции ClickHouse S3.
-Он работает за счёт
-заполнения параметров табличной функции S3 из именованного словаря конфигурации (имя словаря должно заканчиваться
-на `s3`). Макрос
-сначала ищет словарь в `vars` профиля, а затем в конфигурации модели. Словарь может содержать
-любой из следующих ключей, используемых для заполнения параметров табличной функции S3:
-
+Макрос `s3source` упрощает процесс выборки данных ClickHouse непосредственно из S3 с использованием табличной функции S3 в ClickHouse.
+Он работает за счёт заполнения параметров табличной функции S3 из именованного конфигурационного словаря (имя словаря должно
+заканчиваться на `s3`). Сначала макрос ищет словарь в `vars` профиля, затем — в конфигурации модели. Словарь может содержать
+любые из следующих ключей, используемых для заполнения параметров табличной функции S3:
| Argument Name | Description |
|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
@@ -732,7 +737,7 @@ ClickHouse также поддерживает *только* ограничен
| structure | Структура столбцов данных в бакете в виде списка пар имя/тип, например `['id UInt32', 'date DateTime', 'value String']`. Если не указано, ClickHouse попытается автоматически определить структуру. |
| aws_access_key_id | Идентификатор ключа доступа S3. |
| aws_secret_access_key | Секретный ключ S3. |
-| role_arn | ARN роли ClickhouseAccess IAM, используемой для безопасного доступа к объектам S3. Дополнительную информацию см. в этой [документации](https://clickhouse.com/docs/en/cloud/security/secure-s3). |
+| role_arn | ARN роли ClickhouseAccess IAM, используемой для безопасного доступа к объектам S3. Дополнительную информацию см. в этой [документации](/cloud/data-sources/secure-s3). |
| compression | Метод сжатия, используемый для объектов S3. Если не указан, ClickHouse попытается определить тип сжатия по имени файла. |
См.
@@ -748,3 +753,74 @@ dbt-clickhouse поддерживает большинство межбазов
будет интерпретироваться как строка, а не как имя столбца.
* Аналогично, SQL-функция `replace` в ClickHouse требует константные строки для параметров `old_chars` и `new_chars`,
поэтому при вызове этого макроса эти параметры будут интерпретироваться как строки, а не как имена столбцов.
+
+## Поддержка каталога {#catalog-support}
+
+### Статус интеграции с каталогом dbt {#dbt-catalog-integration-status}
+
+В dbt Core v1.10 появилась поддержка интеграции с каталогами, которая позволяет адаптерам материализовывать модели во внешние каталоги, управляющие открытыми форматами таблиц, такими как Apache Iceberg. **Эта функция пока ещё не реализована непосредственно в dbt-clickhouse.** Вы можете отслеживать прогресс её реализации в [задаче GitHub №489](https://github.com/ClickHouse/dbt-clickhouse/issues/489).
+
+### Поддержка каталогов в ClickHouse {#clickhouse-catalog-support}
+
+В ClickHouse недавно появилась нативная поддержка таблиц Apache Iceberg и каталогов данных. Большинство возможностей пока находятся в статусе `experimental`, но вы уже можете использовать их в последних версиях ClickHouse.
+
+* Вы можете использовать ClickHouse для **выполнения запросов к таблицам Iceberg, хранящимся в объектном хранилище** (S3, Azure Blob Storage, Google Cloud Storage) с помощью [табличного движка Iceberg](/engines/table-engines/integrations/iceberg) и [табличной функции iceberg](/sql-reference/table-functions/iceberg).
+
+* Кроме того, ClickHouse предоставляет [движок базы данных DataLakeCatalog](/engines/database-engines/datalakecatalog), который обеспечивает **подключение к внешним каталогам данных**, включая AWS Glue Catalog, Databricks Unity Catalog, Hive Metastore и REST‑каталоги. Это позволяет выполнять запросы к данным в открытых табличных форматах (Iceberg, Delta Lake) напрямую из внешних каталогов без дублирования данных.
+
+### Обходные пути для работы с Iceberg и каталогами {#workarounds-iceberg-catalogs}
+
+Вы можете читать данные из таблиц или каталогов Iceberg в своем проекте dbt, если уже создали их в кластере ClickHouse с помощью инструментов, описанных выше. Вы можете использовать функциональность `source` в dbt, чтобы ссылаться на эти таблицы в своих проектах dbt. Например, если вы хотите получить доступ к своим таблицам в REST Catalog, вы можете:
+
+1. **Создать базу данных, указывающую на внешний каталог:**
+
+```sql
+-- Пример с REST-каталогом
+SET allow_experimental_database_iceberg = 1;
+
+CREATE DATABASE iceberg_catalog
+ENGINE = DataLakeCatalog('http://rest:8181/v1', 'admin', 'password')
+SETTINGS
+ catalog_type = 'rest',
+ storage_endpoint = 'http://minio:9000/lakehouse',
+ warehouse = 'demo'
+```
+
+2. **Определите базу данных каталога и её таблицы как источники в dbt:** помните, что эти таблицы уже должны существовать в ClickHouse
+
+```yaml
+version: 2
+
+sources:
+ - name: external_catalog
+ database: iceberg_catalog
+ tables:
+ - name: orders
+ - name: customers
+```
+
+3. **Используйте таблицы каталога в моделях dbt:**
+
+```sql
+SELECT
+ o.order_id,
+ c.customer_name,
+ o.order_date
+FROM {{ source('external_catalog', 'orders') }} o
+INNER JOIN {{ source('external_catalog', 'customers') }} c
+ ON o.customer_id = c.customer_id
+```
+
+
+### Заметки по обходным решениям {#benefits-workarounds}
+
+Преимущества этих обходных решений:
+
+* Вы получите мгновенный доступ к различным типам внешних таблиц и внешним каталогам, не дожидаясь нативной интеграции каталога dbt.
+* У вас будет плавный путь миграции, когда нативная поддержка каталога станет доступна.
+
+Однако на данный момент есть некоторые ограничения:
+
+* **Ручная настройка:** таблицы Iceberg и базы данных каталога должны быть созданы вручную в ClickHouse, прежде чем их можно будет использовать в dbt.
+* **Отсутствие DDL на уровне каталога:** dbt не может управлять операциями на уровне каталога, такими как создание или удаление таблиц Iceberg во внешних каталогах. Поэтому сейчас вы не сможете создавать их через коннектор dbt. Возможность создавать таблицы с движками Iceberg() может быть добавлена в будущем.
+* **Операции записи:** в настоящее время запись в таблицы Iceberg/Data Catalog ограничена. Обратитесь к документации ClickHouse, чтобы узнать, какие варианты доступны.
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/guides.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/guides.md
index ffddbfc0a79..db93a584860 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/guides.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/guides.md
@@ -19,7 +19,6 @@ import dbt_06 from '@site/static/images/integrations/data-ingestion/etl-tools/db
import dbt_07 from '@site/static/images/integrations/data-ingestion/etl-tools/dbt/dbt_07.png';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Руководства {#guides}
@@ -37,8 +36,6 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
-
## Настройка {#setup}
Следуйте инструкциям из раздела [Настройка dbt и адаптера ClickHouse](/integrations/dbt), чтобы подготовить ваше окружение.
@@ -142,7 +139,6 @@ FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/imdb/imdb_ijs
Время выполнения этих операций может различаться в зависимости от пропускной способности вашего соединения, но каждая из них должна занимать всего несколько секунд. Выполните следующий запрос, чтобы получить сводную статистику по каждому актёру, упорядоченную по числу появлений в фильмах, и убедиться, что данные были успешно загружены:
-
```sql
SELECT id,
any(actor_name) AS name,
@@ -187,7 +183,6 @@ LIMIT 5;
В последующих руководствах мы превратим этот запрос в модель, материализовав его в ClickHouse как представление и таблицу в dbt.
-
## Подключение к ClickHouse {#connecting-to-clickhouse}
1. Создайте проект dbt. В этом примере мы назовём его так же, как наш источник `imdb`. Когда появится запрос, выберите `clickhouse` в качестве источника базы данных.
@@ -279,8 +274,6 @@ LIMIT 5;
Убедитесь, что в ответе содержится строка `Connection test: [OK connection ok]`, что указывает на успешное подключение.
-
-
## Создание простой материализации представления {#creating-a-simple-view-materialization}
При использовании материализации представления модель при каждом запуске пересоздаётся как представление с помощью оператора `CREATE VIEW AS` в ClickHouse. Это не требует дополнительного хранения данных, но запросы к таким моделям будут выполняться медленнее, чем к материализованным в виде таблиц.
@@ -355,8 +348,6 @@ LIMIT 5;
4. Из каталога `imdb` выполните команду `dbt run`.
-
-
```bash
clickhouse-user@clickhouse:~/imdb$ dbt run
15:05:35 Запуск с dbt=1.1.0
@@ -411,7 +402,6 @@ LIMIT 5;
+------+------------+----------+------------------+------+---------+-------------------+
```
-
## Создание материализованной таблицы {#creating-a-table-materialization}
В предыдущем примере наша модель была материализована как представление. Хотя этого может быть достаточно для некоторых запросов, более сложные SELECT-запросы или часто выполняемые запросы могут быть эффективнее материализованы как таблица. Такая материализация полезна для моделей, к которым будут обращаться BI-инструменты, чтобы обеспечить пользователям более высокую скорость работы. Фактически это приводит к тому, что результаты запроса сохраняются как новая таблица с соответствующими накладными расходами на хранение — по сути, выполняется `INSERT INTO ... SELECT`. Обратите внимание, что эта таблица будет пересоздаваться каждый раз, то есть она не является инкрементальной. Таким образом, большие наборы результатов могут приводить к длительному времени выполнения — см. раздел [Ограничения dbt](/integrations/dbt#limitations).
@@ -483,15 +473,12 @@ LIMIT 5;
+------+------------+----------+------------------+------+---------+-------------------+
```
-
-
Вы можете выполнять и другие запросы к этой модели. Например, у каких актёров, снявшихся более чем в пяти фильмах, самые высокие рейтинги фильмов?
```sql
SELECT * FROM imdb_dbt.actor_summary WHERE num_movies > 5 ORDER BY avg_rank DESC LIMIT 10;
```
-
## Создание инкрементальной материализации {#creating-an-incremental-materialization}
В предыдущем примере была создана таблица для материализации модели. Эта таблица будет заново создаваться при каждом выполнении dbt. Для больших результирующих наборов или сложных трансформаций это может быть невыполнимо и крайне затратно. Чтобы решить эту задачу и сократить время сборки, dbt предлагает инкрементальные материализации (Incremental). Они позволяют dbt вставлять или обновлять записи в таблице, начиная с последнего запуска, что делает этот подход подходящим для событийных данных. Под капотом создаётся временная таблица со всеми обновлёнными записями, после чего все нетронутые записи, а также обновлённые записи вставляются в новую целевую таблицу. В результате для больших результирующих наборов возникают схожие [ограничения](/integrations/dbt#limitations), как и для табличной модели.
@@ -507,8 +494,6 @@ SELECT * FROM imdb_dbt.actor_summary WHERE num_movies > 5 ORDER BY avg_rank DES
Обновите файл `actor_summary.sql` следующим образом:
-
-
```sql
{{ config(order_by='(updated_at, id, name)', engine='MergeTree()', materialized='incremental', unique_key='id') }}
with actor_summary as (
@@ -572,7 +557,6 @@ SELECT * FROM imdb_dbt.actor_summary WHERE num_movies > 5 ORDER BY avg_rank DES
SELECT * FROM imdb_dbt.actor_summary ORDER BY num_movies DESC LIMIT 5;
```
-
```response
+------+------------+----------+------------------+------+---------+-------------------+
|id |имя |кол_фильмов|средний_рейтинг |жанры |режиссёры|обновлено |
@@ -641,7 +625,6 @@ SELECT * FROM imdb_dbt.actor_summary WHERE num_movies > 5 ORDER BY avg_rank DES
6. Выполните `dbt run` и убедитесь, что наша модель обновилась и соответствует приведённым выше результатам:
-
```response
clickhouse-user@clickhouse:~/imdb$ dbt run
16:12:16 Запуск с dbt=1.1.0
@@ -715,7 +698,6 @@ AND event_time > subtractMinutes(now(), 15) ORDER BY event_time LIMIT 100;
3. Давайте снимем Danny в 920 случайных фильмах.
-
```sql
INSERT INTO imdb.roles
SELECT now() as created_at, 845467 as actor_id, id as movie_id, 'Himself' as role
@@ -798,7 +780,6 @@ WHERE id > (SELECT max(id) FROM imdb_dbt.actor_summary) OR updated_at > (SELECT
### Режим удаления и вставки (экспериментальный) {#deleteinsert-mode-experimental}
-
Традиционно ClickHouse имел лишь ограниченную поддержку операций обновления и удаления в виде асинхронных [Mutations](/sql-reference/statements/alter/index.md). Эти операции могут быть крайне ресурсоёмкими по вводу-выводу, и, как правило, их следует избегать.
В ClickHouse 22.8 были добавлены [облегчённые удаления](/sql-reference/statements/delete.md), а в ClickHouse 25.7 — [облегчённые обновления](/sql-reference/statements/update). С появлением этих возможностей изменения, выполняемые одиночными запросами обновления, даже при асинхронной материализации, будут происходить мгновенно с точки зрения пользователя.
@@ -839,7 +820,6 @@ WHERE id > (SELECT max(id) FROM imdb_dbt.actor_summary) OR updated_at > (SELECT
-
## Создание снимка {#creating-a-snapshot}
Снимки dbt позволяют зафиксировать изменения изменяемой модели во времени. Это, в свою очередь, позволяет выполнять запросы к моделям на состояние в конкретный момент времени, когда аналитики могут «оглядываться назад» и просматривать предыдущее состояние модели. Это достигается с помощью [измерений типа 2 (Slowly Changing Dimensions)](https://en.wikipedia.org/wiki/Slowly_changing_dimension#Type_2:_add_new_row), где столбцы from и to фиксируют период, в течение которого строка считалась актуальной. Эта функциональность поддерживается адаптером ClickHouse и продемонстрирована ниже.
@@ -916,7 +896,6 @@ where id > (select max(id) from {{ this }}) or updated_at > (select max(updated_
3. Выполните команду `dbt snapshot`.
-
```response
clickhouse-user@clickhouse:~/imdb$ dbt snapshot
13:26:23 Running with dbt=1.1.0
@@ -982,7 +961,6 @@ where id > (select max(id) from {{ this }}) or updated_at > (select max(updated_
13:46:18 Done. PASS=1 WARN=0 ERROR=0 SKIP=0 TOTAL=1
```
-
clickhouse-user@clickhouse:~/imdb$ dbt snapshot
13:46:26 Запуск с использованием dbt=1.1.0
13:46:26 Найдена 1 модель, 0 тестов, 1 snapshot, 0 анализов, 181 макрос, 0 операций, 0 seed-файлов, 3 источника, 0 exposures, 0 метрик
@@ -1020,7 +998,6 @@ clickhouse-user@clickhouse:~/imdb$ dbt snapshot
Подробную информацию о снимках dbt см. в [документации](https://docs.getdbt.com/docs/building-a-dbt-project/snapshots).
-
## Использование seed-файлов {#using-seeds}
dbt предоставляет возможность загружать данные из CSV-файлов. Эта функциональность не предназначена для загрузки крупных выгрузок базы данных и в большей степени рассчитана на небольшие файлы, обычно используемые для таблиц с кодами и [словарей](../../../../sql-reference/dictionaries/index.md), например сопоставление кодов стран с их названиями. В качестве простого примера мы сгенерируем и затем загрузим список кодов жанров, используя механизм seed.
@@ -1075,8 +1052,6 @@ dbt предоставляет возможность загружать дан
+-------+----+=
```
-
-
## Дополнительная информация {#further-information}
В предыдущих руководствах затронута лишь небольшая часть функциональности dbt. Рекомендуем ознакомиться с отличной [документацией dbt](https://docs.getdbt.com/docs/introduction).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md
index 312be5a3a71..f654563e0e2 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md
@@ -4,7 +4,7 @@ slug: /integrations/dbt
sidebar_position: 1
description: 'Пользователи могут преобразовывать и моделировать данные в ClickHouse с помощью dbt'
title: 'Интеграция ClickHouse с dbt'
-keywords: ['dbt', 'преобразование данных', 'инжиниринг аналитики', 'SQL-моделирование', 'конвейер ELT']
+keywords: ['dbt', 'преобразование данных', 'аналитический инжиниринг', 'SQL-моделирование', 'конвейер ELT']
doc_type: 'guide'
integration:
- support_level: 'core'
@@ -20,9 +20,8 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
-
## Адаптер dbt-clickhouse {#dbt-clickhouse-adapter}
+
**dbt** (data build tool) позволяет инженерам по аналитике преобразовывать данные в их хранилищах, просто записывая запросы `SELECT`. dbt материализует эти запросы `SELECT` в объекты базы данных в виде таблиц и представлений, выполняя этап Transform (T) в процессе [Extract, Load, Transform (ELT)](https://en.wikipedia.org/wiki/Extract,_load,_transform). Пользователи могут создавать модель, определяемую запросом `SELECT`.
В dbt эти модели могут ссылаться друг на друга и образовывать слои, что позволяет формировать более высокоуровневые абстракции. Шаблонный SQL, необходимый для соединения моделей, генерируется автоматически. Кроме того, dbt определяет зависимости между моделями и гарантирует, что они создаются в правильном порядке с использованием ориентированного ациклического графа (DAG).
@@ -31,8 +30,6 @@ dbt совместим с ClickHouse через [адаптер, официал
-
-
## Поддерживаемые возможности {#supported-features}
Список поддерживаемых возможностей:
@@ -54,12 +51,10 @@ dbt совместим с ClickHouse через [адаптер, официал
- [x] Специфические для ClickHouse конфигурации столбцов (Codec, TTL...)
- [x] Специфические для ClickHouse настройки таблиц (индексы, проекции...)
-Поддерживаются все возможности вплоть до dbt-core 1.9 включительно. В ближайшее время мы добавим возможности, появившиеся в dbt-core 1.10.
+Поддерживаются все возможности вплоть до dbt-core 1.10 включительно, включая флаг `--sample`, а также устранены все предупреждения об устаревании, подготовленные для будущих релизов. **Интеграции с каталогами** (например, Iceberg), появившиеся в dbt 1.10, пока ещё не поддерживаются нативно в адаптере, но доступны обходные решения. См. раздел [Catalog Support](/integrations/dbt/features-and-configurations#catalog-support) для подробностей.
Этот адаптер всё ещё недоступен для использования в [dbt Cloud](https://docs.getdbt.com/docs/dbt-cloud/cloud-overview), но мы рассчитываем сделать его доступным в ближайшее время. Пожалуйста, свяжитесь со службой поддержки, чтобы получить дополнительную информацию.
-
-
## Концепции {#concepts}
dbt вводит концепцию модели (model). Она определяется как SQL-запрос, потенциально объединяющий множество таблиц. Модель может быть «материализована» несколькими способами. Материализация представляет собой стратегию сборки для select-запроса модели. Код, лежащий в основе материализации, — это шаблонный SQL, который оборачивает ваш SELECT-запрос в оператор для создания нового или обновления существующего объекта (relation).
@@ -93,8 +88,6 @@ dbt предоставляет 4 типа материализации:
| Distributed incremental materialization | ДА, экспериментальная | Инкрементальная модель, основанная на той же идее, что и distributed table. Обратите внимание, что поддерживаются не все стратегии; для получения дополнительной информации см. [это](https://github.com/ClickHouse/dbt-clickhouse?tab=readme-ov-file#distributed-incremental-materialization). |
| Dictionary materialization | ДА, экспериментальная | Создаёт [dictionary](https://clickhouse.com/docs/en/engines/table-engines/special/dictionary). |
-
-
## Настройка dbt и адаптера ClickHouse {#setup-of-dbt-and-the-clickhouse-adapter}
### Установка dbt-core и dbt-clickhouse {#install-dbt-core-and-dbt-clickhouse}
@@ -105,9 +98,10 @@ dbt предоставляет несколько способов устано
pip install dbt-core dbt-clickhouse
```
+
### Укажите в dbt параметры подключения к нашему экземпляру ClickHouse. {#provide-dbt-with-the-connection-details-for-our-clickhouse-instance}
-Настройте профиль `clickhouse-service` в файле `~/.dbt/profiles.yml` и задайте параметры schema, host, port, user и password. Полный список вариантов конфигурации подключения доступен на странице [Возможности и параметры конфигурации](/integrations/dbt/features-and-configurations):
+Настройте профиль `clickhouse-service` в файле `~/.dbt/profiles.yml` и задайте параметры schema, host, port, user и password. Полный список параметров конфигурации подключения доступен на странице [Возможности и параметры конфигурации](/integrations/dbt/features-and-configurations):
```yaml
clickhouse-service:
@@ -115,16 +109,17 @@ clickhouse-service:
outputs:
dev:
type: clickhouse
- schema: [ default ] # ClickHouse database for dbt models
+ schema: [ default ] # База данных ClickHouse для моделей dbt
- # Optional
+ # Необязательные параметры
host: [ localhost ]
- port: [ 8123 ] # Defaults to 8123, 8443, 9000, 9440 depending on the secure and driver settings
- user: [ default ] # User for all database operations
+ port: [ 8123 ] # По умолчанию 8123, 8443, 9000, 9440 в зависимости от настроек secure и driver
+ user: [ default ] # Пользователь для всех операций с базой данных
password: [ ] # Пароль для этого пользователя
- secure: True # Use TLS (native protocol) or HTTPS (http protocol)
+ secure: True # Использовать TLS (нативный протокол) или HTTPS (http-протокол)
```
+
### Создайте проект dbt {#create-a-dbt-project}
Теперь вы можете использовать этот профиль в одном из существующих проектов или создать новый с помощью:
@@ -133,12 +128,13 @@ clickhouse-service:
dbt init project_name
```
-В каталоге `project_name` обновите файл `dbt_project.yml`, чтобы указать имя профиля для подключения к серверу ClickHouse.
+В каталоге `project_name` измените файл `dbt_project.yml`, указав имя профиля для подключения к серверу ClickHouse.
```yaml
profile: 'clickhouse-service'
```
+
### Тестирование соединения {#test-connection}
Выполните `dbt debug` с помощью инструмента командной строки (CLI), чтобы проверить, может ли dbt подключиться к ClickHouse. Убедитесь, что в ответе присутствует строка `Connection test: [OK connection ok]`, означающая успешное соединение.
@@ -147,7 +143,7 @@ profile: 'clickhouse-service'
### Тестирование и развертывание моделей (CI/CD) {#testing-and-deploying-your-models-ci-cd}
-Существует множество способов тестировать и развертывать ваш dbt‑проект. У dbt есть рекомендации по [рекомендуемым рабочим процессам](https://docs.getdbt.com/best-practices/best-practice-workflows#pro-tips-for-workflows) и [CI‑заданиям](https://docs.getdbt.com/docs/deploy/ci-jobs). Мы рассмотрим несколько стратегий, но имейте в виду, что их может потребоваться существенно адаптировать под ваш конкретный сценарий.
+Существует множество способов тестировать и развертывать ваш dbt‑проект. У dbt есть рекомендации по [рабочим процессам, основанным на лучших практиках](https://docs.getdbt.com/best-practices/best-practice-workflows#pro-tips-for-workflows) и [CI‑заданиям](https://docs.getdbt.com/docs/deploy/ci-jobs). Мы рассмотрим несколько стратегий, но имейте в виду, что их может потребоваться существенно адаптировать под ваш конкретный сценарий.
#### CI/CD с простыми тестами данных и модульными тестами {#ci-with-simple-data-tests-and-unit-tests}
@@ -157,12 +153,11 @@ profile: 'clickhouse-service'
Шаг CD может быть столь же простым, как запуск `dbt build` для вашего боевого кластера ClickHouse.
-#### Более полный этап CI/CD: использование свежих данных, тестирование только затронутых моделей {#more-complete-ci-stage}
-
-Одна из распространённых стратегий — использовать задания [Slim CI](https://docs.getdbt.com/best-practices/best-practice-workflows#run-only-modified-models-to-test-changes-slim-ci), в которых повторно разворачиваются только изменённые модели (и их зависимости вверх и вниз по потоку). Этот подход использует артефакты ваших боевых прогонов (например, [dbt manifest](https://docs.getdbt.com/reference/artifacts/manifest-json)), чтобы сократить время выполнения проекта и гарантировать отсутствие расхождений схем между средами.
+#### Более полный этап CI/CD: используйте актуальные данные, тестируйте только затронутые модели {#more-complete-ci-stage}
-Чтобы поддерживать согласованность сред разработки и избежать запуска моделей на устаревших развертываниях, вы можете использовать [clone](https://docs.getdbt.com/reference/commands/clone) или даже [defer](https://docs.getdbt.com/reference/node-selection/defer).
+Одна из распространённых стратегий — использовать задания [Slim CI](https://docs.getdbt.com/best-practices/best-practice-workflows#run-only-modified-models-to-test-changes-slim-ci), при которых повторно разворачиваются только изменённые модели (и их зависимости, как зависящие, так и зависимые). Этот подход использует артефакты из ваших продакшн-запусков (то есть [dbt manifest](https://docs.getdbt.com/reference/artifacts/manifest-json)), чтобы сократить время выполнения вашего проекта и гарантировать отсутствие расхождения схем между средами.
+Чтобы держать ваши среды разработки синхронизированными и избежать запуска моделей по устаревшим развёртываниям, вы можете использовать команду [clone](https://docs.getdbt.com/reference/commands/clone) или даже [defer](https://docs.getdbt.com/reference/node-selection/defer).
Мы рекомендуем использовать выделенный кластер или сервис ClickHouse для тестовой среды (например, промежуточной / staging-среды), чтобы избежать влияния на работу вашей продакшн-среды. Чтобы тестовая среда была репрезентативной, важно использовать подмножество ваших продакшн-данных, а также запускать dbt таким образом, чтобы предотвращать расхождение схем между средами.
@@ -173,8 +168,6 @@ profile: 'clickhouse-service'
Для развертывания (то есть шага CD) мы рекомендуем использовать артефакты из ваших продакшн-развертываний, чтобы обновлять только те модели, которые изменились. Для этого необходимо настроить объектное хранилище (например, S3) как промежуточное хранилище для артефактов dbt. После этого вы можете выполнить команду `dbt build --select state:modified+ --state path/to/last/deploy/state.json`, чтобы выборочно перестроить минимальное количество моделей, необходимых с учётом изменений, произошедших с момента последнего запуска в продакшн-среде.
-
-
## Устранение распространённых проблем {#troubleshooting-common-issues}
### Подключения {#troubleshooting-connections}
@@ -189,8 +182,6 @@ profile: 'clickhouse-service'
Некоторые операции могут выполняться дольше ожидаемого из‑за специфических запросов к ClickHouse. Чтобы лучше понять, какие запросы занимают больше времени, увеличьте [уровень логирования](https://docs.getdbt.com/reference/global-configs/logs#log-level) до `debug` — это выведет время, затраченное на каждый запрос. Например, этого можно добиться, добавив `--log-level debug` к командам dbt.
-
-
## Ограничения {#limitations}
Текущий адаптер ClickHouse для dbt имеет несколько ограничений, о которых пользователям следует знать:
@@ -202,8 +193,6 @@ profile: 'clickhouse-service'
- Когда dbt создаёт relation (table/view) в базе данных, он обычно создаёт его как: `{{ database }}.{{ schema }}.{{ table/view id }}`. В ClickHouse нет понятия схем. Поэтому адаптер использует `{{schema}}.{{ table/view id }}`, где `schema` — это база данных ClickHouse.
- Эфемерные модели/CTE не работают, если они размещены перед `INSERT INTO` в операторе вставки ClickHouse, см. https://github.com/ClickHouse/ClickHouse/issues/30323. Это не должно затрагивать большинство моделей, но следует внимательно относиться к месту размещения эфемерной модели в определениях моделей и других SQL-операторах.
-
-
## Fivetran {#fivetran}
-Коннектор `dbt-clickhouse` также доступен для использования в [Fivetran transformations](https://fivetran.com/docs/transformations/dbt), что обеспечивает бесшовную интеграцию и возможности преобразования данных непосредственно на платформе Fivetran с использованием `dbt`.
+Коннектор `dbt-clickhouse` также доступен для использования в [Fivetran transformations](https://fivetran.com/docs/transformations/dbt), что обеспечивает бесшовную интеграцию и выполнение преобразований непосредственно в платформе Fivetran с использованием `dbt`.
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dlt-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dlt-and-clickhouse.md
index d642e695838..cd72339b64a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dlt-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dlt-and-clickhouse.md
@@ -9,15 +9,12 @@ doc_type: 'guide'
import PartnerBadge from '@theme/badges/PartnerBadge';
-
# Подключение dlt к ClickHouse {#connect-dlt-to-clickhouse}
dlt — это библиотека с открытым исходным кодом, которую можно добавить в Python-скрипты, чтобы загружать данные из различных, часто «грязных» источников в хорошо структурированные, постоянно обновляемые наборы данных.
-
-
## Установка dlt с ClickHouse {#install-dlt-with-clickhouse}
### Установите библиотеку `dlt` с зависимостями для ClickHouse: {#to-install-the-dlt-library-with-clickhouse-dependencies}
@@ -26,7 +23,6 @@ import PartnerBadge from '@theme/badges/PartnerBadge';
pip install "dlt[clickhouse]"
```
-
## Руководство по настройке {#setup-guide}
@@ -97,7 +93,6 @@ dataset_table_separator = "___" # Разделитель для имё
Вы можете передать строку подключения к базе данных, аналогичную той, что используется библиотекой `clickhouse-driver`. Приведённые выше учётные данные будут выглядеть следующим образом:
-
```bash
# разместите это в начале вашего toml-файла, перед началом любых секций. {#keep-it-at-the-top-of-your-toml-file-before-any-section-starts}
destination.clickhouse.credentials="clickhouse://dlt:Dlt*12345789234567@localhost:9000/dlt?secure=1"
@@ -105,7 +100,6 @@ destination.clickhouse.credentials="clickhouse://dlt:Dlt*12345789234567@localhos
-
## Режим записи {#write-disposition}
Поддерживаются все [режимы записи](https://dlthub.com/docs/general-usage/incremental-loading#choosing-a-write-disposition).
@@ -118,22 +112,16 @@ destination.clickhouse.credentials="clickhouse://dlt:Dlt*12345789234567@localhos
**Append**: Это режим по умолчанию. Он добавляет данные к существующим данным в целевом хранилище, игнорируя поле `primary_key`.
-
-
## Загрузка данных {#data-loading}
Данные загружаются в ClickHouse с использованием наиболее эффективного метода в зависимости от источника данных:
- Для локальных файлов используется библиотека `clickhouse-connect` для непосредственной загрузки файлов в таблицы ClickHouse с помощью команды `INSERT`.
- Для файлов в удалённом хранилище, таком как `S3`, `Google Cloud Storage` или `Azure Blob Storage`, используются табличные функции ClickHouse, такие как s3, gcs и azureBlobStorage, для чтения файлов и загрузки данных в таблицы.
-
-
## Наборы данных {#datasets}
`Clickhouse` не поддерживает несколько наборов данных в одной базе данных, тогда как `dlt` по ряду причин основывается на концепции наборов данных. Чтобы `Clickhouse` корректно работал с `dlt`, имена таблиц, создаваемых `dlt` в вашей базе данных `Clickhouse`, будут начинаться с имени набора данных, разделённого настраиваемым `dataset_table_separator`. Кроме того, будет создана специальная сигнальная таблица, которая не содержит никаких данных и позволяет `dlt` распознавать, какие виртуальные наборы данных уже существуют в пункте назначения `Clickhouse`.
-
-
## Поддерживаемые форматы файлов {#supported-file-formats}
- jsonl — предпочтительный формат как для прямой загрузки, так и для промежуточного хранения (staging).
@@ -147,15 +135,11 @@ destination.clickhouse.credentials="clickhouse://dlt:Dlt*12345789234567@localhos
5. `ClickHouse` позволяет добавлять в уже заполненную таблицу столбцы с ограничением `NOT NULL`.
6. `ClickHouse` при определённых условиях может давать ошибки округления при использовании типов данных float или double. Если для вас недопустимы ошибки округления, обязательно используйте тип данных decimal. Например, загрузка значения 12.7001 в столбец типа double при формате файлов загрузчика, установленном в `jsonl`, предсказуемо приведёт к ошибке округления.
-
-
## Поддерживаемые подсказки для столбцов {#supported-column-hints}
ClickHouse поддерживает следующие подсказки для столбцов:
- `primary_key` — помечает столбец как часть первичного ключа. Для создания составного первичного ключа этой подсказкой можно пометить несколько столбцов.
-
-
## Табличный движок {#table-engine}
По умолчанию таблицы создаются с использованием табличного движка `ReplicatedMergeTree` в ClickHouse. Вы можете указать другой табличный движок с помощью параметра `table_engine_type` в адаптере ClickHouse:
@@ -175,7 +159,6 @@ clickhouse_adapter(my_resource, table_engine_type="merge_tree")
* `merge_tree` — создаёт таблицы с использованием движка `MergeTree`
* `replicated_merge_tree` (по умолчанию) — создаёт таблицы с использованием движка `ReplicatedMergeTree`
-
## Поддержка промежуточного хранилища {#staging-support}
ClickHouse поддерживает Amazon S3, Google Cloud Storage и Azure Blob Storage в качестве целевых промежуточных хранилищ файлов.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/fivetran/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/fivetran/index.md
index 9e0045831f5..42a5f69f358 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/fivetran/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/fivetran/index.md
@@ -13,13 +13,10 @@ keywords: ['fivetran', 'перемещение данных', 'etl', 'ClickHouse
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Fivetran и ClickHouse Cloud {#fivetran-and-clickhouse-cloud}
-
-
## Обзор {#overview}
[Fivetran](https://www.fivetran.com) — это платформа автоматизированного перемещения данных, обеспечивающая перенос данных из, в и между вашими облачными платформами для работы с данными.
@@ -42,8 +39,6 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
-
## ClickHouse Cloud в качестве назначения {#clickhouse-cloud-destination}
См. официальную документацию на сайте Fivetran:
@@ -51,8 +46,6 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
- [Обзор назначения ClickHouse](https://fivetran.com/docs/destinations/clickhouse)
- [Руководство по настройке назначения ClickHouse](https://fivetran.com/docs/destinations/clickhouse/setup-guide)
-
-
## Свяжитесь с нами {#contact-us}
Если у вас есть вопросы или предложения по новой функциональности, пожалуйста, создайте [запрос в службу поддержки](/about-us/support).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/nifi-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/nifi-and-clickhouse.md
index 1398184be7d..b6ad72f6d2b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/nifi-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/nifi-and-clickhouse.md
@@ -30,7 +30,6 @@ import nifi14 from '@site/static/images/integrations/data-ingestion/etl-tools/ni
import nifi15 from '@site/static/images/integrations/data-ingestion/etl-tools/nifi_15.png';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Подключение Apache NiFi к ClickHouse {#connect-apache-nifi-to-clickhouse}
@@ -42,27 +41,20 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
## Соберите сведения о подключении {#1-gather-your-connection-details}
-
-
## Загрузите и запустите Apache NiFi {#2-download-and-run-apache-nifi}
Для нового развертывания скачайте двоичный файл с https://nifi.apache.org/download.html и запустите NiFi командой `./bin/nifi.sh start`
-
-
## Загрузите драйвер ClickHouse JDBC {#3-download-the-clickhouse-jdbc-driver}
1. Перейдите на страницу релизов драйвера ClickHouse JDBC на GitHub и найдите последнюю версию JDBC-драйвера
2. В выбранной версии релиза нажмите «Show all xx assets» и найдите JAR-файл, содержащий ключевое слово `shaded` или `all`, например `clickhouse-jdbc-0.5.0-all.jar`
3. Поместите JAR-файл в каталог, доступный Apache NiFi, и запомните абсолютный путь к нему
-
-
## Добавьте службу контроллера `DBCPConnectionPool` и настройте её свойства {#4-add-dbcpconnectionpool-controller-service-and-configure-its-properties}
1. Чтобы настроить Controller Service в Apache NiFi, перейдите на страницу NiFi Flow Configuration, нажав кнопку с иконкой шестерёнки
@@ -107,8 +99,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
-
## Чтение из таблицы с помощью процессора `ExecuteSQL` {#5-read-from-a-table-using-the-executesql-processor}
1. Добавьте процессор `ExecuteSQL` вместе с соответствующими входящими и последующими процессорами
@@ -134,8 +124,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
-
## Запись в таблицу с использованием процессоров `MergeRecord` и `PutDatabaseRecord` {#6-write-to-a-table-using-mergerecord-and-putdatabaserecord-processor}
1. Для записи нескольких строк в одной операции вставки необходимо сначала объединить несколько записей в одну. Это можно сделать с помощью процессора `MergeRecord`
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/gcs/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/gcs/index.md
index 302eb98e87d..1d4badd8122 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/gcs/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/gcs/index.md
@@ -13,7 +13,6 @@ import Image from '@theme/IdealImage';
import GCS_examine_bucket_1 from '@site/static/images/integrations/data-ingestion/s3/GCS-examine-bucket-1.png';
import GCS_examine_bucket_2 from '@site/static/images/integrations/data-ingestion/s3/GCS-examine-bucket-2.png';
-
# Интеграция Google Cloud Storage с ClickHouse {#integrate-google-cloud-storage-with-clickhouse}
:::note
@@ -22,8 +21,6 @@ import GCS_examine_bucket_2 from '@site/static/images/integrations/data-ingestio
В ClickHouse GCS рассматривается как привлекательное решение для хранения данных для пользователей, стремящихся разделить хранение и вычисления. Для этого реализована поддержка использования GCS в качестве хранилища для движка MergeTree. Это позволит пользователям использовать масштабируемость и экономические преимущества GCS, а также производительность вставки и выполнения запросов движка MergeTree.
-
-
## MergeTree с хранилищем в GCS {#gcs-backed-mergetree}
### Создание диска {#creating-a-disk}
@@ -140,7 +137,6 @@ import GCS_examine_bucket_2 from '@site/static/images/integrations/data-ingestio
Полный список настроек, относящихся к этому описанию диска, можно найти [здесь](/engines/table-engines/mergetree-family/mergetree.md/#table_engine-mergetree-s3).
-
### Создание таблицы {#creating-a-table}
Если вы настроили диск на использование бакета с правом записи, вы сможете создать таблицу, как в примере ниже. Ради краткости мы используем подмножество столбцов набора данных NYC taxi и отправляем данные напрямую в таблицу на базе GCS:
@@ -189,7 +185,6 @@ SELECT passenger_count, avg(tip_amount) AS avg_tip, avg(total_amount) AS avg_amo
Дополнительные сведения о настройке потоков см. в разделе [Оптимизация производительности](../s3/index.md#s3-optimizing-performance).
-
## Использование Google Cloud Storage (GCS) {#gcs-multi-region}
:::tip
@@ -257,8 +252,6 @@ ClickHouse Keeper для работы требует двух узлов, поэ
- Скопируйте файл на место (`/etc/clickhouse-keeper/keeper_config.xml` на каждый из серверов Keeper)
- Отредактируйте `server_id` на каждой машине в соответствии с ее номером записи в `raft_configuration`
-
-
```xml title=/etc/clickhouse-keeper/keeper_config.xml
@@ -352,7 +345,6 @@ ClickHouse Keeper для работы требует двух узлов, поэ
* Отредактируйте файл, указав ваши имена хостов, и убедитесь, что они корректно разрешаются с узлов серверов ClickHouse
-
```xml title=/etc/clickhouse-server/config.d/remote-servers.xml
@@ -452,7 +444,6 @@ sudo systemctl status clickhouse-keeper
Отправляйте команды в ClickHouse Keeper с помощью `netcat`. Например, команда `mntr` возвращает состояние кластера ClickHouse Keeper. Если выполнить эту команду на каждом узле Keeper, вы увидите, что один из них является лидером, а два других — ведомыми:
-
```bash
echo mntr | nc localhost 9181
```
@@ -561,7 +552,6 @@ is_broken: 0
cache_path:
```
-
3 строки в наборе. Прошло: 0,002 сек.
````
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/dataflow.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/dataflow.md
index 27254572a12..78753c990c0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/dataflow.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/dataflow.md
@@ -10,7 +10,6 @@ keywords: ['Google Dataflow ClickHouse', 'Dataflow ClickHouse integration', 'Apa
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Интеграция Google Dataflow с ClickHouse {#integrating-google-dataflow-with-clickhouse}
@@ -22,8 +21,6 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
- [Java runner](#1-java-runner)
- [Готовые шаблоны](#2-predefined-templates)
-
-
## Java runner {#1-java-runner}
[Java runner](./java-runner) позволяет реализовывать пользовательские конвейеры Dataflow с использованием интеграции Apache Beam SDK `ClickHouseIO`. Такой подход обеспечивает полную гибкость и контроль над логикой конвейера, позволяя адаптировать ETL‑процесс под конкретные требования.
Однако этот вариант требует знаний программирования на Java и знакомства с фреймворком Apache Beam.
@@ -33,8 +30,6 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
- Оптимален для сложных или нетривиальных сценариев использования.
- Требует написания кода и понимания API Beam.
-
-
## Предопределённые шаблоны {#2-predefined-templates}
ClickHouse предлагает [предопределённые шаблоны](./templates), разработанные для конкретных сценариев использования, например импорта данных из BigQuery в ClickHouse. Эти шаблоны готовы к использованию и упрощают процесс интеграции, что делает их отличным выбором для пользователей, предпочитающих решение без написания кода.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/java-runner.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/java-runner.md
index 83e9ac6257b..14a7bfb9adf 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/java-runner.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/java-runner.md
@@ -10,15 +10,12 @@ keywords: ['Dataflow Java Runner', 'Google Dataflow ClickHouse', 'Apache Beam Ja
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Java-раннер Dataflow {#dataflow-java-runner}
Java-раннер Dataflow позволяет выполнять пользовательские конвейеры Apache Beam в службе Dataflow в Google Cloud. Такой подход обеспечивает максимальную гибкость и хорошо подходит для сложных ETL‑процессов.
-
-
## Как это работает {#how-it-works}
1. **Реализация конвейера**
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/templates.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/templates.md
index b688aea96f5..05127912bdc 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/templates.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/templates.md
@@ -10,30 +10,23 @@ keywords: ['google dataflow', 'gcp', 'конвейер данных', 'шабл
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Шаблоны Google Dataflow {#google-dataflow-templates}
Шаблоны Google Dataflow предоставляют удобный способ запускать готовые к использованию конвейеры обработки данных без необходимости писать собственный код. Эти шаблоны предназначены для упрощения распространённых задач обработки данных и построены на основе [Apache Beam](https://beam.apache.org/), используя коннекторы, такие как `ClickHouseIO`, для бесшовной интеграции с базами данных ClickHouse. Запуская эти шаблоны на Google Dataflow, вы можете обеспечить высокомасштабируемую распределённую обработку данных при минимальных затратах усилий.
-
-
## Зачем использовать шаблоны Dataflow? {#why-use-dataflow-templates}
- **Простота использования**: Шаблоны устраняют необходимость писать код, предоставляя предварительно настроенные конвейеры обработки данных, адаптированные под конкретные сценарии.
- **Масштабируемость**: Dataflow обеспечивает эффективное масштабирование вашего конвейера, обрабатывая большие объёмы данных за счёт распределённой обработки.
- **Экономичность**: Вы платите только за фактически потреблённые ресурсы и можете оптимизировать затраты на выполнение конвейера.
-
-
## Как запускать шаблоны Dataflow {#how-to-run-dataflow-templates}
На данный момент официальный шаблон ClickHouse доступен через консоль Google Cloud, CLI или REST API Dataflow.
Подробные пошаговые инструкции см. в руководстве [Google Dataflow Run Pipeline From a Template Guide](https://cloud.google.com/dataflow/docs/templates/provided-templates).
-
-
## Список шаблонов ClickHouse {#list-of-clickhouse-templates}
* [BigQuery в ClickHouse](./templates/bigquery-to-clickhouse)
* [GCS в ClickHouse](https://github.com/ClickHouse/DataflowTemplates/issues/3) (скоро)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/templates/bigquery-to-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/templates/bigquery-to-clickhouse.md
index 3f3ef364b30..40338b3770a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/templates/bigquery-to-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/google-dataflow/templates/bigquery-to-clickhouse.md
@@ -18,7 +18,6 @@ import dataflow_extended_template_form from '@site/static/images/integrations/da
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-
# Шаблон Dataflow BigQuery to ClickHouse {#dataflow-bigquery-to-clickhouse-template}
Шаблон BigQuery to ClickHouse представляет собой пакетный конвейер обработки данных, который выполняет приём данных из таблицы BigQuery в таблицу ClickHouse.
@@ -26,16 +25,12 @@ import TabItem from '@theme/TabItem';
-
-
## Требования к конвейеру {#pipeline-requirements}
* Исходная таблица BigQuery должна существовать.
* Целевая таблица ClickHouse должна существовать.
* Хост ClickHouse должен быть доступен с рабочих машин Dataflow.
-
-
## Параметры шаблона {#template-parameters}
@@ -60,14 +55,10 @@ import TabItem from '@theme/TabItem';
| `queryTempDataset` | Укажите существующий набор данных, в котором будет создана временная таблица для хранения результатов запроса. Например, `temp_dataset`. | | |
| `KMSEncryptionKey` | При чтении из BigQuery с использованием источника-запроса используйте этот ключ Cloud KMS для шифрования всех создаваемых временных таблиц. Например, `projects/your-project/locations/global/keyRings/your-keyring/cryptoKeys/your-key`. | | |
-
-
:::note
Значения по умолчанию для всех параметров `ClickHouseIO` описаны в разделе [коннектора Apache Beam `ClickHouseIO`](/integrations/apache-beam#clickhouseiowrite-parameters)
:::
-
-
## Схема исходных и целевых таблиц {#source-and-target-tables-schema}
Чтобы эффективно загрузить набор данных BigQuery в ClickHouse, конвейер выполняет процесс вывода схемы столбцов, состоящий из следующих этапов:
@@ -81,8 +72,6 @@ import TabItem from '@theme/TabItem';
При этом ваш набор данных BigQuery (таблица или результат запроса) должен иметь точно такие же имена столбцов, как и целевая таблица ClickHouse.
:::
-
-
## Отображение типов данных {#data-types-mapping}
Типы BigQuery преобразуются на основе определения вашей таблицы ClickHouse. Поэтому в приведённой выше таблице перечислено
@@ -98,8 +87,6 @@ import TabItem from '@theme/TabItem';
| [**Numeric - Integer Types**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#numeric_types) | [**Integer Types**](../../../sql-reference/data-types/int-uint) | В BigQuery все типы Int (`INT`, `SMALLINT`, `INTEGER`, `BIGINT`, `TINYINT`, `BYTEINT`) являются синонимами типа `INT64`. Рекомендуется задать в ClickHouse корректный размер целочисленного типа, так как шаблон будет преобразовывать столбец на основе заданного типа столбца (`Int8`, `Int16`, `Int32`, `Int64`). Шаблон также будет преобразовывать беззнаковые целочисленные типы, если они используются в таблице ClickHouse (`UInt8`, `UInt16`, `UInt32`, `UInt64`). |
| [**Numeric - Float Types**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#numeric_types) | [**Float Types**](../../../sql-reference/data-types/float) | Поддерживаемые типы ClickHouse: `Float32` и `Float64`. |
-
-
## Запуск шаблона {#running-the-template}
Шаблон BigQuery to ClickHouse доступен для выполнения через Google Cloud CLI.
@@ -188,12 +175,8 @@ job:
Перейдите на вкладку [Dataflow Jobs](https://console.cloud.google.com/dataflow/jobs) в Google Cloud Console,
чтобы отслеживать статус задания. Там вы найдете подробную информацию о задании, включая прогресс и возможные ошибки:
-
-
-
-
## Устранение неполадок {#troubleshooting}
### Ошибка Memory limit (total) exceeded (code 241) {#code-241-dbexception-memory-limit-total-exceeded}
@@ -203,8 +186,6 @@ job:
* Увеличьте ресурсы экземпляра: обновите сервер ClickHouse до более мощного экземпляра с большим объёмом памяти, чтобы справляться с нагрузкой на обработку данных.
* Уменьшите размер пакета: настройте размер пакета в конфигурации задания Dataflow так, чтобы отправлять меньшие порции данных в ClickHouse, снижая потребление памяти на пакет. Эти изменения помогают сбалансировать использование ресурсов во время ингестии данных.
-
-
## Исходный код шаблона {#template-source-code}
Исходный код шаблона доступен в форке репозитория [DataflowTemplates](https://github.com/ClickHouse/DataflowTemplates) от ClickHouse.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/confluent/confluent-cloud.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/confluent/confluent-cloud.md
index 24d00e76ecb..0ddee54200f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/confluent/confluent-cloud.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/confluent/confluent-cloud.md
@@ -15,7 +15,6 @@ integration:
import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_gather_your_details_http.mdx';
import Image from '@theme/IdealImage';
-
# Интеграция Confluent Cloud с ClickHouse {#integrating-confluent-cloud-with-clickhouse}
@@ -30,15 +29,11 @@ import Image from '@theme/IdealImage';
-
-
## Предварительные требования {#prerequisites}
Предполагается, что вы знакомы со следующим:
* [ClickHouse Connector Sink](../kafka-clickhouse-connect-sink.md)
* Confluent Cloud
-
-
## Официальный коннектор Kafka от ClickHouse для Confluent Cloud {#the-official-kafka-connector-from-clickhouse-with-confluent-cloud}
#### Создание топика {#create-a-topic}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/confluent/custom-connector.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/confluent/custom-connector.md
index 6195318f331..aed29e83993 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/confluent/custom-connector.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/confluent/custom-connector.md
@@ -12,7 +12,6 @@ import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/curr
import Image from '@theme/IdealImage';
import AddCustomConnectorPlugin from '@site/static/images/integrations/data-ingestion/kafka/confluent/AddCustomConnectorPlugin.png';
-
# Интеграция платформы Confluent с ClickHouse {#integrating-confluent-platform-with-clickhouse}
@@ -27,15 +26,11 @@ import AddCustomConnectorPlugin from '@site/static/images/integrations/data-inge
-
-
## Предварительные требования {#prerequisites}
Мы исходим из того, что вы знакомы со следующим:
* [ClickHouse Connector Sink](../kafka-clickhouse-connect-sink.md)
* Платформой Confluent и [пользовательскими коннекторами (Custom Connectors)](https://docs.confluent.io/cloud/current/connectors/bring-your-connector/overview.html).
-
-
## Официальный коннектор Kafka от ClickHouse для Confluent Platform {#the-official-kafka-connector-from-clickhouse-with-confluent-platform}
### Установка на Confluent Platform {#installing-on-confluent-platform}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/index.md
index ce81f40c017..e0bb991b8d7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/index.md
@@ -13,14 +13,10 @@ integration:
- category: 'data_ingestion'
---
-
-
# Интеграция Kafka с ClickHouse {#integrating-kafka-with-clickhouse}
[Apache Kafka](https://kafka.apache.org/) — это распределённая платформа потоковой передачи событий с открытым исходным кодом, используемая тысячами компаний для высокопроизводительных конвейеров данных, потоковой аналитики, интеграции данных и критически важных для бизнеса приложений. ClickHouse предоставляет несколько способов **чтения из** и **записи в** Kafka и другие брокеры, совместимые с Kafka API (например, Redpanda, Amazon MSK).
-
-
## Доступные варианты {#available-options}
Выбор подходящего варианта для вашего сценария использования зависит от нескольких факторов, включая тип развертывания ClickHouse, направление потока данных и эксплуатационные требования.
@@ -91,8 +87,6 @@ Kafka Connect — это open source-фреймворк, который рабо
#### Начало работы {#kafka-table-engine-getting-started}
-
-
Чтобы начать работу с движком таблиц Kafka, см. [справочную документацию](./kafka-table-engine.md).
### Выбор варианта {#choosing-an-option}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-clickhouse-connect-sink.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-clickhouse-connect-sink.md
index 1395a258649..76b824b9d7c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-clickhouse-connect-sink.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-clickhouse-connect-sink.md
@@ -10,7 +10,6 @@ keywords: ['Приёмник ClickHouse Kafka Connect', 'коннектор Kafk
import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_gather_your_details_http.mdx';
-
# ClickHouse Kafka Connect Sink {#clickhouse-kafka-connect-sink}
:::note
@@ -92,7 +91,6 @@ schemas.enable=false
Полная таблица параметров конфигурации:
-
| Property Name | Description | Default Value |
|-------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|
| `hostname` (Required) | Имя хоста или IP-адрес сервера | N/A |
@@ -124,8 +122,6 @@ schemas.enable=false
### Целевые таблицы {#target-tables}
-
-
ClickHouse Connect Sink читает сообщения из топиков Kafka и записывает их в соответствующие таблицы. ClickHouse Connect Sink записывает данные в уже существующие таблицы. Пожалуйста, убедитесь, что целевая таблица с подходящей схемой создана в ClickHouse до начала вставки данных в неё.
Для каждого топика требуется отдельная целевая таблица в ClickHouse. Имя целевой таблицы должно совпадать с именем исходного топика.
@@ -205,7 +201,6 @@ ClickHouse Connect Sink читает сообщения из топиков Kafk
Коннектор может потреблять данные из нескольких топиков.
-
```json
{
"name": "clickhouse-connect",
@@ -340,7 +335,6 @@ com.clickhouse:type=ClickHouseKafkaConnector,name=SinkTask{id}
* `byte-rate`: Средняя скорость отправки данных в байтах в секунду
* `compression-rate`: Достигнутый коэффициент сжатия
-
**Метрики на уровне партиций:**
- `records-sent-total`: Общее количество записей, отправленных в партицию
- `bytes-sent-total`: Общее количество байт, отправленных в партицию
@@ -430,8 +424,6 @@ com.clickhouse:type=ClickHouseKafkaConnector,name=SinkTask{id}
- Стандартные настройки коннектора уже удовлетворяют требованиям по пропускной способности
- Ваш кластер ClickHouse без труда справляется с входящей нагрузкой
-
-
#### Понимание потока данных {#understanding-the-data-flow}
Перед началом настройки важно понять, как данные проходят через коннектор:
@@ -467,24 +459,17 @@ Kafka Connect (фреймворк) выбирает сообщения из то
Для оптимальной работы с ClickHouse ориентируйтесь на более крупные пакеты:
-
-
```properties
# Увеличить количество записей за один опрос {#increase-the-number-of-records-per-poll}
consumer.max.poll.records=5000
```
-
# Увеличить размер выборки раздела до 5 МБ {#increase-the-partition-fetch-size-5-mb}
consumer.max.partition.fetch.bytes=5242880
-
-
# Необязательно: увеличьте минимальный размер получаемых данных, чтобы дожидаться большего объёма (1 МБ) {#optional-increase-minimum-fetch-size-to-wait-for-more-data-1-mb}
consumer.fetch.min.bytes=1048576
-
-
# Необязательно: уменьшите время ожидания, если задержка критична {#optional-reduce-wait-time-if-latency-is-critical}
consumer.fetch.max.wait.ms=300
@@ -581,7 +566,6 @@ consumer.fetch.max.wait.ms=300
При использовании `exactlyOnce=true` с асинхронными вставками:
-
```json
{
"config": {
@@ -685,7 +669,6 @@ SETTINGS
**Распространённые проблемы с производительностью**:
-
| Симптом | Возможная причина | Решение |
| --------------------------------- | ------------------------------------ | ------------------------------------------------------------------ |
| Большое отставание consumer'а | Слишком маленькие батчи | Увеличьте `max.poll.records`, включите async inserts |
@@ -783,7 +766,6 @@ SETTINGS
* `UnknownHostException` — выбрасывается, когда не удаётся разрешить имя хоста.
* `IOException` — выбрасывается, когда возникает проблема с сетью.
-
#### "Все мои данные пустые/нули" {#all-my-data-is-blankzeroes}
Скорее всего, поля в ваших данных не соответствуют полям в таблице — это особенно часто встречается с CDC (фиксацией изменений данных) и форматом Debezium.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-connect-jdbc.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-connect-jdbc.md
index 6a808838d22..4da7513d3a7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-connect-jdbc.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-connect-jdbc.md
@@ -10,7 +10,6 @@ keywords: ['kafka', 'kafka connect', 'jdbc', 'интеграция', 'конве
import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_gather_your_details_http.mdx';
-
# JDBC connector {#jdbc-connector}
:::note
@@ -54,8 +53,6 @@ JDBC Connector распространяется под [Confluent Community Lice
Следующие параметры важны для использования JDBC-коннектора с ClickHouse. Полный список параметров можно найти [здесь](https://docs.confluent.io/kafka-connect-jdbc/current/sink-connector/index.html):
-
-
* `_connection.url_` - должен иметь формат `jdbc:clickhouse://<clickhouse host>:<clickhouse http port>/<target database>`
* `connection.user` - пользователь с правами записи в целевую базу данных
* `table.name.format` - таблица ClickHouse, в которую выполняется вставка данных. Таблица должна уже существовать.
@@ -84,8 +81,6 @@ JDBC Connector распространяется под [Confluent Community Lice
Убедитесь, что таблица создана, удалив её, если она уже существует из предыдущих примеров. Ниже приведён пример, совместимый с уменьшенным набором данных GitHub. Обратите внимание на отсутствие каких-либо типов Array или Map, которые в настоящее время не поддерживаются:
-
-
```sql
CREATE TABLE github
(
@@ -150,7 +145,6 @@ SELECT count() FROM default.github;
### Рекомендуемые дополнительные материалы {#recommended-further-reading}
-
* [Параметры конфигурации приёмника Kafka (Kafka Sink Configuration Parameters)](https://docs.confluent.io/kafka-connect-jdbc/current/sink-connector/sink_config_options.html#sink-config-options)
* [Подробный разбор Kafka Connect – JDBC Source Connector (Kafka Connect Deep Dive – JDBC Source Connector)](https://www.confluent.io/blog/kafka-connect-deep-dive-jdbc-source-connector)
* [Подробный разбор Kafka Connect JDBC Sink: работа с первичными ключами (Kafka Connect JDBC Sink deep-dive: Working with Primary Keys)](https://rmoff.net/2021/03/12/kafka-connect-jdbc-sink-deep-dive-working-with-primary-keys/)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-table-engine-named-collections.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-table-engine-named-collections.md
index 026bb8616cb..11452a58d38 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-table-engine-named-collections.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/kafka-table-engine-named-collections.md
@@ -6,12 +6,8 @@ slug: /integrations/data-ingestion/kafka/kafka-table-engine-named-collections
doc_type: 'guide'
---
-
-
# Интеграция ClickHouse с Kafka с использованием именованных коллекций {#integrating-clickhouse-with-kafka-using-named-collections}
-
-
## Введение {#introduction}
В этом руководстве мы рассмотрим, как подключить ClickHouse к Kafka с использованием именованных коллекций. Использование файла конфигурации для именованных коллекций дает несколько преимуществ:
@@ -21,8 +17,6 @@ doc_type: 'guide'
Это руководство было проверено на Apache Kafka 3.4.1 и ClickHouse 24.5.1.
-
-
## Предварительные условия {#assumptions}
В этом документе предполагается, что у вас уже есть:
@@ -30,8 +24,6 @@ doc_type: 'guide'
2. Развернутый и запущенный кластер ClickHouse.
3. Базовые знания SQL и опыт работы с конфигурациями ClickHouse и Kafka.
-
-
## Предварительные требования {#prerequisites}
Убедитесь, что пользователь, создающий именованную коллекцию, обладает необходимыми правами доступа:
@@ -45,7 +37,6 @@ doc_type: 'guide'
См. руководство [User Management Guide](./../../../guides/sre/user-management/index.md) для получения подробной информации о включении управления доступом.
-
## Конфигурация {#configuration}
Добавьте следующий раздел в файл конфигурации ClickHouse `config.xml`:
@@ -106,7 +97,6 @@ doc_type: 'guide'
3. Раздел внутри `` содержит расширенные параметры конфигурации Kafka. Дополнительные параметры смотрите в [документации по конфигурации librdkafka](https://github.com/confluentinc/librdkafka/blob/master/CONFIGURATION.md).
4. В этом примере используется протокол безопасности `SASL_SSL` и механизм `PLAIN`. При необходимости скорректируйте эти параметры в соответствии с конфигурацией вашего кластера Kafka.
-
## Создание таблиц и баз данных {#creating-tables-and-databases}
Создайте необходимые базы данных и таблицы в вашем кластере ClickHouse. Если вы запускаете ClickHouse на отдельном узле, опустите часть SQL-команды, относящуюся к кластеру, и используйте любой другой движок вместо `ReplicatedMergeTree`.
@@ -193,7 +183,6 @@ SELECT
FROM second_kafka_table;
```
-
## Проверка настройки {#verifying-the-setup}
Теперь в ваших кластерах Kafka должны появиться соответствующие группы потребителей:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/msk/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/msk/index.md
index 890620dfe97..15a12942ab5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/msk/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/kafka/msk/index.md
@@ -28,16 +28,14 @@ import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/curr
-> Примечание: Политика, показанная в видео, является избыточно разрешительной и предназначена только для быстрого начала работы. См. ниже рекомендации по настройке IAM по принципу наименьших привилегий.
-
-
+> Примечание: политика доступа, показанная в видео, является слишком разрешительной и предназначена только для быстрого начала работы. См. ниже рекомендации по настройке IAM по принципу наименьших привилегий.
## Предварительные требования {#prerequisites}
-Мы предполагаем:
-* вы знакомы с [ClickHouse Connector Sink](../kafka-clickhouse-connect-sink.md), Amazon MSK и MSK Connectors. Рекомендуем руководство Amazon MSK [Getting Started guide](https://docs.aws.amazon.com/msk/latest/developerguide/getting-started.html) и [MSK Connect guide](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect.html).
-* брокер MSK доступен из публичной сети. См. раздел [Public Access](https://docs.aws.amazon.com/msk/latest/developerguide/public-access.html) в Developer Guide.
+Мы предполагаем:
+* вы знакомы с [ClickHouse Connector Sink](../kafka-clickhouse-connect-sink.md),
+* вы знакомы с Amazon MSK и коннекторами MSK. Рекомендуем руководства Amazon MSK: [Getting Started guide](https://docs.aws.amazon.com/msk/latest/developerguide/getting-started.html) и [MSK Connect guide](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect.html).
## Официальный коннектор Kafka от ClickHouse для Amazon MSK {#the-official-kafka-connector-from-clickhouse-with-amazon-msk}
@@ -184,4 +182,4 @@ consumer.max.partition.fetch.bytes=1048576
1. **Проверьте подключение (краткий чек‑лист):**
1. В среде коннектора убедитесь, что разрешается DNS-имя bootstrap для MSK и выполняется подключение по TLS к порту брокера.
1. Установите TLS-подключение к ClickHouse на порт 9440 (или 8443 для HTTPS).
- 1. Если используются сервисы AWS (Glue/Secrets Manager), разрешите исходящий трафик к их конечным точкам.
+ 1. Если используются сервисы AWS (Glue/Secrets Manager), разрешите исходящий трафик к их конечным точкам.
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/s3/performance.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/s3/performance.md
index cd84f937b1a..790901b31c7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/s3/performance.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/s3/performance.md
@@ -25,7 +25,6 @@ import HardwareSize from '@site/static/images/integrations/data-ingestion/s3/har
Прежде чем настраивать число потоков и размеры блоков для улучшения производительности вставки, мы рекомендуем сначала разобраться в механизме вставки данных в S3. Если вы уже знакомы с этим механизмом или хотите получить только краткие рекомендации, переходите сразу к нашему примеру [ниже](/integrations/s3/performance#example-dataset).
-
## Механизм вставки (одиночный узел) {#insert-mechanics-single-node}
На производительность и использование ресурсов механизма вставки данных ClickHouse (для одиночного узла), помимо конфигурации оборудования, влияют два основных фактора: **размер блока вставки** и **параллелизм вставки**.
@@ -81,7 +80,6 @@ ClickHouse будет постоянно [сливать части](https://cli
② Объедините загруженные блоки в памяти в один более крупный блок.
```
-
③ Запишите объединённый блок в новый part на диск.
Перейдите к шагу ①
@@ -118,13 +116,10 @@ ClickHouse будет постоянно [сливать части](https://cli
Для функции и таблицы s3 параллельная загрузка отдельного файла определяется значениями [max_download_threads](https://clickhouse.com/codebrowser/ClickHouse/src/Core/Settings.h.html#DB::SettingsTraits::Data::max_download_threads) и [max_download_buffer_size](https://clickhouse.com/codebrowser/ClickHouse/src/Core/Settings.h.html#DB::SettingsTraits::Data::max_download_buffer_size). Файлы будут загружаться параллельно только в том случае, если их размер больше, чем `2 * max_download_buffer_size`. По умолчанию значение `max_download_buffer_size` установлено в 10MiB. В некоторых случаях вы можете безопасно увеличить размер этого буфера до 50 MB (`max_download_buffer_size=52428800`), чтобы гарантировать, что каждый файл загружается одним потоком. Это может сократить время, которое каждый поток тратит на обращения к S3, и таким образом уменьшить время ожидания S3. Кроме того, для файлов, слишком маленьких для параллельного чтения, для увеличения пропускной способности ClickHouse автоматически предзагружает данные, предварительно читая такие файлы асинхронно.
-
## Измерение производительности {#measuring-performance}
Оптимизация производительности запросов с использованием табличных функций S3 необходима как при выполнении запросов к данным «на месте», то есть при ad‑hoc‑запросах, когда используются только вычислительные ресурсы ClickHouse, а данные остаются в S3 в исходном формате, так и при вставке данных из S3 в таблицу ClickHouse на движке MergeTree. Если не указано иное, следующие рекомендации применимы к обоим сценариям.
-
-
## Влияние размеров аппаратной конфигурации {#impact-of-hardware-size}
@@ -137,14 +132,10 @@ ClickHouse будет постоянно [сливать части](https://cli
и, следовательно, общую пропускную способность приёма данных.
-
-
## Локальность региона {#region-locality}
Убедитесь, что ваши бакеты находятся в том же регионе, что и экземпляры ClickHouse. Эта несложная оптимизация может значительно повысить производительность (пропускную способность), особенно если вы разворачиваете экземпляры ClickHouse в инфраструктуре AWS.
-
-
## Форматы {#formats}
ClickHouse может читать файлы, хранящиеся в бакетах S3, в [поддерживаемых форматах](/interfaces/formats#formats-overview) с помощью функции `s3` и движка `S3`. При чтении «сырых» файлов некоторые из этих форматов имеют определённые преимущества:
@@ -155,8 +146,6 @@ ClickHouse может читать файлы, хранящиеся в баке
* Каждый формат сжатия имеет свои преимущества и недостатки, обычно балансируя уровень сжатия и скорость, смещая приоритет в сторону производительности сжатия или распаковки. При сжатии «сырых» файлов, таких как CSV или TSV, lz4 обеспечивает самую быструю распаковку, жертвуя степенью сжатия. Gzip, как правило, сжимает лучше, но ценой немного более медленного чтения. Xz идёт ещё дальше, обычно обеспечивая наилучшее сжатие при самой медленной скорости сжатия и распаковки. При экспорте Gz и lz4 обеспечивают сопоставимую скорость сжатия. Соотнесите это со скоростью вашего сетевого подключения. Любой выигрыш от более быстрой распаковки или сжатия легко будет нивелирован медленным подключением к вашим бакетам S3.
* Для форматов, таких как Native или Parquet, сжатие обычно не оправдывает накладные расходы. Любая экономия места, скорее всего, будет минимальной, поскольку эти форматы по своей сути компактны. Время, затраченное на сжатие и распаковку, редко компенсирует время сетевой передачи, особенно учитывая, что S3 глобально доступен с высокой пропускной способностью сети.
-
-
## Пример набора данных {#example-dataset}
Чтобы продемонстрировать дальнейший потенциал оптимизации, в качестве примера мы будем использовать [публикации из набора данных Stack Overflow](/data-modeling/schema-design#stack-overflow-dataset), оптимизируя как производительность запросов, так и скорость вставки этих данных.
@@ -202,7 +191,6 @@ FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow
При чтении результатов запросов начальный запрос может казаться более медленным, чем повторный запуск того же запроса. Это можно объяснить как собственным кэшированием S3, так и [ClickHouse Schema Inference Cache](/operations/system-tables/schema_inference_cache). Этот кэш сохраняет выведенную схему для файлов, что позволяет пропустить этап вывода схемы при последующих обращениях и, таким образом, сократить время выполнения запроса.
:::
-
## Использование потоков для чтения {#using-threads-for-reads}
Производительность чтения из S3 масштабируется линейно с количеством ядер при условии, что вас не ограничивает пропускная способность сети или локальный ввод-вывод. Увеличение числа потоков также приводит к дополнительным затратам по памяти, о которых пользователям следует знать. Следующие параметры можно изменить для потенциального улучшения пропускной способности чтения:
@@ -249,7 +237,6 @@ SETTINGS max_threads = 64
Пиковое использование памяти: 639.99 МиБ.
```
-
## Настройка потоков и размера блоков для вставок {#tuning-threads-and-block-size-for-inserts}
Чтобы достичь максимальной производительности ингестии, необходимо выбрать (1) размер блока вставки и (2) соответствующий уровень параллелизма вставки на основе (3) количества доступных ядер CPU и объёма доступной RAM. Вкратце:
@@ -287,7 +274,6 @@ FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow
Как видно, настройка этих параметров повысила скорость вставки более чем на `33%`. Предлагаем читателю попытаться ещё больше повысить производительность одиночного узла.
-
## Масштабирование по ресурсам и узлам {#scaling-with-resources-and-nodes}
Масштабирование по ресурсам и узлам применяется как к запросам на чтение, так и к запросам на вставку.
@@ -365,7 +351,6 @@ FROM s3Cluster('default', 'https://datasets-documentation.s3.eu-west-3.amazonaws
0 rows in set. Elapsed: 171.202 sec. Processed 59.82 million rows, 24.03 GB (349.41 тыс. строк/с., 140.37 МБ/с.)
```
-
Читатели заметят, что при чтении файлов улучшилась производительность запросов `SELECT`, но не операций `INSERT`. По умолчанию, хотя операции чтения распределяются с использованием `s3Cluster`, вставки выполняются на инициирующем узле. Это означает, что сами чтения выполняются на каждом узле, но полученные строки будут направлены на инициирующий узел для дальнейшего распределения. В сценариях с высокой пропускной способностью это может стать узким местом. Чтобы решить эту проблему, установите параметр `parallel_distributed_insert_select` для функции `s3cluster`.
Установка значения `parallel_distributed_insert_select=2` гарантирует, что `SELECT` и `INSERT` будут выполняться на каждом шарде из/в базовую таблицу движка Distributed на каждом узле.
@@ -382,7 +367,6 @@ Peak memory usage: 11.75 GiB.
Как и ожидалось, это снижает производительность вставки в три раза.
-
## Дополнительная настройка {#further-tuning}
### Отключение дедупликации {#disable-de-duplication}
@@ -416,7 +400,6 @@ SETTINGS parallel_distributed_insert_select = 2, min_insert_block_size_rows = 0,
0 строк в наборе. Прошло: 49.688 сек. Обработано 59.82 млн строк, 24.03 ГБ (1.20 млн строк/сек., 483.66 МБ/сек.)
```
-
## Прочие заметки {#misc-notes}
* При ограниченном объёме памяти рассмотрите возможность уменьшить значение `max_insert_delayed_streams_for_parallel_write` при вставке данных в S3.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/astrato-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/astrato-and-clickhouse.md
index 0b170aec089..552b3cdf2af 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/astrato-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/astrato-and-clickhouse.md
@@ -25,15 +25,12 @@ import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/curr
import Image from '@theme/IdealImage';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Подключение Astrato к ClickHouse {#connecting-astrato-to-clickhouse}
Astrato использует технологию Pushdown SQL для прямого выполнения запросов к ClickHouse Cloud или локальным развертываниям ClickHouse. Это означает, что вы можете получать доступ ко всем необходимым данным, опираясь на ведущую в отрасли производительность ClickHouse.
-
-
## Необходимые данные для подключения {#connection-data-required}
При настройке подключения к данным вам потребуются:
@@ -44,8 +41,6 @@ Astrato использует технологию Pushdown SQL для прямо
-
-
## Создание подключения данных к ClickHouse {#creating-the-data-connection-to-clickhouse}
- В боковой панели выберите **Data** и перейдите на вкладку **Data Connection**
@@ -75,8 +70,6 @@ Astrato использует технологию Pushdown SQL для прямо
Если создаётся дубликат, к имени источника данных добавляется метка времени (timestamp).
:::
-
-
## Создание семантической модели / представления данных {#creating-a-semantic-model--data-view}
В редакторе представления данных (Data View) вы увидите все свои таблицы и схемы (Schemas) в ClickHouse. Выберите нужные, чтобы начать.
@@ -93,8 +86,6 @@ Astrato использует технологию Pushdown SQL для прямо
-
-
## Создание дашборда {#creating-a-dashboard}
Всего за несколько шагов вы можете построить свой первый график в Astrato.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/chartbrew-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/chartbrew-and-clickhouse.md
index 0cb3299b9a6..0c9ad03aa42 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/chartbrew-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/chartbrew-and-clickhouse.md
@@ -22,15 +22,12 @@ import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/curr
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
import Image from '@theme/IdealImage';
-
# Подключение Chartbrew к ClickHouse {#connecting-chartbrew-to-clickhouse}
[Chartbrew](https://chartbrew.com) — это платформа визуализации данных, которая позволяет пользователям создавать дашборды и мониторить данные в режиме реального времени. Она поддерживает различные источники данных, включая ClickHouse, и предоставляет интерфейс без необходимости писать код для создания графиков и отчётов.
-
-
## Цель {#goal}
В этом руководстве вы подключите Chartbrew к ClickHouse, выполните SQL-запрос и создадите визуализацию. В конце ваша панель мониторинга может выглядеть примерно так:
@@ -41,14 +38,10 @@ import Image from '@theme/IdealImage';
Если у вас нет набора данных для работы, вы можете добавить один из примеров. В этом руководстве используется набор данных [UK Price Paid](/getting-started/example-datasets/uk-price-paid.md).
:::
-
-
## 1. Соберите параметры подключения {#1-gather-your-connection-details}
-
-
## 2. Подключение Chartbrew к ClickHouse {#2-connect-chartbrew-to-clickhouse}
1. Войдите в [Chartbrew](https://chartbrew.com/login) и перейдите на вкладку **Connections**.
@@ -72,8 +65,6 @@ import Image from '@theme/IdealImage';
-
-
## 3. Создайте набор данных и выполните SQL-запрос {#3-create-a-dataset-and-run-a-sql-query}
1. Нажмите кнопку **Create dataset** или перейдите на вкладку **Datasets**, чтобы создать набор данных.
@@ -100,7 +91,6 @@ ORDER BY year;
После того как данные будут получены, нажмите **Configure dataset**, чтобы настроить параметры визуализации.
-
## 4. Создание визуализации {#4-create-a-visualization}
1. Определите метрику (числовое значение) и размерность (категориальное значение) для визуализации.
@@ -114,8 +104,6 @@ ORDER BY year;
-
-
## 5. Автоматизация обновления данных {#5-automate-data-updates}
Чтобы панель мониторинга всегда отображала актуальные данные, вы можете запланировать автоматическое обновление:
@@ -126,8 +114,6 @@ ORDER BY year;
-
-
## Дополнительные материалы {#learn-more}
Более подробную информацию можно найти в статье в блоге о [Chartbrew и ClickHouse](https://chartbrew.com/blog/visualizing-clickhouse-data-with-chartbrew-a-step-by-step-guide/).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/databrain-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/databrain-and-clickhouse.md
index d350188126f..8a220f15bce 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/databrain-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/databrain-and-clickhouse.md
@@ -18,7 +18,6 @@ import databrain_06 from '@site/static/images/integrations/data-visualization/da
import Image from '@theme/IdealImage';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Подключение Databrain к ClickHouse {#connecting-databrain-to-clickhouse}
@@ -31,16 +30,12 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
В этом руководстве пошагово описано, как подключить Databrain к вашему инстансу ClickHouse.
-
-
## Предварительные требования {#pre-requisites}
- База данных ClickHouse, развернутая как в вашей собственной инфраструктуре, так и в [ClickHouse Cloud](https://clickhouse.com/).
- [Учетная запись Databrain](https://app.usedatabrain.com/users/sign-up).
- Рабочее пространство Databrain для подключения вашего источника данных.
-
-
## Шаги по подключению Databrain к ClickHouse {#steps-to-connect-databrain-to-clickhouse}
### 1. Соберите данные для подключения {#1-gather-your-connection-details}
@@ -102,7 +97,6 @@ GRANT SELECT ON your_database.* TO your_databrain_user;
Замените `your_databrain_user` и `your_database` на фактические имя пользователя и имя базы данных.
-
## Использование Databrain с ClickHouse {#using-databrain-with-clickhouse}
### Исследуйте данные {#explore-your-data}
@@ -152,8 +146,6 @@ Databrain предлагает несколько расширенных воз
- **Встраиваемая аналитика**: встраивайте дашборды и метрики напрямую в ваши приложения
- **Семантический уровень**: создавайте повторно используемые модели данных и бизнес-логику
-
-
## Устранение неполадок {#troubleshooting}
### Ошибка подключения {#connection-fails}
@@ -175,8 +167,6 @@ Databrain предлагает несколько расширенных воз
3. **Используйте подходящие типы данных**: Убедитесь, что в схеме ClickHouse используются оптимальные типы данных
4. **Оптимизируйте индексы**: Используйте первичные ключи и пропускающие индексы ClickHouse
-
-
## Подробнее {#learn-more}
Дополнительные сведения о возможностях Databrain и создании эффективной аналитики:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/deepnote.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/deepnote.md
index 82c8a314a39..7d455a53f35 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/deepnote.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/deepnote.md
@@ -19,7 +19,6 @@ import Image from '@theme/IdealImage';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_gather_your_details_http.mdx';
-
# Подключение ClickHouse к Deepnote {#connect-clickhouse-to-deepnote}
@@ -28,15 +27,11 @@ import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/curr
В этом руководстве предполагается, что у вас уже есть аккаунт Deepnote и запущенный экземпляр ClickHouse.
-
-
## Интерактивный пример {#interactive-example}
Если вы хотите изучить интерактивный пример выполнения запросов к ClickHouse из ноутбуков с данными в Deepnote, нажмите кнопку ниже, чтобы создать шаблон проекта, подключённый к [песочнице ClickHouse](../../../getting-started/playground.md).
[](https://deepnote.com/launch?template=ClickHouse%20and%20Deepnote)
-
-
## Подключение к ClickHouse {#connect-to-clickhouse}
1. В Deepnote выберите раздел «Integrations» и нажмите на плитку ClickHouse.
@@ -52,8 +47,6 @@ import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/curr
3. Готово! ClickHouse интегрирован с Deepnote.
-
-
## Использование интеграции с ClickHouse. {#using-clickhouse-integration}
1. Для начала подключитесь к интеграции с ClickHouse в правой части блокнота.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/dot-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/dot-and-clickhouse.md
index e22a6b97ea8..d95bef570b0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/dot-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/dot-and-clickhouse.md
@@ -12,7 +12,6 @@ import dot_01 from '@site/static/images/integrations/data-visualization/dot_01.p
import dot_02 from '@site/static/images/integrations/data-visualization/dot_02.png';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Dot {#dot}
@@ -20,16 +19,12 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
[Dot](https://www.getdot.ai/) — ваш **аналитик данных на базе ИИ**.
Он подключается напрямую к ClickHouse, чтобы вы могли задавать вопросы о данных на естественном языке, исследовать их, проверять гипотезы и находить ответы на вопросы «почему» — прямо в Slack, Microsoft Teams, ChatGPT или во встроенном веб‑интерфейсе.
-
-
## Предварительные требования {#pre-requisites}
- База данных ClickHouse, развернутая самостоятельно или в [ClickHouse Cloud](https://clickhouse.com/cloud)
- Учетная запись в [Dot](https://www.getdot.ai/)
- Учетная запись и проект в [Hashboard](https://www.hashboard.com/).
-
-
## Подключение Dot к ClickHouse {#connecting-dot-to-clickhouse}
@@ -48,8 +43,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
Dot использует **query-pushdown**: ClickHouse обрабатывает тяжёлые вычисления в масштабе, а Dot обеспечивает корректные и достоверные ответы.
-
-
## Основные возможности {#highlights}
Dot делает данные доступными в формате диалога:
@@ -60,8 +53,6 @@ Dot делает данные доступными в формате диало
- **Достоверные результаты**: Dot проверяет запросы на соответствие вашим схемам и определениям, чтобы минимизировать ошибки.
- **Масштабируемый**: опирается на механизм query-pushdown, сочетая интеллект Dot со скоростью ClickHouse.
-
-
## Безопасность и управление {#security}
Dot соответствует требованиям корпоративного уровня:
@@ -72,8 +63,6 @@ Dot соответствует требованиям корпоративног
- **Управление и валидация**: Пространство для обучения и проверки помогает снижать риск галлюцинаций
- **Соответствие требованиям**: Сертифицирован по стандарту SOC 2 Type I
-
-
## Дополнительные ресурсы {#additional-resources}
- Сайт Dot: [https://www.getdot.ai/](https://www.getdot.ai/)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/draxlr-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/draxlr-and-clickhouse.md
index 975e6f63c7f..8d3331e7862 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/draxlr-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/draxlr-and-clickhouse.md
@@ -21,20 +21,15 @@ import draxlr_06 from '@site/static/images/integrations/data-visualization/draxl
import Image from '@theme/IdealImage';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Подключение Draxlr к ClickHouse {#connecting-draxlr-to-clickhouse}
Draxlr предоставляет интуитивно понятный интерфейс для подключения к вашей базе данных ClickHouse, позволяя вашей команде исследовать данные, визуализировать их и публиковать полученные инсайты за считанные минуты. В этом руководстве вы по шагам настроите успешное подключение.
-
-
## 1. Получите учетные данные для доступа к ClickHouse {#1-get-your-clickhouse-credentials}
-
-
## 2. Подключение Draxlr к ClickHouse {#2--connect-draxlr-to-clickhouse}
1. Нажмите кнопку **Connect a Database** на панели навигации.
@@ -51,8 +46,6 @@ Draxlr предоставляет интуитивно понятный инте
6. Нажмите кнопку **Next** и дождитесь установления подключения. При успешном подключении откроется страница таблиц.
-
-
## 4. Исследуйте данные {#4-explore-your-data}
1. Нажмите на одну из таблиц в списке.
@@ -67,8 +60,6 @@ Draxlr предоставляет интуитивно понятный инте
-
-
## 4. Использование SQL-запросов {#4-using-sql-queries}
1. Нажмите кнопку Explore на панели навигации.
@@ -79,8 +70,6 @@ Draxlr предоставляет интуитивно понятный инте
3. Нажмите кнопку **Execute Query**, чтобы увидеть результаты.
-
-
## 4. Сохранение запроса {#4-saving-you-query}
1. После выполнения запроса нажмите кнопку **Save Query**.
@@ -93,8 +82,6 @@ Draxlr предоставляет интуитивно понятный инте
4. Нажмите кнопку **Save**, чтобы сохранить запрос.
-
-
## 5. Создание дашбордов {#5-building-dashboards}
1. Нажмите кнопку **Dashboards** на панели навигации.
@@ -107,7 +94,5 @@ Draxlr предоставляет интуитивно понятный инте
4. Выберите запрос из списка сохранённых запросов, укажите тип визуализации, затем нажмите кнопку **Add Dashboard Item**.
-
-
## Подробнее {#learn-more}
Дополнительную информацию о Draxlr можно найти в [документации Draxlr](https://draxlr.notion.site/draxlr/Draxlr-Docs-d228b23383f64d00a70836ff9643a928).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/embeddable-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/embeddable-and-clickhouse.md
index 14446680f34..bec861bf5bb 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/embeddable-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/embeddable-and-clickhouse.md
@@ -10,7 +10,6 @@ doc_type: 'guide'
import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_gather_your_details_http.mdx';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Подключение Embeddable к ClickHouse {#connecting-embeddable-to-clickhouse}
@@ -21,13 +20,9 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
Встроенная безопасность на уровне строк гарантирует, что каждый пользователь видит только те данные, к которым у него есть доступ. А два уровня полностью настраиваемого кэширования позволяют обеспечивать быструю, масштабируемую аналитику в режиме реального времени.
-
-
## 1. Соберите сведения о подключении {#1-gather-your-connection-details}
-
-
## 2. Создайте тип подключения к ClickHouse {#2-create-a-clickhouse-connection-type}
Вы добавляете подключение к базе данных с помощью API Embeddable. Это подключение используется для подключения к вашему сервису ClickHouse. Вы можете добавить подключение с помощью следующего вызова API:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/explo-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/explo-and-clickhouse.md
index b3b2450f384..370624a3cb3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/explo-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/explo-and-clickhouse.md
@@ -31,15 +31,12 @@ import explo_15 from '@site/static/images/integrations/data-visualization/explo_
import explo_16 from '@site/static/images/integrations/data-visualization/explo_16.png';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Подключение Explo к ClickHouse {#connecting-explo-to-clickhouse}
Клиентская аналитика для любой платформы. Создана для красивой визуализации. Спроектирована с упором на простоту.
-
-
## Цель {#goal}
В этом руководстве вы подключите данные из ClickHouse к Explo и визуализируете результаты. Диаграмма будет выглядеть так:
@@ -51,13 +48,9 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
Если у вас ещё нет набора данных для работы, вы можете добавить один из примерных наборов. В этом руководстве используется набор данных [UK Price Paid](/getting-started/example-datasets/uk-price-paid.md), поэтому вы можете выбрать его. В той же категории документации есть и несколько других примеров.
:::
-
-
## 1. Соберите сведения о подключении {#1-gather-your-connection-details}
-
-
## 2. Подключение Explo к ClickHouse {#2--connect-explo-to-clickhouse}
1. Зарегистрируйтесь в Explo.
@@ -91,8 +84,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
54.211.43.19, 52.55.98.121, 3.214.169.94 и 54.156.141.148
`
-
-
## 3. Создайте дашборд {#3-create-a-dashboard}
1. Перейдите на вкладку **Dashboard** в левой панели навигации.
@@ -107,8 +98,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
-
## 4. Выполните SQL-запрос {#4-run-a-sql-query}
1. Найдите имя таблицы в правой боковой панели под заголовком схемы. Затем введите следующую команду в редактор датасета:
@@ -123,8 +112,6 @@ LIMIT 100
-
-
## 5. Построение графика {#5-build-a-chart}
1. С левой стороны экрана перетащите значок столбчатой диаграммы на область построения.
@@ -147,8 +134,6 @@ LIMIT 100
-
-
## Узнать больше {#learn-more}
Найдите более подробную информацию об Explo и о том, как создавать дашборды, в документации Explo.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/fabi-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/fabi-and-clickhouse.md
index 968a7a7778c..bc856424c51 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/fabi-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/fabi-and-clickhouse.md
@@ -15,7 +15,6 @@ import Image from '@theme/IdealImage';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_gather_your_details_http.mdx';
-
# Подключение ClickHouse к Fabi.ai {#connecting-clickhouse-to-fabiai}
@@ -24,14 +23,10 @@ import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/curr
-
-
## Соберите данные для подключения {#gather-your-connection-details}
-
-
## Создайте аккаунт Fabi.ai и подключите ClickHouse {#connect-to-clickhouse}
Войдите в свой аккаунт Fabi.ai или создайте новый: https://app.fabi.ai/
@@ -46,16 +41,12 @@ import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/curr
3. Поздравляем! Теперь вы подключили ClickHouse к Fabi.ai.
-
-
## Выполнение запросов к ClickHouse. {#querying-clickhouse}
После того как вы подключили Fabi.ai к ClickHouse, откройте любой [Smartbook](https://docs.fabi.ai/analysis_and_reporting/smartbooks) и создайте SQL-ячейку. Если к вашему экземпляру Fabi.ai подключен только один источник данных, SQL-ячейка автоматически выберет ClickHouse, иначе вы можете указать источник для запроса в выпадающем списке источников.
-
-
## Дополнительные ресурсы {#additional-resources}
Документация [Fabi.ai](https://www.fabi.ai): https://docs.fabi.ai/introduction
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/hashboard-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/hashboard-and-clickhouse.md
index 0ed30316dd5..1a26f7fd670 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/hashboard-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/hashboard-and-clickhouse.md
@@ -13,7 +13,6 @@ import hashboard_01 from '@site/static/images/integrations/data-visualization/ha
import Image from '@theme/IdealImage';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Подключение ClickHouse к Hashboard {#connecting-clickhouse-to-hashboard}
@@ -26,15 +25,11 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
В этом руководстве описаны шаги по подключению Hashboard к вашему экземпляру ClickHouse. Эта информация также доступна в документации Hashboard по интеграции с [ClickHouse](https://docs.hashboard.com/docs/database-connections/clickhouse).
-
-
## Предварительные требования {#pre-requisites}
- База данных ClickHouse, развернутая в вашей собственной инфраструктуре или в [ClickHouse Cloud](https://clickhouse.com/).
- [Учетная запись Hashboard](https://hashboard.com/getAccess) и проект.
-
-
## Шаги по подключению Hashboard к ClickHouse {#steps-to-connect-hashboard-to-clickhouse}
### 1. Соберите сведения о подключении {#1-gather-your-connection-details}
@@ -53,8 +48,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
Теперь ваша база данных ClickHouse будет подключена к Hashboard, и вы можете приступить к созданию [Data Models](https://docs.hashboard.com/docs/data-modeling/add-data-model), [Explorations](https://docs.hashboard.com/docs/visualizing-data/explorations), [Metrics](https://docs.hashboard.com/docs/metrics) и [Dashboards](https://docs.hashboard.com/docs/dashboards). Подробную информацию об этих возможностях см. в соответствующей документации Hashboard.
-
-
## Узнать больше {#learn-more}
Для получения информации о более продвинутых возможностях и устранении неполадок обратитесь к [документации Hashboard](https://docs.hashboard.com/).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/luzmo-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/luzmo-and-clickhouse.md
index a4a18a4daa8..72cad48e6e1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/luzmo-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/luzmo-and-clickhouse.md
@@ -18,13 +18,10 @@ import luzmo_02 from '@site/static/images/integrations/data-visualization/luzmo_
import luzmo_03 from '@site/static/images/integrations/data-visualization/luzmo_03.png';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Интеграция Luzmo и ClickHouse {#integrating-luzmo-with-clickhouse}
-
-
## 1. Настройка подключения к ClickHouse {#1-setup-a-clickhouse-connection}
Чтобы создать подключение к ClickHouse, перейдите на страницу **Connections**, выберите **New Connection**, затем выберите ClickHouse в диалоговом окне New Connection.
@@ -42,8 +39,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
Обратитесь к примерам в нашей документации для разработчиков, чтобы узнать, как [создать подключение к ClickHouse](https://developer.luzmo.com/api/createAccount?exampleSection=AccountCreateClickhouseRequestBody) через наш API.
-
-
## 2. Добавьте наборы данных {#2-add-datasets}
После подключения ClickHouse вы можете добавить наборы данных, как описано [здесь](https://academy.luzmo.com/article/ldx3iltg). Вы можете выбрать один или несколько наборов данных, доступных в вашем ClickHouse, и [связать](https://academy.luzmo.com/article/gkrx48x5) их в Luzmo, чтобы их можно было использовать вместе в одном дашборде. Также рекомендуем ознакомиться со статьёй [Подготовка данных к аналитике](https://academy.luzmo.com/article/u492qov0).
@@ -54,8 +49,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
-
## Примечания по использованию {#usage-notes}
1. Коннектор Luzmo для ClickHouse использует HTTP‑интерфейс API (как правило, доступный на порту 8123) для подключения.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/mitzu-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/mitzu-and-clickhouse.md
index f44676565cd..b734fd31a0a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/mitzu-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/mitzu-and-clickhouse.md
@@ -25,7 +25,6 @@ import mitzu_10 from '@site/static/images/integrations/data-visualization/mitzu_
import mitzu_11 from '@site/static/images/integrations/data-visualization/mitzu_11.png';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Подключение Mitzu к ClickHouse {#connecting-mitzu-to-clickhouse}
@@ -34,8 +33,6 @@ Mitzu — это no-code решение для продуктовой анали
Однако в отличие от этих платформ Mitzu не дублирует данные об использовании продукта компании. Вместо этого оно генерирует нативные SQL-запросы непосредственно к уже существующему хранилищу или озеру данных компании.
-
-
## Цель {#goal}
В этом руководстве мы рассмотрим следующее:
@@ -50,38 +47,28 @@ Mitzu — это no-code решение для продуктовой анали
Это руководство представляет собой лишь краткий обзор того, как использовать Mitzu. Более подробную информацию вы можете найти в [документации Mitzu](https://docs.mitzu.io/).
-
-
## 1. Соберите сведения о подключении {#1-gather-your-connection-details}
-
-
## 2. Войдите или зарегистрируйтесь в Mitzu {#2-sign-in-or-sign-up-to-mitzu}
Для начала перейдите на [https://app.mitzu.io](https://app.mitzu.io) и зарегистрируйтесь.
-
-
## 3. Настройте свое рабочее пространство {#3-configure-your-workspace}
После создания организации следуйте руководству по первичной настройке `Set up your workspace` в левой панели. Затем нажмите ссылку `Connect Mitzu with your data warehouse`.
-
-
## 4. Подключение Mitzu к ClickHouse {#4-connect-mitzu-to-clickhouse}
Сначала выберите ClickHouse в качестве типа подключения и задайте параметры подключения. Затем нажмите кнопку `Test connection & Save`, чтобы сохранить настройки.
-
-
## 5. Настройка таблиц событий {#5-configure-event-tables}
После сохранения подключения выберите вкладку `Event tables` и нажмите кнопку `Add table`. В модальном окне выберите базу данных и таблицы, которые вы хотите добавить в Mitzu.
@@ -103,8 +90,6 @@ Mitzu — это no-code решение для продуктовой анали
После того как все таблицы будут настроены, нажмите кнопку `Save & update event catalog`, и Mitzu найдет все события и их свойства в указанных выше таблицах. Этот шаг может занять до нескольких минут в зависимости от размера набора данных.
-
-
## 4. Запуск сегментационных запросов {#4-run-segmentation-queries}
Сегментация пользователей в Mitzu так же проста, как в Amplitude, Mixpanel или PostHog.
@@ -120,8 +105,6 @@ Mitzu — это no-code решение для продуктовой анали
Вы можете выбрать любое событие или пользовательское свойство для разбиения (см. ниже, как интегрировать пользовательские свойства).
:::
-
-
## 5. Выполнение запросов по воронке {#5-run-funnel-queries}
Выберите до 9 шагов для воронки. Задайте временное окно, в течение которого пользователи могут пройти воронку.
@@ -135,8 +118,6 @@ Mitzu — это no-code решение для продуктовой анали
Выберите `Funnel trends`, чтобы визуализировать динамику воронки во времени.
:::
-
-
## 6. Run retention queries {#6-run-retention-queries}
Выберите не более двух шагов для расчёта коэффициента удержания. Задайте окно удержания для повторяющегося периода.
@@ -150,8 +131,6 @@ Mitzu — это no-code решение для продуктовой анали
Выберите `Weekly cohort retention`, чтобы визуализировать, как ваши показатели удержания меняются со временем.
:::
-
-
## 7. Запуск запросов по пути пользователя {#7-run-journey-queries}
Выберите до 9 шагов для воронки. Укажите временной интервал, в течение которого пользователи могут завершить путь. Диаграмма пути в Mitzu дает наглядную карту всех вариантов прохождения пользователями выбранных событий.
@@ -164,15 +143,11 @@ Mitzu — это no-code решение для продуктовой анали
-
-
## 8. Запуск запросов по выручке {#8-run-revenue-queries}
Если параметры выручки настроены, Mitzu может вычислить общий MRR и количество подписок на основе ваших платежных событий.
-
-
## 9. SQL native {#9-sql-native}
Mitzu работает напрямую с SQL, то есть генерирует нативный SQL‑код из выбранной вами конфигурации на странице Explore.
@@ -185,16 +160,12 @@ Mitzu работает напрямую с SQL, то есть генерируе
Если вы столкнулись с ограничением интерфейса Mitzu, скопируйте SQL‑код и продолжайте работу в BI‑инструменте.
:::
-
-
## Поддержка Mitzu {#mitzu-support}
Если у вас возникли сложности, свяжитесь с нами по адресу [support@mitzu.io](email://support@mitzu.io)
Или присоединяйтесь к нашему сообществу в Slack [здесь](https://join.slack.com/t/mitzu-io/shared_invite/zt-1h1ykr93a-_VtVu0XshfspFjOg6sczKg)
-
-
## Узнать больше {#learn-more}
Дополнительную информацию о Mitzu вы можете найти на сайте [mitzu.io](https://mitzu.io)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/rocketbi-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/rocketbi-and-clickhouse.md
index 59074c54545..d3bba89f1e4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/rocketbi-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/rocketbi-and-clickhouse.md
@@ -30,7 +30,6 @@ import rocketbi_17 from '@site/static/images/integrations/data-visualization/roc
import rocketbi_18 from '@site/static/images/integrations/data-visualization/rocketbi_18.png';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Цель: создать свой первый дашборд в Rocket.BI {#goal-build-your-first-dashboard-with-rocketbi}
@@ -43,8 +42,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
Вы можете открыть [этот дашборд по ссылке.](https://demo.rocket.bi/dashboard/sales-dashboard-7?token=7eecf750-cbde-4c53-8fa8-8b905fec667e)
-
-
## Установка {#install}
Запустите RocketBI с помощью наших предварительно собранных образов Docker.
@@ -64,7 +61,6 @@ wget https://raw.githubusercontent.com/datainsider-co/rocket-bi/main/docker/.cli
Чтобы собрать из исходников или выполнить расширенную настройку, ознакомьтесь с файлом [Rocket.BI Readme](https://github.com/datainsider-co/rocket-bi/blob/main/README.md).
-
## Давайте соберём дашборд {#lets-build-the-dashboard}
Во вкладке Dashboard вы найдёте свои отчёты, начните создавать визуализации, нажав **+New**.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/zingdata-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/zingdata-and-clickhouse.md
index 7581fa84484..3506f150e1b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/zingdata-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/community_integrations/zingdata-and-clickhouse.md
@@ -22,15 +22,12 @@ import zing_08 from '@site/static/images/integrations/data-visualization/zing_08
import zing_09 from '@site/static/images/integrations/data-visualization/zing_09.png';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Подключение Zing Data к ClickHouse {#connect-zing-data-to-clickhouse}
Zing Data — это платформа для исследования и визуализации данных. Zing Data подключается к ClickHouse с помощью JS-драйвера, предоставляемого ClickHouse.
-
-
## Как подключиться {#how-to-connect}
1. Соберите сведения для подключения.
@@ -62,8 +59,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
6. После того как источник данных ClickHouse добавлен, он будет доступен всем пользователям в вашей организации Zing на вкладке **Data Sources** / **Sources**.
-
-
## Создание графиков и дашбордов в Zing Data {#creating-charts-and-dashboards-in-zing-data}
1. После добавления источника данных ClickHouse нажмите **Zing App** в веб-интерфейсе или выберите источник данных в мобильном приложении, чтобы начать создавать графики.
@@ -93,8 +88,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
-
## Связанные материалы {#related-content}
- [Документация](https://docs.getzingdata.com/docs/)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/config.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/config.md
index 40493f79aec..92d14e897ff 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/config.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/config.md
@@ -19,7 +19,6 @@ import alias_table_config_example from '@site/static/images/integrations/data-vi
import alias_table_select_example from '@site/static/images/integrations/data-visualization/grafana/alias_table_select_example.png';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Настройка источника данных ClickHouse в Grafana {#configuring-clickhouse-data-source-in-grafana}
@@ -62,7 +61,6 @@ secureJsonData:
Обратите внимание, что свойство `version` добавляется, когда конфигурация сохраняется через пользовательский интерфейс. Оно показывает версию плагина, в которой была сохранена конфигурация.
-
### Протокол HTTP {#http-protocol}
Если вы выберете подключение по протоколу HTTP, появятся дополнительные настройки.
@@ -79,7 +77,6 @@ jsonData:
path: additional/path/example
```
-
#### Пользовательские HTTP-заголовки {#custom-http-headers}
Вы можете добавлять пользовательские заголовки к запросам, отправляемым на ваш сервер.
@@ -106,7 +103,6 @@ secureJsonData:
secureHttpHeaders.X-Example-Secure-Header: значение защищенного заголовка
```
-
## Дополнительные настройки {#additional-settings}
Эти дополнительные настройки не являются обязательными.
@@ -125,7 +121,6 @@ jsonData:
validateSql: false # при значении true выполняется валидация SQL в редакторе SQL.
```
-
### OpenTelemetry {#opentelemetry}
OpenTelemetry (OTel) глубоко интегрирован в плагин.
@@ -164,7 +159,6 @@ jsonData:
messageColumn: # сообщение/содержимое лога.
```
-
### Трейсы {#traces}
Чтобы ускорить [создание запросов для трейсов](./query-builder.md#traces), вы можете задать базу данных/таблицу по умолчанию, а также столбцы для запроса по трейсам. Это предварительно заполнит конструктор запросов исполняемым запросом поиска по трейсам, что делает работу на странице Explore быстрее для задач наблюдаемости.
@@ -201,7 +195,6 @@ jsonData:
serviceTagsColumn: # столбец тегов сервиса. Ожидается тип map.
```
-
### Псевдонимы столбцов {#column-aliases}
Использование псевдонимов столбцов — удобный способ выполнять запросы к данным под другими именами и с другими типами.
@@ -232,7 +225,6 @@ CREATE TABLE alias_example (
Для получения дополнительной информации см. документацию по типу столбца [ALIAS](/sql-reference/statements/create/table#alias).
-
#### Таблицы с псевдонимами столбцов {#column-alias-tables}
По умолчанию Grafana подсказывает столбцы на основе ответа `DESC table`.
@@ -275,7 +267,6 @@ INSERT INTO example_table_aliases (`alias`, `select`, `type`) VALUES
Оба варианта псевдонимов можно использовать для выполнения сложных преобразований типов или извлечения полей из JSON.
-
## Все параметры YAML {#all-yaml-options}
Ниже перечислены все параметры конфигурации YAML, доступные в этом плагине.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/index.md
index 5561240b990..b34026db607 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/index.md
@@ -22,7 +22,6 @@ import valid_ds from '@site/static/images/integrations/data-visualization/grafan
import Image from '@theme/IdealImage';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Плагин источника данных ClickHouse для Grafana {#clickhouse-data-source-plugin-for-grafana}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/query-builder.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/query-builder.md
index 75d4e3202c8..45cd44c3246 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/query-builder.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/grafana/query-builder.md
@@ -20,7 +20,6 @@ import trace_id_in_logs from '@site/static/images/integrations/data-visualizatio
import demo_data_links from '@site/static/images/integrations/data-visualization/grafana/demo_data_links.png';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Конструктор запросов {#query-builder}
@@ -37,8 +36,6 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
- [Traces](#traces): оптимизирован для поиска и просмотра трейсов. Лучше всего работает в режиме обзора при [настроенных значениях по умолчанию](./config.md#traces).
- [SQL Editor](#sql-editor): SQL Editor можно использовать, когда вам нужен полный контроль над запросом. В этом режиме можно выполнять любые SQL-запросы.
-
-
## Типы запросов {#query-types}
Настройка *Query Type* изменяет компоновку конструктора запросов в соответствии с типом создаваемого запроса.
@@ -110,8 +107,6 @@ OpenTelemetry также можно включить, чтобы автомат
Попробуйте убрать предложение `LIMIT`, установив его в `0` (если это допустимо для вашего набора данных).
:::
-
-
| Field | Description |
|----|----|
| Builder Mode | В режиме Simple из запросов исключаются агрегаты и GROUP BY, тогда как в режиме Aggregate эти опции доступны. |
@@ -164,8 +159,6 @@ OpenTelemetry также может быть включён для автома
Этот тип запроса визуализирует данные в виде табличного представления в режиме Trace Search и в виде панели трассировок в режиме Trace ID.
-
-
## SQL-редактор {#sql-editor}
Если запрос слишком сложен для конструктора запросов, вы можете использовать SQL-редактор.
@@ -180,8 +173,6 @@ SQL-редактор можно открыть, выбрав «SQL Editor» в
-
-
## Ссылки на данные {#data-links}
[Ссылки на данные](https://grafana.com/docs/grafana/latest/panels-visualizations/configure-data-links) в Grafana
@@ -220,8 +211,6 @@ SQL-редактор можно открыть, выбрав «SQL Editor» в
-
-
## Макросы {#macros}
Макросы — это простой способ добавить динамический SQL в запрос.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/index.md
index e5c56035b85..75942440385 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/index.md
@@ -8,8 +8,6 @@ description: 'Узнайте, как визуализировать данные
doc_type: 'guide'
---
-
-
# Визуализация данных в ClickHouse {#visualizing-data-in-clickhouse}
@@ -49,8 +47,6 @@ doc_type: 'guide'
- [Tableau](./tableau/tableau-and-clickhouse.md)
- [Zing Data](./community_integrations/zingdata-and-clickhouse.md)
-
-
## Совместимость ClickHouse Cloud с инструментами визуализации данных {#clickhouse-cloud-compatibility-with-data-visualization-tools}
| Инструмент | Поддерживается через | Протестировано | Документировано | Комментарий |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/lightdash-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/lightdash-and-clickhouse.md
index 4fdba482c2f..92c587476ef 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/lightdash-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/lightdash-and-clickhouse.md
@@ -21,7 +21,6 @@ import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/curr
import Image from '@theme/IdealImage';
import PartnerBadge from '@theme/badges/PartnerBadge';
-
# Lightdash {#lightdash}
@@ -32,8 +31,6 @@ Lightdash — это **AI-first BI-платформа**, созданная дл
Это партнёрство объединяет **скорость ClickHouse** и **удобство Lightdash для разработчиков**, упрощая как никогда ранее исследование, визуализацию и автоматизацию получения инсайтов с помощью ИИ.
-
-
## Создание интерактивной панели мониторинга с Lightdash и ClickHouse {#build-an-interactive-dashboard}
В этом руководстве показано, как **Lightdash** подключается к **ClickHouse** для исследования ваших dbt-моделей и создания интерактивных панелей мониторинга.
@@ -128,7 +125,6 @@ Lightdash — это **AI-first BI-платформа**, созданная дл
Страница **Explore** состоит из пяти основных областей:
-
1. **Размерности и метрики** — все поля, доступные в выбранной таблице
2. **Фильтры** — ограничивают данные, возвращаемые вашим запросом
3. **Диаграмма** — визуализирует результаты вашего запроса
@@ -196,7 +192,6 @@ Lightdash — это **AI-first BI-платформа**, созданная дл
-
## Подробнее {#learn-more}
Чтобы узнать больше о подключении проектов dbt к Lightdash, посетите раздел [Документация Lightdash → Настройка ClickHouse](https://docs.lightdash.com/get-started/setup-lightdash/connect-project#clickhouse?utm_source=clickhouse&utm_medium=partner&utm_campaign=integration_docs).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/looker-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/looker-and-clickhouse.md
index eeb8a57b994..94341d2a8f6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/looker-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/looker-and-clickhouse.md
@@ -18,20 +18,15 @@ import looker_03 from '@site/static/images/integrations/data-visualization/looke
import looker_04 from '@site/static/images/integrations/data-visualization/looker_04.png';
import PartnerBadge from '@theme/badges/PartnerBadge';
-
# Looker {#looker}
Looker может подключаться к ClickHouse Cloud или локальному развертыванию ClickHouse с помощью официального источника данных ClickHouse.
-
-
## 1. Получите параметры подключения {#1-gather-your-connection-details}
-
-
## 2. Создайте источник данных ClickHouse {#2-create-a-clickhouse-data-source}
Перейдите в Admin -> Database -> Connections и нажмите кнопку «Add Connection» в правом верхнем углу.
@@ -56,8 +51,6 @@ Looker может подключаться к ClickHouse Cloud или локал
Теперь вы сможете подключить источник данных ClickHouse к проекту Looker.
-
-
## 3. Известные ограничения {#3-known-limitations}
1. Следующие типы данных по умолчанию обрабатываются как строки:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/looker-studio-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/looker-studio-and-clickhouse.md
index 0b499f86847..fa48e486cd5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/looker-studio-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/looker-studio-and-clickhouse.md
@@ -23,25 +23,18 @@ import looker_studio_enable_mysql from '@site/static/images/integrations/data-vi
import looker_studio_mysql_cloud from '@site/static/images/integrations/data-visualization/looker_studio_mysql_cloud.png';
import PartnerBadge from '@theme/badges/PartnerBadge';
-
# Looker Studio {#looker-studio}
Looker Studio может подключаться к ClickHouse через интерфейс MySQL, используя официальный источник данных Google для MySQL.
-
-
## Настройка ClickHouse Cloud {#clickhouse-cloud-setup}
-
-
## Настройка локального сервера ClickHouse {#on-premise-clickhouse-server-setup}
-
-
## Подключение Looker Studio к ClickHouse {#connecting-looker-studio-to-clickhouse}
Сначала войдите на сайт https://lookerstudio.google.com под своей учетной записью Google и создайте новый источник данных (Data Source):
@@ -77,8 +70,6 @@ Looker Studio может подключаться к ClickHouse через ин
Теперь вы можете приступать к анализу своих данных или созданию нового отчета!
-
-
## Использование Looker Studio с ClickHouse Cloud {#using-looker-studio-with-clickhouse-cloud}
При использовании ClickHouse Cloud сначала необходимо включить интерфейс MySQL. Это можно сделать в диалоговом окне подключения, на вкладке «MySQL».
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/metabase-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/metabase-and-clickhouse.md
index 5eb2fecd36a..d8106475806 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/metabase-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/metabase-and-clickhouse.md
@@ -24,15 +24,12 @@ import metabase_07 from '@site/static/images/integrations/data-visualization/met
import metabase_08 from '@site/static/images/integrations/data-visualization/metabase_08.png';
import PartnerBadge from '@theme/badges/PartnerBadge';
-
# Подключение Metabase к ClickHouse {#connecting-metabase-to-clickhouse}
Metabase — это простой в использовании UI-инструмент с открытым исходным кодом для формирования запросов к вашим данным. Metabase — это Java-приложение, которое можно запустить, просто скачав JAR‑файл и выполнив его командой `java -jar metabase.jar`. Metabase подключается к ClickHouse с помощью JDBC‑драйвера, который вы скачиваете и помещаете в папку `plugins`:
-
-
## Цель {#goal}
В этом руководстве вы зададите ряд вопросов к данным в ClickHouse с помощью Metabase и визуализируете полученные ответы. Один из результатов будет выглядеть так:
@@ -44,13 +41,9 @@ Metabase — это простой в использовании UI-инстру
Если у вас нет набора данных для работы, вы можете добавить один из примеров. В этом руководстве используется набор данных [UK Price Paid](/getting-started/example-datasets/uk-price-paid.md), поэтому вы можете выбрать его. В той же категории документации есть и несколько других вариантов.
:::
-
-
## 1. Соберите параметры подключения {#1-gather-your-connection-details}
-
-
## 2. Загрузка плагина ClickHouse для Metabase {#2--download-the-clickhouse-plugin-for-metabase}
1. Если у вас нет папки `plugins`, создайте её как подпапку в том же каталоге, где сохранён файл `metabase.jar`.
@@ -63,8 +56,6 @@ Metabase — это простой в использовании UI-инстру
5. Откройте Metabase по адресу http://hostname:3000. При первом запуске вы увидите приветственный экран и вам нужно будет ответить на ряд вопросов. Если будет предложено выбрать базу данных, выберите "**I'll add my data later**":
-
-
## 3. Подключение Metabase к ClickHouse {#3--connect-metabase-to-clickhouse}
1. Нажмите на значок шестерёнки в правом верхнем углу и выберите **Admin Settings**, чтобы открыть административную страницу Metabase.
@@ -83,8 +74,6 @@ Metabase — это простой в использовании UI-инстру
6. Нажмите кнопку **Save**, и Metabase просканирует вашу базу данных и обнаружит таблицы.
-
-
## 4. Выполните SQL-запрос {#4-run-a-sql-query}
1. Выйдите из **Admin settings**, нажав кнопку **Exit admin** в правом верхнем углу.
@@ -97,8 +86,6 @@ Metabase — это простой в использовании UI-инстру
-
-
## 5. Задайте вопрос {#5-ask-a-question}
1. Нажмите **+ New** и выберите **Question**. Обратите внимание, что вы можете создать вопрос, начав с базы данных и таблицы. Например, следующий запрос выполняется к таблице `uk_price_paid` в базе данных `default`. Вот простой запрос, который вычисляет среднюю цену по городам в графстве Большой Манчестер:
@@ -113,8 +100,6 @@ Metabase — это простой в использовании UI-инстру
-
-
## Подробнее {#learn-more}
Вы можете найти дополнительную информацию о Metabase и о том, как создавать дашборды, в документации Metabase.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/omni-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/omni-and-clickhouse.md
index 92ab4ca38f5..b18500322f6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/omni-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/omni-and-clickhouse.md
@@ -13,21 +13,16 @@ import omni_01 from '@site/static/images/integrations/data-visualization/omni_01
import omni_02 from '@site/static/images/integrations/data-visualization/omni_02.png';
import PartnerBadge from '@theme/badges/PartnerBadge';
-
# Omni {#omni}
Omni может подключаться к ClickHouse Cloud или к локальному развертыванию ClickHouse через официальный источник данных ClickHouse.
-
-
## 1. Соберите данные для подключения {#1-gather-your-connection-details}
-
-
## 2. Создайте источник данных ClickHouse {#2-create-a-clickhouse-data-source}
Перейдите в Admin -> Connections и нажмите кнопку «Add Connection» в правом верхнем углу.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/powerbi-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/powerbi-and-clickhouse.md
index 14d8826ca45..7c3736f8066 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/powerbi-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/powerbi-and-clickhouse.md
@@ -29,7 +29,6 @@ import powerbi_dsn_credentials from '@site/static/images/integrations/data-visua
import powerbi_16 from '@site/static/images/integrations/data-visualization/powerbi_16.png';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Power BI {#power-bi}
@@ -50,8 +49,6 @@ Microsoft Power BI может выполнять запросы к данным
* [Выполнение запросов к данным из ClickHouse для визуализации в Power BI Desktop](#query-and-visualise-data)
* [Настройка локального шлюза данных для Power BI Service](#power-bi-service)
-
-
## Предварительные требования {#prerequisites}
### Установка Power BI {#power-bi-installation}
@@ -69,8 +66,6 @@ Microsoft Power BI может выполнять запросы к данным
* Password — пароль пользователя
* Database — имя базы данных на экземпляре, к которому вы хотите подключиться
-
-
## Power BI Desktop {#power-bi-desktop}
Чтобы начать выполнять запросы к данным в Power BI Desktop, выполните следующие шаги:
@@ -158,16 +153,12 @@ Microsoft Power BI может выполнять запросы к данным
После завершения импорта данные ClickHouse будут доступны в Power BI как обычно.
-
-
## Сервис Power BI {#power-bi-service}
Чтобы использовать Microsoft Power BI Service, необходимо создать [локальный шлюз данных](https://learn.microsoft.com/en-us/power-bi/connect-data/service-gateway-onprem).
Подробную информацию по настройке пользовательских коннекторов см. в документации Microsoft о том, как [использовать пользовательские коннекторы данных с локальным шлюзом данных](https://learn.microsoft.com/en-us/power-bi/connect-data/service-gateway-custom-connectors).
-
-
## Драйвер ODBC (только импорт) {#odbc-driver-import-only}
Мы рекомендуем использовать ClickHouse Connector, который использует DirectQuery.
@@ -237,8 +228,6 @@ Microsoft Power BI может выполнять запросы к данным
После завершения импорта данные из ClickHouse будут доступны в Power BI как обычно.
-
-
## Известные ограничения {#known-limitations}
### UInt64 {#uint64}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/quicksight-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/quicksight-and-clickhouse.md
index 0b2fb126fd6..2528b0ab816 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/quicksight-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/quicksight-and-clickhouse.md
@@ -21,15 +21,12 @@ import quicksight_06 from '@site/static/images/integrations/data-visualization/q
import quicksight_07 from '@site/static/images/integrations/data-visualization/quicksight_07.png';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# QuickSight {#quicksight}
QuickSight может подключаться к локальному развертыванию ClickHouse (23.11+) через интерфейс MySQL, используя официальный источник данных MySQL и режим Direct Query.
-
-
## Настройка локально развернутого сервера ClickHouse {#on-premise-clickhouse-server-setup}
Обратитесь к [официальной документации](/interfaces/mysql) по настройке сервера ClickHouse с включённым интерфейсом MySQL.
@@ -122,7 +119,6 @@ mysql> show databases;
Read 4 rows, 603.00 B in 0.00156 sec., 2564 rows/sec., 377.48 KiB/sec.
```
-
## Подключение QuickSight к ClickHouse {#connecting-quicksight-to-clickhouse}
Для начала перейдите на [https://quicksight.aws.amazon.com](https://quicksight.aws.amazon.com), откройте раздел Datasets и нажмите "New dataset":
@@ -163,8 +159,6 @@ Read 4 rows, 603.00 B in 0.00156 sec., 2564 rows/sec., 377.48 KiB/sec.
Теперь вы можете опубликовать набор данных и создать новую визуализацию!
-
-
## Известные ограничения {#known-limitations}
- Импорт SPICE работает некорректно; вместо него используйте режим Direct Query. См. [#58553](https://github.com/ClickHouse/ClickHouse/issues/58553).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/splunk-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/splunk-and-clickhouse.md
index ddef16f1a98..f3ca768abe5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/splunk-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/splunk-and-clickhouse.md
@@ -21,7 +21,6 @@ import splunk_9 from '@site/static/images/integrations/splunk/splunk-9.png';
import splunk_10 from '@site/static/images/integrations/splunk/splunk-10.png';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Подключение Splunk к ClickHouse {#connecting-splunk-to-clickhouse}
@@ -36,8 +35,6 @@ Splunk — популярная платформа для обеспечения
Идеальный сценарий использования этой интеграции — когда вы применяете ClickHouse для больших объёмов данных, таких как NetFlow, двоичные данные Avro или Protobuf, DNS, журналы трафика VPC и другие журналы OTel, которыми можно делиться с вашей командой в Splunk для поиска и построения дашбордов. При таком подходе данные не проходят приём в индексный слой Splunk, а запрашиваются напрямую из ClickHouse, аналогично другим интеграциям для визуализации, таким как [Metabase](https://www.metabase.com/) или [Superset](https://superset.apache.org/).
-
-
## Цель {#goal}
В этом руководстве мы будем использовать JDBC-драйвер ClickHouse для подключения ClickHouse к Splunk. Мы установим локальный экземпляр Splunk Enterprise, но не будем индексировать какие-либо данные. Вместо этого мы будем использовать функции поиска через движок запросов DB Connect.
@@ -50,8 +47,6 @@ Splunk — популярная платформа для обеспечения
В этом руководстве используется [набор данных такси города Нью-Йорк](/getting-started/example-datasets/nyc-taxi). В нашей [документации](http://localhost:3000/docs/getting-started/example-datasets) есть и многие другие наборы данных, которые вы можете использовать.
:::
-
-
## Предварительные требования {#prerequisites}
Перед началом работы вам потребуется:
@@ -61,8 +56,6 @@ Splunk — популярная платформа для обеспечения
- Административный или SSH-доступ к экземпляру ОС с установленным Splunk Enterprise
- Данные для подключения к ClickHouse (см. [здесь](/integrations/metabase#1-gather-your-connection-details), если вы используете ClickHouse Cloud)
-
-
## Установка и настройка DB Connect в Splunk Enterprise {#install-and-configure-db-connect-on-splunk-enterprise}
Сначала необходимо установить Java Runtime Environment на инстанс Splunk Enterprise. Если вы используете Docker, можно выполнить команду `microdnf install java-11-openjdk`.
@@ -81,8 +74,6 @@ Splunk — популярная платформа для обеспечения
-
-
## Настройка JDBC для ClickHouse {#configure-jdbc-for-clickhouse}
Скачайте [драйвер ClickHouse JDBC](https://github.com/ClickHouse/clickhouse-java) в папку DB Connect Drivers, например:
@@ -111,7 +102,6 @@ ui_default_catalog = $database$
-
## Подключение поиска Splunk к ClickHouse {#connect-splunk-search-to-clickhouse}
Перейдите в DB Connect App Configuration -> Databases -> Identities и создайте Identity для вашего ClickHouse.
@@ -132,8 +122,6 @@ ui_default_catalog = $database$
Если вы получили ошибку, убедитесь, что добавили IP-адрес вашего экземпляра Splunk в список ClickHouse Cloud IP Access List. Для получения дополнительной информации смотрите [документацию](/cloud/security/setting-ip-filters).
:::
-
-
## Выполнение SQL-запроса {#run-a-sql-query}
Теперь мы выполним SQL-запрос, чтобы убедиться, что всё работает корректно.
@@ -148,8 +136,6 @@ ui_default_catalog = $database$
Если запрос выполнен успешно, вы должны увидеть результат.
-
-
## Создайте дашборд {#create-a-dashboard}
Давайте создадим дашборд, который использует сочетание SQL и мощного Splunk Processing Language (SPL).
@@ -194,7 +180,6 @@ ORDER BY year, count(*) DESC; " connection="chc"
-
## Данные временных рядов {#time-series-data}
В Splunk есть сотни встроенных функций, которые дашборды могут использовать для визуализации и представления данных временных рядов. В этом примере будут объединены SQL и SPL для создания запроса, который может работать с данными временных рядов в Splunk.
@@ -209,7 +194,6 @@ FROM "demo"."conn" WHERE time >= now() - interval 1 HOURS" connection="chc"
| sort - duration:
```
-
## Дополнительные материалы {#learn-more}
Если вы хотите получить больше информации о Splunk DB Connect и создании дашбордов, перейдите к [документации Splunk](https://docs.splunk.com/Documentation).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/superset-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/superset-and-clickhouse.md
index b5da49a34c8..1188855280c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/superset-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/superset-and-clickhouse.md
@@ -28,15 +28,12 @@ import superset_11 from '@site/static/images/integrations/data-visualization/sup
import superset_12 from '@site/static/images/integrations/data-visualization/superset_12.png';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Подключение Superset к ClickHouse {#connect-superset-to-clickhouse}
Apache Superset — это платформа с открытым исходным кодом для исследования и визуализации данных, написанная на Python. Superset подключается к ClickHouse с помощью драйвера Python, предоставленного ClickHouse. Давайте посмотрим, как это работает...
-
-
## Цель {#goal}
В этом руководстве вы создадите дашборд в Superset на основе данных из базы данных ClickHouse. Дашборд будет выглядеть следующим образом:
@@ -48,13 +45,9 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
Если у вас нет набора данных для работы, вы можете добавить один из примеров. В этом руководстве используется набор данных [UK Price Paid](/getting-started/example-datasets/uk-price-paid.md), поэтому вы можете выбрать именно его. В той же категории документации есть и несколько других наборов данных.
:::
-
-
## 1. Соберите параметры подключения {#1-gather-your-connection-details}
-
-
## 2. Установка драйвера {#2-install-the-driver}
1. Superset использует драйвер `clickhouse-connect` для подключения к ClickHouse. Подробную информацию о `clickhouse-connect` можно найти по адресу https://pypi.org/project/clickhouse-connect/, а установить его можно с помощью следующей команды:
@@ -65,8 +58,6 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
2. Запустите (или перезапустите) Superset.
-
-
## 3. Подключение Superset к ClickHouse {#3-connect-superset-to-clickhouse}
1. В Superset выберите **Data** в верхнем меню, затем **Databases** в раскрывающемся меню. Добавьте новую базу данных, нажав кнопку **+ Database**:
@@ -89,8 +80,6 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
4. Нажмите кнопки **CONNECT**, а затем **FINISH**, чтобы завершить мастер настройки. После этого вы увидите свою базу данных в списке баз данных.
-
-
## 4. Добавьте набор данных {#4-add-a-dataset}
1. Чтобы работать с данными ClickHouse в Superset, необходимо определить **_dataset_** (набор данных). В верхнем меню Superset выберите **Data**, затем **Datasets** в раскрывающемся меню.
@@ -102,8 +91,6 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
3. Нажмите кнопку **ADD** в нижней части диалогового окна, и ваша таблица появится в списке наборов данных. Теперь вы готовы создавать дашборды и анализировать данные в ClickHouse!
-
-
## 5. Создание диаграмм и дашборда в Superset {#5--creating-charts-and-a-dashboard-in-superset}
Если вы уже знакомы с Superset, этот раздел покажется вам вполне привычным. Если вы новичок в Superset, то... он похож на многие другие современные инструменты визуализации данных: чтобы начать, много времени не нужно, а детали и нюансы приходят с опытом по мере работы с инструментом.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-and-clickhouse.md
index d1de2c6fe86..20a5f4dc4b8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-and-clickhouse.md
@@ -29,7 +29,6 @@ import tableau_workbook6 from '@site/static/images/integrations/data-visualizati
import tableau_workbook7 from '@site/static/images/integrations/data-visualization/tableau_workbook7.png';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Подключение Tableau к ClickHouse {#connecting-tableau-to-clickhouse}
@@ -43,8 +42,6 @@ ClickHouse предоставляет официальный коннектор
-
-
## Предварительная настройка перед использованием {#setup-required-prior-usage}
1. Соберите сведения о подключении
@@ -64,8 +61,6 @@ ClickHouse предоставляет официальный коннектор
- Windows: `C:\Program Files\Tableau\Drivers`
5. Настройте источник данных ClickHouse в Tableau и приступайте к созданию визуализаций данных!
-
-
## Настройка источника данных ClickHouse в Tableau {#configure-a-clickhouse-data-source-in-tableau}
Теперь, когда драйвер `clickhouse-jdbc` установлен и настроен, рассмотрим, как настроить источник
@@ -127,8 +122,6 @@ ClickHouse предоставляет официальный коннектор
Теперь вы готовы создавать визуализации в Tableau!
-
-
## Создание визуализаций в Tableau {#building-visualizations-in-tableau}
Теперь, когда у нас настроен источник данных ClickHouse в Tableau, давайте визуализируем данные…
@@ -187,8 +180,6 @@ ClickHouse предоставляет официальный коннектор
Отличная работа! Вы успешно подключили Tableau к ClickHouse и открыли для себя целый мир возможностей
для анализа и визуализации ваших данных в ClickHouse.
-
-
## Установка коннектора вручную {#install-the-connector-manually}
Если вы используете устаревшую версию Tableau Desktop, которая не включает коннектор по умолчанию, вы можете установить его вручную, выполнив следующие шаги:
@@ -199,19 +190,13 @@ ClickHouse предоставляет официальный коннектор
* Windows: `C:\Users\[Windows User]\Documents\My Tableau Repository\Connectors`
3. Перезапустите Tableau Desktop. Если установка прошла успешно, коннектор появится в разделе `New Data Source`.
-
-
## Советы по подключению и анализу {#connection-and-analysis-tips}
Для получения дополнительных рекомендаций по оптимизации интеграции Tableau с ClickHouse см. разделы [Советы по подключению](/integrations/tableau/connection-tips) и [Советы по анализу](/integrations/tableau/analysis-tips).
-
-
## Тесты {#tests}
Коннектор тестируется с использованием [фреймворка TDVT](https://tableau.github.io/connector-plugin-sdk/docs/tdvt) и в настоящее время имеет уровень покрытия тестами 97%.
-
-
## Краткое описание {#summary}
Вы можете подключить Tableau к ClickHouse, используя универсальный драйвер ODBC/JDBC для ClickHouse. Однако этот
коннектор упрощает процесс настройки подключения. Если у вас возникнут какие-либо проблемы с коннектором, сообщите о них
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-connection-tips.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-connection-tips.md
index 0b41951d53b..f1997e48f56 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-connection-tips.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-connection-tips.md
@@ -11,13 +11,10 @@ doc_type: 'guide'
import Image from '@theme/IdealImage';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Рекомендации по подключению {#connection-tips}
-
-
## Вкладка Initial SQL {#initial-sql-tab}
Если на вкладке Advanced (по умолчанию) установлен флажок *Set Session ID*, вы можете задать [настройки](/operations/settings/settings/) на уровне сеанса с помощью
@@ -26,7 +23,6 @@ import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
SET my_setting=значение;
```
-
## Вкладка Advanced {#advanced-tab}
В 99% случаев вам не понадобится вкладка Advanced, для оставшегося 1% вы можете использовать следующие настройки:
@@ -38,8 +34,6 @@ SET my_setting=значение;
```
Подробнее о сопоставлении типов данных читайте в соответствующем разделе.
-
-
* **Параметры URL JDBC-драйвера**. В этом поле вы можете передать остальные [параметры драйвера](https://github.com/ClickHouse/clickhouse-jdbc#configuration), например `jdbcCompliance`. Учтите, что значения параметров должны передаваться в формате URL-encoded, и при передаче `custom_http_params` или `typeMappings` и в этом поле, и в предыдущих полях вкладки Advanced значения двух предшествующих полей на вкладке Advanced имеют более высокий приоритет.
* Флажок **Set Session ID**. Нужен для задания параметров на уровне сеанса во вкладке Initial SQL, генерирует `session_id` с меткой времени и псевдослучайным числом в формате `"tableau-jdbc-connector-*{timestamp}*-*{number}*"`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-online-and-clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-online-and-clickhouse.md
index ad772e90a8d..a9903775a5d 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-online-and-clickhouse.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-visualization/tableau/tableau-online-and-clickhouse.md
@@ -21,23 +21,16 @@ import tableau_desktop_03 from '@site/static/images/integrations/data-visualizat
import tableau_desktop_04 from '@site/static/images/integrations/data-visualization/tableau_desktop_04.png';
import tableau_desktop_05 from '@site/static/images/integrations/data-visualization/tableau_desktop_05.png';
-
# Tableau Online {#tableau-online}
Tableau Online может подключаться к ClickHouse Cloud или локальному развертыванию ClickHouse через интерфейс MySQL, используя официальный источник данных MySQL.
-
-
## Настройка ClickHouse Cloud {#clickhouse-cloud-setup}
-
-
## Настройка сервера ClickHouse в локальной инфраструктуре {#on-premise-clickhouse-server-setup}
-
-
## Подключение Tableau Online к ClickHouse (on-premise, без SSL) {#connecting-tableau-online-to-clickhouse-on-premise-without-ssl}
Войдите в свою учетную запись Tableau Cloud и добавьте новый источник данных (Published Data Source).
@@ -64,8 +57,6 @@ Tableau Online проанализирует базу данных и предо
NB: если вы хотите использовать Tableau Online в сочетании с Tableau Desktop и делиться наборами данных ClickHouse между ними, убедитесь, что вы используете Tableau Desktop с тем же стандартным коннектором MySQL, следуя руководству по настройке, которое отображается [здесь](https://www.tableau.com/support/drivers), если выбрать MySQL в выпадающем списке Data Source. Если у вас Mac на процессоре M1, ознакомьтесь с [этой темой по устранению неполадок](https://community.tableau.com/s/question/0D58b0000Ar6OhvCQE/unable-to-install-mysql-driver-for-m1-mac) для обходного варианта установки драйвера.
-
-
## Подключение Tableau Online к ClickHouse (облачное или локальное развертывание с SSL) {#connecting-tableau-online-to-clickhouse-cloud-or-on-premise-setup-with-ssl}
Так как невозможно указать SSL-сертификаты через мастер настройки подключения MySQL в Tableau Online,
@@ -108,8 +99,6 @@ SSL-сертификат ClickHouse Cloud подписан центром сер
Наконец, нажмите "Publish", и ваш источник данных со встроенными учетными данными будет автоматически открыт в Tableau Online.
-
-
## Известные ограничения (ClickHouse 23.11) {#known-limitations-clickhouse-2311}
Все известные ограничения были устранены в ClickHouse `23.11`. Если вы столкнётесь с другими проблемами совместимости, пожалуйста, [свяжитесь с нами](https://clickhouse.com/company/contact) или создайте [новый issue](https://github.com/ClickHouse/ClickHouse/issues).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md
index bac488c4ccc..b226aa73113 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md
@@ -55,7 +55,6 @@ Install-Package ClickHouse.Driver
***
-
## Быстрый старт {#quick-start}
```csharp
@@ -83,7 +82,6 @@ using (var connection = new ClickHouseConnection("Host=my.clickhouse"))
***
-
## Использование {#usage}
### Параметры строки подключения {#connection-string}
@@ -154,7 +152,6 @@ using (var connection = new ClickHouseConnection(connectionString))
***
-
### Вставка данных {#inserting-data}
Вставляйте данные с использованием параметризованных запросов:
@@ -178,7 +175,6 @@ using (var connection = new ClickHouseConnection(connectionString))
***
-
### Массовая вставка {#bulk-insert}
Для использования `ClickHouseBulkCopy` необходимы:
@@ -221,7 +217,6 @@ Console.WriteLine($"Записано строк: {bulkCopy.RowsWritten}");
***
-
### Выполнение запросов SELECT {#performing-select-queries}
Выполните запросы SELECT и обработайте результаты:
@@ -249,7 +244,6 @@ using (var connection = new ClickHouseConnection(connectionString))
***
-
### Необработанный стриминг {#raw-streaming}
```csharp
@@ -263,7 +257,6 @@ var json = reader.ReadToEnd();
***
-
### Поддержка вложенных столбцов {#nested-columns}
Вложенные типы ClickHouse (`Nested(...)`) можно читать и записывать с использованием семантики массивов.
@@ -289,7 +282,6 @@ await bulkCopy.WriteToServerAsync(new[] { row1, row2 });
***
-
### Столбцы типа AggregateFunction {#aggregatefunction-columns}
Столбцы типа `AggregateFunction(...)` нельзя напрямую использовать в запросах или при вставке данных.
@@ -308,7 +300,6 @@ SELECT uniqMerge(c) FROM t;
***
-
### Параметры SQL {#sql-parameters}
При передаче параметров в запрос следует использовать форматирование параметров ClickHouse в следующем формате:
@@ -339,7 +330,6 @@ INSERT INTO table VALUES ({val1:Int32}, {val2:Array(UInt8)})
***
-
## Поддерживаемые типы данных {#supported-data-types}
`ClickHouse.Driver` поддерживает следующие типы данных ClickHouse с их соответствующими сопоставлениями с типами .NET:
@@ -455,7 +445,6 @@ await using var connection = new ClickHouseConnection(settings);
await connection.OpenAsync();
```
-
#### Использование appsettings.json {#logging-appsettings-config}
Вы можете настроить уровни логирования с помощью стандартной системы конфигурации .NET:
@@ -486,7 +475,6 @@ await using var connection = new ClickHouseConnection(settings);
await connection.OpenAsync();
```
-
#### Использование конфигурации в оперативной памяти {#logging-inmemory-config}
Вы также можете настроить детализацию логирования по категориям прямо в коде:
@@ -523,7 +511,6 @@ await using var connection = new ClickHouseConnection(settings);
await connection.OpenAsync();
```
-
### Категории и источники {#logging-categories}
Драйвер использует отдельные категории, чтобы вы могли точно настраивать уровни логирования для каждого компонента:
@@ -558,7 +545,6 @@ await connection.OpenAsync();
* события открытия и закрытия подключений
* отслеживание идентификаторов сессий
-
### Режим отладки: трассировка сети и диагностика {#logging-debugmode}
Чтобы упростить диагностику сетевых проблем, библиотека драйвера предоставляет вспомогательный инструмент, позволяющий включить низкоуровневую трассировку внутренних сетевых механизмов .NET. Чтобы включить её, необходимо передать `LoggerFactory` с уровнем `Trace` и установить `EnableDebugMode` в значение `true` (или включить её вручную через класс `ClickHouse.Driver.Diagnostic.TraceHelper`). Предупреждение: это приведёт к генерации чрезвычайно подробных логов и повлияет на производительность. Не рекомендуется включать режим отладки в боевой (production) среде.
@@ -580,7 +566,6 @@ var settings = new ClickHouseClientSettings()
***
-
### Поддержка ORM и Dapper {#orm-support}
`ClickHouse.Driver` поддерживает Dapper (с некоторыми ограничениями).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/go/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/go/index.md
index e8429e6a4c0..5028804e813 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/go/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/go/index.md
@@ -13,7 +13,6 @@ integration:
import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_gather_your_details_native.md';
-
# ClickHouse Go {#clickhouse-go}
## Простой пример {#a-simple-example}
@@ -32,7 +31,6 @@ cd clickhouse-golang-example
go mod init clickhouse-golang-example
```
-
### Скопируйте пример кода {#copy-in-some-sample-code}
Скопируйте этот код в каталог `clickhouse-golang-example` под именем `main.go`.
@@ -113,14 +111,12 @@ func connect() (driver.Conn, error) {
}
```
-
### Выполните go mod tidy {#run-go-mod-tidy}
```bash
go mod tidy
```
-
### Укажите параметры подключения {#set-your-connection-details}
Ранее вы уже получили свои параметры подключения. Укажите их в `main.go` в функции `connect()`:
@@ -141,7 +137,6 @@ func connect() (driver.Conn, error) {
},
```
-
### Запуск примера {#run-the-example}
```bash
@@ -156,7 +151,6 @@ go run .
2023/03/06 14:18:33 name: hourly_data, uuid: a4e36bd4-1e82-45b3-be77-74a0fe65c52b
```
-
### Подробнее {#learn-more}
Остальная документация в этой категории описывает подробности работы клиента Go для ClickHouse.
@@ -248,7 +242,6 @@ go run main.go
```
-
### Управление версиями и совместимость {#versioning--compatibility}
Клиент выпускается независимо от ClickHouse. Линейка 2.x представляет текущую основную мажорную версию в разработке. Все версии 2.x должны быть совместимы друг с другом.
@@ -297,7 +290,6 @@ fmt.Println(v)
**Во всех последующих примерах, если не указано явно, предполагается, что переменная `conn` для подключения к ClickHouse уже создана и доступна.**
-
#### Параметры подключения {#connection-settings}
При открытии подключения можно использовать структуру `Options` для управления поведением клиента. Доступны следующие параметры:
@@ -355,7 +347,6 @@ if err != nil {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/connect_settings.go)
-
#### Пул подключений {#connection-pooling}
Клиент поддерживает пул подключений и при необходимости повторно использует их для выполнения запросов. В каждый момент времени будет использовано не более `MaxOpenConns`, а максимальный размер пула контролируется параметром `MaxIdleConns`. Для каждого выполнения запроса клиент получает подключение из пула и по завершении возвращает его обратно для повторного использования. Подключение используется на протяжении всего жизненного цикла батча и освобождается при вызове `Send()`.
@@ -433,7 +424,6 @@ v, err := conn.ServerVersion()
Если необходимы дополнительные параметры TLS, в коде приложения следует задать нужные поля в структуре `tls.Config`. Это может включать указание конкретных наборов шифров, принудительное использование определённой версии TLS (например, 1.2 или 1.3), добавление внутренней цепочки сертификатов CA, добавление клиентского сертификата (и закрытого ключа), если этого требует сервер ClickHouse, а также большинство других опций, применяемых в более сложных конфигурациях безопасности.
-
### Аутентификация {#authentication}
Укажите структуру Auth в настройках подключения, чтобы задать имя пользователя и пароль.
@@ -456,7 +446,6 @@ v, err := conn.ServerVersion()
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/auth.go)
-
### Подключение к нескольким узлам {#connecting-to-multiple-nodes}
Несколько адресов можно указать с помощью структуры `Addr`.
@@ -510,7 +499,6 @@ if err != nil {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/1c0d81d0b1388dbb9e09209e535667df212f4ae4/examples/clickhouse_api/multi_host.go#L50-L67)
-
### Выполнение {#execution}
Произвольные операторы можно выполнять с помощью метода `Exec`. Это полезно для DDL и простых операторов. Не следует использовать его для больших вставок или итераций запросов.
@@ -533,7 +521,6 @@ conn.Exec(context.Background(), "INSERT INTO example VALUES (1, 'test-1')")
Обратите внимание на возможность передавать `Context` при выполнении запроса. Это позволяет задавать отдельные настройки на уровне запроса — см. [Использование Context](#using-context).
-
### Пакетная вставка {#batch-insert}
Чтобы вставить большое количество строк, клиент поддерживает пакетную вставку (batch). Для этого необходимо подготовить батч, к которому можно добавлять строки. В конце он отправляется методом `Send()`. Батчи хранятся в памяти до вызова `Send`.
@@ -626,7 +613,6 @@ return batch.Send()
Для полного перечня поддерживаемых типов Go для каждого типа столбца см. раздел [Преобразование типов](#type-conversions).
-
### Запрос строк {#querying-rows}
Пользователи могут либо выполнить запрос одной строки с помощью метода `QueryRow`, либо получить курсор для итерации по набору результатов с помощью `Query`. В то время как первый метод принимает переменную, в которую будут десериализованы данные, второй требует вызова `Scan` для каждой строки.
@@ -677,7 +663,6 @@ return rows.Err()
Наконец, обратите внимание на возможность передавать `Context` методам `Query` и `QueryRow`. Это может использоваться для настроек на уровне запроса — подробности см. в разделе [Using Context](#using-context).
-
### Асинхронная вставка {#async-insert}
Асинхронные вставки поддерживаются методом Async. Это позволяет пользователю указать, должен ли клиент ждать завершения операции вставки на сервере или может ответить сразу после получения данных. Таким образом фактически управляется параметр [wait_for_async_insert](/operations/settings/settings#wait_for_async_insert).
@@ -717,7 +702,6 @@ for i := 0; i < 100; i++ {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/async.go)
-
### Колоночная вставка {#columnar-insert}
Данные можно вставлять в колоночном формате. Это может дать выигрыш в производительности, если данные уже имеют такую структуру, поскольку нет необходимости преобразовывать их в строки.
@@ -759,7 +743,6 @@ return batch.Send()
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/columnar_insert.go)
-
### Использование структур {#using-structs}
Для пользователей структуры Go представляют логическую модель строки данных в ClickHouse. Для этого нативный интерфейс предоставляет ряд удобных функций.
@@ -786,7 +769,6 @@ for _, v := range result {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/select_struct.go)
-
#### Scan struct {#scan-struct}
`ScanStruct` позволяет считывать одну строку результата запроса в структуру.
@@ -803,7 +785,6 @@ if err := conn.QueryRow(context.Background(), "SELECT Col1, COUNT() AS count FRO
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/scan_struct.go)
-
#### Добавление структуры {#append-struct}
`AppendStruct` позволяет добавить структуру к существующему [batch](#batch-insert) и интерпретировать её как полноценную строку таблицы. Для этого требуется, чтобы столбцы структуры совпадали по именам и типам со столбцами таблицы. Хотя для всех столбцов таблицы должно существовать эквивалентное поле структуры, некоторые поля структуры могут не иметь эквивалентного представления в виде столбца. Такие поля будут просто игнорироваться.
@@ -831,7 +812,6 @@ for i := 0; i < 1_000; i++ {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/append_struct.go)
-
### Преобразование типов {#type-conversions}
Клиент стремится быть максимально гибким в отношении принимаемых типов данных как для вставки, так и для маршалинга ответов. В большинстве случаев для типа столбца ClickHouse существует эквивалентный тип Golang, например, [UInt64](/sql-reference/data-types/int-uint/) — [uint64](https://pkg.go.dev/builtin#uint64). Эти логические соответствия должны поддерживаться всегда. Пользователи могут захотеть использовать типы данных, которые могут быть вставлены в столбцы или использованы для получения ответа, при условии, что предварительно будет выполнено преобразование либо переменной, либо полученных данных. Клиент нацелен на прозрачную поддержку таких преобразований, чтобы пользователям не нужно было заранее точно приводить данные к нужным типам перед вставкой, а также чтобы обеспечить гибкий маршалинг во время выполнения запроса. Такое прозрачное преобразование не допускает потери точности. Например, `uint32` не может использоваться для получения данных из столбца `UInt64`. В свою очередь, строку можно вставить в поле `datetime64`, если она соответствует требованиям формата.
@@ -900,7 +880,6 @@ rows.Close()
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/array.go)
-
#### Map {#map}
Отображения (map) следует задавать как карты Go (map), в которых ключи и значения соответствуют правилам преобразования типов, определённым [выше](#type-conversions).
@@ -946,7 +925,6 @@ rows.Close()
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/map.go)
-
#### Кортежи {#tuples}
Кортежи представляют собой набор столбцов произвольной длины. Столбцы могут быть либо явно именованы, либо задаваться только типом (без имени), например:
@@ -1008,7 +986,6 @@ fmt.Printf("row: col1=%v, col2=%v, col3=%v\n", col1, col2, col3)
Примечание: типизированные срезы и отображения поддерживаются при условии, что все подколонки в именованном `Tuple` имеют один и тот же тип.
-
#### Nested {#nested}
Поле типа Nested эквивалентно массиву именованных кортежей (Array of named Tuples). Использование зависит от того, установил ли пользователь параметр [flatten_nested](/operations/settings/settings#flatten_nested) в значение 1 или 0.
@@ -1117,7 +1094,6 @@ rows.Close()
Если для `flatten_nested` используется значение по умолчанию — 1, вложенные столбцы разворачиваются в отдельные массивы. Для вставки и выборки при этом требуются вложенные срезы. Хотя произвольная глубина вложенности может работать, это официально не поддерживается.
-
```go
conn, err := GetNativeConnection(nil, nil, nil)
if err != nil {
@@ -1187,7 +1163,6 @@ if err := batch.Send(); err != nil {
Благодаря более простому интерфейсу и официальной поддержке вложенности мы рекомендуем использовать `flatten_nested=0`.
-
#### Гео-типы {#geo-types}
Клиент поддерживает гео-типы Point, Ring, Polygon и Multi Polygon. Эти поля в Go представлены типами из пакета [github.com/paulmach/orb](https://github.com/paulmach/orb).
@@ -1271,7 +1246,6 @@ if err = conn.QueryRow(ctx, "SELECT * FROM example").Scan(&point, &ring, &polygo
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/geo.go)
-
#### UUID {#uuid}
Тип UUID поддерживается пакетом [github.com/google/uuid](https://github.com/google/uuid). UUID также можно передавать и сериализовать как строку или как любой тип, реализующий `sql.Scanner` или `Stringify`.
@@ -1317,7 +1291,6 @@ if err = conn.QueryRow(ctx, "SELECT * FROM example").Scan(&col1, &col2); err !=
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/uuid.go)
-
#### Decimal {#decimal}
Тип Decimal поддерживается пакетом [github.com/shopspring/decimal](https://github.com/shopspring/decimal).
@@ -1371,7 +1344,6 @@ fmt.Printf("col1=%v, col2=%v, col3=%v, col4=%v, col5=%v\n", col1, col2, col3, co
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/decimal.go)
-
#### Nullable {#nullable}
Значение `Nil` в Go соответствует `NULL` в ClickHouse. Его можно использовать, если поле объявлено как `Nullable`. При вставке `Nil` может передаваться как в обычный, так и в `Nullable`-столбец. В первом случае будет сохранено значение типа по умолчанию, например пустая строка для `string`. Для `Nullable`-версии в ClickHouse будет сохранено значение `NULL`.
@@ -1426,7 +1398,6 @@ if err = conn.QueryRow(ctx, "SELECT * FROM example").Scan(&col1, &col2, &col3, &
Клиент также поддерживает типы `sql.Null*`, например `sql.NullInt64`. Они совместимы с соответствующими типами ClickHouse.
-
#### Большие целые числа — Int128, Int256, UInt128, UInt256 {#big-ints---int128-int256-uint128-uint256}
Числовые типы размером более 64 бит представлены с использованием встроенного в Go пакета [big](https://pkg.go.dev/math/big).
@@ -1497,7 +1468,6 @@ fmt.Printf("col1=%v, col2=%v, col3=%v, col4=%v, col5=%v, col6=%v, col7=%v\n", co
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/big_int.go)
-
### Сжатие {#compression}
Поддержка методов сжатия зависит от используемого базового протокола. Для нативного протокола клиент поддерживает сжатие `LZ4` и `ZSTD`. Оно выполняется только на уровне блоков. Сжатие можно включить, добавив параметр конфигурации `Compression` к подключению.
@@ -1547,7 +1517,6 @@ if err := batch.Send(); err != nil {
Дополнительные способы сжатия доступны при использовании стандартного интерфейса по HTTP. Подробности см. в разделе [database/sql API - Compression](#compression).
-
### Привязка параметров {#parameter-binding}
Клиент поддерживает привязку параметров для методов `Exec`, `Query` и `QueryRow`. Как показано в примере ниже, это работает с использованием именованных, нумерованных и позиционных параметров. Ниже приведены примеры каждого из этих вариантов.
@@ -1576,7 +1545,6 @@ fmt.Printf("Количество при именованном связыван
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/bind.go)
-
#### Особые случаи {#special-cases}
По умолчанию срезы будут разворачиваться в список значений, разделённых запятыми, если они передаются как параметр запроса. Если нужно, чтобы набор значений был подставлен в квадратных скобках `[ ]`, следует использовать `ArraySet`.
@@ -1616,7 +1584,6 @@ fmt.Printf("Количество с NamedDate: %d\n", count)
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/bind_special.go)
-
### Использование контекста {#using-context}
Контексты в Go предоставляют механизм передачи дедлайнов, сигналов отмены и других значений, связанных с запросом, через границы API. Все методы соединения принимают `context` в качестве первого аргумента. В то время как в предыдущих примерах использовался `context.Background()`, пользователи могут использовать эту возможность для передачи настроек, дедлайнов и для отмены запросов.
@@ -1717,7 +1684,6 @@ for i := 1; i <= 6; i++ {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/context.go)
-
### Информация о ходе выполнения, профиле и логах {#progressprofilelog-information}
Информацию о ходе выполнения (Progress), профиле (Profile) и логах (Log) можно запрашивать при выполнении запросов. Информация о ходе выполнения содержит статистику по количеству строк и байт, которые были прочитаны и обработаны в ClickHouse. Напротив, информация профиля предоставляет сводку данных, возвращённых клиенту, включая суммарный объём байт (в несжатом виде), строк и блоков. Наконец, информация из логов предоставляет статистику по потокам, например, использование памяти и скорость обработки данных.
@@ -1749,7 +1715,6 @@ rows.Close()
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/progress.go)
-
### Динамическое сканирование {#dynamic-scanning}
Пользователям может потребоваться читать таблицы, для которых им заранее неизвестна схема или тип полей, возвращаемых запросом. Это типично в случаях, когда выполняется разовая (ad‑hoc) аналитика данных или разрабатываются универсальные инструменты. Для этого информация о типах столбцов доступна в ответах на запросы. Её можно использовать совместно с механизмом рефлексии (reflection) в Go для создания во время выполнения экземпляров переменных корректных типов, которые затем можно передавать в Scan.
@@ -1788,7 +1753,6 @@ for rows.Next() {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/dynamic_scan_types.go)
-
### Внешние таблицы {#external-tables}
[Внешние таблицы](/engines/table-engines/special/external-data/) позволяют клиенту отправлять данные в ClickHouse в рамках запроса SELECT. Эти данные помещаются во временную таблицу и могут использоваться в самом запросе для вычислений.
@@ -1855,7 +1819,6 @@ fmt.Printf("external_table_1 UNION external_table_2: %d\n", count)
[Полный пример кода](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/external_data.go)
-
### OpenTelemetry {#open-telemetry}
ClickHouse позволяет передавать [контекст трассировки](/operations/opentelemetry/) в составе нативного протокола. Клиент позволяет создать Span с помощью функции `clickhouse.withSpan` и передать его через Context для этого.
@@ -1878,7 +1841,6 @@ fmt.Printf("count: %d\n", count)
Подробное описание использования трассировки см. в разделе [поддержка OpenTelemetry](/operations/opentelemetry/).
-
## Database/SQL API {#databasesql-api}
Интерфейс `database/sql` или «стандартный» API позволяет использовать клиент в сценариях, когда прикладной код должен быть агностичным к используемым базам данных, опираясь на стандартный интерфейс. Это имеет свою цену — дополнительные уровни абстракции и перенаправления вызовов, а также примитивы, которые не обязательно хорошо соответствуют ClickHouse. Однако эти издержки, как правило, приемлемы в сценариях, когда инструментам необходимо подключаться к нескольким базам данных.
@@ -1927,7 +1889,6 @@ func ConnectDSN() error {
**Во всех последующих примерах, если явно не указано иное, предполагается, что соединение с ClickHouse в переменной `conn` уже установлено и доступно.**
-
#### Настройки подключения {#connection-settings-1}
В строку DSN можно передать следующие параметры:
@@ -1966,7 +1927,6 @@ func ConnectSettings() error {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/connect_settings.go)
-
#### Пул подключений {#connection-pooling-1}
Пользователи могут влиять на использование предоставленного списка адресов узлов, как описано в разделе [Подключение к нескольким узлам](#connecting-to-multiple-nodes). Однако управление подключениями и пулом подключений по задумке делегируются `sql.DB`.
@@ -2008,7 +1968,6 @@ func ConnectDSNHTTP() error {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/connect_http.go)
-
#### Подключение к нескольким узлам {#connecting-to-multiple-nodes-1}
Если вы используете `OpenDB`, можно подключаться к нескольким хостам, используя тот же подход к настройке опций, что и для ClickHouse API, при необходимости указывая `ConnOpenStrategy`.
@@ -2056,7 +2015,6 @@ func MultiStdHostDSN() error {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/multi_host.go)
-
### Использование TLS {#using-tls-1}
Если используется строка подключения DSN, SSL можно включить с помощью параметра `secure=true`. Метод `OpenDB` использует тот же подход, что и [нативный API TLS](#using-tls), полагаясь на указание структуры TLS, отличной от nil. Хотя строка подключения DSN поддерживает параметр `skip_verify` для пропуска проверки SSL, для более сложных конфигураций TLS необходим метод `OpenDB`, так как он позволяет передавать собственную конфигурацию.
@@ -2110,7 +2068,6 @@ func ConnectDSNSSL() error {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/ssl.go)
-
### Аутентификация {#authentication-1}
При использовании `OpenDB` информацию для аутентификации можно передать через стандартные опции. Для подключений на основе DSN имя пользователя и пароль могут быть переданы в строке подключения — либо как параметры, либо как учетные данные, закодированные в адресе.
@@ -2151,7 +2108,6 @@ func ConnectDSNAuth() error {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/auth.go)
-
### Выполнение {#execution-1}
После установления соединения пользователи могут выполнять SQL-операторы с помощью метода `Exec`.
@@ -2174,7 +2130,6 @@ _, err = conn.Exec("INSERT INTO example VALUES (1, 'test-1')")
Этот метод не поддерживает передачу контекста — по умолчанию он выполняется с фоновым контекстом. При необходимости используйте `ExecContext` — см. раздел [Использование контекста](#using-context).
-
### Пакетная вставка {#batch-insert-1}
Семантику пакетной вставки можно реализовать, создав `sql.Tx` с помощью метода `Begin`. После этого можно подготовить пакет, вызвав метод `Prepare` с оператором `INSERT`. Он вернёт объект `sql.Stmt`, в который можно добавлять строки методом `Exec`. Пакет будет накапливаться в памяти до тех пор, пока для исходного `sql.Tx` не будет выполнен `Commit`.
@@ -2209,7 +2164,6 @@ return scope.Commit()
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/batch.go)
-
### Запрос строк/строки {#querying-rows-1}
Запрос одной строки можно выполнить с помощью метода `QueryRow`. Он возвращает `*sql.Row`, для которого можно вызвать `Scan` с указателями на переменные, в которые должны быть считаны значения столбцов. Вариант `QueryRowContext` позволяет передать контекст, отличный от фонового контекста — см. [Использование контекста](#using-context).
@@ -2256,7 +2210,6 @@ for rows.Next() {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/query_rows.go)
-
### Асинхронная вставка {#async-insert-1}
Асинхронные вставки можно выполнять через метод `ExecContext`. Ему следует передать контекст с включённым асинхронным режимом, как показано ниже. Это позволяет пользователю указать, должен ли клиент ждать завершения вставки на сервере или вернуть ответ сразу после получения данных. Тем самым фактически управляется параметр [wait_for_async_insert](/operations/settings/settings#wait_for_async_insert).
@@ -2288,7 +2241,6 @@ ctx := clickhouse.Context(context.Background(), clickhouse.WithStdAsync(false))
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/async.go)
-
### Колонночная вставка {#columnar-insert-1}
Не поддерживается при использовании стандартного интерфейса.
@@ -2352,7 +2304,6 @@ fmt.Printf("col1=%v, col2=%v, col3=%v, col4=%v, col5=%v", col1, col2, col3, col4
Поведение операции вставки такое же, как у API ClickHouse.
-
### Сжатие {#compression-1}
Стандартный API поддерживает те же алгоритмы сжатия, что и нативный [ClickHouse API](#compression), т.е. сжатие `lz4` и `zstd` на уровне блоков. Дополнительно для HTTP‑соединений поддерживаются gzip, deflate и br. Если любой из них включён, сжатие выполняется для блоков при вставке и в ответах на запросы. Остальные запросы, например ping или запросы на выполнение, останутся несжатыми. Это соответствует опциям `lz4` и `zstd`.
@@ -2390,7 +2341,6 @@ conn, err := sql.Open("clickhouse", fmt.Sprintf("http://%s:%d?username=%s&passwo
* `br` — от `0` (лучшая скорость) до `11` (лучшее сжатие)
* `zstd`, `lz4` — игнорируется
-
### Привязка параметров {#parameter-binding-1}
Стандартный API поддерживает те же возможности привязки параметров, что и [ClickHouse API](#parameter-binding), позволяя передавать параметры в методы `Exec`, `Query` и `QueryRow` (и их эквивалентные варианты с [Context](#using-context)). Поддерживаются позиционные, именованные и нумерованные параметры.
@@ -2421,7 +2371,6 @@ fmt.Printf("Количество при именованном связыван
Имейте в виду, что [особые случаи](#special-cases) по-прежнему актуальны.
-
### Использование контекста {#using-context-1}
Стандартный API поддерживает такую же возможность передавать дедлайны, сигналы отмены и другие значения, относящиеся к запросу, через контекст, как и [ClickHouse API](#using-context). В отличие от ClickHouse API, это реализовано за счет использования вариантов методов с `Context`, то есть методы, такие как `Exec`, которые по умолчанию используют фоновый контекст, имеют вариант `ExecContext`, которому контекст может быть передан в качестве первого параметра. Это позволяет передавать контекст на любом этапе выполнения приложения. Например, пользователи могут передавать контекст при установлении соединения через `ConnContext` или при запросе строки результата запроса через `QueryRowContext`. Примеры всех доступных методов приведены ниже.
@@ -2509,7 +2458,6 @@ for rows.Next() {
[Полный пример кода](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/context.go)
-
### Сессии {#sessions}
Если в нативных соединениях сессия присутствует изначально, то при соединениях по HTTP пользователю нужно явно задать идентификатор сессии, передавая его в настройках контекста. Это позволяет использовать такие функции, как временные таблицы, которые привязаны к сессии.
@@ -2571,7 +2519,6 @@ for rows.Next() {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/session.go)
-
### Динамическое сканирование {#dynamic-scanning-1}
Аналогично [ClickHouse API](#dynamic-scanning), доступна информация о типах столбцов, что позволяет пользователям создавать в рантайме экземпляры переменных с корректными типами, которые можно передавать в `Scan`. Это позволяет читать столбцы, тип которых заранее неизвестен.
@@ -2611,7 +2558,6 @@ for rows.Next() {
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/dynamic_scan_types.go)
-
### Внешние таблицы {#external-tables-1}
[Внешние таблицы](/engines/table-engines/special/external-data/) позволяют клиенту отправлять данные в ClickHouse с помощью запроса `SELECT`. Эти данные помещаются во временную таблицу и могут использоваться в самом запросе для обработки.
@@ -2678,7 +2624,6 @@ fmt.Printf("external_table_1 UNION external_table_2: %d\n", count)
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/external_data.go)
-
### OpenTelemetry {#open-telemetry-1}
ClickHouse позволяет передавать [контекст трассировки](/operations/opentelemetry/) как часть нативного протокола. Клиент позволяет создать Span с помощью функции `clickhouse.withSpan` и передать его через Context для этого. При использовании HTTP в качестве транспорта это не поддерживается.
@@ -2699,7 +2644,6 @@ fmt.Printf("count: %d\n", count)
[Полный пример](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/std/open_telemetry.go)
-
## Рекомендации по производительности {#performance-tips}
* По возможности используйте ClickHouse API, особенно для примитивных типов. Это позволяет избежать значительных накладных расходов на рефлексию и дополнительные уровни косвенных обращений.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/_snippets/_v0_8.mdx b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/_snippets/_v0_8.mdx
index 42187db4c2d..a3c4980715d 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/_snippets/_v0_8.mdx
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/_snippets/_v0_8.mdx
@@ -127,50 +127,50 @@ Client client = new Client.Builder()
| `setKeepAliveTimeout(long timeout, ChronoUnit unit)` | * `timeout` - тайм-аут в определённой единице времени. - `unit` - единица времени для значения `timeout` | Устанавливает тайм-аут поддержания активности HTTP-соединения (keep-alive). Этот параметр можно использовать для отключения Keep-Alive, установив тайм-аут равным нулю — `0`
По умолчанию: - Enum: `ClientConfigProperties.HTTP_KEEP_ALIVE_TIMEOUT` Ключ: `http_keep_alive_timeout` |
| `setConnectionReuseStrategy(ConnectionReuseStrategy strategy)` | - `strategy` - константа перечисления (enum) `com.clickhouse.client.api.ConnectionReuseStrategy` | Определяет стратегию, которую должен использовать пул соединений: `LIFO` — если соединение должно переиспользоваться сразу после возврата в пул, или `FIFO` — чтобы использовать соединения в порядке их появления (возвращённые соединения не используются немедленно).
По умолчанию: `FIFO` Enum: `ClientConfigProperties.CONNECTION_REUSE_STRATEGY` Ключ: `connection_reuse_strategy` |
| `setSocketTimeout(long timeout, ChronoUnit unit`)` | *`timeout`- таймаут в заданной единице измерения времени. -`unit`- единица измерения времени для`timeout` | Задает тайм-аут сокета для операций чтения и записи
По умолчанию:`0` Enum:`ClientConfigProperties.SOCKET_OPERATION_TIMEOUT` Key:`socket_timeout` |
- |`setSocketRcvbuf(long size)` | -`size`— размер в байтах | Задает размер приемного буфера TCP-сокета. Этот буфер размещается вне памяти JVM.
Default:`8196` Enum:`ClientConfigProperties.SOCKET_RCVBUF_OPT` Key:`socket_rcvbuf` |
- |`setSocketSndbuf(long size)` | *`size`- размер в байтах | Устанавливает буфер приёма TCP-сокета. Этот буфер располагается вне памяти JVM.
По умолчанию:`8196` Enum:`ClientConfigProperties.SOCKET_SNDBUF_OPT` Ключ:`socket_sndbuf` |
- |`setSocketKeepAlive(boolean value)` | -`value`- флаг, указывающий, нужно ли включить параметр. | Устанавливает опцию`SO_KEEPALIVE`для каждого TCP-сокета, создаваемого клиентом. TCP Keep Alive включает механизм, который проверяет активность соединения и помогает обнаруживать соединения, разорванные внезапно.
По умолчанию: - Enum:`ClientConfigProperties.SOCKET_KEEPALIVE_OPT` Key:`socket_keepalive` |
- |`setSocketTcpNodelay(boolean value)` | *`value`— флаг, указывающий, нужно ли включать эту опцию. | Устанавливает опцию`SO_NODELAY`для каждого TCP-сокета, создаваемого клиентом. Эта TCP-опция заставляет сокет передавать данные как можно скорее.
По умолчанию: - Enum:`ClientConfigProperties.SOCKET_TCP_NO_DELAY_OPT` Key:`socket_tcp_nodelay` |
- |`setSocketLinger(int secondsToWait)` | -`secondsToWait`- количество секунд. | Задаёт время ожидания при закрытии (linger) для каждого TCP-сокета, создаваемого клиентом.
По умолчанию: - Enum:`ClientConfigProperties.SOCKET_LINGER_OPT` Key:`socket_linger` |
- |`compressServerResponse(boolean enabled)` | *`enabled`- флаг, определяющий, нужно ли включать эту опцию | Определяет, должен ли сервер сжимать свои ответы.
По умолчанию:`true` Enum:`ClientConfigProperties.COMPRESS_SERVER_RESPONSE` Ключ:`compress` |
- |`compressClientRequest(boolean enabled)` | -`enabled`— флаг, указывающий, включена ли опция | Определяет, должен ли клиент сжимать свои запросы.
По умолчанию:`false` Enum:`ClientConfigProperties.COMPRESS_CLIENT_REQUEST` Ключ:`decompress` |
- |`useHttpCompression(boolean enabled)` | *`enabled`- флаг, определяющий, должен ли быть включён параметр | Определяет, следует ли использовать HTTP-сжатие для обмена данными между клиентом и сервером, если включены соответствующие опции |
- |`appCompressedData(boolean enabled)` | -`enabled`- флаг, указывающий, должна ли опция быть включена | Сообщает клиенту, что сжатие данных будет выполняться приложением.
По умолчанию:`false` Enum:`ClientConfigProperties.APP_COMPRESSED_DATA` Ключ:`app_compressed_data` |
- |`setLZ4UncompressedBufferSize(int size)` | *`size`— размер в байтах | Устанавливает размер буфера, который будет принимать несжатую часть потока данных. Если размер буфера занижен — будет создан новый буфер, а в логах появится соответствующее предупреждение.
По умолчанию:`65536` Enum:`ClientConfigProperties.COMPRESSION_LZ4_UNCOMPRESSED_BUF_SIZE` Key:`compression.lz4.uncompressed_buffer_size` |
- |`disableNativeCompression` | -`disable`- флаг, определяющий, нужно ли отключить опцию | Отключить нативное сжатие. Если установлено в true, нативное сжатие будет отключено.
По умолчанию:`false` Enum:`ClientConfigProperties.DISABLE_NATIVE_COMPRESSION` Ключ:`disable_native_compression` |
- |`setDefaultDatabase(String database)` | *`database`- название базы данных | Задает базу данных по умолчанию.
По умолчанию:`default` Enum:`ClientConfigProperties.DATABASE` Ключ:`database` |
- |`addProxy(ProxyType type, String host, int port)` | -`type`- тип прокси-сервера. -`host`- имя хоста или IP-адрес прокси-сервера. -`port`- порт прокси-сервера | Задает прокси-сервер, используемый для связи с сервером. Настройка прокси обязательна, если для работы через него требуется аутентификация.
По умолчанию: - Enum:`ClientConfigProperties.PROXY_TYPE` Key:`proxy_type`
По умолчанию: - Enum:`ClientConfigProperties.PROXY_HOST` Key:`proxy_host`
По умолчанию: - Enum:`ClientConfigProperties.PROXY_PORT` Key:`proxy_port` |
- |`setProxyCredentials(String user, String pass)` | *`user`- имя пользователя для прокси. -`pass`- пароль | Задает учетные данные пользователя для аутентификации на прокси-сервере.
По умолчанию: - Enum:`ClientConfigProperties.PROXY_USER` Ключ:`proxy_user`
По умолчанию: - Enum:`ClientConfigProperties.PROXY_PASSWORD` Ключ:`proxy_password` |
- |`setExecutionTimeout(long timeout, ChronoUnit timeUnit)` | -`timeout`- тайм-аут, заданный в некоторой единице времени. -`timeUnit`- единица времени для параметра`timeout` | Устанавливает максимальное время выполнения запросов
Значение по умолчанию:`0` Enum:`ClientConfigProperties.MAX_EXECUTION_TIME` Ключ:`max_execution_time` |
- |`setHttpCookiesEnabled(boolean enabled)` |`enabled`- флаг, определяющий, должна ли быть включена опция | Определяет, нужно ли запоминать HTTP‑cookie и отправлять их обратно на сервер. |
- |`setSSLTrustStore(String path)` |`path`— путь к файлу в локальной системе (на стороне клиента) | Определяет, должен ли клиент использовать SSL truststore для проверки хоста сервера.
По умолчанию: - Enum:`ClientConfigProperties.SSL_TRUST_STORE` Key:`trust_store` |
- |`setSSLTrustStorePassword(String password)` |`password`— секрет | Устанавливает пароль, который будет использоваться для доступа к SSL truststore, указанному с помощью`setSSLTrustStore(String path)`
По умолчанию: - Перечисление:`ClientConfigProperties.SSL_KEY_STORE_PASSWORD` Ключ:`key_store_password` |
- |`setSSLTrustStoreType(String type)` |`type`— имя типа хранилища доверенных сертификатов | Задаёт тип хранилища доверенных сертификатов, указанного в`setSSLTrustStore(String path)`.
По умолчанию: - Enum: `ClientConfigProperties.SSL_KEYSTORE_TYPE` Ключ:`key_store_type` |
- |`setRootCertificate(String path)` |`path`— путь к файлу в локальной системе (на стороне клиента) | Определяет, должен ли клиент использовать указанный корневой (CA) сертификат для проверки подлинности узла сервера.
По умолчанию: - Enum:`ClientConfigProperties.CA_CERTIFICATE` Key:`sslrootcert` |
- |`setClientCertificate(String path)` |`path`— путь к файлу в локальной системе (на стороне клиента) | Устанавливает путь к клиентскому сертификату, который будет использоваться при установлении SSL-соединения и для SSL-аутентификации.
По умолчанию: - Enum:`ClientConfigProperties.SSL_CERTIFICATE` Key:`sslcert` |
- |`setClientKey(String path)` |`path`— путь к файлу в локальной системе (на стороне клиента) | Задаёт закрытый ключ клиента, используемый для шифрования SSL-соединения с сервером.
По умолчанию: - Enum:`ClientConfigProperties.SSL_KEY` Ключ:`ssl_key` |
- |`useServerTimeZone(boolean useServerTimeZone)` |`useServerTimeZone`- флаг, определяющий, следует ли включать эту опцию | Определяет, должен ли клиент использовать временную зону сервера при декодировании значений столбцов DateTime и Date. Если параметр включён, временная зона сервера должна быть установлена с помощью`setServerTimeZone(String timeZone)`
По умолчанию:`true` Enum:`ClientConfigProperties.USE_SERVER_TIMEZONE` Ключ:`use_server_time_zone` |
- |`useTimeZone(String timeZone)` |`timeZone`- строковое значение допустимого идентификатора часового пояса Java (см.`java.time.ZoneId`) | Определяет, следует ли использовать указанную временную зону при декодировании значений столбцов DateTime и Date. Переопределяет временную зону сервера.
По умолчанию: - Enum: `ClientConfigProperties.USE_TIMEZONE` Key:`use_time_zone` |
- |`setServerTimeZone(String timeZone)` |`timeZone`— строковое значение допустимого идентификатора часового пояса в Java (см.`java.time.ZoneId`) | Устанавливает часовой пояс сервера. По умолчанию используется часовой пояс UTC.
По умолчанию: `UTC` Enum:`ClientConfigProperties.SERVER_TIMEZONE` Ключ:`server_time_zone` |
- |`useAsyncRequests(boolean async)` |`async`- флаг, указывающий, нужно ли включить эту опцию. | Определяет, должен ли клиент выполнять запрос в отдельном потоке. По умолчанию параметр отключён, так как приложение обычно лучше понимает, как организовывать многопоточные задачи, а запуск задач в отдельном потоке не улучшает производительность.
По умолчанию:`false` Enum:`ClientConfigProperties.ASYNC_OPERATIONS` Key:`async` |
- |`setSharedOperationExecutor(ExecutorService executorService)` |`executorService`— экземпляр службы исполнителей. | Задает сервис выполнения задач операции.
По умолчанию:`none` Enum:`none` Ключ:`none` |
- |`setClientNetworkBufferSize(int size)` | *`size`— размер в байтах | Задает размер буфера в пространстве памяти приложения, который используется для копирования данных между сокетом и приложением в обоих направлениях. Увеличение этого размера уменьшает количество системных вызовов к TCP-стеку, но увеличивает объем памяти, расходуемой на каждое соединение. Этот буфер также подлежит сборке мусора, поскольку соединения кратковременные. Обратите также внимание, что выделение большого непрерывного блока памяти может быть проблемой.
По умолчанию:`300000` Enum:`ClientConfigProperties.CLIENT_NETWORK_BUFFER_SIZE` Key:`client_network_buffer_size`|
- |`retryOnFailures(ClientFaultCause ...causes)` | -`causes`- константа перечисления`enum` `com.clickhouse.client.api.ClientFaultCause` | Задаёт типы ошибок, при которых выполняется повторная попытка.
По умолчанию:`NoHttpResponse,ConnectTimeout,ConnectionRequestTimeout` Enum:`ClientConfigProperties.CLIENT_RETRY_ON_FAILURE` Ключ:`client_retry_on_failures` |
- |`setMaxRetries(int maxRetries)` | *`maxRetries`- число повторных попыток | Устанавливает максимальное количество повторных попыток для сбоев, определённых в`retryOnFailures(ClientFaultCause ...causes)`
По умолчанию:`3` Enum:`ClientConfigProperties.RETRY_ON_FAILURE` Ключ:`retry` |
- |`allowBinaryReaderToReuseBuffers(boolean reuse)` | -`reuse`— флаг, указывающий, должна ли быть включена опция | Большинство наборов данных содержат числовые данные, закодированные в виде небольших последовательностей байт. По умолчанию ридер выделяет необходимый буфер, считывает в него данные, а затем преобразует их в целевой класс Number. Это может создавать значительную нагрузку на сборщик мусора (GC), поскольку создаётся и освобождается большое количество мелких объектов. Если эта опция включена, ридер будет использовать заранее выделенные буферы для преобразования чисел. Это безопасно, поскольку у каждого ридера есть собственный набор буферов, и каждый экземпляр ридера используется только одним потоком. |
- |`httpHeader(String key, String value)` | *`key`- ключ заголовка HTTP. -`value`- строковое значение этого заголовка. | Устанавливает значение для одного HTTP-заголовка. Предыдущее значение перезаписывается.
По умолчанию:`none` Допустимые значения (enum):`none` Ключ:`none` |
- |`httpHeader(String key, Collection values)` | -`key`- ключ заголовка HTTP. -`values`- список строковых значений. | Задает значение одного HTTP-заголовка. Предыдущее значение переопределяется.
По умолчанию:`none` Перечисление:`none` Ключ:`none` |
- |`httpHeaders(Map headers)` | *`header`— карта (map) HTTP-заголовков и их значений. | Задает несколько значений HTTP-заголовков одновременно.
По умолчанию:`none` Перечисление:`none` Ключ:`none` |
- |`serverSetting(String name, String value)` | -`name`- имя настройки на уровне запроса. -`value`- строковое значение настройки. | Задает, какие настройки передавать серверу вместе с каждым запросом. Настройки отдельных операций могут их переопределять. [Список настроек](/operations/settings/query-level)
Default:`none` Enum:`none` Key:`none` |
- |`serverSetting(String name, Collection values)` | *`name`- имя настройки уровня запроса. -`values`- строковые значения этой настройки. | Определяет, какие настройки передавать серверу вместе с каждым запросом. Отдельные настройки операций могут их переопределять. См. [список настроек](/operations/settings/query-level). Этот метод полезен, когда нужно задать настройки с несколькими значениями, например [roles](/interfaces/http#setting-role-with-query-parameters).
По умолчанию:`none` Перечисление:`none` Ключ:`none` |
- |`columnToMethodMatchingStrategy(ColumnToMethodMatchingStrategy strategy)`| -`strategy`— реализация стратегии сопоставления столбцов с полями | Задает пользовательскую стратегию, используемую для сопоставления полей класса DTO и столбцов БД при регистрации DTO.
По умолчанию:`none` Enum:`none` Ключ:`none` |
- |`useHTTPBasicAuth(boolean useBasicAuth)` | *`useBasicAuth`- флаг, указывающий, нужно ли включить эту опцию | Задаёт, следует ли использовать базовую HTTP-аутентификацию для проверки имени пользователя и пароля. По умолчанию включено. Использование этого типа аутентификации устраняет проблемы с паролями, содержащими специальные символы, которые не могут быть корректно переданы в HTTP-заголовках.
По умолчанию:`true` Enum:`ClientConfigProperties.HTTP_USE_BASIC_AUTH` Key:`http_use_basic_auth` |
- |`setClientName(String clientName)` | -`clientName`- строка с именем приложения | Задает дополнительную информацию о клиентском приложении. Эта строка будет передана серверу как имя клиента. В случае использования протокола HTTP она будет передана как заголовок`User-Agent`.
Default: - Enum: `ClientConfigProperties.CLIENT_NAME` Key:`client_name` |
- |`useBearerTokenAuth(String bearerToken)` | *`bearerToken`— токен типа Bearer в закодированном виде | Указывает, следует ли использовать Bearer-аутентификацию и какой токен применять. Токен будет отправлен без изменений, поэтому его следует закодировать перед передачей этому методу.
По умолчанию: - Enum:`ClientConfigProperties.BEARERTOKEN_AUTH` Ключ:`bearer_token` |
- |`registerClientMetrics(Object registry, String name)` | -`registry`- экземпляр реестра Micrometer -`name`- имя группы метрик | Регистрирует сенсоры в экземпляре реестра Micrometer ([https://micrometer.io/](https://micrometer.io/)). |
- |`setServerVersion(String version)` | *`version`- строковое значение версии сервера | Задает версию сервера, чтобы исключить ее определение автоматически.
По умолчанию: - Перечисление:`ClientConfigProperties.SERVER_VERSION` Ключ:`server_version` |
- |`typeHintMapping(Map typeHintMapping)` | -`typeHintMapping`- карта подсказок типов | Задает сопоставление подсказок типов для типов ClickHouse. Например, чтобы многомерные массивы представлялись в виде контейнеров Java вместо отдельных объектов Array.
По умолчанию: - Enum:`ClientConfigProperties.TYPE_HINT_MAPPING` Key:`type_hint_mapping` |
- |`sslSocketSNI(String sni)` | *`sni`- значение имени сервера в виде строки | Устанавливает имя сервера, используемое для SNI (Server Name Indication) в SSL/TLS-соединении.
По умолчанию: - Enum:`ClientConfigProperties.SSL_SOCKET_SNI` Key:`ssl_socket_sni` |
+ |`setSocketRcvbuf(long size)` | -`size`— размер в байтах | Задает размер приемного буфера TCP-сокета. Этот буфер размещается вне памяти JVM.
Default:`8196` Enum:`ClientConfigProperties.SOCKET_RCVBUF_OPT` Key:`socket_rcvbuf` |
+ |`setSocketSndbuf(long size)` | *`size`- размер в байтах | Устанавливает буфер приёма TCP-сокета. Этот буфер располагается вне памяти JVM.
По умолчанию:`8196` Enum:`ClientConfigProperties.SOCKET_SNDBUF_OPT` Ключ:`socket_sndbuf` |
+ |`setSocketKeepAlive(boolean value)` | -`value`- флаг, указывающий, нужно ли включить параметр. | Устанавливает опцию`SO_KEEPALIVE`для каждого TCP-сокета, создаваемого клиентом. TCP Keep Alive включает механизм, который проверяет активность соединения и помогает обнаруживать соединения, разорванные внезапно.
По умолчанию: - Enum:`ClientConfigProperties.SOCKET_KEEPALIVE_OPT` Key:`socket_keepalive` |
+ |`setSocketTcpNodelay(boolean value)` | *`value`— флаг, указывающий, нужно ли включать эту опцию. | Устанавливает опцию`SO_NODELAY`для каждого TCP-сокета, создаваемого клиентом. Эта TCP-опция заставляет сокет передавать данные как можно скорее.
По умолчанию: - Enum:`ClientConfigProperties.SOCKET_TCP_NO_DELAY_OPT` Key:`socket_tcp_nodelay` |
+ |`setSocketLinger(int secondsToWait)` | -`secondsToWait`- количество секунд. | Задаёт время ожидания при закрытии (linger) для каждого TCP-сокета, создаваемого клиентом.
По умолчанию: - Enum:`ClientConfigProperties.SOCKET_LINGER_OPT` Key:`socket_linger` |
+ |`compressServerResponse(boolean enabled)` | *`enabled`- флаг, определяющий, нужно ли включать эту опцию | Определяет, должен ли сервер сжимать свои ответы.
По умолчанию:`true` Enum:`ClientConfigProperties.COMPRESS_SERVER_RESPONSE` Ключ:`compress` |
+ |`compressClientRequest(boolean enabled)` | -`enabled`— флаг, указывающий, включена ли опция | Определяет, должен ли клиент сжимать свои запросы.
По умолчанию:`false` Enum:`ClientConfigProperties.COMPRESS_CLIENT_REQUEST` Ключ:`decompress` |
+ |`useHttpCompression(boolean enabled)` | *`enabled`- флаг, определяющий, должен ли быть включён параметр | Определяет, следует ли использовать HTTP-сжатие для обмена данными между клиентом и сервером, если включены соответствующие опции |
+ |`appCompressedData(boolean enabled)` | -`enabled`- флаг, указывающий, должна ли опция быть включена | Сообщает клиенту, что сжатие данных будет выполняться приложением.
По умолчанию:`false` Enum:`ClientConfigProperties.APP_COMPRESSED_DATA` Ключ:`app_compressed_data` |
+ |`setLZ4UncompressedBufferSize(int size)` | *`size`— размер в байтах | Устанавливает размер буфера, который будет принимать несжатую часть потока данных. Если размер буфера занижен — будет создан новый буфер, а в логах появится соответствующее предупреждение.
По умолчанию:`65536` Enum:`ClientConfigProperties.COMPRESSION_LZ4_UNCOMPRESSED_BUF_SIZE` Key:`compression.lz4.uncompressed_buffer_size` |
+ |`disableNativeCompression` | -`disable`- флаг, определяющий, нужно ли отключить опцию | Отключить нативное сжатие. Если установлено в true, нативное сжатие будет отключено.
По умолчанию:`false` Enum:`ClientConfigProperties.DISABLE_NATIVE_COMPRESSION` Ключ:`disable_native_compression` |
+ |`setDefaultDatabase(String database)` | *`database`- название базы данных | Задает базу данных по умолчанию.
По умолчанию:`default` Enum:`ClientConfigProperties.DATABASE` Ключ:`database` |
+ |`addProxy(ProxyType type, String host, int port)` | -`type`- тип прокси-сервера. -`host`- имя хоста или IP-адрес прокси-сервера. -`port`- порт прокси-сервера | Задает прокси-сервер, используемый для связи с сервером. Настройка прокси обязательна, если для работы через него требуется аутентификация.
По умолчанию: - Enum:`ClientConfigProperties.PROXY_TYPE` Key:`proxy_type`
По умолчанию: - Enum:`ClientConfigProperties.PROXY_HOST` Key:`proxy_host`
По умолчанию: - Enum:`ClientConfigProperties.PROXY_PORT` Key:`proxy_port` |
+ |`setProxyCredentials(String user, String pass)` | *`user`- имя пользователя для прокси. -`pass`- пароль | Задает учетные данные пользователя для аутентификации на прокси-сервере.
По умолчанию: - Enum:`ClientConfigProperties.PROXY_USER` Ключ:`proxy_user`
По умолчанию: - Enum:`ClientConfigProperties.PROXY_PASSWORD` Ключ:`proxy_password` |
+ |`setExecutionTimeout(long timeout, ChronoUnit timeUnit)` | -`timeout`- тайм-аут, заданный в некоторой единице времени. -`timeUnit`- единица времени для параметра`timeout` | Устанавливает максимальное время выполнения запросов
Значение по умолчанию:`0` Enum:`ClientConfigProperties.MAX_EXECUTION_TIME` Ключ:`max_execution_time` |
+ |`setHttpCookiesEnabled(boolean enabled)` |`enabled`- флаг, определяющий, должна ли быть включена опция | Определяет, нужно ли запоминать HTTP‑cookie и отправлять их обратно на сервер. |
+ |`setSSLTrustStore(String path)` |`path`— путь к файлу в локальной системе (на стороне клиента) | Определяет, должен ли клиент использовать SSL truststore для проверки хоста сервера.
По умолчанию: - Enum:`ClientConfigProperties.SSL_TRUST_STORE` Key:`trust_store` |
+ |`setSSLTrustStorePassword(String password)` |`password`— секрет | Устанавливает пароль, который будет использоваться для доступа к SSL truststore, указанному с помощью`setSSLTrustStore(String path)`
По умолчанию: - Перечисление:`ClientConfigProperties.SSL_KEY_STORE_PASSWORD` Ключ:`key_store_password` |
+ |`setSSLTrustStoreType(String type)` |`type`— имя типа хранилища доверенных сертификатов | Задаёт тип хранилища доверенных сертификатов, указанного в`setSSLTrustStore(String path)`.
По умолчанию: - Enum: `ClientConfigProperties.SSL_KEYSTORE_TYPE` Ключ:`key_store_type` |
+ |`setRootCertificate(String path)` |`path`— путь к файлу в локальной системе (на стороне клиента) | Определяет, должен ли клиент использовать указанный корневой (CA) сертификат для проверки подлинности узла сервера.
По умолчанию: - Enum:`ClientConfigProperties.CA_CERTIFICATE` Key:`sslrootcert` |
+ |`setClientCertificate(String path)` |`path`— путь к файлу в локальной системе (на стороне клиента) | Устанавливает путь к клиентскому сертификату, который будет использоваться при установлении SSL-соединения и для SSL-аутентификации.
По умолчанию: - Enum:`ClientConfigProperties.SSL_CERTIFICATE` Key:`sslcert` |
+ |`setClientKey(String path)` |`path`— путь к файлу в локальной системе (на стороне клиента) | Задаёт закрытый ключ клиента, используемый для шифрования SSL-соединения с сервером.
По умолчанию: - Enum:`ClientConfigProperties.SSL_KEY` Ключ:`ssl_key` |
+ |`useServerTimeZone(boolean useServerTimeZone)` |`useServerTimeZone`- флаг, определяющий, следует ли включать эту опцию | Определяет, должен ли клиент использовать временную зону сервера при декодировании значений столбцов DateTime и Date. Если параметр включён, временная зона сервера должна быть установлена с помощью`setServerTimeZone(String timeZone)`
По умолчанию:`true` Enum:`ClientConfigProperties.USE_SERVER_TIMEZONE` Ключ:`use_server_time_zone` |
+ |`useTimeZone(String timeZone)` |`timeZone`- строковое значение допустимого идентификатора часового пояса Java (см.`java.time.ZoneId`) | Определяет, следует ли использовать указанную временную зону при декодировании значений столбцов DateTime и Date. Переопределяет временную зону сервера.
По умолчанию: - Enum: `ClientConfigProperties.USE_TIMEZONE` Key:`use_time_zone` |
+ |`setServerTimeZone(String timeZone)` |`timeZone`— строковое значение допустимого идентификатора часового пояса в Java (см.`java.time.ZoneId`) | Устанавливает часовой пояс сервера. По умолчанию используется часовой пояс UTC.
По умолчанию: `UTC` Enum:`ClientConfigProperties.SERVER_TIMEZONE` Ключ:`server_time_zone` |
+ |`useAsyncRequests(boolean async)` |`async`- флаг, указывающий, нужно ли включить эту опцию. | Определяет, должен ли клиент выполнять запрос в отдельном потоке. По умолчанию параметр отключён, так как приложение обычно лучше понимает, как организовывать многопоточные задачи, а запуск задач в отдельном потоке не улучшает производительность.
По умолчанию:`false` Enum:`ClientConfigProperties.ASYNC_OPERATIONS` Key:`async` |
+ |`setSharedOperationExecutor(ExecutorService executorService)` |`executorService`— экземпляр службы исполнителей. | Задает сервис выполнения задач операции.
По умолчанию:`none` Enum:`none` Ключ:`none` |
+ |`setClientNetworkBufferSize(int size)` | *`size`— размер в байтах | Задает размер буфера в пространстве памяти приложения, который используется для копирования данных между сокетом и приложением в обоих направлениях. Увеличение этого размера уменьшает количество системных вызовов к TCP-стеку, но увеличивает объем памяти, расходуемой на каждое соединение. Этот буфер также подлежит сборке мусора, поскольку соединения кратковременные. Обратите также внимание, что выделение большого непрерывного блока памяти может быть проблемой.
По умолчанию:`300000` Enum:`ClientConfigProperties.CLIENT_NETWORK_BUFFER_SIZE` Key:`client_network_buffer_size`|
+ |`retryOnFailures(ClientFaultCause ...causes)` | -`causes`- константа перечисления`enum` `com.clickhouse.client.api.ClientFaultCause` | Задаёт типы ошибок, при которых выполняется повторная попытка.
По умолчанию:`NoHttpResponse,ConnectTimeout,ConnectionRequestTimeout` Enum:`ClientConfigProperties.CLIENT_RETRY_ON_FAILURE` Ключ:`client_retry_on_failures` |
+ |`setMaxRetries(int maxRetries)` | *`maxRetries`- число повторных попыток | Устанавливает максимальное количество повторных попыток для сбоев, определённых в`retryOnFailures(ClientFaultCause ...causes)`
По умолчанию:`3` Enum:`ClientConfigProperties.RETRY_ON_FAILURE` Ключ:`retry` |
+ |`allowBinaryReaderToReuseBuffers(boolean reuse)` | -`reuse`— флаг, указывающий, должна ли быть включена опция | Большинство наборов данных содержат числовые данные, закодированные в виде небольших последовательностей байт. По умолчанию ридер выделяет необходимый буфер, считывает в него данные, а затем преобразует их в целевой класс Number. Это может создавать значительную нагрузку на сборщик мусора (GC), поскольку создаётся и освобождается большое количество мелких объектов. Если эта опция включена, ридер будет использовать заранее выделенные буферы для преобразования чисел. Это безопасно, поскольку у каждого ридера есть собственный набор буферов, и каждый экземпляр ридера используется только одним потоком. |
+ |`httpHeader(String key, String value)` | *`key`- ключ заголовка HTTP. -`value`- строковое значение этого заголовка. | Устанавливает значение для одного HTTP-заголовка. Предыдущее значение перезаписывается.
По умолчанию:`none` Допустимые значения (enum):`none` Ключ:`none` |
+ |`httpHeader(String key, Collection values)` | -`key`- ключ заголовка HTTP. -`values`- список строковых значений. | Задает значение одного HTTP-заголовка. Предыдущее значение переопределяется.
По умолчанию:`none` Перечисление:`none` Ключ:`none` |
+ |`httpHeaders(Map headers)` | *`header`— карта (map) HTTP-заголовков и их значений. | Задает несколько значений HTTP-заголовков одновременно.
По умолчанию:`none` Перечисление:`none` Ключ:`none` |
+ |`serverSetting(String name, String value)` | -`name`- имя настройки на уровне запроса. -`value`- строковое значение настройки. | Задает, какие настройки передавать серверу вместе с каждым запросом. Настройки отдельных операций могут их переопределять. [Список настроек](/operations/settings/query-level)
Default:`none` Enum:`none` Key:`none` |
+ |`serverSetting(String name, Collection values)` | *`name`- имя настройки уровня запроса. -`values`- строковые значения этой настройки. | Определяет, какие настройки передавать серверу вместе с каждым запросом. Отдельные настройки операций могут их переопределять. См. [список настроек](/operations/settings/query-level). Этот метод полезен, когда нужно задать настройки с несколькими значениями, например [roles](/interfaces/http#setting-role-with-query-parameters).
По умолчанию:`none` Перечисление:`none` Ключ:`none` |
+ |`columnToMethodMatchingStrategy(ColumnToMethodMatchingStrategy strategy)`| -`strategy`— реализация стратегии сопоставления столбцов с полями | Задает пользовательскую стратегию, используемую для сопоставления полей класса DTO и столбцов БД при регистрации DTO.
По умолчанию:`none` Enum:`none` Ключ:`none` |
+ |`useHTTPBasicAuth(boolean useBasicAuth)` | *`useBasicAuth`- флаг, указывающий, нужно ли включить эту опцию | Задаёт, следует ли использовать базовую HTTP-аутентификацию для проверки имени пользователя и пароля. По умолчанию включено. Использование этого типа аутентификации устраняет проблемы с паролями, содержащими специальные символы, которые не могут быть корректно переданы в HTTP-заголовках.
По умолчанию:`true` Enum:`ClientConfigProperties.HTTP_USE_BASIC_AUTH` Key:`http_use_basic_auth` |
+ |`setClientName(String clientName)` | -`clientName`- строка с именем приложения | Задает дополнительную информацию о клиентском приложении. Эта строка будет передана серверу как имя клиента. В случае использования протокола HTTP она будет передана как заголовок`User-Agent`.
Default: - Enum: `ClientConfigProperties.CLIENT_NAME` Key:`client_name` |
+ |`useBearerTokenAuth(String bearerToken)` | *`bearerToken`— токен типа Bearer в закодированном виде | Указывает, следует ли использовать Bearer-аутентификацию и какой токен применять. Токен будет отправлен без изменений, поэтому его следует закодировать перед передачей этому методу.
По умолчанию: - Enum:`ClientConfigProperties.BEARERTOKEN_AUTH` Ключ:`bearer_token` |
+ |`registerClientMetrics(Object registry, String name)` | -`registry`- экземпляр реестра Micrometer -`name`- имя группы метрик | Регистрирует сенсоры в экземпляре реестра Micrometer ([https://micrometer.io/](https://micrometer.io/)). |
+ |`setServerVersion(String version)` | *`version`- строковое значение версии сервера | Задает версию сервера, чтобы исключить ее определение автоматически.
По умолчанию: - Перечисление:`ClientConfigProperties.SERVER_VERSION` Ключ:`server_version` |
+ |`typeHintMapping(Map typeHintMapping)` | -`typeHintMapping`- карта подсказок типов | Задает сопоставление подсказок типов для типов ClickHouse. Например, чтобы многомерные массивы представлялись в виде контейнеров Java вместо отдельных объектов Array.
По умолчанию: - Enum:`ClientConfigProperties.TYPE_HINT_MAPPING` Key:`type_hint_mapping` |
+ |`sslSocketSNI(String sni)` | *`sni`- значение имени сервера в виде строки | Устанавливает имя сервера, используемое для SNI (Server Name Indication) в SSL/TLS-соединении.
По умолчанию: - Enum:`ClientConfigProperties.SSL_SOCKET_SNI` Key:`ssl_socket_sni` |
### Настройки сервера \{#server-settings\}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/index.md
index 40115b8c7bf..ad03e695d48 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/index.md
@@ -10,7 +10,6 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
-
# Обзор Java-клиентов {#java-clients-overview}
- [Клиент 0.8+](./client/client.mdx)
@@ -152,7 +151,6 @@ JDBC-драйвер наследует те же возможности, что
```
-
#### Настройка логирования {#configuring-logging}
Настройка будет зависеть от того, какой фреймворк для логирования вы используете. Например, если вы используете `Logback`, вы можете настроить логирование в файле `logback.xml`:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/r2dbc.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/r2dbc.md
index 8af1e63b08c..e53f1980156 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/r2dbc.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/r2dbc.md
@@ -12,7 +12,6 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
-
# Драйвер R2DBC {#r2dbc-driver}
## Драйвер R2DBC {#r2dbc-driver}
@@ -42,7 +41,6 @@ import CodeBlock from '@theme/CodeBlock';
```
-
### Подключение к ClickHouse {#connect-to-clickhouse}
```java showLineNumbers
@@ -53,7 +51,6 @@ ConnectionFactory connectionFactory = ConnectionFactories
.flatMapMany(connection -> connection
```
-
### Запрос {#query}
```java showLineNumbers
@@ -71,7 +68,6 @@ connection
.subscribe();
```
-
### Вставка {#insert}
```java showLineNumbers
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/js.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/js.md
index b94d24600dd..e6dbe6d56f5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/js.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/js.md
@@ -15,7 +15,6 @@ integration:
import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_gather_your_details_http.mdx';
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
-
# ClickHouse JS {#clickhouse-js}
Официальный JS‑клиент для подключения к ClickHouse.
@@ -66,7 +65,6 @@ npm i @clickhouse/client
npm i @clickhouse/client-web
```
-
## Совместимость с ClickHouse {#compatibility-with-clickhouse}
| Версия клиента | ClickHouse |
@@ -111,7 +109,6 @@ const client = createClient({
Экземпляр клиента можно [заранее настроить](./js.md#configuration) при создании.
-
#### Конфигурация {#configuration}
При создании экземпляра клиента можно настроить следующие параметры подключения:
@@ -190,7 +187,6 @@ createClient({
})
```
-
### Подключение {#connecting}
#### Соберите сведения о подключении {#gather-your-connection-details}
@@ -218,7 +214,6 @@ const client = createClient({
Репозиторий клиента содержит множество примеров, которые используют переменные окружения, например [создание таблицы в ClickHouse Cloud](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/create_table_cloud.ts), [использование асинхронных вставок](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/async_insert.ts) и многие другие.
-
#### Пул соединений (только Node.js) {#connection-pool-nodejs-only}
Чтобы избежать накладных расходов на установку соединения при каждом запросе, клиент создает пул соединений с ClickHouse для их повторного использования, используя механизм Keep-Alive. По умолчанию Keep-Alive включен, а размер пула соединений равен `10`, но вы можете изменить его с помощью параметра конфигурации `max_open_connections` [параметра конфигурации](./js.md#configuration).
@@ -259,7 +254,6 @@ interface BaseQueryParams {
}
```
-
### Метод query {#query-method}
Используется для большинства запросов, которые могут вернуть ответ, таких как `SELECT`, а также для отправки DDL, таких как `CREATE TABLE`, и должен вызываться с `await`. Ожидается, что возвращённый результирующий набор данных будет использоваться в приложении.
@@ -287,7 +281,6 @@ interface ClickHouseClient {
Не указывайте клаузу FORMAT в `query`, вместо этого используйте параметр `format`.
:::
-
#### Абстракции набора результатов и строк {#result-set-and-row-abstractions}
`ResultSet` предоставляет несколько вспомогательных методов для обработки данных в вашем приложении.
@@ -372,7 +365,6 @@ await new Promise((resolve, reject) => {
**Пример:** (только Node.js) Потоковая выборка результата запроса в формате `CSV` с использованием классического подхода `on('data')`. Это эквивалентно использованию синтаксиса `for await const`.
[Исходный код](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/node/select_streaming_text_line_by_line.ts)
-
```ts
const resultSet = await client.query({
query: 'SELECT number FROM system.numbers_mt LIMIT 5',
@@ -431,7 +423,6 @@ while (true) {
}
```
-
### Метод INSERT {#insert-method}
Это основной метод вставки данных.
@@ -453,7 +444,6 @@ interface ClickHouseClient {
Если оператор INSERT был отправлен на сервер, флаг `executed` будет иметь значение `true`.
-
#### Метод insert и потоковая передача данных в Node.js {#insert-method-and-streaming-in-nodejs}
Он может работать как с `Stream.Readable`, так и с обычным `Array`, в зависимости от [формата данных](./js.md#supported-data-formats), указанного для метода `insert`. См. также раздел о [потоковой передаче файлов](./js.md#streaming-files-nodejs-only).
@@ -556,7 +546,6 @@ await client.insert({
См. [исходный код](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/insert_exclude_columns.ts) для получения дополнительных сведений.
-
**Пример**: Вставка в другую базу данных, а не ту, что указана в экземпляре клиента. [Исходный код](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/insert_into_different_db.ts).
```ts
@@ -567,7 +556,6 @@ await client.insert({
})
```
-
#### Ограничения веб-версии {#web-version-limitations}
В настоящий момент операции вставки в `@clickhouse/client-web` работают только с форматами `Array` и `JSON*`.
@@ -595,7 +583,6 @@ interface InsertParams extends BaseQueryParams {
В будущем это может измениться. См. также: [Базовые параметры для всех клиентских методов](./js.md#base-parameters-for-all-client-methods).
-
### Метод command {#command-method}
Он может использоваться для операторов, которые не возвращают результат, когда предложение `FORMAT` неприменимо, или когда вам вообще не нужен ответ. Примером такого оператора может быть `CREATE TABLE` или `ALTER TABLE`.
@@ -666,7 +653,6 @@ await client.command({
Отмена запроса с помощью `abort_signal` не гарантирует, что соответствующий оператор не был выполнен сервером.
:::
-
### Метод exec {#exec-method}
Если у вас есть произвольный запрос, который не вписывается в `query`/`insert`,
@@ -707,7 +693,6 @@ export interface QueryResult {
}
```
-
### Ping {#ping}
Метод `ping`, предназначенный для проверки состояния подключения, возвращает `true`, если сервер доступен.
@@ -765,7 +750,6 @@ const result = await client.ping({ select: true, /* query_id, abort_signal, http
Метод ping может принимать большинство стандартных параметров метода `query` — см. определение типа `PingParamsWithSelectQuery`.
-
### Close (только Node.js) {#close-nodejs-only}
Закрывает все открытые соединения и освобождает ресурсы. Ничего не делает в веб-версии.
@@ -774,7 +758,6 @@ const result = await client.ping({ select: true, /* query_id, abort_signal, http
await client.close()
```
-
## Потоковая передача файлов (только Node.js) {#streaming-files-nodejs-only}
В клиентском репозитории есть несколько примеров потоковой передачи файлов с популярными форматами данных (NDJSON, CSV, Parquet).
@@ -902,7 +885,6 @@ await client.insert({
Однако, если вы используете столбцы с типом `DateTime` или `DateTime64`, вы можете использовать как строки, так и объекты JS Date. Объекты JS Date можно передавать в `insert` как есть, при значении параметра `date_time_input_format`, установленном в `best_effort`. Подробнее см. в этом [примере](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/insert_js_dates.ts).
-
### Особенности типов Decimal* {#decimal-types-caveats}
Можно вставлять значения Decimal с помощью форматов семейства `JSON*`. Предположим, у нас есть таблица, определённая как:
@@ -953,7 +935,6 @@ await client.query({
См. [этот пример](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/insert_decimals.ts) для получения дополнительных сведений.
-
### Целочисленные типы: Int64, Int128, Int256, UInt64, UInt128, UInt256 {#integral-types-int64-int128-int256-uint64-uint128-uint256}
Хотя сервер может принимать это значение как число, в выходных форматах семейства `JSON*` оно возвращается как строка, чтобы избежать
@@ -982,7 +963,6 @@ const resultSet = await client.query({
expect(await resultSet.json()).toEqual([ { number: 0 } ])
```
-
## Настройки ClickHouse {#clickhouse-settings}
Клиент может настраивать поведение ClickHouse с помощью механизма [настроек](/operations/settings/settings/).
@@ -1010,7 +990,6 @@ client.query({
Убедитесь, что пользователь, от имени которого выполняются запросы, имеет достаточные права для изменения настроек.
:::
-
## Продвинутые темы {#advanced-topics}
### Запросы с параметрами {#queries-with-parameters}
@@ -1045,7 +1024,6 @@ await client.query({
Дополнительные сведения см. на странице [https://clickhouse.com/docs/interfaces/cli#cli-queries-with-parameters-syntax](https://clickhouse.com/docs/interfaces/cli#cli-queries-with-parameters-syntax).
-
### Сжатие {#compression}
Примечание: сжатие запросов в настоящее время недоступно в веб-версии. Сжатие ответов работает как обычно. Версия для Node.js поддерживает оба варианта.
@@ -1066,7 +1044,6 @@ createClient({
* `response: true` указывает серверу ClickHouse отправлять сжатое тело ответа. Значение по умолчанию: `response: false`
* `request: true` включает сжатие тела запроса, отправляемого клиентом. Значение по умолчанию: `request: false`
-
### Логирование (только Node.js) {#logging-nodejs-only}
:::important
@@ -1124,7 +1101,6 @@ const client = createClient({
Реализацию Logger по умолчанию можно найти [здесь](https://github.com/ClickHouse/clickhouse-js/blob/main/packages/client-common/src/logger.ts).
-
### Сертификаты TLS (только для Node.js) {#tls-certificates-nodejs-only}
Клиент Node.js опционально поддерживает как односторонний (только центр сертификации, Certificate Authority),
@@ -1160,7 +1136,6 @@ const client = createClient({
Полные примеры конфигурации TLS для режимов [basic](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/node/basic_tls.ts) и [mutual](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/node/mutual_tls.ts) см. в репозитории.
-
### Конфигурация Keep-Alive (только для Node.js) {#keep-alive-configuration-nodejs-only}
Клиент по умолчанию включает Keep-Alive во внутреннем HTTP-агенте. Это означает, что установленные сокеты будут повторно использоваться для последующих запросов, а заголовок `Connection: keep-alive` будет отправляться автоматически. Сокеты, простаивающие без активности, по умолчанию остаются в пуле соединений 2500 миллисекунд (см. [заметки по настройке этого параметра](./js.md#adjusting-idle_socket_ttl)).
@@ -1192,7 +1167,6 @@ curl -v --data-binary "SELECT 1"
В данном случае `keep_alive_timeout` равен 10 секундам, и вы можете попробовать увеличить `keep_alive.idle_socket_ttl` до 9000 или даже 9500 миллисекунд, чтобы неактивные сокеты оставались открытыми немного дольше, чем по умолчанию. Следите за возможными ошибками «Socket hang-up», которые будут указывать на то, что сервер закрывает соединения раньше клиента, и снижайте значение до тех пор, пока ошибки не исчезнут.
-
#### Поиск и устранение неисправностей {#troubleshooting}
Если вы сталкиваетесь с ошибками `socket hang up`, даже используя последнюю версию клиента, есть следующие варианты решения этой проблемы:
@@ -1253,7 +1227,6 @@ const client = createClient({
См. [пример](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/read_only_user.ts), где подробнее показаны ограничения пользователя с readonly=1.
-
### Прокси с путем (pathname) {#proxy-with-a-pathname}
Если ваш экземпляр ClickHouse находится за прокси и в его URL-адресе есть путь (pathname), как, например, [http://proxy:8123/clickhouse_server](http://proxy:8123/clickhouse_server), укажите `clickhouse_server` в качестве параметра конфигурации `pathname` (с начальным слешем или без него); иначе, если этот путь указан напрямую в `url`, он будет интерпретирован как параметр `database`. Поддерживается несколько сегментов, например `/my_proxy/db`.
@@ -1265,7 +1238,6 @@ const client = createClient({
})
```
-
### Реверс‑прокси с аутентификацией {#reverse-proxy-with-authentication}
Если перед вашим развертыванием ClickHouse стоит реверс‑прокси с аутентификацией, вы можете использовать параметр `http_headers`, чтобы передавать необходимые заголовки:
@@ -1278,7 +1250,6 @@ const client = createClient({
})
```
-
### Пользовательский HTTP/HTTPS-агент (экспериментальная функция, только Node.js) {#custom-httphttps-agent-experimental-nodejs-only}
:::warning
@@ -1360,7 +1331,6 @@ const client = createClient({
При использовании сертификатов *и* пользовательского *HTTPS*-агента, скорее всего, потребуется отключить заголовок авторизации по умолчанию с помощью настройки `set_basic_auth_header` (добавлена в 1.2.0), так как он конфликтует с заголовками TLS. Все заголовки TLS должны задаваться вручную.
-
## Известные ограничения (Node.js/web) {#known-limitations-nodejsweb}
- Для результирующих наборов не предусмотрены мапперы данных, поэтому используются только примитивы языка. Планируется добавление некоторых мапперов типов данных с [поддержкой формата RowBinary](https://github.com/ClickHouse/clickhouse-js/issues/216).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/moose-olap.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/moose-olap.md
index bbb4b42fbf6..96303d38502 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/moose-olap.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/moose-olap.md
@@ -10,7 +10,6 @@ doc_type: 'guide'
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Разработка на ClickHouse с Moose OLAP {#developing-on-clickhouse-with-moose-olap}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/additional-options.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/additional-options.md
index 98abd6b7020..b0f6600a489 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/additional-options.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/additional-options.md
@@ -45,7 +45,6 @@ common.get_setting('invalid_setting_action')
| http_buffer_size | 10MB | | Размер (в байтах) "внутрипамятного" буфера, используемого для потоковых HTTP-запросов. |
| preserve_pandas_datetime_resolution | False | True, False | Если True и используется pandas 2.x, сохраняет разрешение типов datetime64/timedelta64 (например, 's', 'ms', 'us', 'ns'). Если False (или при pandas <2.x), приводит к наносекундному разрешению ('ns') для совместимости. |
-
## Сжатие {#compression}
ClickHouse Connect поддерживает сжатие lz4, zstd, brotli и gzip как для результатов запросов, так и для вставок. Всегда учитывайте, что использование сжатия обычно связано с компромиссом между сетевой пропускной способностью/скоростью передачи и нагрузкой на CPU (как на клиенте, так и на сервере).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-inserting.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-inserting.md
index 681ed33f098..58e4cf31c93 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-inserting.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-inserting.md
@@ -31,7 +31,6 @@ assert qr[0][0] == 4
`InsertContext` содержит изменяемое состояние, которое обновляется в процессе вставки, поэтому не является потокобезопасным.
-
### Форматы записи {#write-formats}
Форматы записи в настоящее время реализованы только для ограниченного числа типов. В большинстве случаев ClickHouse Connect попытается автоматически определить корректный формат записи для столбца, проверяя тип первого значения данных, не равного `NULL`. Например, при вставке в столбец типа `DateTime`, если первое вставляемое значение столбца — целое число Python, ClickHouse Connect вставит это целочисленное значение напрямую, предполагая, что оно фактически представляет собой число секунд с начала эпохи Unix.
@@ -97,7 +96,6 @@ df = pd.DataFrame({
client.insert_df("users", df)
```
-
#### Вставка из таблицы PyArrow {#pyarrow-table-insert}
```python
@@ -115,7 +113,6 @@ arrow_table = pa.table({
client.insert_arrow("users", arrow_table)
```
-
#### Вставка DataFrame на основе Arrow (pandas 2.x) {#arrow-backed-dataframe-insert-pandas-2}
```python
@@ -134,7 +131,6 @@ df = pd.DataFrame({
client.insert_df_arrow("users", df)
```
-
### Часовые пояса {#time-zones}
При вставке объектов Python `datetime.datetime` в столбцы ClickHouse `DateTime` или `DateTime64` ClickHouse Connect автоматически обрабатывает информацию о часовом поясе. Поскольку ClickHouse хранит все значения `DateTime` как не зависящие от часового пояса Unix-метки времени (секунды или доли секунды с начала эпохи Unix), преобразование часовых поясов автоматически выполняется на стороне клиента при вставке.
@@ -176,7 +172,6 @@ print(*results.result_rows, sep="\n")
При использовании pytz необходимо вызывать метод `localize()`, чтобы добавить информацию о часовом поясе к наивному объекту datetime. Передача `tzinfo=` напрямую в конструктор datetime приведёт к использованию некорректных исторических смещений. Для UTC вариант `tzinfo=pytz.UTC` работает корректно. См. [документацию pytz](https://pythonhosted.org/pytz/#localized-times-and-date-arithmetic) для получения дополнительной информации.
:::
-
#### Объекты datetime без часового пояса {#timezone-naive-datetime-objects}
Если вы вставляете Python-объект `datetime.datetime` без часового пояса (без `tzinfo`), метод `.timestamp()` будет интерпретировать его как время в локальном часовом поясе системы. Чтобы избежать неоднозначности, рекомендуется:
@@ -202,7 +197,6 @@ epoch_timestamp = int(naive_time.replace(tzinfo=pytz.UTC).timestamp())
client.insert('events', [[epoch_timestamp]], column_names=['event_time'])
```
-
#### Столбцы DateTime с метаданными часового пояса {#datetime-columns-with-timezone-metadata}
Столбцы ClickHouse могут быть объявлены с метаданными часового пояса (например, `DateTime('America/Denver')` или `DateTime64(3, 'Asia/Tokyo')`). Эти метаданные не влияют на то, как данные хранятся (по‑прежнему как метки времени в формате UTC), но определяют часовой пояс, используемый при запросе данных из ClickHouse.
@@ -232,7 +226,6 @@ print(*results.result_rows, sep="\n")
# (datetime.datetime(2023, 6, 15, 7, 30, tzinfo=),) {#datetimedatetime2023-6-15-7-30-tzinfodsttzinfo-americalos_angeles-pdt-1-day-170000-dst}
```
-
## Вставка из файла {#file-inserts}
Пакет `clickhouse_connect.driver.tools` включает метод `insert_file`, который позволяет вставлять данные напрямую из файловой системы в существующую таблицу ClickHouse. Разбор данных выполняется на стороне сервера ClickHouse. `insert_file` принимает следующие параметры:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-querying.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-querying.md
index a56a7d1df62..62df8f99e47 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-querying.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-querying.md
@@ -31,7 +31,6 @@ assert result.result_set[1][0] == 'first_value2'
Обратите внимание, что экземпляры `QueryContext` не являются потокобезопасными, однако в многопоточной среде можно получить их копию, вызвав метод `QueryContext.updated_copy`.
-
## Потоковые запросы {#streaming-queries}
Клиент ClickHouse Connect предоставляет несколько методов для получения данных в виде потока (реализовано как генератор Python):
@@ -76,7 +75,6 @@ with client.query_row_block_stream('SELECT pickup, dropoff, pickup_longitude, pi
Вы можете использовать свойство `source` у `StreamContext` для доступа к родительскому объекту `QueryResult`, содержащему имена и типы столбцов.
-
### Типы потоков {#stream-types}
Метод `query_column_block_stream` возвращает блок в виде последовательности данных столбцов, сохранённых в нативных типах данных Python. Используя приведённые выше запросы к `taxi_trips`, возвращаемые данные будут списком, каждый элемент которого — это другой список (или кортеж), содержащий все данные для соответствующего столбца. Таким образом, `block[0]` будет кортежем, содержащим только строки. Форматы, ориентированные на столбцы, чаще всего используются для выполнения агрегатных операций по всем значениям в столбце, например для суммирования общей стоимости поездок.
@@ -101,7 +99,6 @@ with df_stream:
Наконец, метод `query_arrow_stream` возвращает результат в формате ClickHouse `ArrowStream` как объект `pyarrow.ipc.RecordBatchStreamReader`, обёрнутый в `StreamContext`. Каждая итерация потока возвращает PyArrow RecordBlock.
-
### Примеры потоковой обработки {#streaming-examples}
#### Потоковая передача строк {#stream-rows}
@@ -122,7 +119,6 @@ with client.query_rows_stream("SELECT number, number * 2 as doubled FROM system.
# ....
```
-
#### Потоковая передача блоков строк {#stream-row-blocks}
```python
@@ -139,7 +135,6 @@ with client.query_row_block_stream("SELECT number, number * 2 FROM system.number
# Получен блок из 34591 строк
```
-
#### Потоковая передача DataFrame из Pandas {#stream-pandas-dataframes}
```python
@@ -166,7 +161,6 @@ with client.query_df_stream("SELECT number, toString(number) AS str FROM system.
# 2 65411 65411
```
-
#### Потоковая обработка пакетов Arrow {#stream-arrow-batches}
```python
@@ -184,7 +178,6 @@ with client.query_arrow_stream("SELECT * FROM large_table") as stream:
# Получен пакет Arrow с 34591 строк
```
-
## Запросы с использованием NumPy, Pandas и Arrow {#numpy-pandas-and-arrow-queries}
ClickHouse Connect предоставляет специализированные методы выполнения запросов для работы со структурами данных NumPy, Pandas и Arrow. Эти методы позволяют получать результаты запросов непосредственно в этих популярных форматах данных без ручного преобразования.
@@ -214,7 +207,6 @@ print(np_array)
# [4 8]] {#4-8}
```
-
### Запросы Pandas {#pandas-queries}
Метод `query_df` возвращает результаты запроса в виде объекта DataFrame библиотеки Pandas вместо `QueryResult` из ClickHouse Connect.
@@ -239,7 +231,6 @@ print(df)
# 4 4 8 {#4-4-8}
```
-
### Запросы PyArrow {#pyarrow-queries}
Метод `query_arrow` возвращает результаты запроса в виде таблицы PyArrow. Он напрямую использует формат ClickHouse `Arrow`, поэтому принимает только три аргумента, общих с основным методом `query`: `query`, `parameters` и `settings`. Кроме того, предусмотрен дополнительный аргумент `use_strings`, который определяет, будут ли типы ClickHouse String в таблице Arrow представляться как строки (если True) или как байты (если False).
@@ -266,7 +257,6 @@ print(arrow_table)
# str: [["0","1","2"]] {#str-012}
```
-
### DataFrame на базе Arrow {#arrow-backed-dataframes}
ClickHouse Connect поддерживает быстрое и экономное по памяти создание DataFrame из результатов Arrow с помощью методов `query_df_arrow` и `query_df_arrow_stream`. Эти методы являются тонкими обёртками вокруг методов выполнения запросов с использованием Arrow и выполняют преобразование в DataFrame без копирования данных, где это возможно:
@@ -316,7 +306,6 @@ with client.query_df_arrow_stream(
# Получен пакет с 34591 строками и типами данных: [UInt64, String]
```
-
#### Примечания и особенности {#notes-and-caveats}
- Отображение типов Arrow: при возврате данных в формате Arrow ClickHouse сопоставляет свои типы с ближайшими поддерживаемыми типами Arrow. Некоторые типы ClickHouse не имеют нативного аналога в Arrow и возвращаются как «сырые» байты в полях Arrow (обычно `BINARY` или `FIXED_SIZE_BINARY`).
@@ -366,7 +355,6 @@ print([int.from_bytes(n, byteorder="little") for n in df["int_128_col"].to_list(
Основной вывод: прикладной код должен выполнять эти преобразования в зависимости от возможностей выбранной библиотеки DataFrame и приемлемых компромиссов по производительности. Когда нативные для DataFrame преобразования недоступны, вариант с использованием чистого Python по‑прежнему остается рабочим.
-
## Форматы чтения {#read-formats}
Форматы чтения управляют типами данных значений, возвращаемых методами клиента `query`, `query_np` и `query_df`. (`raw_query` и `query_arrow` не изменяют данные, получаемые из ClickHouse, поэтому управление форматом к ним не применяется.) Например, если формат чтения для UUID изменён с формата по умолчанию `native` на альтернативный формат `string`, запрос ClickHouse к столбцу `UUID` будет возвращать строковые значения (в стандартном формате RFC 1422 8-4-4-4-12), а не объекты Python UUID.
@@ -401,7 +389,6 @@ client.query('SELECT user_id, user_uuid, device_uuid from users', query_formats=
client.query('SELECT device_id, dev_address, gw_address from devices', column_formats={'dev_address':'string'})
```
-
### Параметры формата чтения (типы Python) {#read-format-options-python-types}
| Тип ClickHouse | Базовый тип Python | Форматы чтения | Комментарии |
@@ -462,7 +449,6 @@ result = client.query('SELECT name, avg(rating) FROM directors INNER JOIN movies
К исходному объекту `ExternalData` можно добавить дополнительные внешние файлы данных с помощью метода `add_file`, который принимает те же параметры, что и конструктор. При использовании HTTP все внешние данные передаются как часть загрузки файла в формате `multipart/form-data`.
-
## Часовые пояса {#time-zones}
Существует несколько механизмов применения часового пояса к значениям ClickHouse `DateTime` и `DateTime64`. Внутри сервера ClickHouse любой объект `DateTime` или `DateTime64` всегда хранится как «наивное» числовое значение (без учёта часового пояса), представляющее количество секунд, прошедших с начала эпохи — 1970-01-01 00:00:00 по времени UTC. Для значений `DateTime64` представление может быть в миллисекундах, микросекундах или наносекундах, прошедших с начала эпохи, в зависимости от точности. В результате любое применение информации о часовом поясе всегда выполняется на стороне клиента. Обратите внимание, что это требует дополнительных вычислений, поэтому в приложениях, критичных к производительности, рекомендуется обрабатывать типы DateTime как метки времени эпохи (epoch timestamps), за исключением пользовательского отображения и конвертации (например, объекты Pandas Timestamps всегда являются 64-битным целым числом, представляющим количество наносекунд с начала эпохи, для повышения производительности).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-usage.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-usage.md
index cf8c4f062f4..bf1b258153a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-usage.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/advanced-usage.md
@@ -77,7 +77,6 @@ if __name__ == '__main__':
Аналогичным образом вы можете сохранять данные в формате [TabSeparated](/interfaces/formats/TabSeparated), а также в других форматах. Обзор всех доступных вариантов приведён в разделе [Форматы входных и выходных данных](/interfaces/formats).
-
## Многопоточные, многопроцессные и асинхронные/с управлением через цикл событий варианты использования {#multithreaded-multiprocess-and-asyncevent-driven-use-cases}
ClickHouse Connect хорошо работает в многопоточных, многопроцессных и асинхронных приложениях, управляемых циклом событий. Вся обработка запросов и вставок выполняется в одном потоке, поэтому операции в целом потокобезопасны. (Параллельная обработка некоторых операций на низком уровне рассматривается как потенциальное будущее улучшение для преодоления накладных расходов, связанных с использованием одного потока, но даже в этом случае потокобезопасность будет сохранена.)
@@ -116,7 +115,6 @@ asyncio.run(main())
См. также: [пример run_async](https://github.com/ClickHouse/clickhouse-connect/blob/main/examples/run_async.py).
-
## Управление идентификаторами сессий ClickHouse {#managing-clickhouse-session-ids}
Каждый запрос ClickHouse выполняется в контексте «сессии» ClickHouse. В настоящее время сессии используются для двух целей:
@@ -142,7 +140,6 @@ client = clickhouse_connect.get_client(host='somehost.com', user='dbuser', passw
В этом случае ClickHouse Connect не отправляет `session_id`, и сервер не будет считать отдельные запросы принадлежащими одному сеансу. Временные таблицы и параметры сеанса не будут сохраняться между запросами.
-
## Настройка пула HTTP‑подключений {#customizing-the-http-connection-pool}
ClickHouse Connect использует пулы подключений `urllib3` для работы с базовым HTTP‑подключением к серверу. По умолчанию все экземпляры клиента используют один и тот же пул подключений, чего достаточно для большинства сценариев использования. Этот пул по умолчанию поддерживает до 8 HTTP Keep Alive‑подключений к каждому серверу ClickHouse, задействованному приложением.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/driver-api.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/driver-api.md
index 794b172dd58..3d6798f23b3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/driver-api.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/driver-api.md
@@ -118,7 +118,6 @@ print(client.database)
# Результат: 'github' {#output-github}
```
-
## Жизненный цикл клиента и рекомендации по использованию {#client-lifecycle-and-best-practices}
Создание клиента ClickHouse Connect — ресурсоёмкая операция, которая включает установление соединения, получение метаданных сервера и инициализацию настроек. Следуйте этим рекомендациям для обеспечения оптимальной производительности:
@@ -158,7 +157,6 @@ for i in range(1000):
client.close()
```
-
### Многопоточные приложения {#multi-threaded-applications}
:::warning
@@ -216,7 +214,6 @@ def worker(thread_id):
client.close()
```
-
### Корректная очистка {#proper-cleanup}
Всегда закрывайте клиентов при завершении работы. Обратите внимание, что `client.close()` освобождает ресурсы клиента и закрывает HTTP‑соединения из пула только в том случае, если клиент владеет собственным пулом (например, когда он создан с пользовательскими параметрами TLS/прокси). Для стандартного общего пула используйте `client.close_connections()` для явной очистки сокетов; в противном случае соединения автоматически освобождаются по истечении времени простоя и при завершении процесса.
@@ -236,7 +233,6 @@ with clickhouse_connect.get_client(host='my-host', username='default', password=
result = client.query('SELECT 1')
```
-
### Когда использовать несколько клиентов {#when-to-use-multiple-clients}
Несколько клиентов уместны в следующих случаях:
@@ -283,7 +279,6 @@ WHERE date >= '2022-10-01 15:20:05'
Привязка на стороне сервера поддерживается (сервером ClickHouse) только для запросов `SELECT`. Она не работает для `ALTER`, `DELETE`, `INSERT` или других типов запросов. В будущем это может измениться; см. [https://github.com/ClickHouse/ClickHouse/issues/42092](https://github.com/ClickHouse/ClickHouse/issues/42092).
:::
-
#### Привязка на стороне клиента {#client-side-binding}
ClickHouse Connect также поддерживает привязку параметров на стороне клиента, что даёт большую гибкость при генерации шаблонных SQL‑запросов. Для привязки на стороне клиента аргумент `parameters` должен быть словарём или последовательностью. Привязка на стороне клиента использует [форматирование строк в стиле «printf»](https://docs.python.org/3/library/stdtypes.html#old-string-formatting) в Python для подстановки параметров.
@@ -348,7 +343,6 @@ WHERE metric >= 35200.44
:::
-
### Аргумент settings {#settings-argument-1}
Все ключевые методы ClickHouse Connect Client "insert" и "select" принимают необязательный именованный аргумент `settings` для передачи [пользовательских настроек](/operations/settings/settings.md) ClickHouse для соответствующего SQL‑выражения. Аргумент `settings` должен быть словарём. Каждый элемент должен представлять собой имя настройки ClickHouse и её соответствующее значение. Учтите, что значения будут преобразованы в строки при отправке на сервер в виде параметров запроса.
@@ -364,7 +358,6 @@ settings = {'merge_tree_min_rows_for_concurrent_read': 65535,
client.query("SELECT event_type, sum(timeout) FROM event_errors WHERE event_time > '2022-08-01'", settings=settings)
```
-
## Метод клиента `command` {#client-command-method}
Используйте метод `Client.command` для отправки SQL‑запросов на сервер ClickHouse, которые обычно не возвращают данных либо возвращают одно примитивное значение или массив значений вместо полного набора данных. Этот метод принимает следующие параметры:
@@ -408,7 +401,6 @@ print(result)
client.command("DROP TABLE test_command")
```
-
#### Простые запросы, возвращающие одно значение {#simple-queries-returning-single-values}
```python
@@ -427,7 +419,6 @@ print(version)
# Вывод: "25.8.2.29" {#output-258229}
```
-
#### Команды с параметрами {#commands-with-parameters}
```python
@@ -449,7 +440,6 @@ result = client.command(
)
```
-
#### Команды с настройками {#commands-with-settings}
```python
@@ -464,7 +454,6 @@ result = client.command(
)
```
-
## Метод клиента `query` {#client-query-method}
Метод `Client.query` — основной способ получить один «пакетный» набор данных с сервера ClickHouse. Он использует нативный формат ClickHouse поверх HTTP для эффективной передачи больших наборов данных (до примерно одного миллиона строк). Этот метод принимает следующие параметры:
@@ -512,7 +501,6 @@ print([col_type.name for col_type in result.column_types])
# Вывод: ['String', 'String'] {#output-string-string}
```
-
#### Доступ к результатам запроса {#accessing-query-results}
```python
@@ -547,7 +535,6 @@ print(result.first_row)
# Вывод: (0, "0") {#output-0-0}
```
-
#### Запрос с клиентскими параметрами {#query-with-client-side-parameters}
```python
@@ -566,7 +553,6 @@ parameters = ("system", 5)
result = client.query(query, parameters=parameters)
```
-
#### Запрос с серверными параметрами {#query-with-server-side-parameters}
```python
@@ -581,7 +567,6 @@ parameters = {"db": "system", "tbl": "query_log"}
result = client.query(query, parameters=parameters)
```
-
#### Запрос с параметрами {#query-with-settings}
```python
@@ -599,7 +584,6 @@ result = client.query(
)
```
-
### Объект `QueryResult` {#the-queryresult-object}
Базовый метод `query` возвращает объект `QueryResult` со следующими публичными свойствами:
@@ -675,7 +659,6 @@ data = [
client.insert("users", data, column_names=["id", "name", "age"])
```
-
#### Вставка по столбцам {#column-oriented-insert}
```python
@@ -693,7 +676,6 @@ data = [
client.insert("users", data, column_names=["id", "name", "age"], column_oriented=True)
```
-
#### Вставка с явным указанием типов столбцов {#insert-with-explicit-column-types}
```python
@@ -716,7 +698,6 @@ client.insert(
)
```
-
#### Вставка в конкретную базу данных {#insert-into-specific-database}
```python
@@ -738,7 +719,6 @@ client.insert(
)
```
-
## Вставка из файлов {#file-inserts}
Для вставки данных напрямую из файлов в таблицы ClickHouse см. раздел [Расширенные методы вставки (вставка из файлов)](advanced-inserting.md#file-inserts).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/index.md
index 59f19ffd644..91f064af751 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/index.md
@@ -16,7 +16,6 @@ import CodeBlock from '@theme/CodeBlock';
import ConnectionDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_gather_your_details_http.mdx';
-
# Введение {#introduction}
ClickHouse Connect — это основной драйвер базы данных, обеспечивающий взаимодействие с широким спектром приложений на Python.
@@ -88,7 +87,6 @@ import clickhouse_connect
client = clickhouse_connect.get_client(host='localhost', username='default', password='password')
```
-
#### Используйте экземпляр клиента ClickHouse Connect для подключения к сервису ClickHouse Cloud: {#use-a-clickhouse-connect-client-instance-to-connect-to-a-clickhouse-cloud-service}
:::tip
@@ -101,7 +99,6 @@ import clickhouse_connect
client = clickhouse_connect.get_client(host='HOSTNAME.clickhouse.cloud', port=8443, username='default', password='ваш_пароль')
```
-
### Взаимодействие с базой данных {#interact-with-your-database}
Чтобы выполнить SQL-команду ClickHouse, используйте метод клиента `command`:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/sqlalchemy.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/sqlalchemy.md
index cc0bb72b0d4..c407c7630e3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/sqlalchemy.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/python/sqlalchemy.md
@@ -34,7 +34,6 @@ with engine.begin() as conn:
Полный список поддерживаемых параметров см. в разделе [Connection arguments and Settings](driver-api.md#connection-arguments) ниже. Их также можно передавать через DSN SQLAlchemy.
-
## Основные запросы {#sqlalchemy-core-queries}
Диалект поддерживает `SELECT`-запросы SQLAlchemy Core с объединениями, фильтрацией, сортировкой, ограничениями и смещениями (LIMIT/OFFSET), а также `DISTINCT`.
@@ -68,7 +67,6 @@ with engine.begin() as conn:
conn.execute(delete(users).where(users.c.name.like("%temp%")))
```
-
## DDL и рефлексия {#sqlalchemy-ddl-reflection}
Вы можете создавать базы данных и таблицы, используя предоставленные DDL‑помощники и конструкторы типов/движков. Поддерживается рефлексия таблиц (включая типы столбцов и движок).
@@ -103,7 +101,6 @@ with engine.begin() as conn:
Отражённые столбцы включают атрибуты, специфичные для диалекта, такие как `clickhousedb_default_type`, `clickhousedb_codec_expression` и `clickhousedb_ttl_expression`, если они заданы на сервере.
-
## Операции вставки (Core и базовый ORM) {#sqlalchemy-inserts}
Операции вставки можно выполнять через SQLAlchemy Core, а также с помощью простых ORM-моделей для удобства.
@@ -132,7 +129,6 @@ with Session(engine) as session:
session.commit()
```
-
## Область применения и ограничения {#scope-and-limitations}
- Основное назначение: Поддержка возможностей SQLAlchemy Core, таких как `SELECT` с `JOIN` (`INNER`, `LEFT OUTER`, `FULL OUTER`, `CROSS`), `WHERE`, `ORDER BY`, `LIMIT`/`OFFSET` и `DISTINCT`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/rust.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/rust.md
index 26c246b6061..4eb21fdc1ae 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/rust.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/rust.md
@@ -37,7 +37,6 @@ clickhouse = { version = "0.12.2", features = ["test-util"] }
См. также [страницу crates.io](https://crates.io/crates/clickhouse).
-
## Возможности Cargo {#cargo-features}
* `lz4` (включена по умолчанию) — включает варианты `Compression::Lz4` и `Compression::Lz4Hc(_)`. Если она включена, `Compression::Lz4` используется по умолчанию для всех запросов, кроме `WATCH`.
@@ -90,7 +89,6 @@ let client = Client::default()
.with_database("test");
```
-
### Подключение по HTTPS или к ClickHouse Cloud {#https-or-clickhouse-cloud-connection}
HTTPS работает как с функциями (features) Cargo `rustls-tls`, так и с `native-tls`.
@@ -116,7 +114,6 @@ let client = Client::default()
* [Пример HTTPS с ClickHouse Cloud](https://github.com/ClickHouse/clickhouse-rs/blob/main/examples/clickhouse_cloud.rs) в репозитории клиента. Его также можно использовать для HTTPS-подключений к on-premise‑инстансам.
-
### Выбор строк {#selecting-rows}
```rust
@@ -152,7 +149,6 @@ NB: так как весь ответ передаётся в потоке, ку
Используйте `wait_end_of_query` с осторожностью при выборке строк, так как это может привести к более высокому потреблению памяти на стороне сервера и, вероятно, снизит общую производительность.
:::
-
### Добавление строк {#inserting-rows}
```rust
@@ -175,7 +171,6 @@ insert.end().await?;
* Строки отправляются постепенно в виде потока, чтобы распределить нагрузку на сеть.
* ClickHouse вставляет пакеты строк атомарно, только если все строки попадают в один и тот же раздел и их количество меньше [`max_insert_block_size`](https://clickhouse.tech/docs/operations/settings/settings/#settings-max_insert_block_size).
-
### Асинхронная вставка (пакетирование на стороне сервера) {#async-insert-server-side-batching}
Вы можете использовать [асинхронные вставки ClickHouse](/optimize/asynchronous-inserts), чтобы избежать пакетирования входящих данных на стороне клиента. Это можно сделать, просто указав параметр `async_insert` в методе `insert` (или даже в экземпляре `Client`, чтобы он влиял на все вызовы `insert`).
@@ -191,7 +186,6 @@ let client = Client::default()
* [Пример асинхронной вставки](https://github.com/ClickHouse/clickhouse-rs/blob/main/examples/async_insert.rs) в репозитории клиента.
-
### Возможность inserter (клиентская пакетная запись) {#inserter-feature-client-side-batching}
Требуется фича Cargo `inserter`.
@@ -233,7 +227,6 @@ inserter.end().await?;
:::
-
### Выполнение операторов DDL {#executing-ddls}
В случае одноузлового развертывания достаточно выполнить операторы DDL следующим образом:
@@ -252,7 +245,6 @@ client
.await?;
```
-
### Настройки ClickHouse {#clickhouse-settings}
Вы можете применять различные [настройки ClickHouse](/operations/settings/settings), используя метод `with_option`. Например:
@@ -269,7 +261,6 @@ let numbers = client
Помимо `query`, аналогичным образом работают методы `insert` и `inserter`; кроме того, тот же метод можно вызвать у экземпляра `Client`, чтобы задать глобальные настройки для всех запросов.
-
### Идентификатор запроса {#query-id}
С помощью `.with_option` вы можете задать опцию `query_id`, чтобы идентифицировать запросы в журнале запросов ClickHouse.
@@ -290,7 +281,6 @@ let numbers = client
См. также: [пример query_id](https://github.com/ClickHouse/clickhouse-rs/blob/main/examples/query_id.rs) в репозитории клиента.
-
### Идентификатор сессии {#session-id}
Аналогично `query_id`, вы можете задать `session_id`, чтобы выполнять запросы в одной и той же сессии. `session_id` можно задать либо глобально на уровне клиента, либо для каждого отдельного вызова `query`, `insert` или `inserter`.
@@ -307,7 +297,6 @@ let client = Client::default()
См. также: пример [session_id](https://github.com/ClickHouse/clickhouse-rs/blob/main/examples/session_id.rs) в репозитории клиента.
-
### Пользовательские HTTP‑заголовки {#custom-http-headers}
Если вы используете аутентификацию через прокси или вам нужно передавать пользовательские заголовки, вы можете сделать это следующим образом:
@@ -320,7 +309,6 @@ let client = Client::default()
См. также: [пример использования пользовательских HTTP-заголовков](https://github.com/ClickHouse/clickhouse-rs/blob/main/examples/custom_http_headers.rs) в репозитории клиента.
-
### Пользовательский HTTP‑клиент {#custom-http-client}
Это может быть полезно для тонкой настройки параметров лежащего в основе пула HTTP‑соединений.
@@ -349,7 +337,6 @@ let client = Client::with_http_client(hyper_client).with_url("http://localhost:8
См. также: [пример с пользовательским HTTP‑клиентом](https://github.com/ClickHouse/clickhouse-rs/blob/main/examples/custom_http_client.rs) в репозитории клиента.
-
## Типы данных {#data-types}
:::info
@@ -456,7 +443,6 @@ struct MyRow {
}
```
-
* `DateTime` сопоставляется с `u32` или newtype-обёрткой вокруг него и представляет количество секунд, прошедших с эпохи UNIX. Также поддерживается [`time::OffsetDateTime`](https://docs.rs/time/latest/time/struct.OffsetDateTime.html) при использовании `serde::time::datetime`, для чего требуется фича `time`.
```rust
@@ -535,7 +521,6 @@ struct MyRow {
* Типы данных `Variant`, `Dynamic` и новый тип данных `JSON` пока не поддерживаются.
-
## Мокирование {#mocking}
Крейт предоставляет утилиты для мокирования сервера CH и тестирования DDL, а также запросов `SELECT`, `INSERT` и `WATCH`. Функциональность может быть включена с помощью feature `test-util`. Используйте её **только** как dev-зависимость.
@@ -580,7 +565,6 @@ struct EventLog {
}
```
-
## Известные ограничения {#known-limitations}
* Типы данных `Variant`, `Dynamic` и (новый) `JSON` пока не поддерживаются.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/datagrip.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/datagrip.md
index 6da40e32b66..8a0ab1c73f9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/datagrip.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/datagrip.md
@@ -19,24 +19,17 @@ import datagrip_6 from '@site/static/images/integrations/sql-clients/datagrip-6.
import datagrip_7 from '@site/static/images/integrations/sql-clients/datagrip-7.png';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Подключение DataGrip к ClickHouse {#connecting-datagrip-to-clickhouse}
-
-
## Запустите или загрузите DataGrip {#start-or-download-datagrip}
DataGrip доступен на сайте https://www.jetbrains.com/datagrip/
-
-
## 1. Соберите сведения о подключении {#1-gather-your-connection-details}
-
-
## 2. Загрузите драйвер ClickHouse {#2-load-the-clickhouse-driver}
1. Запустите DataGrip и на вкладке **Data Sources** в диалоговом окне **Data Sources and Drivers** нажмите значок **+**
@@ -58,8 +51,6 @@ DataGrip доступен на сайте https://www.jetbrains.com/datagrip/
-
-
## 3. Подключение к ClickHouse {#3-connect-to-clickhouse}
- Укажите параметры подключения к базе данных и нажмите **Test Connection**.
@@ -79,8 +70,6 @@ ClickHouse Cloud требует шифрования SSL для всех под
-
-
## Подробнее {#learn-more}
Дополнительную информацию о DataGrip см. в его документации.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/dbeaver.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/dbeaver.md
index c77fc62d19d..62a00f0bc7a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/dbeaver.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/dbeaver.md
@@ -21,7 +21,6 @@ import dbeaver_sql_editor from '@site/static/images/integrations/sql-clients/dbe
import dbeaver_query_log_select from '@site/static/images/integrations/sql-clients/dbeaver-query-log-select.png';
import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported';
-
# Подключение DBeaver к ClickHouse {#connect-dbeaver-to-clickhouse}
@@ -32,8 +31,6 @@ DBeaver доступен в нескольких редакциях. В этом
Пожалуйста, используйте DBeaver версии 23.1.0 или новее для улучшенной поддержки столбцов `Nullable` в ClickHouse.
:::
-
-
## 1. Соберите информацию о вашем ClickHouse {#1-gather-your-clickhouse-details}
DBeaver использует JDBC поверх HTTP(S) для подключения к ClickHouse; для этого вам потребуются:
@@ -43,14 +40,10 @@ DBeaver использует JDBC поверх HTTP(S) для подключен
- имя пользователя
- пароль
-
-
## 2. Скачайте DBeaver {#2-download-dbeaver}
DBeaver можно скачать по адресу https://dbeaver.io/download/
-
-
## 3. Добавление базы данных {#3-add-a-database}
- Используйте меню **Database > New Database Connection** или значок **New Database Connection** в **Database Navigator**, чтобы открыть диалоговое окно **Connect to a database**:
@@ -79,8 +72,6 @@ DBeaver можно скачать по адресу https://dbeaver.io/download/
-
-
## 4. Запрос к ClickHouse {#4-query-clickhouse}
Откройте редактор SQL-запросов и выполните запрос.
@@ -93,8 +84,6 @@ DBeaver можно скачать по адресу https://dbeaver.io/download/
-
-
## Дальнейшие шаги {#next-steps}
Подробную информацию о возможностях DBeaver см. в его [wiki](https://github.com/dbeaver/dbeaver/wiki), а о возможностях ClickHouse — в [документации ClickHouse](https://clickhouse.com/docs).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/marimo.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/marimo.md
index d9c36449ad2..57853f09968 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/marimo.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/marimo.md
@@ -18,7 +18,6 @@ import dropdown_cell_chart from '@site/static/images/integrations/sql-clients/ma
import run_app_view from '@site/static/images/integrations/sql-clients/marimo/run-app-view.png';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Использование marimo с ClickHouse {#using-marimo-with-clickhouse}
@@ -27,8 +26,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
-
## 1. Установите Marimo с поддержкой SQL {#install-marimo-sql}
```shell
@@ -38,7 +35,6 @@ marimo edit clickhouse_demo.py
Должен открыться веб‑браузер с адресом localhost.
-
## 2. Подключение к ClickHouse. {#connect-to-clickhouse}
Перейдите на панель источников данных слева в редакторе marimo и нажмите «Add database».
@@ -53,8 +49,6 @@ marimo edit clickhouse_demo.py
-
-
## 3. Выполнение SQL-запросов {#run-sql}
После настройки подключения вы можете создать новую SQL-ячейку и выбрать движок ClickHouse.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/sql-console.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/sql-console.md
index 0bd8241c4c6..2cd5cff90ca 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/sql-console.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/sql-console.md
@@ -47,7 +47,6 @@ import adjust_axis_scale from '@site/static/images/cloud/sqlconsole/adjust-axis-
import give_a_query_a_name from '@site/static/images/cloud/sqlconsole/give-a-query-a-name.png'
import save_the_query from '@site/static/images/cloud/sqlconsole/save-the-query.png'
-
# SQL-консоль {#sql-console}
SQL-консоль — самый быстрый и простой способ изучать ваши базы данных и выполнять по ним запросы в ClickHouse Cloud. Вы можете использовать SQL-консоль, чтобы:
@@ -57,8 +56,6 @@ SQL-консоль — самый быстрый и простой способ
- Выполнять запросы и визуализировать результаты всего за несколько кликов
- Делиться запросами с коллегами по команде и более эффективно сотрудничать.
-
-
## Изучение таблиц {#exploring-tables}
### Просмотр списка таблиц и сведений о схеме {#viewing-table-list-and-schema-info}
@@ -83,8 +80,6 @@ SQL-консоль — самый быстрый и простой способ
-
-
## Фильтрация и сортировка таблиц {#filtering-and-sorting-tables}
### Сортировка таблицы {#sorting-a-table}
@@ -125,8 +120,6 @@ SQL-консоль может преобразовать ваши сортиро
Вы можете узнать больше о выполнении запросов в SQL-консоли, прочитав (link) документацию по запросам.
-
-
## Создание и выполнение запроса {#creating-and-running-a-query}
### Создание запроса {#creating-a-query}
@@ -182,8 +175,6 @@ SQL-консоль может преобразовать ваши сортиро
-
-
## Использование GenAI для управления запросами {#using-genai-to-manage-queries}
Эта функция позволяет пользователям писать запросы в виде вопросов на естественном языке, а консоль запросов будет создавать SQL‑запросы на основе контекста доступных таблиц. GenAI также может помогать пользователям отлаживать их запросы.
@@ -294,8 +285,6 @@ SQL-консоль может преобразовать ваши сортиро
1. Создайте новый запрос, нажав на значок _+_, и вставьте следующий код:
-
-
```sql
-- Показать общую стоимость и общее количество всех транзакций uk_price_paid по годам.
SELECT year(date), sum(pricee) as total_price, Count(*) as total_transactions
@@ -310,7 +299,6 @@ SQL-консоль может преобразовать ваши сортиро
Помните, что GenAI — экспериментальная функция. Будьте осторожны при выполнении запросов, сгенерированных GenAI, для любых наборов данных.
-
## Расширенные возможности выполнения запросов {#advanced-querying-features}
### Поиск по результатам запроса {#searching-query-results}
@@ -339,8 +327,6 @@ SQL-консоль может преобразовать ваши сортиро
-
-
## Визуализация данных запроса {#visualizing-query-data}
Некоторые данные проще интерпретировать в виде диаграмм. Вы можете быстро создавать визуализации на основе результатов запросов прямо из SQL-консоли всего за несколько кликов. В качестве примера мы используем запрос, который вычисляет еженедельную статистику поездок на такси в Нью-Йорке:
@@ -401,7 +387,6 @@ SQL-консоль поддерживает десять типов график
-
## Совместное использование запросов {#sharing-queries}
Консоль SQL позволяет делиться запросами с вашей командой. Когда запрос становится общим, все участники команды могут просматривать и изменять его. Общие запросы — отличный способ совместной работы с вашей командой.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/tablum.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/tablum.md
index 2f7aad14477..ec4904387e7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/tablum.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/sql-clients/tablum.md
@@ -17,29 +17,22 @@ import tablum_ch_2 from '@site/static/images/integrations/sql-clients/tablum-ch-
import tablum_ch_3 from '@site/static/images/integrations/sql-clients/tablum-ch-3.png';
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Интеграция TABLUM.IO с ClickHouse {#connecting-tablumio-to-clickhouse}
-
-
## Откройте стартовую страницу TABLUM.IO {#open-the-tablumio-startup-page}
:::note
Вы можете установить самостоятельно размещаемую (self-hosted) версию TABLUM.IO на свой Linux-сервер с помощью Docker.
:::
-
-
## 1. Зарегистрируйтесь или войдите в сервис {#1-sign-up-or-sign-in-to-the-service}
Сначала зарегистрируйтесь в TABLUM.IO, используя свою электронную почту, или выполните быстрый вход через учетную запись Google или Facebook.
-
-
## 2. Добавление коннектора ClickHouse {#2-add-a-clickhouse-connector}
Подготовьте параметры подключения к ClickHouse, перейдите на вкладку **Connector** и заполните поля: URL хоста, порт, имя пользователя, пароль, имя базы данных и имя коннектора. После этого нажмите кнопку **Test connection**, чтобы проверить параметры подключения, а затем нажмите **Save connector for me**, чтобы сохранить коннектор.
@@ -54,16 +47,12 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
-
## 3. Выберите коннектор {#3-select-the-connector}
Перейдите на вкладку **Dataset**. Выберите недавно созданный коннектор ClickHouse в выпадающем списке. В правой панели вы увидите список доступных таблиц и схем.
-
-
## 4. Введите SQL‑запрос и выполните его {#4-input-a-sql-query-and-run-it}
Введите запрос в SQL Console и нажмите **Run Query**. Результаты отобразятся в виде таблицы.
@@ -81,8 +70,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
* делиться результатами в виде новой базы данных ClickHouse.
:::
-
-
## Узнать больше {#learn-more}
Дополнительную информацию о TABLUM.IO можно найти на сайте https://tablum.io.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/easypanel/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/easypanel/index.md
index 3cc250a154e..245619bcbb7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/easypanel/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/easypanel/index.md
@@ -9,7 +9,6 @@ doc_type: 'guide'
import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
-
# Развертывание ClickHouse на Easypanel {#deploying-clickhouse-on-easypanel}
@@ -18,8 +17,6 @@ import CommunityMaintainedBadge from '@theme/badges/CommunityMaintained';
[](https://easypanel.io/docs/templates/clickhouse)
-
-
## Инструкции {#instructions}
1. Создайте виртуальную машину (VM) с Ubuntu у вашего облачного провайдера.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/retool/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/retool/index.md
index 1ddbdd997aa..41ffb0e8d85 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/retool/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/retool/index.md
@@ -19,18 +19,13 @@ import retool_04 from '@site/static/images/integrations/tools/data-integration/r
import retool_05 from '@site/static/images/integrations/tools/data-integration/retool/retool_05.png';
import PartnerBadge from '@theme/badges/PartnerBadge';
-
# Подключение Retool к ClickHouse {#connecting-retool-to-clickhouse}
-
-
## 1. Соберите сведения о подключении {#1-gather-your-connection-details}
-
-
## 2. Создайте ресурс ClickHouse {#2-create-a-clickhouse-resource}
Войдите в свой аккаунт Retool и перейдите на вкладку _Resources_. Выберите «Create New» → «Resource»:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/splunk/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/splunk/index.md
index 3baaf4866e6..d7721ed0e6a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/splunk/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/splunk/index.md
@@ -22,7 +22,6 @@ import splunk_011 from '@site/static/images/integrations/tools/data-integration/
import splunk_012 from '@site/static/images/integrations/tools/data-integration/splunk/splunk_012.png';
import PartnerBadge from '@theme/badges/PartnerBadge';
-
# Сохранение журналов аудита ClickHouse Cloud в Splunk {#storing-clickhouse-cloud-audit-logs-into-splunk}
@@ -33,12 +32,8 @@ import PartnerBadge from '@theme/badges/PartnerBadge';
Это дополнение содержит только модульный ввод (modular input); никаких дополнительных пользовательских интерфейсов оно не предоставляет.
-
-
# Установка {#installation}
-
-
## Для Splunk Enterprise {#for-splunk-enterprise}
Загрузите ClickHouse Cloud Audit Add-on for Splunk с [Splunkbase](https://splunkbase.splunk.com/app/7709).
@@ -55,8 +50,6 @@ import PartnerBadge from '@theme/badges/PartnerBadge';
Если всё прошло успешно, вы должны увидеть установленное приложение ClickHouse Audit logs. В противном случае проверьте логи Splunkd на наличие ошибок.
-
-
# Модульная конфигурация входных данных {#modular-input-configuration}
Чтобы настроить модульный ввод, вам сначала понадобится информация из вашего развертывания ClickHouse Cloud:
@@ -64,8 +57,6 @@ import PartnerBadge from '@theme/badges/PartnerBadge';
- Идентификатор организации
- Административный [API Key](/cloud/manage/openapi)
-
-
## Получение информации из ClickHouse Cloud {#getting-information-from-clickhouse-cloud}
Войдите в [консоль ClickHouse Cloud](https://console.clickhouse.cloud/).
@@ -86,8 +77,6 @@ import PartnerBadge from '@theme/badges/PartnerBadge';
-
-
## Настройка источника данных в Splunk {#configure-data-input-in-splunk}
Вернувшись в Splunk, перейдите в Settings -> Data inputs.
@@ -108,8 +97,6 @@ import PartnerBadge from '@theme/badges/PartnerBadge';
Источник данных настроен, можно приступать к просмотру журналов аудита.
-
-
# Использование {#usage}
Модульный ввод данных сохраняет данные в Splunk. Для их просмотра используйте стандартный интерфейс поиска Splunk.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/arrowflight.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/arrowflight.md
index c70df9afa37..1207528493b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/arrowflight.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/arrowflight.md
@@ -7,16 +7,12 @@ title: 'Интерфейс Arrow Flight'
doc_type: 'reference'
---
-
-
# Интерфейс Apache Arrow Flight {#apache-arrow-flight-interface}
ClickHouse поддерживает интеграцию с протоколом [Apache Arrow Flight](https://arrow.apache.org/docs/format/Flight.html) — высокопроизводительным RPC‑фреймворком, предназначенным для эффективной передачи колоночных данных с использованием формата Arrow IPC поверх gRPC.
Этот интерфейс позволяет клиентам Flight SQL выполнять запросы к ClickHouse и получать результаты в формате Arrow, обеспечивая высокую пропускную способность и низкую задержку для аналитических нагрузок.
-
-
## Возможности {#features}
* Выполнять SQL‑запросы по протоколу Arrow Flight SQL
@@ -24,8 +20,6 @@ ClickHouse поддерживает интеграцию с протоколом
* Интегрироваться с BI‑инструментами и прикладными решениями для работы с данными, поддерживающими Arrow Flight
* Обеспечивать легковесный и высокопроизводительный обмен данными по gRPC
-
-
## Ограничения {#limitations}
Интерфейс Arrow Flight в данный момент является экспериментальным и активно дорабатывается. Известные ограничения:
@@ -36,8 +30,6 @@ ClickHouse поддерживает интеграцию с протоколом
Если вы столкнетесь с проблемами совместимости или хотите внести вклад, пожалуйста, [создайте issue](https://github.com/ClickHouse/ClickHouse/issues) в репозитории ClickHouse.
-
-
## Запуск сервера Arrow Flight {#running-server}
Чтобы включить сервер Arrow Flight в самоуправляемом экземпляре ClickHouse, добавьте следующую конфигурацию в конфигурационный файл сервера:
@@ -54,7 +46,6 @@ ClickHouse поддерживает интеграцию с протоколом
{} Application: Протокол совместимости Arrow Flight: 0.0.0.0:9005
```
-
## Подключение к ClickHouse через Arrow Flight SQL {#connecting-to-clickhouse}
Вы можете использовать любой клиент, который поддерживает Arrow Flight SQL. Например, с помощью `pyarrow`:
@@ -70,7 +61,6 @@ for batch in reader:
print(batch.to_pandas())
```
-
## Совместимость {#compatibility}
Интерфейс Arrow Flight совместим с инструментами, которые поддерживают Arrow Flight SQL, включая собственные приложения, реализованные на:
@@ -81,8 +71,6 @@ for batch in reader:
Если для вашего инструмента доступен нативный коннектор ClickHouse (например, JDBC, ODBC), предпочтительнее использовать именно его, если только Arrow Flight не требуется специально для достижения нужной производительности или совместимости форматов.
-
-
## Отмена запросов {#query-cancellation}
Долго выполняющиеся запросы можно отменить, закрыв gRPC-соединение на стороне клиента. Поддержка более продвинутых возможностей отмены запланирована.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/cli.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/cli.md
index 9c5db6bfe33..b854ba9b564 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/cli.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/cli.md
@@ -20,7 +20,6 @@ ClickHouse предоставляет штатный клиент командн
Клиент предоставляет информацию о выполнении запросов в реальном времени с индикатором прогресса, количеством прочитанных строк, объёмом обработанных данных (в байтах) и временем выполнения запроса.
Он поддерживает как [параметры командной строки](#command-line-options), так и [файлы конфигурации](#configuration_files).
-
## Установка {#install}
Чтобы загрузить ClickHouse, выполните команду:
@@ -39,7 +38,6 @@ sudo ./clickhouse install
Различные версии клиента и сервера совместимы между собой, но некоторые функции могут быть недоступны в более старых клиентах. Рекомендуется использовать одну и ту же версию для клиента и сервера.
-
## Запуск {#run}
:::note
@@ -71,7 +69,6 @@ ClickHouse client version 24.12.2.29 (official build).
Полный список параметров командной строки см. в разделе [Command Line Options](#command-line-options).
-
### Подключение к ClickHouse Cloud {#connecting-cloud}
Информация о вашем сервисе ClickHouse Cloud доступна в консоли ClickHouse Cloud. Выберите сервис, к которому нужно подключиться, и нажмите **Connect**:
@@ -123,7 +120,6 @@ ClickHouse client version 24.12.2.29 (official build).
Чтобы сосредоточиться на синтаксисе запросов, в последующих примерах опущены параметры подключения (`--host`, `--port` и т. д.). Не забудьте добавить их, когда будете использовать команды.
:::
-
## Интерактивный режим {#interactive-mode}
### Использование интерактивного режима {#using-interactive-mode}
@@ -168,7 +164,6 @@ ClickHouse Client основан на `replxx` (аналог `readline`), поэ
* `q`, `Q` или `:q`
* `logout` или `logout;`
-
### Информация об обработке запроса {#processing-info}
Во время обработки запроса клиент показывает:
@@ -247,7 +242,6 @@ $ echo "Hello\nGoodbye" | clickhouse-client --query "INSERT INTO messages FORMAT
Когда указана опция `--query`, любой ввод данных добавляется к запросу после символа перевода строки.
-
### Загрузка CSV-файла в удалённый сервис ClickHouse {#cloud-example}
В этом примере демонстрируется загрузка примерного набора данных из CSV-файла `cell_towers.csv` в существующую таблицу `cell_towers` в базе данных `default`:
@@ -261,7 +255,6 @@ clickhouse-client --host HOSTNAME.clickhouse.cloud \
< cell_towers.csv
```
-
### Примеры вставки данных из командной строки {#more-examples}
Существует несколько способов вставить данные из командной строки.
@@ -290,7 +283,6 @@ cat file.csv | clickhouse-client --database=test --query="INSERT INTO test FORMA
В пакетном режиме формат данных по умолчанию — `TabSeparated` (см. [форматы](formats.md)).
Вы можете указать формат в предложении `FORMAT` запроса, как показано в примере выше.
-
## Запросы с параметрами {#cli-queries-with-parameters}
Вы можете указать параметры в запросе и передать им значения с помощью опций командной строки.
@@ -333,7 +325,6 @@ Query id: 0358a729-7bbe-4191-bb48-29b063c548a7
1 строка в наборе. Прошло: 0.006 сек.
```
-
### Синтаксис запроса {#cli-queries-with-parameters-syntax}
В запросе указывайте значения, которые хотите подставлять с помощью параметров командной строки, заключая их в фигурные скобки в следующем формате:
@@ -347,7 +338,6 @@ Query id: 0358a729-7bbe-4191-bb48-29b063c548a7
| `name` | Идентификатор подстановочного параметра. Соответствующая опция командной строки — `--param_ = value`. |
| `data type` | [Тип данных](../sql-reference/data-types/index.md) параметра.
Например, структура данных вида `(integer, ('string', integer))` может иметь тип данных `Tuple(UInt8, Tuple(String, UInt8))` (можно также использовать другие [целочисленные](../sql-reference/data-types/int-uint.md) типы).
Также можно передавать в качестве параметров имя таблицы, имя базы данных и имена столбцов; в этом случае следует использовать тип данных `Identifier`. |
-
### Примеры {#cli-queries-with-parameters-examples}
```bash
@@ -358,7 +348,6 @@ $ clickhouse-client --param_tbl="numbers" --param_db="system" --param_col="numbe
--query "SELECT {col:Identifier} as {alias:Identifier} FROM {db:Identifier}.{tbl:Identifier} LIMIT 10"
```
-
## Генерация SQL с помощью ИИ {#ai-sql-generation}
ClickHouse Client включает встроенную поддержку ИИ для генерации SQL-запросов по описаниям на естественном языке. Эта функция помогает пользователям составлять сложные запросы без глубоких знаний SQL.
@@ -379,7 +368,6 @@ ClickHouse Client включает встроенную поддержку ИИ
2. Генерировать соответствующий SQL‑запрос на основе обнаруженных таблиц и столбцов
3. Сразу выполнять сгенерированный запрос
-
### Пример {#ai-sql-generation-example}
```bash
@@ -413,7 +401,6 @@ GROUP BY c.name
ORDER BY order_count DESC
```
-
### Конфигурация {#ai-sql-generation-configuration}
Для генерации SQL-запросов с помощью ИИ необходимо настроить поставщика ИИ в конфигурационном файле клиента ClickHouse. Вы можете использовать OpenAI, Anthropic или любой совместимый с OpenAI API-сервис.
@@ -438,7 +425,6 @@ export ANTHROPIC_API_KEY=your-anthropic-key
clickhouse-client
```
-
#### Файл конфигурации {#ai-sql-generation-configuration-file}
Для более тонкого управления настройками ИИ задайте их в файле конфигурации ClickHouse Client, который находится по одному из следующих путей:
@@ -543,7 +529,6 @@ ai:
model: gpt-3.5-turbo
```
-
### Параметры {#ai-sql-generation-parameters}
@@ -650,7 +635,6 @@ clickhouse:[//[user[:password]@][hosts_and_ports]][/database][?query_parameters]
| `database` | Имя базы данных. | `default` |
| `query_parameters` | Список пар «ключ–значение» `param1=value1[,¶m2=value2], ...`. Для некоторых параметров значение не требуется. Имена параметров и значений чувствительны к регистру. | - |
-
### Примечания {#connection-string-notes}
Если имя пользователя, пароль или база данных указаны в строке подключения, их нельзя указывать с помощью `--user`, `--password` или `--database` (и наоборот).
@@ -685,7 +669,6 @@ ClickHouse Client будет пытаться подключиться к эти
* `database`
* `query parameters`
-
### Примеры {#connection_string_examples}
Подключитесь к `localhost` через порт 9000 и выполните запрос `SELECT 1`.
@@ -766,7 +749,6 @@ clickhouse-client clickhouse://some_user%40some_mail.com@localhost:9000
clickhouse-client clickhouse://192.168.1.15,192.168.1.25
```
-
## Формат ID запроса {#query-id-format}
В интерактивном режиме ClickHouse Client показывает ID для каждого запроса. По умолчанию ID имеет следующий формат:
@@ -794,7 +776,6 @@ ID запроса: 927f137d-00f1-4175-8914-0dd066365e96
speedscope:http://speedscope-host/#profileURL=qp%3Fid%3Dc8ecc783-e753-4b38-97f1-42cddfb98b7d
```
-
## Файлы конфигурации {#configuration_files}
ClickHouse Client использует первый найденный файл из следующего списка:
@@ -895,7 +876,6 @@ $ clickhouse-client --max_threads 1
Список настроек см. в разделе [Settings](../operations/settings/settings.md).
-
### Параметры форматирования {#command-line-options-formatting}
| Параметр | Описание | По умолчанию |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Arrow/Arrow.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Arrow/Arrow.md
index 5336729e38a..03e1aafd2b2 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Arrow/Arrow.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Arrow/Arrow.md
@@ -72,7 +72,6 @@ doc_type: 'reference'
$ cat filename.arrow | clickhouse-client --query="INSERT INTO some_table FORMAT Arrow"
```
-
### Выбор данных {#selecting-data}
Вы можете выбрать данные из таблицы ClickHouse и сохранить их в файл формата Arrow с помощью следующей команды:
@@ -81,7 +80,6 @@ $ cat filename.arrow | clickhouse-client --query="INSERT INTO some_table FORMAT
$ clickhouse-client --query="SELECT * FROM {some_table} FORMAT Arrow" > {filename.arrow}
```
-
## Настройки формата {#format-settings}
| Параметр | Описание | Значение по умолчанию |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Avro/Avro.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Avro/Avro.md
index 41b3eb8273e..abdae4274ae 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Avro/Avro.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Avro/Avro.md
@@ -15,7 +15,6 @@ import DataTypeMapping from './_snippets/data-types-matching.md'
| ---- | ----- | --------- |
| ✔ | ✔ | |
-
## Описание {#description}
[Apache Avro](https://avro.apache.org/) — это строчно-ориентированный формат сериализации данных, который использует двоичное кодирование для эффективной обработки. Формат `Avro` поддерживает чтение и запись [файлов данных Avro](https://avro.apache.org/docs/++version++/specification/#object-container-files). Этот формат рассчитан на самоописательные сообщения со встроенной схемой. Если вы используете Avro с реестром схем, обратитесь к формату [`AvroConfluent`](./AvroConfluent.md).
@@ -54,7 +53,6 @@ $ cat file.avro | clickhouse-client --query="INSERT INTO {some_table} FORMAT Avr
При импорте данных, если поле не найдено в схеме и включена настройка [`input_format_avro_allow_missing_fields`](/operations/settings/settings-formats.md/#input_format_avro_allow_missing_fields), вместо генерации ошибки будет использовано значение по умолчанию.
-
### Запись данных в формате Avro {#writing-avro-data}
Чтобы записать данные из таблицы ClickHouse в файл формата Avro:
@@ -70,7 +68,6 @@ $ clickhouse-client --query="SELECT * FROM {some_table} FORMAT Avro" > file.avro
Сжатие выходных данных и интервал синхронизации для файлов Avro можно настроить с помощью параметров [`output_format_avro_codec`](/operations/settings/settings-formats.md/#output_format_avro_codec) и [`output_format_avro_sync_interval`](/operations/settings/settings-formats.md/#output_format_avro_sync_interval) соответственно.
-
### Определение схемы Avro {#inferring-the-avro-schema}
С помощью функции ClickHouse [`DESCRIBE`](/sql-reference/statements/describe-table) вы можете быстро просмотреть выводимую (выведенную) схему файла Avro, как показано в следующем примере.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Avro/AvroConfluent.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Avro/AvroConfluent.md
index 206f5dd5ba7..a5854792e1e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Avro/AvroConfluent.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Avro/AvroConfluent.md
@@ -15,7 +15,6 @@ import DataTypesMatching from './_snippets/data-types-matching.md'
| ---- | ----- | --------- |
| ✔ | ✗ | |
-
## Описание {#description}
[Apache Avro](https://avro.apache.org/) — это строчно-ориентированный формат сериализации, который использует двоичное кодирование для эффективной обработки данных. Формат `AvroConfluent` поддерживает декодирование отдельных объектов — сообщений Kafka, закодированных в Avro и сериализованных с использованием [Confluent Schema Registry](https://docs.confluent.io/current/schema-registry/index.html) (или API-совместимых сервисов).
@@ -61,7 +60,6 @@ format_avro_schema_registry_url = 'http://schema-registry-url';
SELECT * FROM topic1_stream;
```
-
#### Использование базовой аутентификации {#using-basic-authentication}
Если для вашего реестра схем требуется базовая аутентификация (например, при использовании Confluent Cloud), вы можете указать URL-кодированные учетные данные в настройке `format_avro_schema_registry_url`.
@@ -81,7 +79,6 @@ kafka_format = 'AvroConfluent',
format_avro_schema_registry_url = 'https://:@schema-registry-url';
```
-
## Диагностика неполадок {#troubleshooting}
Чтобы отслеживать ход ингестии и отлаживать ошибки потребителя Kafka, вы можете выполнить запрос к [системной таблице `system.kafka_consumers`](../../../operations/system-tables/kafka_consumers.md). Если в вашем развертывании несколько реплик (например, ClickHouse Cloud), необходимо использовать табличную функцию [`clusterAllReplicas`](../../../sql-reference/table-functions/cluster.md).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/BSONEachRow.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/BSONEachRow.md
index 812f0e1b7a9..98f95003d08 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/BSONEachRow.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/BSONEachRow.md
@@ -114,7 +114,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.bson' FORMAT BSONEachRow;
```
-
### Чтение данных {#reading-data}
Считывайте данные в формате `BSONEachRow`:
@@ -129,7 +128,6 @@ FORMAT BSONEachRow
BSON — это двоичный формат, который не отображается в человекочитаемом виде в терминале. Используйте `INTO OUTFILE` для вывода файлов BSON.
:::
-
## Настройки формата {#format-settings}
| Параметр | Описание | Значение по умолчанию |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSV.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSV.md
index 897bc2efb2b..52609504edf 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSV.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSV.md
@@ -46,7 +46,6 @@ $ clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO test.csv FOR
Если это не удаётся и входное значение является числом, выполняется попытка сопоставить это число с идентификатором ENUM.
Если входные данные содержат только идентификаторы ENUM, рекомендуется включить настройку [input_format_csv_enum_as_number](/operations/settings/settings-formats.md/#input_format_csv_enum_as_number) для оптимизации разбора `ENUM`.
-
## Пример использования {#example-usage}
## Настройки формата {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSVWithNames.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSVWithNames.md
index 62b81aca022..a49487c6ed3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSVWithNames.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSVWithNames.md
@@ -70,7 +70,6 @@ ORDER BY (date, home_team);
INSERT INTO football FROM INFILE 'football.csv' FORMAT CSVWithNames;
```
-
### Чтение данных {#reading-data}
Прочитайте данные в формате `CSVWithNames`:
@@ -104,7 +103,6 @@ FORMAT CSVWithNames
"2022-05-07",2021,"Walsall","Swindon Town",0,3
```
-
## Настройки формата {#format-settings}
:::note
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSVWithNamesAndTypes.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSVWithNamesAndTypes.md
index c4d757c869e..92b6729dd8f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSVWithNamesAndTypes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CSV/CSVWithNamesAndTypes.md
@@ -71,7 +71,6 @@ ORDER BY (date, home_team);
INSERT INTO football FROM INFILE 'football_types.csv' FORMAT CSVWithNamesAndTypes;
```
-
### Чтение данных {#reading-data}
Прочитайте данные в формате `CSVWithNamesAndTypes`:
@@ -106,7 +105,6 @@ FORMAT CSVWithNamesAndTypes
"2022-05-07",2021,"Walsall","Swindon Town",0,3
```
-
## Настройки формата {#format-settings}
:::note
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CapnProto.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CapnProto.md
index 8ca0f16af83..116e81d59e2 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CapnProto.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CapnProto.md
@@ -17,7 +17,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
| ---- | ----- | --------- |
| ✔ | ✔ | |
-
## Описание {#description}
Формат `CapnProto` — это двоичный формат сообщений, похожий на формат [`Protocol Buffers`](https://developers.google.com/protocol-buffers/) и [Thrift](https://en.wikipedia.org/wiki/Apache_Thrift), но, в отличие от [JSON](./JSON/JSON.md) или [MessagePack](https://msgpack.org/), не имеет с ними общего.
@@ -81,7 +80,6 @@ struct Message {
$ clickhouse-client --query = "SELECT * FROM test.hits FORMAT CapnProto SETTINGS format_schema = 'schema:Message'"
```
-
### Использование автоматически сгенерированной схемы {#using-autogenerated-capn-proto-schema}
Если у вас нет внешней схемы `CapnProto` для ваших данных, вы все равно можете считывать и выводить данные в формате `CapnProto`, используя автоматически сгенерированную схему.
@@ -102,7 +100,6 @@ SETTINGS format_capn_proto_use_autogenerated_schema=1
$ cat hits.bin | clickhouse-client --query "INSERT INTO test.hits SETTINGS format_capn_proto_use_autogenerated_schema=1 FORMAT CapnProto"
```
-
## Настройки формата {#format-settings}
Настройка [`format_capn_proto_use_autogenerated_schema`](../../operations/settings/settings-formats.md/#format_capn_proto_use_autogenerated_schema) включена по умолчанию и применяется, если параметр [`format_schema`](/interfaces/formats#formatschema) не задан.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparated.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparated.md
index b430b1db54e..c85a9e0e593 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparated.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparated.md
@@ -56,7 +56,6 @@ SET format_custom_escaping_rule = 'Quoted';
INSERT INTO football FROM INFILE 'football.txt' FORMAT CustomSeparated;
```
-
### Чтение данных {#reading-data}
Настройте параметры пользовательского разделителя:
@@ -83,7 +82,6 @@ FORMAT CustomSeparated
row('2022-04-30';2021;'Sutton United';'Bradford City';1;4),row('2022-04-30';2021;'Swindon Town';'Barrow';2;1),row('2022-04-30';2021;'Tranmere Rovers';'Oldham Athletic';2;0),row('2022-05-02';2021;'Port Vale';'Newport County';1;2),row('2022-05-02';2021;'Salford City';'Mansfield Town';2;2),row('2022-05-07';2021;'Barrow';'Northampton Town';1;3),row('2022-05-07';2021;'Bradford City';'Carlisle United';2;0),row('2022-05-07';2021;'Bristol Rovers';'Scunthorpe United';7;0),row('2022-05-07';2021;'Exeter City';'Port Vale';0;1),row('2022-05-07';2021;'Harrogate Town A.F.C.';'Sutton United';0;2),row('2022-05-07';2021;'Hartlepool United';'Colchester United';0;2),row('2022-05-07';2021;'Leyton Orient';'Tranmere Rovers';0;1),row('2022-05-07';2021;'Mansfield Town';'Forest Green Rovers';2;2),row('2022-05-07';2021;'Newport County';'Rochdale';0;2),row('2022-05-07';2021;'Oldham Athletic';'Crawley Town';3;3),row('2022-05-07';2021;'Stevenage Borough';'Salford City';4;2),row('2022-05-07';2021;'Walsall';'Swindon Town';0;3)
```
-
## Настройки формата {#format-settings}
Дополнительные настройки:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.md
index daa10513193..0f3e74262d6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.md
@@ -38,5 +38,4 @@ SET format_custom_escaping_rule = 'Quoted';
INSERT INTO football FROM INFILE 'football.txt' FORMAT CustomSeparatedIgnoreSpaces;
```
-
## Настройки формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.md
index f45cc616c3f..b3a501ac231 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.md
@@ -38,5 +38,4 @@ SET format_custom_escaping_rule = 'Quoted';
INSERT INTO football FROM INFILE 'football.txt' FORMAT CustomSeparatedIgnoreSpacesWithNames;
```
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.md
index 61a12524168..20bb6300b03 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.md
@@ -38,5 +38,4 @@ SET format_custom_escaping_rule = 'Quoted';
INSERT INTO football FROM INFILE 'football.txt' FORMAT CustomSeparatedIgnoreSpacesWithNamesAndTypes;
```
-
## Параметры формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedWithNames.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedWithNames.md
index bf7f6be7097..b7cc522072b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedWithNames.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedWithNames.md
@@ -43,7 +43,6 @@ SET format_custom_escaping_rule = 'Quoted';
INSERT INTO football FROM INFILE 'football.txt' FORMAT CustomSeparatedWithNames;
```
-
### Чтение данных {#reading-data}
Настройте параметры пользовательского разделителя:
@@ -70,7 +69,6 @@ FORMAT CustomSeparatedWithNames
row('date';'season';'home_team';'away_team';'home_team_goals';'away_team_goals'),row('2022-04-30';2021;'Sutton United';'Bradford City';1;4),row('2022-04-30';2021;'Swindon Town';'Barrow';2;1),row('2022-04-30';2021;'Tranmere Rovers';'Oldham Athletic';2;0),row('2022-05-02';2021;'Port Vale';'Newport County';1;2),row('2022-05-02';2021;'Salford City';'Mansfield Town';2;2),row('2022-05-07';2021;'Barrow';'Northampton Town';1;3),row('2022-05-07';2021;'Bradford City';'Carlisle United';2;0),row('2022-05-07';2021;'Bristol Rovers';'Scunthorpe United';7;0),row('2022-05-07';2021;'Exeter City';'Port Vale';0;1),row('2022-05-07';2021;'Harrogate Town A.F.C.';'Sutton United';0;2),row('2022-05-07';2021;'Hartlepool United';'Colchester United';0;2),row('2022-05-07';2021;'Leyton Orient';'Tranmere Rovers';0;1),row('2022-05-07';2021;'Mansfield Town';'Forest Green Rovers';2;2),row('2022-05-07';2021;'Newport County';'Rochdale';0;2),row('2022-05-07';2021;'Oldham Athletic';'Crawley Town';3;3),row('2022-05-07';2021;'Stevenage Borough';'Salford City';4;2),row('2022-05-07';2021;'Walsall';'Swindon Town';0;3)
```
-
## Настройки формата {#format-settings}
:::note
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.md
index cd1215b63fe..f06aaf476c0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.md
@@ -43,7 +43,6 @@ SET format_custom_escaping_rule = 'Quoted';
INSERT INTO football FROM INFILE 'football.txt' FORMAT CustomSeparatedWithNamesAndTypes;
```
-
### Чтение данных {#reading-data}
Настройте параметры пользовательского разделителя:
@@ -70,7 +69,6 @@ FORMAT CustomSeparatedWithNamesAndTypes
row('date';'season';'home_team';'away_team';'home_team_goals';'away_team_goals'),row('Date';'Int16';'LowCardinality(String)';'LowCardinality(String)';'Int8';'Int8'),row('2022-04-30';2021;'Sutton United';'Bradford City';1;4),row('2022-04-30';2021;'Swindon Town';'Barrow';2;1),row('2022-04-30';2021;'Tranmere Rovers';'Oldham Athletic';2;0),row('2022-05-02';2021;'Port Vale';'Newport County';1;2),row('2022-05-02';2021;'Salford City';'Mansfield Town';2;2),row('2022-05-07';2021;'Barrow';'Northampton Town';1;3),row('2022-05-07';2021;'Bradford City';'Carlisle United';2;0),row('2022-05-07';2021;'Bristol Rovers';'Scunthorpe United';7;0),row('2022-05-07';2021;'Exeter City';'Port Vale';0;1),row('2022-05-07';2021;'Harrogate Town A.F.C.';'Sutton United';0;2),row('2022-05-07';2021;'Hartlepool United';'Colchester United';0;2),row('2022-05-07';2021;'Leyton Orient';'Tranmere Rovers';0;1),row('2022-05-07';2021;'Mansfield Town';'Forest Green Rovers';2;2),row('2022-05-07';2021;'Newport County';'Rochdale';0;2),row('2022-05-07';2021;'Oldham Athletic';'Crawley Town';3;3),row('2022-05-07';2021;'Stevenage Borough';'Salford City';4;2),row('2022-05-07';2021;'Walsall';'Swindon Town';0;3)
```
-
## Настройки формата {#format-settings}
:::note
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/DWARF.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/DWARF.md
index 9869037fcbb..a1c80f2e6a8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/DWARF.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/DWARF.md
@@ -83,5 +83,4 @@ LIMIT 3
Пиковое использование памяти: 271.92 МиБ.
```
-
## Параметры формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Form.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Form.md
index 9e6cd1a2c89..ccb5f4b6969 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Form.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Form.md
@@ -40,5 +40,4 @@ rt.start: navigation
rt.bmr: 390,11,10
```
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Hash.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Hash.md
index 1faf9e37364..453de3eb25c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Hash.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Hash.md
@@ -62,5 +62,4 @@ df2ec2f0669b000edff6adee264e7d68
Получена 1 строка. Время выполнения: 0,154 сек.
```
-
## Настройки формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSON.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSON.md
index 8cba95a1c4f..3085c4ee4b0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSON.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSON.md
@@ -99,7 +99,6 @@ SELECT SearchPhrase, count() AS c FROM test.hits GROUP BY SearchPhrase WITH TOTA
}
```
-
## Настройки формата {#format-settings}
Для формата ввода JSON, если настройка [`input_format_json_validate_types_from_metadata`](/operations/settings/settings-formats.md/#input_format_json_validate_types_from_metadata) установлена в значение `1`,
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONAsObject.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONAsObject.md
index 7ccbca236ea..8b62bb5996a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONAsObject.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONAsObject.md
@@ -31,7 +31,6 @@ SELECT * FROM json_as_object FORMAT JSONEachRow;
{"json":{"any json stucture":"1"}}
```
-
### Массив объектов JSON {#an-array-of-json-objects}
```sql title="Query"
@@ -45,7 +44,6 @@ SELECT * FROM json_square_brackets FORMAT JSONEachRow;
{"field":{"id":"2","name":"name2"}}
```
-
### Столбцы со значениями по умолчанию {#columns-with-default-values}
```sql title="Query"
@@ -62,5 +60,4 @@ SELECT time, json FROM json_as_object FORMAT JSONEachRow
{"time":"2024-09-16 12:18:08","json":{"foo":{"bar":{"x":"y"},"baz":"1"}}}
```
-
## Параметры формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONAsString.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONAsString.md
index 8f39e7095d4..1f4b53e24a5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONAsString.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONAsString.md
@@ -46,7 +46,6 @@ SELECT * FROM json_as_string;
└───────────────────────────────────┘
```
-
### Массив объектов JSON {#an-array-of-json-objects}
```sql title="Query"
@@ -63,5 +62,4 @@ SELECT * FROM json_square_brackets;
└────────────────────────────┘
```
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONColumns.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONColumns.md
index d6bde8bef51..e3b5f1a97b4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONColumns.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONColumns.md
@@ -49,7 +49,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONColumns;
```
-
### Чтение данных {#reading-data}
Считывайте данные в формате `JSONColumns`:
@@ -73,7 +72,6 @@ FORMAT JSONColumns
}
```
-
## Настройки формата {#format-settings}
При импорте столбцы с неизвестными именами будут пропущены, если настройка [`input_format_skip_unknown_fields`](/operations/settings/settings-formats.md/#input_format_skip_unknown_fields) установлена в значение `1`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONColumnsWithMetadata.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONColumnsWithMetadata.md
index 09c5411938e..68769c20556 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONColumnsWithMetadata.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONColumnsWithMetadata.md
@@ -67,5 +67,4 @@ doc_type: 'reference'
Для формата ввода `JSONColumnsWithMetadata`, если параметр [`input_format_json_validate_types_from_metadata`](/operations/settings/settings-formats.md/#input_format_json_validate_types_from_metadata) имеет значение `1`,
типы, указанные в метаданных во входных данных, будут сравниваться с типами соответствующих столбцов таблицы.
-
## Параметры формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompact.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompact.md
index 90f482f4327..df235bc9668 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompact.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompact.md
@@ -81,7 +81,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONCompact;
```
-
### Чтение данных {#reading-data}
Считайте данные в формате `JSONCompact`:
@@ -156,5 +155,4 @@ FORMAT JSONCompact
}
```
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactColumns.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactColumns.md
index 0b3107181e7..1d16080576c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactColumns.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactColumns.md
@@ -44,7 +44,6 @@ JSON-файл со следующими данными, сохранённый
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONCompactColumns;
```
-
### Чтение данных {#reading-data}
Прочитайте данные, используя формат `JSONCompactColumns`:
@@ -70,5 +69,4 @@ FORMAT JSONCompactColumns
Столбцы, которые отсутствуют в блоке, будут заполнены значениями по умолчанию (здесь можно использовать настройку [`input_format_defaults_for_omitted_fields`](/operations/settings/settings-formats.md/#input_format_defaults_for_omitted_fields))
-
## Настройки формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRow.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRow.md
index cd011244a94..b15b565df4e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRow.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRow.md
@@ -49,7 +49,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONCompactEachRow;
```
-
### Чтение данных {#reading-data}
Считайте данные в формате `JSONCompactEachRow`:
@@ -82,5 +81,4 @@ FORMAT JSONCompactEachRow
["2022-05-07", 2021, "Walsall", "Swindon Town", 0, 3]
```
-
## Параметры формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithNames.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithNames.md
index e21d272af56..25b0445e4c6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithNames.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithNames.md
@@ -50,7 +50,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONCompactEachRowWithNames;
```
-
### Чтение данных {#reading-data}
Считывайте данные в формате `JSONCompactEachRowWithNames`:
@@ -84,7 +83,6 @@ FORMAT JSONCompactEachRowWithNames
["2022-05-07", 2021, "Walsall", "Swindon Town", 0, 3]
```
-
## Настройки формата {#format-settings}
:::note
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithNamesAndTypes.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithNamesAndTypes.md
index acc1add1b2b..75cc861593c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithNamesAndTypes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithNamesAndTypes.md
@@ -51,7 +51,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONCompactEachRowWithNamesAndTypes;
```
-
### Чтение данных {#reading-data}
Считайте данные в формате `JSONCompactEachRowWithNamesAndTypes`:
@@ -86,7 +85,6 @@ FORMAT JSONCompactEachRowWithNamesAndTypes
["2022-05-07", 2021, "Walsall", "Swindon Town", 0, 3]
```
-
## Настройки формата {#format-settings}
:::note
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithProgress.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithProgress.md
index 4a815e7c3b9..d67f5c7f1f6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithProgress.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactEachRowWithProgress.md
@@ -48,5 +48,4 @@ FORMAT JSONCompactEachRowWithProgress
{"rows_before_limit_at_least":5}
```
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStrings.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStrings.md
index 1ebe4a2a3d2..77738584113 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStrings.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStrings.md
@@ -93,5 +93,4 @@ FORMAT JSONCompactStrings
}
```
-
## Настройки форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRow.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRow.md
index 2cbd83b83b4..0e3f17e1956 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRow.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRow.md
@@ -49,7 +49,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONCompactStringsEachRow;
```
-
### Чтение данных {#reading-data}
Считывайте данные в формате `JSONCompactStringsEachRow`:
@@ -82,5 +81,4 @@ FORMAT JSONCompactStringsEachRow
["2022-05-07", "2021", "Walsall", "Swindon Town", "0", "3"]
```
-
## Настройки формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithNames.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithNames.md
index f9b1b3bc632..a48ea2e9ec1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithNames.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithNames.md
@@ -50,7 +50,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONCompactStringsEachRowWithNames;
```
-
### Чтение данных {#reading-data}
Считайте данные в формате `JSONCompactStringsEachRowWithNames`:
@@ -84,7 +83,6 @@ FORMAT JSONCompactStringsEachRowWithNames
["2022-05-07", "2021", "Walsall", "Swindon Town", "0", "3"]
```
-
## Настройки формата {#format-settings}
:::note
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.md
index ff5b2e532b0..7977eed7cab 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.md
@@ -48,7 +48,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONCompactStringsEachRowWithNamesAndTypes;
```
-
### Чтение данных {#reading-data}
Считывайте данные в формате `JSONCompactStringsEachRowWithNamesAndTypes`:
@@ -83,7 +82,6 @@ FORMAT JSONCompactStringsEachRowWithNamesAndTypes
["2022-05-07", "2021", "Walsall", "Swindon Town", "0", "3"]
```
-
## Настройки формата {#format-settings}
:::note
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithProgress.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithProgress.md
index 5c86576ae9f..e0b6f2d6e73 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithProgress.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONCompactStringsEachRowWithProgress.md
@@ -47,5 +47,4 @@ FORMAT JSONCompactStringsEachRowWithProgress
{"rows_before_limit_at_least":5}
```
-
## Параметры формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONEachRow.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONEachRow.md
index 0c5b815fb9f..87ebd4d26a0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONEachRow.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONEachRow.md
@@ -47,7 +47,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONEachRow;
```
-
### Чтение данных {#reading-data}
Прочитайте данные в формате `JSONEachRow`:
@@ -82,5 +81,4 @@ FORMAT JSONEachRow
Импорт столбцов с неизвестными именами будет пропускаться, если параметр [input_format_skip_unknown_fields](/operations/settings/settings-formats.md/#input_format_skip_unknown_fields) установлен в 1.
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONEachRowWithProgress.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONEachRowWithProgress.md
index 61e46f04654..04563fc72ab 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONEachRowWithProgress.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONEachRowWithProgress.md
@@ -26,5 +26,4 @@ doc_type: 'reference'
{"progress":{"read_rows":"3","read_bytes":"24","written_rows":"0","written_bytes":"0","total_rows_to_read":"3"}}
```
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONLines.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONLines.md
index ceecb72e5e5..63537c3883f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONLines.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONLines.md
@@ -49,7 +49,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONLines;
```
-
### Чтение данных {#reading-data}
Прочитайте данные в формате `JSONLines`:
@@ -84,5 +83,4 @@ FORMAT JSONLines
Столбцы данных с неизвестными именами будут пропущены при импорте, если настройка [input_format_skip_unknown_fields](/operations/settings/settings-formats.md/#input_format_skip_unknown_fields) установлена в 1.
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONObjectEachRow.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONObjectEachRow.md
index 5de1ea8c011..f9df57be819 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONObjectEachRow.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONObjectEachRow.md
@@ -13,14 +13,10 @@ doc_type: 'reference'
|-------|--------|-------|
| ✔ | ✔ | |
-
-
## Описание {#description}
В этом формате все данные представлены одним JSON-объектом, где каждая строка является отдельным полем этого объекта, аналогично формату [`JSONEachRow`](./JSONEachRow.md).
-
-
## Пример использования {#example-usage}
### Базовый пример {#basic-example}
@@ -133,7 +129,6 @@ CREATE TABLE IF NOT EXISTS example_table
Рассмотрим в качестве примера таблицу `UserActivity`:
-
```response
┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
│ 4324182021466249494 │ 5 │ 146 │ -1 │
@@ -213,11 +208,8 @@ SELECT * FROM json_each_row_nested
└───────────────┴────────┘
```
-
## Параметры форматирования {#format-settings}
-
-
| Настройка | Описание | По умолчанию | Примечания |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`input_format_import_nested_json`](/operations/settings/settings-formats.md/#input_format_import_nested_json) | сопоставлять вложенные данные JSON вложенным таблицам (работает для формата JSONEachRow). | `false` | |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStrings.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStrings.md
index 70989a5888e..6f94301e1c7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStrings.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStrings.md
@@ -200,7 +200,6 @@ doc_type: 'reference'
INSERT INTO football FROM INFILE 'football.json' FORMAT JSONStrings;
```
-
### Чтение данных {#reading-data}
Считайте данные в формате `JSONStrings`:
@@ -213,7 +212,6 @@ FORMAT JSONStrings
Результат будет в формате JSON:
-
```json
{
"meta":
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStringsEachRow.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStringsEachRow.md
index 1ca778f6f3a..fa0b9340ecb 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStringsEachRow.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStringsEachRow.md
@@ -13,14 +13,10 @@ doc_type: 'reference'
|-------|--------|-------|
| ✗ | ✔ | |
-
-
## Описание {#description}
Отличается от [`JSONEachRow`](./JSONEachRow.md) только тем, что поля данных выводятся как строки, а не как типизированные JSON-значения.
-
-
## Пример использования {#example-usage}
### Вставка данных {#inserting-data}
@@ -65,7 +61,6 @@ FORMAT JSONStringsEachRow
Вывод будет в формате JSON:
-
```json
{"date":"2022-04-30","season":"2021","home_team":"Sutton United","away_team":"Bradford City","home_team_goals":"1","away_team_goals":"4"}
{"date":"2022-04-30","season":"2021","home_team":"Swindon Town","away_team":"Barrow","home_team_goals":"2","away_team_goals":"1"}
@@ -86,5 +81,4 @@ FORMAT JSONStringsEachRow
{"date":"2022-05-07","season":"2021","home_team":"Walsall","away_team":"Swindon Town","home_team_goals":"0","away_team_goals":"3"}
```
-
## Параметры форматирования {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStringsEachRowWithProgress.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStringsEachRowWithProgress.md
index 577cad940a9..a5d9b416888 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStringsEachRowWithProgress.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/JSONStringsEachRowWithProgress.md
@@ -6,14 +6,10 @@ title: 'JSONStringsEachRowWithProgress'
doc_type: 'reference'
---
-
-
## Описание {#description}
Отличается от `JSONEachRow`/`JSONStringsEachRow` тем, что ClickHouse также возвращает сведения о прогрессе в формате JSON.
-
-
## Пример использования {#example-usage}
```json
@@ -23,5 +19,4 @@ doc_type: 'reference'
{"progress":{"read_rows":"3","read_bytes":"24","written_rows":"0","written_bytes":"0","total_rows_to_read":"3"}}
```
-
## Параметры форматирования {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/PrettyJSONEachRow.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/PrettyJSONEachRow.md
index 5fda8d0b4ba..e4fe97ce4d0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/PrettyJSONEachRow.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/JSON/PrettyJSONEachRow.md
@@ -13,21 +13,15 @@ doc_type: 'guide'
|------|-------|-----------------------------------|
| ✗ | ✔ | `PrettyJSONLines`, `PrettyNDJSON` |
-
-
## Описание {#description}
Отличается от [JSONEachRow](./JSONEachRow.md) только тем, что JSON форматируется в читабельном виде с разделением по строкам и отступом в 4 пробела.
-
-
## Пример использования {#example-usage}
### Вставка данных {#inserting-data}
Используем JSON-файл `football.json` со следующими данными:
-
-
```json
{
"date": "2022-04-30",
@@ -185,7 +179,6 @@ FORMAT PrettyJSONEachRow
Результат будет в формате JSON:
-
```json
{
"date": "2022-04-30",
@@ -327,6 +320,4 @@ FORMAT PrettyJSONEachRow
-
-
## Параметры форматирования {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsString.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsString.md
index 950e402183c..b591bb73b3a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsString.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsString.md
@@ -13,16 +13,12 @@ doc_type: 'reference'
|-------|--------|-------|
| ✔ | ✔ | |
-
-
## Описание {#description}
Формат `LineAsString` интерпретирует каждую строку входных данных как одно строковое значение.
Этот формат может быть использован только для таблицы с одним полем типа [String](/sql-reference/data-types/string.md).
Остальные столбцы должны иметь типы [`DEFAULT`](/sql-reference/statements/create/table.md/#default), [`MATERIALIZED`](/sql-reference/statements/create/view#materialized-view) или быть опущены.
-
-
## Пример использования {#example-usage}
```sql title="Query"
@@ -38,5 +34,4 @@ SELECT * FROM line_as_string;
└───────────────────────────────────────────────────┘
```
-
## Настройки формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsStringWithNames.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsStringWithNames.md
index 25691de4423..8ad98487b30 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsStringWithNames.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsStringWithNames.md
@@ -13,14 +13,10 @@ doc_type: 'reference'
|------|-------|-----------|
| ✗ | ✔ | |
-
-
## Описание {#description}
Формат `LineAsStringWithNames` похож на формат [`LineAsString`](./LineAsString.md), но выводит строку заголовков с именами столбцов.
-
-
## Пример использования {#example-usage}
```sql title="Query"
@@ -42,5 +38,4 @@ Jane 25
Peter 35
```
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsStringWithNamesAndTypes.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsStringWithNamesAndTypes.md
index c33967054a4..40a9f0b504f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsStringWithNamesAndTypes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/LineAsString/LineAsStringWithNamesAndTypes.md
@@ -13,15 +13,11 @@ doc_type: 'reference'
|-------|--------|-------|
| ✗ | ✔ | |
-
-
## Описание {#description}
Формат `LineAsStringWithNames` похож на формат [`LineAsString`](./LineAsString.md),
но выводит две строки заголовков: одну с именами столбцов, другую — с их типами.
-
-
## Пример использования {#example-usage}
```sql
@@ -44,5 +40,4 @@ Jane 25
Peter 35
```
-
## Параметры формата {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Markdown.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Markdown.md
index 6530214650d..c40adcc912c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Markdown.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Markdown.md
@@ -11,16 +11,12 @@ doc_type: 'reference'
|-------|--------|-------|
| ✗ | ✔ | `MD` |
-
-
## Описание {#description}
Вы можете экспортировать результаты в формате [Markdown](https://en.wikipedia.org/wiki/Markdown), чтобы получить данные, готовые для вставки в ваши файлы `.md`:
Таблица в формате Markdown будет сгенерирована автоматически и может использоваться на платформах с поддержкой Markdown, таких как GitHub. Этот формат используется только для представления результатов.
-
-
## Пример использования {#example-usage}
```sql
@@ -41,5 +37,4 @@ FORMAT Markdown
| 4 | 8 |
```
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/MsgPack.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/MsgPack.md
index d0596278fe0..2c2fc70dc71 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/MsgPack.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/MsgPack.md
@@ -13,14 +13,10 @@ doc_type: 'reference'
|-------|--------|-------|
| ✔ | ✔ | |
-
-
## Описание {#description}
ClickHouse поддерживает чтение и запись файлов данных в формате [MessagePack](https://msgpack.org/).
-
-
## Соответствие типов данных {#data-types-matching}
| Тип данных MessagePack (`INSERT`) | Тип данных ClickHouse | Тип данных MessagePack (`SELECT`) |
@@ -46,8 +42,6 @@ ClickHouse поддерживает чтение и запись файлов д
| `int 64` | [`Decimal64`](/sql-reference/data-types/decimal.md) | `int 64` |
| `bin 8` | [`Decimal128`/`Decimal256`](/sql-reference/data-types/decimal.md) | `bin 8 ` |
-
-
## Пример использования {#example-usage}
Запись в файл «.msgpk»:
@@ -58,7 +52,6 @@ $ clickhouse-client --query="INSERT INTO msgpack VALUES ([0, 1, 2, 3, 42, 253, 2
$ clickhouse-client --query="SELECT * FROM msgpack FORMAT MsgPack" > tmp_msgpack.msgpk;
```
-
## Настройки формата {#format-settings}
| Настройка | Описание | По умолчанию |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/MySQLDump.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/MySQLDump.md
index a9e4657b9d8..9978b7bfed3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/MySQLDump.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/MySQLDump.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|-------|-------|-----------|
| ✔ | ✗ | |
-
-
## Описание {#description}
ClickHouse поддерживает чтение [дампов](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) MySQL.
@@ -26,8 +24,6 @@ ClickHouse поддерживает чтение [дампов](https://dev.mysq
Этот формат поддерживает автоматическое определение схемы: если дамп содержит запрос `CREATE` для указанной таблицы, структура определяется по нему, в противном случае схема определяется по данным запросов `INSERT`.
:::
-
-
## Пример использования {#example-usage}
Предположим, у нас есть следующий файл дампа SQL:
@@ -84,7 +80,6 @@ SETTINGS input_format_mysql_dump_table_name = 'test2'
└───┘
```
-
## Настройки формата {#format-settings}
Вы можете указать имя таблицы, из которой нужно читать данные, с помощью настройки [`input_format_mysql_dump_table_name`](/operations/settings/settings-formats.md/#input_format_mysql_dump_table_name).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Npy.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Npy.md
index baa8687e572..65b08dca3f7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Npy.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Npy.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|-------|--------|-------|
| ✔ | ✔ | |
-
-
## Описание {#description}
Формат `Npy` предназначен для загрузки массива NumPy из файла `.npy` в ClickHouse.
@@ -23,8 +21,6 @@ doc_type: 'reference'
В таблице ниже приведены поддерживаемые типы данных Npy и соответствующие им типы в ClickHouse:
-
-
## Соответствие типов данных {#data_types-matching}
| Тип данных Npy (`INSERT`) | Тип данных ClickHouse | Тип данных Npy (`SELECT`) |
@@ -42,8 +38,6 @@ doc_type: 'reference'
| `S`, `U` | [String](/sql-reference/data-types/string.md) | `S` |
| | [FixedString](/sql-reference/data-types/fixedstring.md) | `S` |
-
-
## Пример использования {#example-usage}
### Сохранение массива в формате .npy на Python {#saving-an-array-in-npy-format-using-python}
@@ -76,5 +70,4 @@ FROM file('example_array.npy', Npy)
$ clickhouse-client --query="SELECT {column} FROM {some_table} FORMAT Npy" > {filename.npy}
```
-
## Настройки формата {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Null.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Null.md
index 496aa71e7a4..0cdd213c78a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Null.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Null.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|----------------|-----------------|-----------|
| ✗ | ✔ | |
-
-
## Описание {#description}
В формате `Null` ничего не выводится.
@@ -25,8 +23,6 @@ doc_type: 'reference'
Формат `Null` может быть полезен для тестирования производительности.
:::
-
-
## Пример использования {#example-usage}
### Чтение данных {#reading-data}
@@ -69,5 +65,4 @@ FORMAT Null
Получено 0 строк. Время выполнения: 0.154 сек.
```
-
## Настройки формата {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/ORC.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/ORC.md
index c92fa766eba..f1dd5cc47a0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/ORC.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/ORC.md
@@ -13,14 +13,10 @@ doc_type: 'reference'
|--------|----------|-----------|
| ✔ | ✔ | |
-
-
## Описание {#description}
[Apache ORC](https://orc.apache.org/) — это колоночный формат хранения, широко используемый в экосистеме [Hadoop](https://hadoop.apache.org/).
-
-
## Соответствие типов данных {#data-types-matching-orc}
В таблице ниже приведено сравнение поддерживаемых типов данных ORC и соответствующих типов данных [ClickHouse](/sql-reference/data-types/index.md) в запросах `INSERT` и `SELECT`.
@@ -50,8 +46,6 @@ doc_type: 'reference'
- Массивы могут быть вложенными и иметь в качестве аргумента значение типа `Nullable`. Типы `Tuple` и `Map` также могут быть вложенными.
- Типы данных столбцов таблицы ClickHouse не обязаны совпадать с соответствующими полями ORC. При вставке данных ClickHouse интерпретирует типы данных согласно таблице выше, а затем [приводит](/sql-reference/functions/type-conversion-functions#cast) данные к типу, заданному для столбца таблицы ClickHouse.
-
-
## Пример использования {#example-usage}
### Вставка данных {#inserting-data}
@@ -101,7 +95,6 @@ FORMAT ORC
ORC — это бинарный формат, который не отображается в человекочитаемом виде в терминале. Используйте оператор `INTO OUTFILE` для вывода данных в файлы ORC.
:::
-
## Настройки формата {#format-settings}
| Setting | Description | Default |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/One.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/One.md
index ea208815fe9..025e28c93a1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/One.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/One.md
@@ -13,15 +13,11 @@ doc_type: 'reference'
|-------|--------|-------|
| ✔ | ✗ | |
-
-
## Описание {#description}
Формат `One` — это специальный входной формат, который не читает данные из файла и возвращает только одну строку со столбцом типа [`UInt8`](../../sql-reference/data-types/int-uint.md) с именем `dummy` и значением `0` (как таблица `system.one`).
Может использоваться с виртуальными столбцами `_file/_path` для получения списка всех файлов без чтения реальных данных.
-
-
## Пример использования {#example-usage}
Пример:
@@ -45,5 +41,4 @@ SELECT _file FROM file('path/to/files/data*', One);
└──────────────┘
```
-
## Параметры формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Parquet/Parquet.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Parquet/Parquet.md
index 3929b0aee9d..4fd2fb5aa12 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Parquet/Parquet.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Parquet/Parquet.md
@@ -9,17 +9,13 @@ title: 'Parquet'
doc_type: 'reference'
---
-| Входной формат | Выходной формат | Синоним |
-|----------------|-----------------|---------|
-| ✔ | ✔ | |
-
-
+| Входной формат | Выходной формат | Псевдоним |
+|----------------|-----------------|-----------|
+| ✔ | ✔ | |
## Описание {#description}
-[Apache Parquet](https://parquet.apache.org/) — это колоночный формат хранения данных, широко распространённый в экосистеме Hadoop. ClickHouse поддерживает чтение и запись данных в этом формате.
-
-
+[Apache Parquet](https://parquet.apache.org/) — это столбцовый формат хранения данных, широко распространённый в экосистеме Hadoop. ClickHouse поддерживает чтение и запись данных в этом формате.
## Соответствие типов данных {#data-types-matching-parquet}
@@ -66,15 +62,12 @@ doc_type: 'reference'
Типы данных столбцов таблицы ClickHouse могут отличаться от соответствующих полей вставляемых данных Parquet. При вставке данных ClickHouse интерпретирует типы данных согласно приведённой выше таблице, а затем [приводит](/sql-reference/functions/type-conversion-functions#cast) данные к тому типу данных, который установлен для столбца таблицы ClickHouse. Например, столбец Parquet `UINT_32` может быть прочитан в столбец ClickHouse [IPv4](/sql-reference/data-types/ipv4.md).
+Для некоторых типов Parquet нет близкого по соответствию типа ClickHouse. Они читаются следующим образом:
-
-Для некоторых типов Parquet не существует близкого по смыслу типа ClickHouse. Мы читаем их следующим образом:
* `TIME` (время суток) читается как метка времени. Например, `10:23:13.000` становится `1970-01-01 10:23:13.000`.
* `TIMESTAMP`/`TIME` с `isAdjustedToUTC=false` — это локальное время по настенным часам (поля год, месяц, день, час, минута, секунда и доля секунды в локальном часовом поясе, независимо от того, какой конкретный часовой пояс считается локальным), аналогично SQL `TIMESTAMP WITHOUT TIME ZONE`. ClickHouse читает его так, как если бы это была метка времени в UTC. Например, `2025-09-29 18:42:13.000` (представляющее показания локальных настенных часов) становится `2025-09-29 18:42:13.000` (`DateTime64(3, 'UTC')`, представляя точку во времени). При преобразовании к String выводятся корректные год, месяц, день, час, минута, секунда и доля секунды, которые затем могут интерпретироваться как относящиеся к какому-либо локальному часовому поясу, а не к UTC. Противоинтуитивно, смена типа с `DateTime64(3, 'UTC')` на `DateTime64(3)` не поможет, так как оба типа представляют точку во времени, а не показание часов, но `DateTime64(3)` будет некорректно форматироваться с использованием локального часового пояса.
* `INTERVAL` в настоящий момент читается как `FixedString(12)` с сырым двоичным представлением временного интервала в том виде, в котором он закодирован в файле Parquet.
-
-
## Пример использования {#example-usage}
### Вставка данных {#inserting-data}
@@ -103,12 +96,13 @@ doc_type: 'reference'
└────────────┴────────┴───────────────────────┴─────────────────────┴─────────────────┴─────────────────┘
```
-Введите данные:
+Вставьте данные:
```sql
INSERT INTO football FROM INFILE 'football.parquet' FORMAT Parquet;
```
+
### Чтение данных {#reading-data}
Прочитайте данные в формате `Parquet`:
@@ -129,33 +123,30 @@ Parquet — это двоичный формат, который не отобр
## Параметры форматирования {#format-settings}
-
-
-| Настройка | Описание | По умолчанию |
-| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `input_format_parquet_case_insensitive_column_matching` | Не учитывать регистр при сопоставлении столбцов Parquet со столбцами CH. | `0` |
-| `input_format_parquet_preserve_order` | Избегайте изменения порядка строк при чтении из файлов Parquet. Обычно это значительно замедляет чтение. | `0` |
-| `input_format_parquet_filter_push_down` | При чтении файлов Parquet пропускать целые группы строк на основе выражений WHERE/PREWHERE и статистики min/max в метаданных Parquet. | `1` |
-| `input_format_parquet_bloom_filter_push_down` | При чтении файлов Parquet пропускать целые группы строк на основе выражений WHERE и фильтра Блума в метаданных файлов Parquet. | `0` |
-| `input_format_parquet_use_native_reader` | При чтении файлов в формате Parquet использовать нативный считыватель вместо считывателя Arrow. | `0` |
-| `input_format_parquet_allow_missing_columns` | Допускать отсутствующие столбцы при чтении входных форматов Parquet | `1` |
-| `input_format_parquet_local_file_min_bytes_for_seek` | Минимальное количество байт при локальном чтении файла, начиная с которого используется seek вместо чтения с пропуском (ignore) во входном формате Parquet | `8192` |
-| `input_format_parquet_enable_row_group_prefetch` | Включить предварительную выборку групп строк при разборе файлов Parquet. В настоящее время предварительную выборку может выполнять только однопоточный парсер. | `1` |
-| `input_format_parquet_skip_columns_with_unsupported_types_in_schema_inference` | Пропускать столбцы с неподдерживаемыми типами при определении схемы для формата Parquet | `0` |
-| `input_format_parquet_max_block_size` | Максимальный размер блока для читателя Parquet. | `65409` |
-| `input_format_parquet_prefer_block_bytes` | Средний размер блока в байтах, выдаваемого читателем Parquet | `16744704` |
-| `input_format_parquet_enable_json_parsing` | При чтении файлов Parquet разбирайте столбцы JSON как столбцы ClickHouse JSON Column. | `1` |
-| `output_format_parquet_row_group_size` | Целевое количество строк в группе. | `1000000` |
-| `output_format_parquet_row_group_size_bytes` | Целевой размер группы строк в байтах до сжатия. | `536870912` |
-| `output_format_parquet_string_as_string` | Используйте тип Parquet String вместо Binary для столбцов типа String. | `1` |
-| `output_format_parquet_fixed_string_as_fixed_byte_array` | Используйте тип Parquet FIXED_LEN_BYTE_ARRAY вместо Binary для столбцов FixedString. | `1` |
-| `output_format_parquet_version` | Версия формата Parquet для формата вывода. Поддерживаемые версии: 1.0, 2.4, 2.6 и 2.latest (по умолчанию) | `2.latest` |
-| `output_format_parquet_compression_method` | Метод сжатия для формата вывода Parquet. Поддерживаемые кодеки: snappy, lz4, brotli, zstd, gzip, none (без сжатия) | `zstd` |
-| `output_format_parquet_compliant_nested_types` | В схеме файла Parquet используйте имя 'element' вместо 'item' для элементов списка. Это исторический артефакт реализации библиотеки Arrow. Как правило, это повышает совместимость, за исключением, возможно, некоторых старых версий Arrow. | `1` |
-| `output_format_parquet_use_custom_encoder` | Используйте более быструю реализацию кодировщика Parquet. | `1` |
-| `output_format_parquet_parallel_encoding` | Выполнять кодирование в Parquet в нескольких потоках. Требует включённой настройки output_format_parquet_use_custom_encoder. | `1` |
-| `output_format_parquet_data_page_size` | Целевой размер страницы в байтах перед сжатием. | `1048576` |
-| `output_format_parquet_batch_size` | Проверять размер страницы каждые указанное количество строк. Рассмотрите возможность уменьшения значения, если в столбцах средний размер значений превышает несколько КБ. | `1024` |
-| `output_format_parquet_write_page_index` | Добавить возможность записывать страничный индекс в файлы Parquet. | `1` |
-| `input_format_parquet_import_nested` | Устаревший параметр, ни на что не влияет. | `0` |
-| `input_format_parquet_local_time_as_utc` | true | Определяет тип данных, используемый при выводе схемы (schema inference) для временных меток Parquet с isAdjustedToUTC=false. Если true: DateTime64(..., 'UTC'), если false: DateTime64(...). Ни один из вариантов не является полностью корректным, так как в ClickHouse нет типа данных для локального времени по настенным часам (wall-clock time). Как ни парадоксально, значение 'true', вероятно, является менее некорректным вариантом, поскольку форматирование временной метки 'UTC' как String даст представление правильного локального времени. |
+| Настройка | Описание | По умолчанию |
+| ------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `input_format_parquet_case_insensitive_column_matching` | Не учитывать регистр при сопоставлении столбцов Parquet со столбцами CH. | `0` |
+| `input_format_parquet_preserve_order` | Избегайте изменения порядка строк при чтении из файлов Parquet. Обычно это сильно замедляет чтение. | `0` |
+| `input_format_parquet_filter_push_down` | При чтении файлов Parquet пропускать целые группы строк на основе выражений WHERE/PREWHERE и статистики min/max в метаданных файлов Parquet. | `1` |
+| `input_format_parquet_bloom_filter_push_down` | При чтении файлов Parquet пропускать целые группы строк на основе выражений WHERE и фильтра Блума в метаданных Parquet. | `0` |
+| `input_format_parquet_allow_missing_columns` | Разрешать отсутствующие столбцы при чтении входных данных в формате Parquet | `1` |
+| `input_format_parquet_local_file_min_bytes_for_seek` | Минимальный объём данных в байтах при локальном чтении файла, начиная с которого используется seek вместо чтения с игнорированием (ignore) во входном формате Parquet | `8192` |
+| `input_format_parquet_enable_row_group_prefetch` | Включить предварительную выборку групп строк при разборе Parquet. В настоящее время предварительная выборка поддерживается только для однопоточного разбора. | `1` |
+| `input_format_parquet_skip_columns_with_unsupported_types_in_schema_inference` | Пропускать столбцы с неподдерживаемыми типами при определении схемы для формата Parquet | `0` |
+| `input_format_parquet_max_block_size` | Максимальный размер блока для считывателя Parquet. | `65409` |
+| `input_format_parquet_prefer_block_bytes` | Средний размер блока в байтах, выдаваемый читателем Parquet | `16744704` |
+| `input_format_parquet_enable_json_parsing` | При чтении файлов Parquet интерпретировать столбцы JSON как столбцы типа ClickHouse JSON Column. | `1` |
+| `output_format_parquet_row_group_size` | Целевое количество строк в группе. | `1000000` |
+| `output_format_parquet_row_group_size_bytes` | Целевой размер группы строк в байтах перед сжатием. | `536870912` |
+| `output_format_parquet_string_as_string` | Используйте тип Parquet String вместо Binary для столбцов типа String. | `1` |
+| `output_format_parquet_fixed_string_as_fixed_byte_array` | Используйте тип Parquet FIXED_LEN_BYTE_ARRAY вместо Binary для столбцов типа FixedString. | `1` |
+| `output_format_parquet_version` | Версия формата Parquet для выходных данных. Поддерживаемые версии: 1.0, 2.4, 2.6 и 2.latest (по умолчанию) | `2.latest` |
+| `output_format_parquet_compression_method` | Метод сжатия для формата вывода Parquet. Поддерживаемые кодеки: snappy, lz4, brotli, zstd, gzip, none (без сжатия) | `zstd` |
+| `output_format_parquet_compliant_nested_types` | В схеме файла Parquet используйте имя 'element' вместо 'item' для элементов списка. Это исторический артефакт реализации библиотеки Arrow. Как правило, повышает совместимость, за исключением, возможно, некоторых старых версий Arrow. | `1` |
+| `output_format_parquet_use_custom_encoder` | Используйте более быстрый кодировщик Parquet. | `1` |
+| `output_format_parquet_parallel_encoding` | Выполнять кодирование Parquet в нескольких потоках. Требует включения параметра output_format_parquet_use_custom_encoder. | `1` |
+| `output_format_parquet_data_page_size` | Целевой размер страницы в байтах до сжатия. | `1048576` |
+| `output_format_parquet_batch_size` | Проверять размер страницы через каждые указанное количество строк. Рассмотрите возможность уменьшения значения, если средний размер значений в столбцах превышает несколько КБ. | `1024` |
+| `output_format_parquet_write_page_index` | Добавить возможность записи индекса страниц в файлы Parquet. | `1` |
+| `input_format_parquet_import_nested` | Устаревший параметр, ничего не делает. | `0` |
+| `input_format_parquet_local_time_as_utc` | true | Определяет тип данных, используемый при определении схемы (schema inference) для временных меток Parquet с isAdjustedToUTC=false. Если true: DateTime64(..., 'UTC'), если false: DateTime64(...). Ни один из вариантов не является полностью корректным, так как в ClickHouse нет типа данных для локального времени по настенным часам (wall-clock time). Как ни парадоксально, значение 'true', вероятно, является менее некорректным вариантом, поскольку форматирование временной метки 'UTC' как String будет соответствовать правильному локальному времени. |
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Parquet/ParquetMetadata.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Parquet/ParquetMetadata.md
index abcd72138f0..2f71acebeb5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Parquet/ParquetMetadata.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Parquet/ParquetMetadata.md
@@ -6,8 +6,6 @@ title: 'ParquetMetadata'
doc_type: 'reference'
---
-
-
## Описание {#description}
Специальный формат для чтения метаданных файлов Parquet (https://parquet.apache.org/docs/file-format/metadata/). Всегда выводит одну строку со следующей структурой/содержимым:
@@ -47,8 +45,6 @@ doc_type: 'reference'
- `min` - минимальное значение в чанке столбца
- `max` - максимальное значение в чанке столбца
-
-
## Пример использования {#example-usage}
Пример:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Pretty/Pretty.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Pretty/Pretty.md
index 78a8c4448ef..157e14eb35a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Pretty/Pretty.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Pretty/Pretty.md
@@ -15,7 +15,6 @@ import PrettyFormatSettings from './_snippets/common-pretty-format-settings.md';
| ---- | ----- | --------- |
| ✗ | ✔ | |
-
## Описание {#description}
Формат `Pretty` выводит данные в виде таблиц с использованием символов Unicode,
@@ -26,8 +25,6 @@ import PrettyFormatSettings from './_snippets/common-pretty-format-settings.md';
[NULL](/sql-reference/syntax.md) выводится как `ᴺᵁᴸᴸ`.
-
-
## Пример использования {#example-usage}
Пример (для формата [`PrettyCompact`](./PrettyCompact.md)):
@@ -97,7 +94,6 @@ FORMAT PrettyCompact
└────────────┴─────────┘
```
-
## Параметры форматирования {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Pretty/PrettyNoEscapes.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Pretty/PrettyNoEscapes.md
index 4463d69f94f..ae1aac4e843 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Pretty/PrettyNoEscapes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Pretty/PrettyNoEscapes.md
@@ -15,14 +15,11 @@ import PrettyFormatSettings from './_snippets/common-pretty-format-settings.md';
| ---- | ----- | --------- |
| ✗ | ✔ | |
-
## Описание {#description}
Отличается от [Pretty](/interfaces/formats/Pretty) тем, что не используются [последовательности управляющих кодов ANSI](http://en.wikipedia.org/wiki/ANSI_escape_code).
Это необходимо для отображения этого формата в браузере, а также для использования с утилитой командной строки `watch`.
-
-
## Пример использования {#example-usage}
Пример:
@@ -35,7 +32,6 @@ $ watch -n1 "clickhouse-client --query='SELECT event, value FROM system.events F
[HTTP-интерфейс](../../../interfaces/http.md) можно использовать для отображения данного формата в браузере.
:::
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Protobuf/Protobuf.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Protobuf/Protobuf.md
index e81cb90cd69..a48c4aa07ad 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Protobuf/Protobuf.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Protobuf/Protobuf.md
@@ -94,7 +94,6 @@ Enum (так же, как Enum8 или Enum16) должен содержать
ClickHouse считывает и выводит сообщения protobuf в формате `length-delimited`.
Это означает, что перед каждым сообщением его длина должна быть записана как [целое число переменной длины (varint)](https://developers.google.com/protocol-buffers/docs/encoding#varints).
-
## Пример использования {#example-usage}
### Чтение и запись данных {#basic-examples}
@@ -119,7 +118,6 @@ message MessageType {
};
```
-
Генерация бинарного файла
@@ -249,7 +247,6 @@ ENGINE = MergeTree()
ORDER BY tuple()
```
-
Вставьте данные в таблицу из командной строки:
```bash
@@ -264,8 +261,7 @@ SELECT * FROM test.protobuf_messages INTO OUTFILE 'protobuf_message_from_clickho
Имея Protobuf-схему, вы теперь можете десериализовать данные, которые ClickHouse записал в файл `protobuf_message_from_clickhouse.bin`.
-
-### Чтение и запись данных с использованием ClickHouse Cloud
+### Чтение и запись данных с использованием ClickHouse Cloud {#basic-examples-cloud}
В ClickHouse Cloud нельзя загрузить файл схемы Protobuf. Однако вы можете использовать параметр `format_protobuf_schema`,
чтобы указать схему прямо в запросе. В этом примере показано, как читать сериализованные данные с вашей локальной
@@ -293,8 +289,7 @@ ORDER BY tuple()
* 'string': `format_schema` содержит буквальное содержимое схемы.
* 'query': `format_schema` представляет собой запрос для получения схемы.
-
-### `format_schema_source='string'`
+### `format_schema_source='string'` {#format-schema-source-string}
Чтобы вставить данные в ClickHouse Cloud, указав схему в виде строки, выполните команду:
@@ -314,8 +309,7 @@ Javier Rodriguez 20001015 ['(555) 891-2046','(555) 738-5129']
Mei Ling 19980616 ['(555) 956-1834','(555) 403-7682']
```
-
-### `format_schema_source='query'`
+### `format_schema_source='query'` {#format-schema-source-query}
Вы также можете хранить Protobuf-схему в таблице.
@@ -351,8 +345,7 @@ Javier Rodriguez 20001015 ['(555) 891-2046','(555) 738-5129']
Mei Ling 19980616 ['(555) 956-1834','(555) 403-7682']
```
-
-### Использование автоматически сгенерированной схемы
+### Использование автоматически сгенерированной схемы {#using-autogenerated-protobuf-schema}
Если у вас нет внешней Protobuf-схемы для ваших данных, вы всё равно можете выводить и считывать данные в формате Protobuf, используя автоматически сгенерированную схему. Для этого используйте настройку `format_protobuf_use_autogenerated_schema`.
@@ -381,7 +374,6 @@ SELECT * FROM test.hits format Protobuf SETTINGS format_protobuf_use_autogenerat
В этом случае автоматически сгенерированная схема Protobuf будет сохранена в файле `path/to/schema/schema.capnp`.
-
### Сброс кэша Protobuf {#basic-examples-cloud}
Чтобы перезагрузить схему Protobuf, загруженную из [`format_schema_path`](/operations/server-configuration-parameters/settings.md/#format_schema_path), используйте оператор [`SYSTEM DROP ... FORMAT CACHE`](/sql-reference/statements/system.md/#system-drop-schema-format).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Protobuf/ProtobufList.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Protobuf/ProtobufList.md
index 466f1fb3c80..c1933204314 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Protobuf/ProtobufList.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Protobuf/ProtobufList.md
@@ -17,13 +17,10 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
| ---- | ----- | ----- |
| ✔ | ✔ | |
-
## Описание {#description}
Формат `ProtobufList` похож на формат [`Protobuf`](./Protobuf.md), но строки представлены в виде последовательности подсообщений, содержащихся в сообщении с фиксированным именем «Envelope».
-
-
## Пример использования {#example-usage}
Например:
@@ -51,5 +48,4 @@ message Envelope {
};
```
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/RawBLOB.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/RawBLOB.md
index 10d1de65b9f..27d9d1ee8d5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/RawBLOB.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/RawBLOB.md
@@ -6,8 +6,6 @@ title: 'RawBLOB'
doc_type: 'reference'
---
-
-
## Описание {#description}
Формат `RawBLOB` считывает все входные данные в одно значение. Можно разобрать только таблицу с одним полем типа [`String`](/sql-reference/data-types/string.md) или аналогичного типа.
@@ -45,7 +43,6 @@ doc_type: 'reference'
Код: 108. DB::Exception: Отсутствуют данные для вставки
```
-
## Пример использования {#example-usage}
```bash title="Query"
@@ -58,5 +55,4 @@ $ clickhouse-client --query "SELECT * FROM {some_table} FORMAT RawBLOB" | md5sum
f9725a22f9191e064120d718e26862a9 -
```
-
## Параметры форматирования {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Regexp.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Regexp.md
index 41cbed34be1..843539c1ed9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Regexp.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Regexp.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|-------|--------|-------|
| ✔ | ✗ | |
-
-
## Описание {#description}
Формат `Regex` разбирает каждую строку импортируемых данных в соответствии с заданным регулярным выражением.
@@ -29,8 +27,6 @@ doc_type: 'reference'
Если регулярное выражение не соответствует строке и параметр [format_regexp_skip_unmatched](/operations/settings/settings-formats.md/#format_regexp_escaping_rule) равен 1, строка просто пропускается без ошибки. В противном случае генерируется исключение.
-
-
## Пример использования {#example-usage}
Рассмотрим файл `data.tsv`:
@@ -67,7 +63,6 @@ SELECT * FROM imp_regex_table;
└────┴─────────┴────────┴────────────┘
```
-
## Настройки формата {#format-settings}
При работе с форматом `Regexp` можно использовать следующие настройки:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/RowBinary/RowBinaryWithDefaults.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/RowBinary/RowBinaryWithDefaults.md
index 9be534dffd9..ead7634c6c8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/RowBinary/RowBinaryWithDefaults.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/RowBinary/RowBinaryWithDefaults.md
@@ -15,13 +15,10 @@ import RowBinaryFormatSettings from './_snippets/common-row-binary-format-settin
| ---- | ----- | --------- |
| ✔ | ✗ | |
-
## Описание {#description}
Аналогичен формату [`RowBinary`](./RowBinary.md), но с дополнительным байтом перед каждым столбцом, который указывает, следует ли использовать значение по умолчанию.
-
-
## Примеры использования {#example-usage}
Примеры:
@@ -39,7 +36,6 @@ SELECT * FROM FORMAT('RowBinaryWithDefaults', 'x UInt32 default 42, y UInt32', x
* Для столбца `x` есть только один байт `01`, который указывает, что должно быть использовано значение по умолчанию, и после этого байта не передаётся никаких других данных.
* Для столбца `y` данные начинаются с байта `00`, который указывает, что у столбца есть реальное значение, которое нужно прочитать из следующих данных `01000000`.
-
## Настройки формата {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/SQLInsert.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/SQLInsert.md
index a9a66917156..69a11334276 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/SQLInsert.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/SQLInsert.md
@@ -13,14 +13,10 @@ doc_type: 'reference'
|----------------|-----------------|-----------|
| ✗ | ✔ | |
-
-
## Описание {#description}
Выводит данные в виде последовательности операторов вида `INSERT INTO table (columns...) VALUES (...), (...) ...;`.
-
-
## Пример использования {#example-usage}
Пример:
@@ -39,7 +35,6 @@ INSERT INTO table (x, y, z) VALUES (8, 9, 'Привет'), (9, 10, 'Привет
Для чтения данных, выводимых этим форматом, можно использовать входной формат [MySQLDump](../formats/MySQLDump.md).
-
## Настройки формата {#format-settings}
| Setting | Description | Default |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TSKV.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TSKV.md
index cbb4332f4b9..ebb15732260 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TSKV.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TSKV.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|----------------|-----------------|-----------|
| ✔ | ✔ | |
-
-
## Описание {#description}
Аналогичен формату [`TabSeparated`](./TabSeparated.md), но выводит значение в формате `name=value`.
@@ -58,7 +56,6 @@ x=1 y=\N
[NULL](/sql-reference/syntax.md) форматируется как `\N`.
-
## Пример использования {#example-usage}
### Вставка данных {#inserting-data}
@@ -103,7 +100,6 @@ FORMAT TSKV
Результат будет в табличном формате с разделителем табуляцией и двумя строками заголовков для названий столбцов и их типов:
-
```tsv
date=2022-04-30 season=2021 home_team=Sutton United away_team=Bradford City home_team_goals=1 away_team_goals=4
date=2022-04-30 season=2021 home_team=Swindon Town away_team=Barrow home_team_goals=2 away_team_goals=1
@@ -124,5 +120,4 @@ date=2022-05-07 season=2021 home_team=Stevenage Borough away_team=Salfor
date=2022-05-07 season=2021 home_team=Walsall away_team=Swindon Town home_team_goals=0 away_team_goals=3
```
-
## Настройки форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparated.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparated.md
index 51c9261eb3b..6cdfb7004b9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparated.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparated.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|-------|--------|--------|
| ✔ | ✔ | `TSV` |
-
-
## Описание {#description}
В формате TabSeparated данные записываются построчно. Каждая строка содержит значения, разделённые символами табуляции. После каждого значения следует символ табуляции, за исключением последнего значения в строке, за которым следует символ перевода строки. Везде предполагается использование перевода строки в формате Unix. Последняя строка также должна заканчиваться переводом строки. Значения записываются в текстовом формате, без заключения в кавычки и с экранированием специальных символов.
@@ -42,7 +40,6 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
2014-03-23 1406958
```
-
## Форматирование данных {#tabseparated-data-formatting}
Целые числа записываются в десятичной форме. Числа могут содержать дополнительный символ "+" в начале (он игнорируется при разборе и не записывается при форматировании). Неотрицательные числа не могут содержать знак минус. При чтении допускается интерпретировать пустую строку как ноль или (для знаковых типов) строку, состоящую только из знака минус, как ноль. Числа, которые не помещаются в соответствующий тип данных, могут быть разобраны как другое число, без сообщения об ошибке.
@@ -108,7 +105,6 @@ SELECT * FROM nestedt FORMAT TSV
1 [1] ['a']
```
-
## Пример использования {#example-usage}
### Вставка данных {#inserting-data}
@@ -173,7 +169,6 @@ FORMAT TabSeparated
2022-05-07 2021 Walsall Swindon Town 0 3
```
-
## Настройки формата {#format-settings}
| Setting | Description | Default |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRaw.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRaw.md
index c921daf384d..b6c220e136a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRaw.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRaw.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|----------------|-----------------|-----------------|
| ✔ | ✔ | `TSVRaw`, `Raw` |
-
-
## Описание {#description}
Отличается от формата [`TabSeparated`](/interfaces/formats/TabSeparated) тем, что строки записываются без экранирования.
@@ -25,8 +23,6 @@ doc_type: 'reference'
Сравнение форматов `TabSeparatedRaw` и `RawBlob` см. в разделе [Сравнение форматов Raw](../RawBLOB.md/#raw-formats-comparison).
-
-
## Пример использования {#example-usage}
### Вставка данных {#inserting-data}
@@ -91,5 +87,4 @@ FORMAT TabSeparatedRaw
2022-05-07 2021 Walsall Swindon Town 0 3
```
-
## Настройки формата {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRawWithNames.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRawWithNames.md
index b8d3a48fa05..11b30a0d0b8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRawWithNames.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRawWithNames.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|------|-------|-----------------------------------|
| ✔ | ✔ | `TSVRawWithNames`, `RawWithNames` |
-
-
## Описание {#description}
Отличается от формата [`TabSeparatedWithNames`](./TabSeparatedWithNames.md) тем,
@@ -24,8 +22,6 @@ doc_type: 'reference'
При разборе данных в этом формате символы табуляции или перевода строки внутри отдельных полей не допускаются.
:::
-
-
## Пример использования {#example-usage}
### Вставка данных {#inserting-data}
@@ -92,5 +88,4 @@ date season home_team away_team home_team_goals away_team_goals
2022-05-07 2021 Walsall Swindon Town 0 3
```
-
## Параметры формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.md
index 0b66aa7b6da..bd37159849e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|------|-------|---------------------------------------------------|
| ✔ | ✔ | `TSVRawWithNamesAndNames`, `RawWithNamesAndNames` |
-
-
## Описание {#description}
Отличается от формата [`TabSeparatedWithNamesAndTypes`](./TabSeparatedWithNamesAndTypes.md)
@@ -24,8 +22,6 @@ doc_type: 'reference'
При разборе этого формата табуляция и перевод строки внутри каждого поля не допускаются.
:::
-
-
## Пример использования {#example-usage}
### Вставка данных {#inserting-data}
@@ -72,7 +68,6 @@ FORMAT TabSeparatedRawWithNamesAndTypes
Вывод будет в формате с разделителем табуляции и двумя строками заголовка: первая содержит имена столбцов, вторая — их типы:
-
```tsv
date season home_team away_team home_team_goals away_team_goals
Date Int16 LowCardinality(String) LowCardinality(String) Int8 Int8
@@ -95,5 +90,4 @@ Date Int16 LowCardinality(String) LowCardinality(String) Int8 Int8
2022-05-07 2021 Walsall Swindon Town 0 3
```
-
## Параметры форматирования {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedWithNames.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedWithNames.md
index 17ad9b2e978..a70bc8aac1f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedWithNames.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedWithNames.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|-------|--------|--------------------------------|
| ✔ | ✔ | `TSVWithNames`, `RawWithNames` |
-
-
## Описание {#description}
Отличается от формата [`TabSeparated`](./TabSeparated.md) тем, что имена столбцов записаны в первой строке.
@@ -27,8 +25,6 @@ doc_type: 'reference'
В противном случае первая строка будет пропущена.
:::
-
-
## Пример использования {#example-usage}
### Вставка данных {#inserting-data}
@@ -95,5 +91,4 @@ date season home_team away_team home_team_goals away_team_goals
2022-05-07 2021 Walsall Swindon Town 0 3
```
-
## Настройки формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedWithNamesAndTypes.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedWithNamesAndTypes.md
index 31bb1ad9a45..d42242bf616 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedWithNamesAndTypes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/TabSeparated/TabSeparatedWithNamesAndTypes.md
@@ -10,8 +10,6 @@ doc_type: 'reference'
|----------------|-----------------|-----------------------------------------------|
| ✔ | ✔ | `TSVWithNamesAndTypes`, `RawWithNamesAndTypes` |
-
-
## Описание {#description}
Отличается от формата [`TabSeparated`](./TabSeparated.md) тем, что имена столбцов записываются в первую строку, а типы столбцов — во вторую.
@@ -24,8 +22,6 @@ doc_type: 'reference'
типы из входных данных будут сравниваться с типами соответствующих столбцов таблицы. В противном случае вторая строка будет пропущена.
:::
-
-
## Пример использования {#example-usage}
### Вставка данных {#inserting-data}
@@ -72,7 +68,6 @@ FORMAT TabSeparatedWithNamesAndTypes
Вывод будет в формате с разделителями табуляции и двумя строками заголовков для имен столбцов и их типов:
-
```tsv
date season home_team away_team home_team_goals away_team_goals
Date Int16 LowCardinality(String) LowCardinality(String) Int8 Int8
@@ -95,5 +90,4 @@ Date Int16 LowCardinality(String) LowCardinality(String) Int8 Int8
2022-05-07 2021 Walsall Swindon Town 0 3
```
-
## Параметры формата {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Template/Template.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Template/Template.md
index 912a34bfe14..db3ef812686 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Template/Template.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Template/Template.md
@@ -13,8 +13,6 @@ doc_type: 'guide'
|-------|--------|-------|
| ✔ | ✔ | |
-
-
## Описание {#description}
В случаях, когда вам требуется больше возможностей для настройки, чем предоставляют другие стандартные форматы,
@@ -32,8 +30,6 @@ doc_type: 'guide'
| `format_template_resultset_format` | Указывает строку формата для набора результатов [во встроенной спецификации](#inline_specification). |
| Некоторые настройки других форматов (например, `output_format_json_quote_64bit_integers` при использовании экранирования `JSON` | |
-
-
## Настройки и правила экранирования {#settings-and-escaping-rules}
### format_template_row {#format_template_row}
@@ -115,7 +111,6 @@ doc_type: 'guide'
Если параметр `format_template_resultset` является пустой строкой, по умолчанию используется `${data}`.
:::
-
Для запросов INSERT формат позволяет пропускать некоторые столбцы или поля, если задан префикс или суффикс (см. пример).
### Встроенная спецификация {#inline_specification}
@@ -133,8 +128,6 @@ doc_type: 'guide'
- [`format_template_resultset`](#format_template_resultset) при использовании `format_template_resultset_format`.
:::
-
-
## Пример использования {#example-usage}
Рассмотрим два примера того, как можно использовать формат `Template`: сначала для выборки данных, а затем для вставки данных.
@@ -218,7 +211,6 @@ FORMAT Template
Устали вручную форматировать таблицы Markdown? В этом примере мы рассмотрим, как можно использовать формат `Template` и настройки встроенной спецификации, чтобы решить простую задачу — выполнить `SELECT` по именам некоторых форматов ClickHouse из таблицы `system.formats` и отформатировать их как таблицу в формате Markdown. Это можно легко сделать, используя формат `Template` и настройки `format_template_row_format` и `format_template_resultset_format`.
-
В предыдущих примерах мы указывали строки шаблонов для результирующего набора и строк в отдельных файлах, а пути к этим файлам задавали с помощью настроек `format_template_resultset` и `format_template_row` соответственно. Здесь мы сделаем это прямо в запросе, потому что наш шаблон тривиален и состоит лишь из нескольких символов `|` и `-` для создания таблицы в формате Markdown. Шаблонную строку для результирующего набора мы зададим с помощью настройки `format_template_resultset_format`. Чтобы сделать заголовок таблицы, мы добавили `|ClickHouse Formats|\n|---|\n` перед `${data}`. Настройку `format_template_row_format` мы используем, чтобы задать шаблонную строку ``|`{0:XML}`|`` для наших строк. Формат `Template` вставит наши строки с заданным форматом в плейсхолдер `${data}`. В этом примере у нас только один столбец, но при необходимости вы можете добавить больше, добавив `{1:XML}`, `{2:XML}` и т. д. в шаблон строки, выбирая правило экранирования по необходимости. В этом примере мы используем правило экранирования `XML`.
```sql title="Query"
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Template/TemplateIgnoreSpaces.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Template/TemplateIgnoreSpaces.md
index 0193294a52d..cc0934adf48 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Template/TemplateIgnoreSpaces.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Template/TemplateIgnoreSpaces.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|-------|--------|-------|
| ✔ | ✗ | |
-
-
## Описание {#description}
Аналогично формату [`Template`], но пропускает пробельные символы между разделителями и значениями во входном потоке.
@@ -27,8 +25,6 @@ doc_type: 'reference'
Этот формат предназначен только для ввода.
:::
-
-
## Пример использования {#example-usage}
Следующий запрос можно использовать для вставки данных из приведённого выше примера вывода в формате [JSON](/interfaces/formats/JSON):
@@ -50,5 +46,4 @@ FORMAT TemplateIgnoreSpaces
{${}"SearchPhrase"${}:${}${phrase:JSON}${},${}"c"${}:${}${cnt:JSON}${}}
```
-
## Параметры форматирования {#format-settings}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Vertical.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Vertical.md
index 9af798e26ee..d48adc43d34 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Vertical.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/Vertical.md
@@ -13,16 +13,12 @@ doc_type: 'reference'
|-------|--------|-------|
| ✗ | ✔ | |
-
-
## Описание {#description}
Выводит каждое значение на отдельной строке с указанием имени столбца. Этот формат удобен для вывода одной или нескольких строк, если каждая строка содержит большое количество столбцов.
Обратите внимание, что [`NULL`](/sql-reference/syntax.md) выводится как `ᴺᵁᴸᴸ`, чтобы было проще отличать строковое значение `NULL` от отсутствия значения. Столбцы JSON выводятся в удобочитаемом формате, а `NULL` выводится как `null`, поскольку это корректное значение JSON и его легко отличить от `"null"`.
-
-
## Пример использования {#example-usage}
Пример:
@@ -53,5 +49,4 @@ test: строка с «кавычками» и с особыми
Этот формат подходит только для вывода результата запроса, но не для разбора (извлечения данных для вставки в таблицу).
-
## Параметры форматирования {#format-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/XML.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/XML.md
index 5e104b99bf4..4817f4acb6c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/XML.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/formats/XML.md
@@ -13,8 +13,6 @@ doc_type: 'reference'
|-------|--------|-------|
| ✗ | ✔ | |
-
-
## Описание {#description}
Формат `XML` предназначен только для вывода и не подходит для парсинга.
@@ -26,8 +24,6 @@ doc_type: 'reference'
Массивы выводятся как `HelloWorld...`, а кортежи — как `HelloWorld...`.
-
-
## Пример использования {#example-usage}
Пример:
@@ -94,9 +90,6 @@ doc_type: 'reference'
```
-
## Параметры форматирования {#format-settings}
-
-
## XML {#xml}
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/grpc.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/grpc.md
index 3ab5c3dd57c..af1745710d6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/grpc.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/grpc.md
@@ -7,12 +7,8 @@ title: 'Интерфейс gRPC'
doc_type: 'reference'
---
-
-
# Интерфейс gRPC {#grpc-interface}
-
-
## Введение {#grpc-interface-introduction}
ClickHouse поддерживает интерфейс [gRPC](https://grpc.io/). Это система удалённого вызова процедур с открытым исходным кодом, использующая HTTP/2 и [Protocol Buffers](https://en.wikipedia.org/wiki/Protocol_Buffers). Реализация gRPC в ClickHouse поддерживает:
@@ -28,8 +24,6 @@ ClickHouse поддерживает интерфейс [gRPC](https://grpc.io/).
Спецификация интерфейса приведена в файле [clickhouse_grpc.proto](https://github.com/ClickHouse/ClickHouse/blob/master/src/Server/grpc_protos/clickhouse_grpc.proto).
-
-
## Настройка gRPC {#grpc-interface-configuration}
Чтобы использовать интерфейс gRPC, задайте `grpc_port` в основном [конфигурационном файле сервера](../operations/configuration-files.md). Дополнительные параметры конфигурации приведены в следующем примере:
@@ -66,7 +60,6 @@ ClickHouse поддерживает интерфейс [gRPC](https://grpc.io/).
```
-
## Встроенный клиент {#grpc-client}
Вы можете написать клиент на любом из языков программирования, поддерживаемых gRPC, используя предоставленную [спецификацию](https://github.com/ClickHouse/ClickHouse/blob/master/src/Server/grpc_protos/clickhouse_grpc.proto).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/http.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/http.md
index 33fe0476d49..f29bb869432 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/http.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/http.md
@@ -10,19 +10,14 @@ doc_type: 'reference'
import PlayUI from '@site/static/images/play.png';
import Image from '@theme/IdealImage';
-
# HTTP-интерфейс {#http-interface}
-
-
## Предварительные требования {#prerequisites}
Для примеров в этой статье вам понадобится:
- запущенный сервер ClickHouse
- установленный `curl`. В Ubuntu или Debian выполните `sudo apt install curl` или обратитесь к этой [документации](https://curl.se/download.html) за инструкциями по установке.
-
-
## Обзор {#overview}
HTTP-интерфейс позволяет использовать ClickHouse на любой платформе и с любого языка программирования в виде REST API. HTTP-интерфейс более ограничен, чем нативный интерфейс, но обладает лучшей поддержкой языков.
@@ -43,7 +38,6 @@ Ok.
См. также: [Особенности кодов ответа HTTP](#http_response_codes_caveats).
-
## Веб-интерфейс пользователя {#web-ui}
ClickHouse включает веб-интерфейс пользователя, доступ к которому можно получить по следующему адресу:
@@ -70,7 +64,6 @@ $ curl 'http://localhost:8123/replicas_status'
Ok.
```
-
## Выполнение запросов по HTTP/HTTPS {#querying}
Для выполнения запросов по HTTP/HTTPS есть три варианта:
@@ -164,7 +157,6 @@ ECT 1
wget -nv -O- 'http://localhost:8123/?query=SELECT 1, 2, 3 FORMAT JSON'
```
-
```response title="Response"
{
"meta":
@@ -222,7 +214,6 @@ $ curl -X POST -F 'query=select {p1:UInt8} + {p2:UInt8}' -F "param_p1=3" -F "par
7
```
-
## Запросы INSERT по HTTP/HTTPS {#insert-queries}
Метод передачи данных `POST` используется для запросов `INSERT`. В этом случае вы можете указать начало запроса в параметре URL и использовать POST для передачи данных, которые нужно вставить. Вставляемыми данными может быть, например, дамп из MySQL в формате с разделителями табуляции. Таким образом, запрос `INSERT` заменяет `LOAD DATA LOCAL INFILE` из MySQL.
@@ -289,7 +280,6 @@ $ echo 'DROP TABLE t' | curl 'http://localhost:8123/' --data-binary @-
Для успешных запросов, не возвращающих таблицу данных, возвращается пустое тело ответа.
-
## Сжатие {#compression}
Сжатие можно использовать для уменьшения объема сетевого трафика при передаче больших объемов данных или для создания дампов, которые сразу сохраняются в сжатом виде.
@@ -321,8 +311,6 @@ $ echo 'DROP TABLE t' | curl 'http://localhost:8123/' --data-binary @-
Некоторые HTTP-клиенты могут по умолчанию распаковывать данные от сервера (для `gzip` и `deflate`), и вы можете получить уже распакованные данные, даже если правильно используете настройки сжатия.
:::
-
-
## Примеры {#examples-compression}
Чтобы отправить сжатые данные на сервер:
@@ -354,7 +342,6 @@ curl -sS "http://localhost:8123/?enable_http_compression=1" \
2
```
-
## База данных по умолчанию {#default-database}
Вы можете использовать параметр `database` в URL или заголовок `X-ClickHouse-Database`, чтобы указать базу данных по умолчанию.
@@ -375,7 +362,6 @@ echo 'SELECT number FROM numbers LIMIT 10' | curl 'http://localhost:8123/?databa
По умолчанию в качестве базы данных по умолчанию используется та, которая указана в настройках сервера. Изначально это база данных с именем `default`. При необходимости вы всегда можете указать базу данных, добавив её имя и точку перед именем таблицы.
-
## Аутентификация {#authentication}
Имя пользователя и пароль можно указать одним из трёх способов:
@@ -436,7 +422,6 @@ $ echo 'SELECT number FROM system.numbers LIMIT 10' | curl 'http://localhost:812
* [Settings](/operations/settings/settings)
* [SET](/sql-reference/statements/set)
-
## Использование сессий ClickHouse в протоколе HTTP {#using-clickhouse-sessions-in-the-http-protocol}
Вы также можете использовать сессии ClickHouse в протоколе HTTP. Для этого необходимо добавить к запросу `GET`-параметр `session_id`. В качестве идентификатора сессии можно использовать любую строку.
@@ -478,7 +463,6 @@ X-ClickHouse-Progress: {"read_rows":"1000000","read_bytes":"8000000","total_rows
HTTP‑интерфейс позволяет передавать внешние данные (внешние временные таблицы) для выполнения запросов. Дополнительные сведения см. в разделе [«External data for query processing»](/engines/table-engines/special/external-data).
-
## Буферизация ответа {#response-buffering}
Буферизацию ответа можно включить на стороне сервера. Для этого предусмотрены следующие параметры URL:
@@ -505,7 +489,6 @@ curl -sS 'http://localhost:8123/?max_result_bytes=4000000&buffer_size=3000000&wa
Используйте буферизацию, чтобы избежать ситуаций, когда ошибка обработки запроса возникает после того, как код ответа и HTTP-заголовки уже были отправлены клиенту. В таком случае сообщение об ошибке записывается в конце тела ответа, и на стороне клиента ошибка может быть обнаружена только при разборе ответа.
:::
-
## Установка роли с помощью параметров запроса {#setting-role-with-query-parameters}
Эта возможность была добавлена в ClickHouse 24.4.
@@ -538,7 +521,6 @@ curl -sS "http://localhost:8123?role=my_role&role=my_other_role" --data-binary "
В этом случае `?role=my_role&role=my_other_role` работает аналогично выполнению `SET ROLE my_role, my_other_role` перед выполнением запроса.
-
## Особенности кодов ответа HTTP {#http_response_codes_caveats}
Из-за ограничений протокола HTTP код ответа 200 не гарантирует, что запрос был успешно выполнен.
@@ -624,7 +606,6 @@ $ curl -v -Ss "http://localhost:8123/?max_block_size=1&query=select+sleepEachRow
0,0
```
-
**исключение**
rumfyutuqkncbgau
Код: 395. DB::Exception: Значение, переданное в функцию 'throwIf', является ненулевым: при выполнении выражения 'FUNCTION throwIf(equals(__table1.number, 2_UInt8) :: 1) -> throwIf(equals(__table1.number, 2_UInt8)) UInt8 : 0'. (FUNCTION_THROW_IF_VALUE_IS_NON_ZERO) (версия 25.11.1.1)
@@ -634,7 +615,6 @@ rumfyutuqkncbgau
```
```
-
## Запросы с параметрами {#cli-queries-with-parameters}
Вы можете создать запрос с параметрами и передавать им значения из соответствующих параметров HTTP-запроса. Для получения дополнительной информации см. раздел [Запросы с параметрами для CLI](../interfaces/cli.md#cli-queries-with-parameters).
@@ -674,7 +654,6 @@ curl -sS "http://localhost:8123?param_arg1=abc%5C%09123" -d "SELECT splitByChar(
['abc','123']
```
-
## Предопределённый HTTP-интерфейс {#predefined_http_interface}
ClickHouse поддерживает выполнение специальных запросов через HTTP-интерфейс. Например, вы можете записать данные в таблицу следующим образом:
@@ -706,7 +685,6 @@ ClickHouse также поддерживает предопределённый
Теперь вы можете получать данные в формате Prometheus, обращаясь непосредственно по URL:
-
```bash
$ curl -v 'http://localhost:8123/predefined_query'
* Trying ::1...
@@ -733,25 +711,18 @@ $ curl -v 'http://localhost:8123/predefined_query'
"Query" 1
```
-
# HELP "Merge" "Количество выполняемых фоновых слияний" {#help-merge-number-of-executing-background-merges}
# TYPE "Merge" counter {#type-merge-counter}
"Merge" 0
-
-
# HELP "PartMutation" "Количество мутаций (ALTER DELETE/UPDATE)" {#help-partmutation-number-of-mutations-alter-deleteupdate}
# TYPE "PartMutation" counter {#type-partmutation-counter}
"PartMutation" 0
-
-
# HELP "ReplicatedFetch" "Количество частей данных, получаемых из реплики" {#help-replicatedfetch-number-of-data-parts-being-fetched-from-replica}
# TYPE "ReplicatedFetch" counter {#type-replicatedfetch-counter}
"ReplicatedFetch" 0
-
-
# HELP "ReplicatedSend" "Количество частей данных, отправляемых на реплики" {#help-replicatedsend-number-of-data-parts-being-sent-to-replicas}
# TYPE "ReplicatedSend" counter {#type-replicatedsend-counter}
@@ -828,7 +799,6 @@ $ curl -v 'http://localhost:8123/predefined_query'
Например:
```
-
```yaml
@@ -920,7 +890,6 @@ max_final_threads 2
`http_response_headers` можно использовать для указания типа контента вместо `content_type`.
-
```yaml
@@ -1008,7 +977,6 @@ $ curl -v -H 'XXX:xxx' 'http://localhost:8123/get_config_static_handler'
Чтобы найти содержимое файла, отправленного клиенту:
-
```yaml
@@ -1105,7 +1073,6 @@ $ curl -vv -H 'XXX:xxx' 'http://localhost:8123/get_relative_path_static_handler'
```
-
## HTTP заголовки ответа {#http-response-headers}
ClickHouse позволяет настраивать пользовательские HTTP-заголовки ответа, которые могут применяться к любому настраиваемому обработчику. Эти заголовки можно задать с помощью настройки `http_response_headers`, которая принимает пары ключ-значение, представляющие имена заголовков и их значения. Эта возможность особенно полезна для реализации пользовательских заголовков безопасности, политик CORS или любых других требований к HTTP-заголовкам для всего HTTP-интерфейса ClickHouse.
@@ -1142,7 +1109,6 @@ ClickHouse позволяет настраивать пользовательс
```
-
## Корректный JSON/XML-ответ при исключении во время HTTP‑стриминга {#valid-output-on-exception-http-streaming}
Во время выполнения запроса по HTTP может произойти исключение, когда часть данных уже была отправлена. Обычно исключение отправляется клиенту в виде обычного текста.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/mysql.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/mysql.md
index 32a5be2c707..c599c95edd8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/mysql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/mysql.md
@@ -14,7 +14,6 @@ import mysql1 from '@site/static/images/interfaces/mysql1.png';
import mysql2 from '@site/static/images/interfaces/mysql2.png';
import mysql3 from '@site/static/images/interfaces/mysql3.png';
-
# Интерфейс MySQL {#mysql-interface}
ClickHouse поддерживает сетевой протокол MySQL (MySQL wire protocol). Это позволяет отдельным клиентам, у которых нет нативных коннекторов для ClickHouse, использовать вместо них протокол MySQL. Работа была проверена со следующими BI-инструментами:
@@ -37,8 +36,6 @@ ClickHouse поддерживает сетевой протокол MySQL (MySQL
Эту настройку нельзя отключить, и в редких пограничных случаях она может приводить к отличиям в поведении между запросами, отправленными в обычный интерфейс запросов ClickHouse и интерфейс запросов MySQL.
::::
-
-
## Включение интерфейса MySQL в ClickHouse Cloud {#enabling-the-mysql-interface-on-clickhouse-cloud}
1. После создания сервиса ClickHouse Cloud нажмите кнопку `Connect`.
@@ -63,8 +60,6 @@ ClickHouse поддерживает сетевой протокол MySQL (MySQL
-
-
## Создание нескольких пользователей MySQL в ClickHouse Cloud {#creating-multiple-mysql-users-in-clickhouse-cloud}
По умолчанию существует встроенный пользователь `mysql4`, который использует тот же пароль, что и пользователь `default`. Часть `` — это первый сегмент имени хоста вашего ClickHouse Cloud. Такой формат необходим для работы с инструментами, которые реализуют безопасное подключение, но не передают [SNI-информацию в своем TLS-рукопожатии](https://www.cloudflare.com/learning/ssl/what-is-sni), из-за чего невозможно выполнить внутреннюю маршрутизацию без дополнительной подсказки в имени пользователя (консольный клиент MySQL является одним из таких инструментов).
@@ -117,7 +112,6 @@ ERROR 2013 (HY000): Потеряно соединение с сервером My
В этом случае убедитесь, что имя пользователя имеет формат `mysql4_`, как описано ([выше](#creating-multiple-mysql-users-in-clickhouse-cloud)).
-
## Включение интерфейса MySQL в самостоятельно управляемом ClickHouse {#enabling-the-mysql-interface-on-self-managed-clickhouse}
Добавьте параметр [mysql_port](../operations/server-configuration-parameters/settings.md#mysql_port) в файл конфигурации сервера. Например, вы можете указать порт в новом XML-файле в папке `config.d/` [folder](../operations/configuration-files):
@@ -134,7 +128,6 @@ ERROR 2013 (HY000): Потеряно соединение с сервером My
{} Application: Прослушивается протокол совместимости MySQL: 127.0.0.1:9004
```
-
## Подключение MySQL к ClickHouse {#connect-mysql-to-clickhouse}
Следующая команда демонстрирует, как подключить клиент MySQL `mysql` к ClickHouse:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/schema-inference.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/schema-inference.md
index 4a059e5217e..8f1305920a6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/schema-inference.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/schema-inference.md
@@ -10,14 +10,10 @@ ClickHouse может автоматически определять струк
В этом документе описано, когда используется автоматическое определение схемы, как оно работает с различными входными форматами и какие настройки
его контролируют.
-
-
## Использование {#usage}
Автоматическое определение схемы используется, когда ClickHouse должен прочитать данные в определённом формате, но их структура неизвестна.
-
-
## Табличные функции [file](../sql-reference/table-functions/file.md), [s3](../sql-reference/table-functions/s3.md), [url](../sql-reference/table-functions/url.md), [hdfs](../sql-reference/table-functions/hdfs.md), [azureBlobStorage](../sql-reference/table-functions/azureBlobStorage.md). {#table-functions-file-s3-url-hdfs-azureblobstorage}
Эти табличные функции имеют необязательный аргумент `structure`, задающий структуру входных данных. Если этот аргумент не указан или имеет значение `auto`, структура будет выведена из данных.
@@ -65,7 +61,6 @@ DESCRIBE file('hobbies.jsonl')
└─────────┴─────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
## Движки таблиц [File](../engines/table-engines/special/file.md), [S3](../engines/table-engines/integrations/s3.md), [URL](../engines/table-engines/special/url.md), [HDFS](../engines/table-engines/integrations/hdfs.md), [azureBlobStorage](../engines/table-engines/integrations/azureBlobStorage.md) {#table-engines-file-s3-url-hdfs-azureblobstorage}
Если в запросе `CREATE TABLE` не указан список столбцов, структура таблицы будет автоматически определена по данным.
@@ -108,7 +103,6 @@ DESCRIBE TABLE hobbies
└─────────┴─────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
## clickhouse-local {#clickhouse-local}
У `clickhouse-local` есть необязательный параметр `-S/--structure`, задающий структуру входных данных. Если этот параметр не указан или имеет значение `auto`, структура будет определена по данным.
@@ -139,7 +133,6 @@ clickhouse-local --file='hobbies.jsonl' --table='hobbies' --query='SELECT * FROM
4 47 Brayan ['movies','skydiving']
```
-
## Использование структуры из таблицы-вставки {#using-structure-from-insertion-table}
Когда табличные функции `file/s3/url/hdfs` используются для вставки данных в таблицу,
@@ -248,7 +241,6 @@ INSERT INTO hobbies4 SELECT id, empty(hobbies) ? NULL : hobbies[1] FROM file(hob
В этом случае в запросе `SELECT` выполняются некоторые операции со столбцом `hobbies` перед его вставкой в таблицу, поэтому ClickHouse не может использовать структуру целевой таблицы и будет использовано автоматическое определение схемы.
-
## Кэш автоопределения схемы {#schema-inference-cache}
Для большинства форматов ввода автоопределение схемы читает часть данных, чтобы определить их структуру, и этот процесс может занять некоторое время.
@@ -271,8 +263,6 @@ INSERT INTO hobbies4 SELECT id, empty(hobbies) ? NULL : hobbies[1] FROM file(hob
Попробуем определить структуру примерного набора данных из S3 `github-2022.ndjson.gz` и посмотрим, как работает кэш автоопределения схемы:
-
-
```sql
DESCRIBE TABLE s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/github/github-2022.ndjson.gz')
```
@@ -416,7 +406,6 @@ SELECT count() FROM system.schema_inference_cache WHERE storage='S3'
└─────────┘
```
-
## Текстовые форматы {#text-formats}
Для текстовых форматов ClickHouse читает данные построчно, извлекает значения столбцов в соответствии с форматом,
@@ -488,7 +477,6 @@ DESC format(JSONEachRow, '{"arr" : [null, 42, null]}')
└──────┴────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
Если массив содержит значения разных типов и параметр `input_format_json_infer_array_of_dynamic_from_array_of_different_types` включён (по умолчанию он включён), то его тип будет `Array(Dynamic)`:
```sql
@@ -555,7 +543,6 @@ Map:
В JSON можно читать объекты, значения которых имеют один и тот же тип, как значения типа Map.
Примечание: это будет работать только в том случае, если настройки `input_format_json_read_objects_as_strings` и `input_format_json_try_infer_named_tuples_from_objects` отключены.
-
```sql
SET input_format_json_read_objects_as_strings = 0, input_format_json_try_infer_named_tuples_from_objects = 0;
DESC format(JSONEachRow, '{"map" : {"key1" : 42, "key2" : 24, "key3" : 4}}')
@@ -642,7 +629,6 @@ DESC format(JSONEachRow, '{"obj" : {"a" : 42, "b" : "Hello"}}, {"obj" : {"a" : 4
Результат:
-
```response
┌─name─┬─type───────────────────────────────────────────────────────────────────────────────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ obj │ Tuple(a Nullable(Int64), b Nullable(String), c Array(Nullable(Int64)), d Tuple(e Nullable(Int64))) │ │ │ │ │ │
@@ -717,7 +703,6 @@ SELECT * FROM format(JSONEachRow, '{"obj" : {"a" : 42}}, {"obj" : {"a" : {"b" :
Примечание: включение этой настройки будет иметь эффект только в том случае, если настройка `input_format_json_try_infer_named_tuples_from_objects` отключена.
-
```sql
SET input_format_json_read_objects_as_strings = 1, input_format_json_try_infer_named_tuples_from_objects = 0;
DESC format(JSONEachRow, $$
@@ -819,7 +804,6 @@ SELECT arr, toTypeName(arr), JSONExtractArrayRaw(arr)[3] from format(JSONEachRow
##### input_format_json_infer_incomplete_types_as_strings {#input_format_json_infer_incomplete_types_as_strings}
-
Включение этого параметра позволяет использовать тип данных String для JSON-ключей, которые в выборке данных при определении схемы содержат только `Null`/`{}`/`[]`.
В JSON-форматах любое значение может быть считано как String, если включены все соответствующие настройки (по умолчанию они включены), и мы можем избежать ошибок вида `Cannot determine type for column 'column_name' by first 25000 rows of data, most likely this column contains only Nulls or empty Arrays/Maps` при определении схемы, используя тип String для ключей с неизвестными типами.
@@ -886,7 +870,6 @@ DESC format(CSV, 'Hello world!,World hello!')
Date и DateTime:
-
```sql
DESC format(CSV, '"2020-01-01","2020-01-01 00:00:00","2022-01-01 00:00:00.000"')
```
@@ -959,7 +942,6 @@ DESC format(CSV, $$"[{'key1' : [[42, 42], []], 'key2' : [[null], [42]]}]"$$)
└──────┴───────────────────────────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
Если ClickHouse не может определить тип значения в кавычках, потому что данные содержат только значения NULL, он будет интерпретировать его как String:
```sql
@@ -1065,7 +1047,6 @@ DESC format(CSV, '42,42.42');
└──────┴───────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
### TSV/TSKV {#tsv-tskv}
В форматах TSV/TSKV ClickHouse извлекает значение столбца из строки в соответствии с табуляцией как разделителем, а затем разбирает извлечённое значение с помощью
@@ -1120,7 +1101,6 @@ DESC format(TSV, '2020-01-01 2020-01-01 00:00:00 2022-01-01 00:00:00.000')
└──────┴─────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
Массивы:
```sql
@@ -1193,7 +1173,6 @@ DESC format(TSV, $$[{'key1' : [(42, 'Hello'), (24, NULL)], 'key2' : [(NULL, ',')
└──────┴─────────────────────────────────────────────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
Если ClickHouse не может определить тип данных, потому что данные состоят только из значений NULL, он будет интерпретировать их как String:
```sql
@@ -1283,7 +1262,6 @@ $$)
**Примеры:**
-
Целые числа, вещественные числа, логические значения, строки:
```sql
@@ -1362,7 +1340,6 @@ DESC format(Values, $$({'key1' : 42, 'key2' : 24})$$)
└──────┴──────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
Вложенные массивы, кортежи и словари:
```sql
@@ -1438,7 +1415,6 @@ $$)
Пример автоопределения заголовка (когда включён `input_format_custom_detect_header`):
-
```sql
SET format_custom_row_before_delimiter = '',
format_custom_row_after_delimiter = '\n',
@@ -1520,7 +1496,6 @@ SET format_regexp = '^Line: value_1=(.+?), value_2=(.+?), value_3=(.+?)',
format_regexp_escaping_rule = 'CSV'
```
-
DESC format(Regexp, $$Line: value_1=42, value_2="Some string 1", value_3="[1, NULL, 3]"
Line: value_1=2, value_2="Some string 2", value_3="[4, 5, NULL]"$$)
@@ -1587,7 +1562,6 @@ DESC format(JSONEachRow, '{"id" : 1, "age" : 25, "name" : "Josh", "status" : nul
#### schema_inference_make_columns_nullable $ {#schema-inference-make-columns-nullable}
-
Управляет приведением выводимых типов к `Nullable` при выводе схемы для форматов без информации о nullability. Возможные значения:
* 0 — выводимый тип никогда не будет `Nullable`,
@@ -1654,7 +1628,6 @@ DESC format(JSONEachRow, $$
└─────────┴───────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
#### input_format_try_infer_integers {#input-format-try-infer-integers}
:::note
@@ -1733,7 +1706,6 @@ DESC format(JSONEachRow, $$
**Примеры**
-
```sql
SET input_format_try_infer_datetimes = 0;
DESC format(JSONEachRow, $$
@@ -1804,7 +1776,6 @@ DESC format(JSONEachRow, $$
Примечание: При разборе значений типов DateTime при выводе схемы учитывается настройка [date_time_input_format](/operations/settings/settings-formats.md#date_time_input_format)
-
#### input_format_try_infer_dates {#input-format-try-infer-dates}
Если параметр включён, ClickHouse будет пытаться определить тип `Date` из строковых полей при автоматическом определении схемы для текстовых форматов.
@@ -1879,7 +1850,6 @@ $$)
└──────┴───────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
## Самоописывающиеся форматы {#self-describing-formats}
Самоописывающиеся форматы содержат информацию о структуре данных в самих данных:
@@ -1969,7 +1939,6 @@ $$)
В формате Avro ClickHouse считывает схему из данных и преобразует её в схему ClickHouse, используя следующие соответствия типов:
-
| Тип данных Avro | Тип данных ClickHouse |
|-------------------------------------|---------------------------------------------------------------------------------|
| `boolean` | [Bool](../sql-reference/data-types/boolean.md) |
@@ -2023,8 +1992,6 @@ $$)
В формате Arrow ClickHouse считывает схему из данных и преобразует её в схему ClickHouse, используя следующие соответствия типов:
-
-
| Тип данных Arrow | Тип данных ClickHouse |
|----------------------------------|----------------------------------------------------------|
| `BOOL` | [Bool](../sql-reference/data-types/boolean.md) |
@@ -2077,8 +2044,6 @@ $$)
Формат Native используется внутри ClickHouse и содержит схему непосредственно в данных.
При определении схемы ClickHouse считывает её из данных без каких-либо преобразований.
-
-
## Форматы с внешней схемой {#formats-with-external-schema}
Такие форматы требуют наличия схемы, описывающей данные, в отдельном файле на определённом языке описания схем.
@@ -2125,8 +2090,6 @@ $$)
| `struct` | [Tuple](../sql-reference/data-types/tuple.md) |
| `union(T, Void)`, `union(Void, T)` | [Nullable(T)](../sql-reference/data-types/nullable.md) |
-
-
## Строго типизированные бинарные форматы {#strong-typed-binary-formats}
В таких форматах каждое сериализованное значение содержит информацию о своём типе (и, возможно, о своём имени), но нет информации о всей таблице.
@@ -2173,8 +2136,6 @@ $$)
По умолчанию все выведенные типы заключаются в `Nullable`, но это можно изменить с помощью настройки `schema_inference_make_columns_nullable`.
-
-
## Форматы с фиксированной схемой {#formats-with-constant-schema}
Данные в таких форматах всегда имеют одну и ту же схему.
@@ -2227,7 +2188,6 @@ DESC format(JSONAsObject, '{"x" : 42, "y" : "Hello, World!"}');
└──────┴──────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```
-
## Режимы определения схемы {#schema-inference-modes}
Определение схемы по набору файлов данных может работать в двух разных режимах: `default` и `union`.
@@ -2338,7 +2298,6 @@ DESC format(JSONAsObject, '{"x" : 42, "y" : "Hello, World!"}');
* Если ClickHouse не может определить схему по одному из файлов, будет сгенерировано исключение.
* Если у вас много файлов, чтение схемы из всех них может занять много времени.
-
## Автоматическое определение формата {#automatic-format-detection}
Если формат данных не указан и его нельзя определить по расширению файла, ClickHouse попытается определить формат файла по его содержимому.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/gui.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/gui.md
index 206e892c193..59adbe14bad 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/gui.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/gui.md
@@ -7,12 +7,8 @@ title: 'Графические интерфейсы сторонних разр
doc_type: 'reference'
---
-
-
# Визуальные интерфейсы сторонних разработчиков {#visual-interfaces-from-third-party-developers}
-
-
## Open-source {#open-source}
### agx {#agx}
@@ -117,8 +113,6 @@ doc_type: 'reference'
### LightHouse {#lighthouse}
-
-
[LightHouse](https://github.com/VKCOM/lighthouse) — это легковесный веб-интерфейс для ClickHouse.
Возможности:
@@ -201,8 +195,6 @@ doc_type: 'reference'
### MindsDB Studio {#mindsdb}
-
-
[MindsDB](https://mindsdb.com/) — это открытый AI-слой для баз данных, включая ClickHouse, который позволяет без лишних усилий разрабатывать, обучать и развертывать передовые модели машинного обучения. MindsDB Studio (GUI) позволяет обучать новые модели на данных из базы, интерпретировать предсказания модели, выявлять потенциальные смещения в данных, а также оценивать и визуализировать точность модели с помощью функции Explainable AI, чтобы быстрее адаптировать и настраивать ваши модели машинного обучения.
### DBM {#dbm}
@@ -303,8 +295,6 @@ doc_type: 'reference'
### CKibana {#ckibana}
-
-
[CKibana](https://github.com/TongchengOpenSource/ckibana) — это легковесный сервис, который позволяет легко искать, исследовать и визуализировать данные ClickHouse с использованием нативного интерфейса Kibana.
Возможности:
@@ -329,8 +319,6 @@ doc_type: 'reference'
[Исходный код Telescope](https://github.com/iamtelescope/telescope) · [Демо-версия](https://demo.iamtelescope.net)
-
-
## Коммерческие решения {#commercial}
### DataGrip {#datagrip}
@@ -412,8 +400,6 @@ SeekTable [бесплатен](https://www.seektable.com/help/cloud-pricing) д
[TABLUM.IO](https://tablum.io/) — онлайн-инструмент для запросов и аналитики, предназначенный для ETL и визуализации. Он позволяет подключаться к ClickHouse, выполнять запросы к данным через гибкую SQL-консоль, а также загружать данные из статических файлов и сторонних сервисов. TABLUM.IO может визуализировать результаты в виде графиков и таблиц.
-
-
Возможности:
- ETL: загрузка данных из популярных баз данных, локальных и удалённых файлов, вызовы API.
- Универсальная SQL-консоль с подсветкой синтаксиса и визуальным конструктором запросов.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/proxy.md b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/proxy.md
index 5bff9f19768..7168761b6df 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/proxy.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/interfaces/third-party/proxy.md
@@ -7,12 +7,8 @@ title: 'Прокси-серверы от сторонних разработчи
doc_type: 'reference'
---
-
-
# Прокси-серверы сторонних разработчиков {#proxy-servers-from-third-party-developers}
-
-
## chproxy {#chproxy}
[chproxy](https://github.com/Vertamedia/chproxy) — это HTTP‑прокси и балансировщик нагрузки для базы данных ClickHouse.
@@ -25,8 +21,6 @@ doc_type: 'reference'
Реализован на Go.
-
-
## KittenHouse {#kittenhouse}
[KittenHouse](https://github.com/VKCOM/kittenhouse) предназначен для использования в качестве локального прокси между ClickHouse и сервером приложения в тех случаях, когда буферизация данных INSERT на стороне приложения невозможна или неудобна.
@@ -39,8 +33,6 @@ doc_type: 'reference'
Реализован на Go.
-
-
## ClickHouse-Bulk {#clickhouse-bulk}
[ClickHouse-Bulk](https://github.com/nikepan/clickhouse-bulk) — это простой коллектор для вставки данных в ClickHouse.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/intro.md b/i18n/ru/docusaurus-plugin-content-docs/current/intro.md
index 69e90ec44e0..041dd5d5a30 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/intro.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/intro.md
@@ -14,7 +14,6 @@ import Image from '@theme/IdealImage';
ClickHouse® — высокопроизводительная колоночная система управления базами данных (СУБД) SQL для онлайн-аналитической обработки (OLAP). Она доступна как в виде [программного обеспечения с открытым исходным кодом](https://github.com/ClickHouse/ClickHouse), так и как [облачный сервис](https://clickhouse.com/cloud).
-
## Что такое аналитика? {#what-are-analytics}
Аналитика, также известная как OLAP (Online Analytical Processing), — это SQL‑запросы со сложными вычислениями (например, агрегациями, обработкой строк, арифметикой) по очень большим наборам данных.
@@ -23,8 +22,6 @@ ClickHouse® — высокопроизводительная колоночна
Во многих вариантах использования [аналитические запросы должны выполняться в режиме реального времени](https://clickhouse.com/engineering-resources/what-is-real-time-analytics), то есть возвращать результат за время менее одной секунды.
-
-
## Построчное и колоночное хранение данных {#row-oriented-vs-column-oriented-storage}
Такой уровень производительности достигается только при правильной «ориентации» данных.
@@ -65,51 +62,36 @@ LIMIT 8;
**Колонко-ориентированная СУБД**
-
Поскольку значения каждого столбца хранятся на диске последовательно друг за другом, при выполнении приведённого выше запроса не загружаются лишние данные.
Поскольку блочное хранение и передача данных с диска в память соответствуют характеру доступа к данным в аналитических запросах, с диска читаются только те столбцы, которые требуются для запроса, что позволяет избежать лишних операций ввода-вывода для неиспользуемых данных. Это [намного быстрее](https://benchmark.clickhouse.com/) по сравнению со строчно-ориентированным хранением, при котором считываются целые строки (включая столбцы, не относящиеся к запросу):
-
-
## Репликация данных и их целостность {#data-replication-and-integrity}
ClickHouse использует асинхронную мультимастерную схему репликации, чтобы обеспечивать избыточное хранение данных на нескольких узлах. После записи на любую доступную реплику все остальные реплики в фоновом режиме получают свою копию. Система поддерживает одинаковое состояние данных на разных репликах. Восстановление после большинства сбоев выполняется автоматически или полуавтоматически в более сложных случаях.
-
-
## Ролевое управление доступом {#role-based-access-control}
ClickHouse реализует управление учетными записями пользователей посредством SQL‑запросов и позволяет настраивать ролевое управление доступом, аналогичное описанному в стандарте ANSI SQL и реализованному в популярных системах управления реляционными базами данных.
-
-
## Поддержка SQL {#sql-support}
ClickHouse поддерживает [декларативный язык запросов, основанный на SQL](/sql-reference), который во многих случаях соответствует стандарту ANSI SQL. Поддерживаемые конструкции запросов включают [GROUP BY](/sql-reference/statements/select/group-by), [ORDER BY](/sql-reference/statements/select/order-by), подзапросы в секции [FROM](/sql-reference/statements/select/from), конструкцию [JOIN](/sql-reference/statements/select/join), оператор [IN](/sql-reference/operators/in), [оконные функции](/sql-reference/window-functions) и скалярные подзапросы.
-
-
## Приблизительный расчет {#approximate-calculation}
ClickHouse предоставляет возможности пожертвовать точностью ради производительности. Например, некоторые его агрегатные функции вычисляют приблизительное количество различных значений, медиану и квантили. Кроме того, запросы можно выполнять по выборке данных, чтобы быстро получить приблизительный результат. Наконец, агрегацию можно выполнять с ограниченным числом ключей вместо всех ключей. В зависимости от того, насколько смещено распределение ключей, это может дать достаточно точный результат при существенно меньших затратах ресурсов по сравнению с точным расчетом.
-
-
## Адаптивные алгоритмы соединения {#adaptive-join-algorithms}
ClickHouse адаптивно выбирает алгоритм соединения: он начинает с быстрых хеш‑соединений и переходит к merge‑соединениям, если в запросе участвует более одной крупной таблицы.
-
-
## Высочайшая производительность запросов {#superior-query-performance}
ClickHouse широко известен своей исключительно высокой скоростью выполнения запросов.
Чтобы узнать, почему ClickHouse такой быстрый, см. руководство [Why is ClickHouse fast?](/concepts/why-clickhouse-is-so-fast.mdx).
-
-
-
## Связанные ресурсы {#related-resources}
- [Видео о финансовых функциях в ClickHouse](https://www.youtube.com/watch?v=BePLPVa0w_o)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/geohash.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/geohash.md
index c6961a4bbf3..9511b8ff371 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/geohash.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/geohash.md
@@ -6,16 +6,12 @@ title: 'Функции для работы с Geohash'
doc_type: 'reference'
---
-
-
## Geohash {#geohash}
[Geohash](https://en.wikipedia.org/wiki/Geohash) — это система геокодирования, которая разбивает поверхность Земли на ячейки сетки и кодирует каждую ячейку в короткую строку из букв и цифр. Это иерархическая структура данных, поэтому чем длиннее строка geohhash, тем точнее будет указано географическое местоположение.
Если вам нужно вручную преобразовать географические координаты в строки geohash, вы можете использовать [geohash.org](http://geohash.co/).
-
-
## geohashEncode {#geohashencode}
Кодирует широту и долготу в строку формата [geohash](#geohash).
@@ -58,7 +54,6 @@ SELECT geohashEncode(-5.60302734375, 42.593994140625, 0) AS res;
└──────────────┘
```
-
## geohashDecode {#geohashdecode}
Декодирует любую строку, закодированную с помощью [geohash](#geohash), в значения долготы и широты.
@@ -89,7 +84,6 @@ SELECT geohashDecode('ezs42') AS res;
└─────────────────────────────────┘
```
-
## geohashesInBox {#geohashesinbox}
Возвращает массив строк, закодированных в [geohash](#geohash) с заданной точностью, которые находятся внутри заданного прямоугольника или пересекают его границы, по сути представляя собой 2D‑сетку, развёрнутую в одномерный массив.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/h3.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/h3.md
index 4bd3eb380c3..ac92107c82a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/h3.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/h3.md
@@ -6,8 +6,6 @@ title: 'Функции для работы с индексами H3'
doc_type: 'reference'
---
-
-
## Индекс H3 {#h3-index}
[H3](https://h3geo.org/) — это система географического индексирования, в которой поверхность Земли разбита на сетку равновеликих шестиугольных ячеек. Эта система иерархическая, т. е. каждый шестиугольник на верхнем уровне («родитель») может быть разделён на семь таких же, но меньших («потомки»), и так далее.
@@ -20,8 +18,6 @@ doc_type: 'reference'
Полное описание системы H3 доступно на [сайте Uber Engineering](https://www.uber.com/blog/h3/).
-
-
## h3IsValid {#h3isvalid}
Проверяет, является ли число допустимым индексом [H3](#h3-index).
@@ -57,7 +53,6 @@ SELECT h3IsValid(630814730351855103) AS h3IsValid;
└───────────┘
```
-
## h3GetResolution {#h3getresolution}
Определяет разрешение заданного индекса [H3](#h3-index).
@@ -93,7 +88,6 @@ SELECT h3GetResolution(639821929606596015) AS resolution;
└────────────┘
```
-
## h3EdgeAngle {#h3edgeangle}
Вычисляет среднюю длину ребра шестиугольной ячейки [H3](#h3-index) в градусах.
@@ -128,7 +122,6 @@ SELECT h3EdgeAngle(10) AS edgeAngle;
└───────────────────────┘
```
-
## h3EdgeLengthM {#h3edgelengthm}
Вычисляет среднюю длину ребра шестиугольной ячейки [H3](#h3-index) в метрах.
@@ -163,7 +156,6 @@ SELECT h3EdgeLengthM(15) AS edgeLengthM;
└─────────────┘
```
-
## h3EdgeLengthKm {#h3edgelengthkm}
Вычисляет среднюю длину ребра шестиугольника [H3](#h3-index) в километрах.
@@ -198,7 +190,6 @@ SELECT h3EdgeLengthKm(15) AS edgeLengthKm;
└──────────────┘
```
-
## geoToH3 {#geotoh3}
Возвращает индекс точки [H3](#h3-index) для координат `(lat, lon)` с указанным разрешением.
@@ -238,7 +229,6 @@ SELECT geoToH3(55.71290588, 37.79506683, 15) AS h3Index;
└────────────────────┘
```
-
## h3ToGeo {#h3togeo}
Возвращает широту и долготу центроида, соответствующие указанному индексу [H3](#h3-index).
@@ -275,7 +265,6 @@ SELECT h3ToGeo(644325524701193974) AS coordinates;
└───────────────────────────────────────┘
```
-
## h3ToGeoBoundary {#h3togeoboundary}
Возвращает массив пар `(lat, lon)`, соответствующих границе указанного индекса H3.
@@ -310,7 +299,6 @@ SELECT h3ToGeoBoundary(644325524701193974) AS coordinates;
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## h3kRing {#h3kring}
Перечисляет все шестиугольники [H3](#h3-index) в радиусе `k` от указанного шестиугольника в случайном порядке.
@@ -352,7 +340,6 @@ SELECT arrayJoin(h3kRing(644325529233966508, 1)) AS h3index;
└────────────────────┘
```
-
## h3PolygonToCells {#h3polygontocells}
Возвращает шестиугольники (при указанном разрешении), которые находятся внутри заданной геометрии — кольца или (мульти)полигона.
@@ -397,7 +384,6 @@ SELECT h3PolygonToCells([(-122.4089866999972145,37.813318999983238),(-122.354473
└────────────────────┘
```
-
## h3GetBaseCell {#h3getbasecell}
Возвращает номер базовой ячейки индекса [H3](#h3-index).
@@ -432,7 +418,6 @@ SELECT h3GetBaseCell(612916788725809151) AS basecell;
└──────────┘
```
-
## h3HexAreaM2 {#h3hexaream2}
Возвращает среднюю площадь шестиугольника в квадратных метрах для указанного разрешения.
@@ -467,7 +452,6 @@ SELECT h3HexAreaM2(13) AS area;
└──────┘
```
-
## h3HexAreaKm2 {#h3hexareakm2}
Возвращает среднюю площадь шестигранной ячейки в квадратных километрах для заданного разрешения.
@@ -502,7 +486,6 @@ SELECT h3HexAreaKm2(13) AS area;
└───────────┘
```
-
## h3IndexesAreNeighbors {#h3indexesareneighbors}
Возвращает, являются ли указанные индексы [H3](#h3-index) соседними.
@@ -539,7 +522,6 @@ SELECT h3IndexesAreNeighbors(617420388351344639, 617420388352655359) AS n;
└───┘
```
-
## h3ToChildren {#h3tochildren}
Возвращает массив дочерних индексов для заданного индекса [H3](#h3-index).
@@ -575,7 +557,6 @@ SELECT h3ToChildren(599405990164561919, 6) AS children;
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## h3ToParent {#h3toparent}
Возвращает родительский (более крупного уровня) индекс, содержащий заданный индекс [H3](#h3-index).
@@ -611,7 +592,6 @@ SELECT h3ToParent(599405990164561919, 3) AS parent;
└────────────────────┘
```
-
## h3ToString {#h3tostring}
Преобразует представление индекса типа `H3Index` в строковое представление.
@@ -644,7 +624,6 @@ SELECT h3ToString(617420388352917503) AS h3_string;
└─────────────────┘
```
-
## stringToH3 {#stringtoh3}
Преобразует строковое представление в представление типа `H3Index` (UInt64).
@@ -679,7 +658,6 @@ SELECT stringToH3('89184926cc3ffff') AS index;
└────────────────────┘
```
-
## h3GetResolution {#h3getresolution-1}
Возвращает уровень разрешения индекса [H3](#h3-index).
@@ -714,7 +692,6 @@ SELECT h3GetResolution(617420388352917503) AS res;
└─────┘
```
-
## h3IsResClassIII {#h3isresclassiii}
Возвращает, имеет ли индекс [H3](#h3-index) разрешение с ориентацией класса III.
@@ -750,7 +727,6 @@ SELECT h3IsResClassIII(617420388352917503) AS res;
└─────┘
```
-
## h3IsPentagon {#h3ispentagon}
Возвращает, представляет ли этот индекс [H3](#h3-index) пятиугольную ячейку.
@@ -786,7 +762,6 @@ SELECT h3IsPentagon(644721767722457330) AS pentagon;
└──────────┘
```
-
## h3GetFaces {#h3getfaces}
Возвращает грани икосаэдра, пересекаемые заданным индексом [H3](#h3-index).
@@ -821,7 +796,6 @@ SELECT h3GetFaces(599686042433355775) AS faces;
└───────┘
```
-
## h3CellAreaM2 {#h3cellaream2}
Возвращает точную площадь указанной ячейки в квадратных метрах, соответствующей заданному входному H3-индексу.
@@ -856,7 +830,6 @@ SELECT h3CellAreaM2(579205133326352383) AS area;
└────────────────────┘
```
-
## h3CellAreaRads2 {#h3cellarearads2}
Возвращает точную площадь указанной ячейки в квадратных радианах, соответствующей заданному входному H3-индексу.
@@ -891,7 +864,6 @@ SELECT h3CellAreaRads2(579205133326352383) AS area;
└─────────────────────┘
```
-
## h3ToCenterChild {#h3tocenterchild}
Возвращает центральный дочерний (более детализированный) индекс [H3](#h3-index), содержащийся в заданном индексе [H3](#h3-index) на указанном уровне разрешения.
@@ -927,7 +899,6 @@ SELECT h3ToCenterChild(577023702256844799,1) AS centerToChild;
└────────────────────┘
```
-
## h3ExactEdgeLengthM {#h3exactedgelengthm}
Возвращает точную длину однонаправленного ребра, представленного заданным индексом h3, в метрах.
@@ -962,7 +933,6 @@ SELECT h3ExactEdgeLengthM(1310277011704381439) AS exactEdgeLengthM;;
└────────────────────┘
```
-
## h3ExactEdgeLengthKm {#h3exactedgelengthkm}
Возвращает точную длину однонаправленного ребра, представленного переданным h3‑индексом, в километрах.
@@ -997,7 +967,6 @@ SELECT h3ExactEdgeLengthKm(1310277011704381439) AS exactEdgeLengthKm;;
└────────────────────┘
```
-
## h3ExactEdgeLengthRads {#h3exactedgelengthrads}
Возвращает точную длину однонаправленного ребра, заданного входным h3-индексом, в радианах.
@@ -1032,7 +1001,6 @@ SELECT h3ExactEdgeLengthRads(1310277011704381439) AS exactEdgeLengthRads;;
└──────────────────────┘
```
-
## h3NumHexagons {#h3numhexagons}
Возвращает количество уникальных индексов H3 при заданном разрешении.
@@ -1067,7 +1035,6 @@ SELECT h3NumHexagons(3) AS numHexagons;
└─────────────┘
```
-
## h3PointDistM {#h3pointdistm}
Возвращает расстояние по дуге большого круга («great circle») или по формуле гаверсинуса («haversine») между парами точек GeoCoord (широта/долгота) в метрах.
@@ -1103,7 +1070,6 @@ SELECT h3PointDistM(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistM;
└───────────────────┘
```
-
## h3PointDistKm {#h3pointdistkm}
Возвращает расстояние по дуге большого круга (формула гаверсинусов, haversine) между парами точек GeoCoord (широта/долгота), в километрах.
@@ -1139,7 +1105,6 @@ SELECT h3PointDistKm(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistKm;
└───────────────────┘
```
-
## h3PointDistRads {#h3pointdistrads}
Возвращает расстояние по «большой окружности» (great-circle distance) или по формуле «haversine» между парами точек GeoCoord (широта/долгота) в радианах.
@@ -1175,7 +1140,6 @@ SELECT h3PointDistRads(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistRads;
└────────────────────┘
```
-
## h3GetRes0Indexes {#h3getres0indexes}
Возвращает массив всех индексов H3 разрешения 0.
@@ -1206,7 +1170,6 @@ SELECT h3GetRes0Indexes AS indexes ;
└─────────────────────────────────────────────┘
```
-
## h3GetPentagonIndexes {#h3getpentagonindexes}
Возвращает все пятиугольные индексы H3 на указанном разрешении.
@@ -1241,7 +1204,6 @@ SELECT h3GetPentagonIndexes(3) AS indexes;
└────────────────────────────────────────────────────────────────┘
```
-
## h3Line {#h3line}
Возвращает последовательность индексов между двумя заданными индексами.
@@ -1277,7 +1239,6 @@ h3Line(start,end)
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## h3Distance {#h3distance}
Возвращает расстояние в ячейках сетки между двумя указанными индексами.
@@ -1315,7 +1276,6 @@ h3Distance(start,end)
└──────────┘
```
-
## h3HexRing {#h3hexring}
Возвращает индексы шестиугольного кольца с центром в заданном исходном индексе h3Index и длиной k.
@@ -1353,7 +1313,6 @@ h3HexRing(index, k)
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## h3GetUnidirectionalEdge {#h3getunidirectionaledge}
Возвращает однонаправленный индекс ребра H3 на основе указанных исходной и конечной ячеек и возвращает 0 при ошибке.
@@ -1389,7 +1348,6 @@ h3GetUnidirectionalEdge(originIndex, destinationIndex)
└─────────────────────┘
```
-
## h3UnidirectionalEdgeIsValid {#h3unidirectionaledgeisvalid}
Определяет, является ли заданный H3Index допустимым индексом однонаправленного ребра. Возвращает 1, если это индекс однонаправленного ребра, и 0 — в противном случае.
@@ -1425,7 +1383,6 @@ h3UnidirectionalEdgeisValid(index)
└────────────┘
```
-
## h3GetOriginIndexFromUnidirectionalEdge {#h3getoriginindexfromunidirectionaledge}
Возвращает индекс исходного шестиугольника по однонаправленному ребру H3Index.
@@ -1460,7 +1417,6 @@ h3GetOriginIndexFromUnidirectionalEdge(edge)
└────────────────────┘
```
-
## h3GetDestinationIndexFromUnidirectionalEdge {#h3getdestinationindexfromunidirectionaledge}
Возвращает индекс конечного шестиугольника на основании однонаправленного ребра `H3Index`.
@@ -1495,7 +1451,6 @@ h3GetDestinationIndexFromUnidirectionalEdge(edge)
└────────────────────┘
```
-
## h3GetIndexesFromUnidirectionalEdge {#h3getindexesfromunidirectionaledge}
Возвращает индексы исходной и конечной шестиугольных ячеек для заданного однонаправленного ребра H3Index.
@@ -1535,7 +1490,6 @@ h3GetIndexesFromUnidirectionalEdge(edge)
└─────────────────────────────────────────┘
```
-
## h3GetUnidirectionalEdgesFromHexagon {#h3getunidirectionaledgesfromhexagon}
Возвращает все однонаправленные рёбра для указанного `H3Index`.
@@ -1570,7 +1524,6 @@ h3GetUnidirectionalEdgesFromHexagon(index)
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## h3GetUnidirectionalEdgeBoundary {#h3getunidirectionaledgeboundary}
Возвращает координаты, определяющие ориентированное ребро.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/polygon.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/polygon.md
index 8254dbb5d9f..e80002670e4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/polygon.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/polygon.md
@@ -6,8 +6,6 @@ title: 'Функции для работы с многоугольниками'
doc_type: 'reference'
---
-
-
## WKT {#wkt}
Возвращает геометрический объект WKT (Well Known Text) из различных [геометрических типов данных](../../data-types/geo.md). Поддерживаемые WKT-объекты:
@@ -75,7 +73,6 @@ SELECT wkt([[[(0., 0.), (10., 0.), (10., 10.), (0., 10.)], [(4., 4.), (5., 4.),
MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(4 4,5 4,5 5,4 5,4 4)),((-10 -10,-10 -9,-9 10,-10 -10)))
```
-
## readWKTMultiPolygon {#readwktmultipolygon}
Преобразует WKT (Well Known Text) MultiPolygon в тип MultiPolygon.
@@ -101,7 +98,6 @@ SELECT
MultiPolygon
-
## readWKTPolygon {#readwktpolygon}
Преобразует WKT (Well Known Text) MultiPolygon в тип Polygon.
@@ -127,7 +123,6 @@ FORMAT Markdown
Тип `Polygon`.
-
## readWKTPoint {#readwktpoint}
Функция `readWKTPoint` в ClickHouse разбирает представление геометрического объекта типа Point в формате Well-Known Text (WKT) и возвращает точку во внутреннем формате ClickHouse.
@@ -156,7 +151,6 @@ SELECT readWKTPoint('POINT (1.2 3.4)');
(1.2,3.4)
```
-
## readWKTLineString {#readwktlinestring}
Интерпретирует представление геометрии типа LineString в формате Well-Known Text (WKT) и возвращает его во внутреннем формате ClickHouse.
@@ -185,7 +179,6 @@ SELECT readWKTLineString('LINESTRING (1 1, 2 2, 3 3, 1 1)');
[(1,1),(2,2),(3,3),(1,1)]
```
-
## readWKTMultiLineString {#readwktmultilinestring}
Анализирует представление геометрии MultiLineString в формате Well-Known Text (WKT) и возвращает его во внутреннем формате ClickHouse.
@@ -214,7 +207,6 @@ SELECT readWKTMultiLineString('MULTILINESTRING ((1 1, 2 2, 3 3), (4 4, 5 5, 6 6)
[[(1,1),(2,2),(3,3)],[(4,4),(5,5),(6,6)]]
```
-
## readWKTRing {#readwktring}
Разбирает представление геометрии многоугольника в формате Well-Known Text (WKT) и возвращает кольцо (замкнутую ломаную линию, LineString) во внутреннем формате ClickHouse.
@@ -243,7 +235,6 @@ SELECT readWKTRing('POLYGON ((1 1, 2 2, 3 3, 1 1))');
[(1,1),(2,2),(3,3),(1,1)]
```
-
## polygonsWithinSpherical {#polygonswithinspherical}
Возвращает true или false в зависимости от того, расположен ли один многоугольник полностью внутри другого. См. документацию: [https://www.boost.org/doc/libs/1_62_0/libs/geometry/doc/html/geometry/reference/algorithms/within/within_2.html](https://www.boost.org/doc/libs/1_62_0/libs/geometry/doc/html/geometry/reference/algorithms/within/within_2.html)
@@ -258,7 +249,6 @@ SELECT polygonsWithinSpherical([[[(4.3613577, 50.8651821), (4.349556, 50.8535879
0
```
-
## readWKBMultiPolygon {#readwkbmultipolygon}
Преобразует мультиполигон в формате WKB (Well-Known Binary) в значение типа MultiPolygon.
@@ -284,7 +274,6 @@ SELECT
MultiPolygon
-
## readWKBPolygon {#readwkbpolygon}
Преобразует объект типа MultiPolygon в формате WKB (Well Known Binary) в объект типа Polygon.
@@ -310,7 +299,6 @@ FORMAT Markdown
Полигон
-
## readWKBPoint {#readwkbpoint}
Функция `readWKBPoint` в ClickHouse разбирает представление геометрии Point в формате Well-Known Binary (WKB) и возвращает точку во внутреннем формате ClickHouse.
@@ -339,7 +327,6 @@ SELECT readWKBPoint(unhex('0101000000333333333333f33f3333333333330b40'));
(1.2,3.4)
```
-
## readWKBLineString {#readwkblinestring}
Парсит бинарное представление геометрии LineString в формате Well-Known Binary (WKB) и возвращает его во внутреннем формате ClickHouse.
@@ -368,7 +355,6 @@ SELECT readWKBLineString(unhex('010200000004000000000000000000f03f000000000000f0
[(1,1),(2,2),(3,3),(1,1)]
```
-
## readWKBMultiLineString {#readwkbmultilinestring}
Выполняет разбор представления геометрии MultiLineString в формате Well-Known Binary (WKB) и возвращает его во внутреннем формате ClickHouse.
@@ -403,7 +389,6 @@ SELECT readWKBMultiLineString(unhex('0105000000020000000102000000030000000000000
UInt8, 0 — ложь, 1 — истина
-
## polygonsDistanceSpherical {#polygonsdistancespherical}
Вычисляет минимальное расстояние между двумя точками, где одна точка принадлежит первому полигону, а вторая — другому полигону. Spherical в названии функции означает, что координаты интерпретируются как координаты на идеальной сфере, что не соответствует форме Земли. Использование такой системы координат ускоряет выполнение, но, разумеется, снижает точность.
@@ -426,7 +411,6 @@ SELECT polygonsDistanceSpherical([[[(0, 0), (0, 0.1), (0.1, 0.1), (0.1, 0)]]], [
Float64
-
## polygonsDistanceCartesian {#polygonsdistancecartesian}
Вычисляет расстояние между двумя многоугольниками
@@ -449,7 +433,6 @@ SELECT polygonsDistanceCartesian([[[(0, 0), (0, 0.1), (0.1, 0.1), (0.1, 0)]]], [
Float64
-
## polygonsEqualsCartesian {#polygonsequalscartesian}
Возвращает значение `true`, если два многоугольника равны
@@ -472,7 +455,6 @@ SELECT polygonsEqualsCartesian([[[(1., 1.), (1., 4.), (4., 4.), (4., 1.)]]], [[[
UInt8, 0 — ложь, 1 — истина
-
## polygonsSymDifferenceSpherical {#polygonssymdifferencespherical}
Вычисляет теоретико-множественную симметрическую разность (XOR) двух полигонов в пространстве
@@ -495,7 +477,6 @@ Polygons
MultiPolygon
-
## polygonsSymDifferenceCartesian {#polygonssymdifferencecartesian}
То же, что и `polygonsSymDifferenceSpherical`, но используются координаты в декартовой системе координат, которая ближе к модели реальной Земли.
@@ -518,7 +499,6 @@ Polygons
MultiPolygon
-
## polygonsIntersectionSpherical {#polygonsintersectionspherical}
Вычисляет пересечение (логическая операция AND) между полигонами, при этом координаты интерпретируются как сферические.
@@ -541,7 +521,6 @@ Polygons
MultiPolygon
-
## polygonsWithinCartesian {#polygonswithincartesian}
Возвращает true, если второй многоугольник находится внутри первого многоугольника.
@@ -564,7 +543,6 @@ SELECT polygonsWithinCartesian([[[(2., 2.), (2., 3.), (3., 3.), (3., 2.)]]], [[[
UInt8, 0 — ложь, 1 — истина
-
## polygonsIntersectCartesian {#polygonsintersectcartesian}
Возвращает true, если два многоугольника пересекаются (имеют общую область или границу).
@@ -587,7 +565,6 @@ SELECT polygonsIntersectCartesian([[[(2., 2.), (2., 3.), (3., 3.), (3., 2.)]]],
UInt8: 0 — ложь, 1 — истина
-
## polygonsIntersectSpherical {#polygonsintersectspherical}
Возвращает true, если два многоугольника пересекаются (имеют общую площадь или общую границу). См. документацию: [https://www.boost.org/doc/libs/1_62_0/libs/geometry/doc/html/geometry/reference/algorithms/intersects.html](https://www.boost.org/doc/libs/1_62_0/libs/geometry/doc/html/geometry/reference/algorithms/intersects.html)
@@ -610,7 +587,6 @@ SELECT polygonsIntersectSpherical([[[(4.3613577, 50.8651821), (4.349556, 50.8535
UInt8: 0 — ложь, 1 — истина
-
## polygonConvexHullCartesian {#polygonconvexhullcartesian}
Вычисляет выпуклую оболочку. [Справка](https://www.boost.org/doc/libs/1_61_0/libs/geometry/doc/html/geometry/reference/algorithms/convex_hull.html)
@@ -635,7 +611,6 @@ MultiPolygon
Polygon
-
## polygonAreaSpherical {#polygonareaspherical}
Вычисляет площадь поверхности многоугольника.
@@ -658,7 +633,6 @@ Polygon
Float
-
## polygonsUnionSpherical {#polygonsunionspherical}
Вычисляет операцию объединения (OR).
@@ -681,7 +655,6 @@ Polygons
MultiPolygon
-
## polygonPerimeterSpherical {#polygonperimeterspherical}
Вычисляет периметр многоугольника.
@@ -692,18 +665,12 @@ MultiPolygon
Это многоугольник, описывающий территорию Зимбабве:
-
-
```text
POLYGON((30.0107 -15.6462,30.0502 -15.6401,30.09 -15.6294,30.1301 -15.6237,30.1699 -15.6322,30.1956 -15.6491,30.2072 -15.6532,30.2231 -15.6497,30.231 -15.6447,30.2461 -15.6321,30.2549 -15.6289,30.2801 -15.6323,30.2962 -15.639,30.3281 -15.6524,30.3567 -15.6515,30.3963 -15.636,30.3977 -15.7168,30.3993 -15.812,30.4013 -15.9317,30.4026 -16.0012,30.5148 -16.0004,30.5866 -16,30.7497 -15.9989,30.8574 -15.9981,30.9019 -16.0071,30.9422 -16.0345,30.9583 -16.0511,30.9731 -16.062,30.9898 -16.0643,31.012 -16.0549,31.0237 -16.0452,31.0422 -16.0249,31.0569 -16.0176,31.0654 -16.0196,31.0733 -16.0255,31.0809 -16.0259,31.089 -16.0119,31.1141 -15.9969,31.1585 -16.0002,31.26 -16.0235,31.2789 -16.0303,31.2953 -16.0417,31.3096 -16.059,31.3284 -16.0928,31.3409 -16.1067,31.3603 -16.1169,31.3703 -16.1237,31.3746 -16.1329,31.3778 -16.1422,31.384 -16.1488,31.3877 -16.1496,31.3956 -16.1477,31.3996 -16.1473,31.4043 -16.1499,31.4041 -16.1545,31.4027 -16.1594,31.4046 -16.1623,31.4241 -16.1647,31.4457 -16.165,31.4657 -16.1677,31.4806 -16.178,31.5192 -16.1965,31.6861 -16.2072,31.7107 -16.2179,31.7382 -16.2398,31.7988 -16.3037,31.8181 -16.3196,31.8601 -16.3408,31.8719 -16.3504,31.8807 -16.368,31.8856 -16.4063,31.8944 -16.4215,31.9103 -16.4289,32.0141 -16.4449,32.2118 -16.4402,32.2905 -16.4518,32.3937 -16.4918,32.5521 -16.5534,32.6718 -16.5998,32.6831 -16.6099,32.6879 -16.6243,32.6886 -16.6473,32.6987 -16.6868,32.7252 -16.7064,32.7309 -16.7087,32.7313 -16.7088,32.7399 -16.7032,32.7538 -16.6979,32.7693 -16.6955,32.8007 -16.6973,32.862 -16.7105,32.8934 -16.7124,32.9096 -16.7081,32.9396 -16.6898,32.9562 -16.6831,32.9685 -16.6816,32.9616 -16.7103,32.9334 -16.8158,32.9162 -16.8479,32.9005 -16.8678,32.8288 -16.9351,32.8301 -16.9415,32.8868 -17.0382,32.9285 -17.1095,32.9541 -17.1672,32.9678 -17.2289,32.9691 -17.2661,32.9694 -17.2761,32.9732 -17.2979,32.9836 -17.3178,32.9924 -17.3247,33.0147 -17.3367,33.0216 -17.3456,33.0225 -17.3615,33.0163 -17.3772,33.0117 -17.384,32.9974 -17.405,32.9582 -17.4785,32.9517 -17.4862,32.943 -17.4916,32.9366 -17.4983,32.9367 -17.5094,32.9472 -17.5432,32.9517 -17.5514,32.9691 -17.5646,33.0066 -17.581,33.0204 -17.5986,33.0245 -17.6192,33.0206 -17.6385,33.0041 -17.6756,33.0002 -17.7139,33.0032 -17.7577,32.9991 -17.7943,32.9736 -17.8106,32.957 -17.818,32.9461 -17.8347,32.9397 -17.8555,32.9369 -17.875,32.9384 -17.8946,32.9503 -17.9226,32.9521 -17.9402,32.9481 -17.9533,32.9404 -17.96,32.9324 -17.9649,32.9274 -17.9729,32.929 -17.9823,32.9412 -17.9963,32.9403 -18.0048,32.9349 -18.0246,32.9371 -18.0471,32.9723 -18.1503,32.9755 -18.1833,32.9749 -18.1908,32.9659 -18.2122,32.9582 -18.2254,32.9523 -18.233,32.9505 -18.2413,32.955 -18.2563,32.9702 -18.2775,33.0169 -18.3137,33.035 -18.3329,33.0428 -18.352,33.0381 -18.3631,33.0092 -18.3839,32.9882 -18.4132,32.9854 -18.4125,32.9868 -18.4223,32.9995 -18.4367,33.003 -18.4469,32.9964 -18.4671,32.9786 -18.4801,32.9566 -18.4899,32.9371 -18.501,32.9193 -18.51,32.9003 -18.5153,32.8831 -18.5221,32.8707 -18.5358,32.8683 -18.5526,32.8717 -18.5732,32.8845 -18.609,32.9146 -18.6659,32.9223 -18.6932,32.9202 -18.7262,32.9133 -18.753,32.9025 -18.7745,32.8852 -18.7878,32.8589 -18.79,32.8179 -18.787,32.7876 -18.7913,32.6914 -18.8343,32.6899 -18.8432,32.6968 -18.8972,32.7032 -18.9119,32.7158 -18.9198,32.7051 -18.9275,32.6922 -18.9343,32.6825 -18.9427,32.6811 -18.955,32.6886 -18.9773,32.6903 -18.9882,32.6886 -19.001,32.6911 -19.0143,32.699 -19.0222,32.7103 -19.026,32.7239 -19.0266,32.786 -19.0177,32.8034 -19.0196,32.8142 -19.0238,32.82 -19.0283,32.823 -19.0352,32.8253 -19.0468,32.8302 -19.0591,32.8381 -19.0669,32.8475 -19.0739,32.8559 -19.0837,32.8623 -19.1181,32.8332 -19.242,32.8322 -19.2667,32.8287 -19.2846,32.8207 -19.3013,32.8061 -19.3234,32.7688 -19.3636,32.7665 -19.3734,32.7685 -19.4028,32.7622 -19.4434,32.7634 -19.464,32.7739 -19.4759,32.7931 -19.4767,32.8113 -19.4745,32.8254 -19.4792,32.8322 -19.5009,32.8325 -19.5193,32.8254 -19.5916,32.8257 -19.6008,32.8282 -19.6106,32.8296 -19.6237,32.8254 -19.6333,32.8195 -19.642,32.8163 -19.6521,32.8196 -19.6743,32.831 -19.6852,32.8491 -19.6891,32.8722 -19.6902,32.8947 -19.6843,32.9246 -19.6553,32.9432 -19.6493,32.961 -19.6588,32.9624 -19.6791,32.9541 -19.7178,32.9624 -19.7354,32.9791 -19.7514,33.0006 -19.7643,33.0228 -19.7731,33.0328 -19.7842,33.0296 -19.8034,33.0229 -19.8269,33.0213 -19.8681,33.002 -19.927,32.9984 -20.0009,33.0044 -20.0243,33.0073 -20.032,32.9537 -20.0302,32.9401 -20.0415,32.9343 -20.0721,32.9265 -20.0865,32.9107 -20.0911,32.8944 -20.094,32.8853 -20.103,32.8779 -20.1517,32.8729 -20.1672,32.8593 -20.1909,32.8571 -20.2006,32.8583 -20.2075,32.8651 -20.2209,32.8656 -20.2289,32.8584 -20.2595,32.853 -20.2739,32.8452 -20.2867,32.8008 -20.3386,32.7359 -20.4142,32.7044 -20.4718,32.6718 -20.5318,32.6465 -20.558,32.6037 -20.5648,32.5565 -20.5593,32.5131 -20.5646,32.4816 -20.603,32.4711 -20.6455,32.4691 -20.6868,32.4835 -20.7942,32.4972 -20.8981,32.491 -20.9363,32.4677 -20.9802,32.4171 -21.0409,32.3398 -21.1341,32.3453 -21.1428,32.3599 -21.1514,32.3689 -21.163,32.3734 -21.1636,32.3777 -21.1634,32.3806 -21.1655,32.3805 -21.1722,32.3769 -21.1785,32.373 -21.184,32.3717 -21.1879,32.4446 -21.3047,32.4458 -21.309,32.4472 -21.3137,32.4085 -21.2903,32.373 -21.3279,32.3245 -21.3782,32.2722 -21.4325,32.2197 -21.4869,32.1673 -21.5413,32.1148 -21.5956,32.0624 -21.65,32.01 -21.7045,31.9576 -21.7588,31.9052 -21.8132,31.8527 -21.8676,31.8003 -21.922,31.7478 -21.9764,31.6955 -22.0307,31.6431 -22.0852,31.5907 -22.1396,31.5382 -22.1939,31.4858 -22.2483,31.4338 -22.302,31.3687 -22.345,31.2889 -22.3973,31.2656 -22.3655,31.2556 -22.358,31.2457 -22.3575,31.2296 -22.364,31.2215 -22.3649,31.2135 -22.3619,31.1979 -22.3526,31.1907 -22.3506,31.1837 -22.3456,31.1633 -22.3226,31.1526 -22.3164,31.1377 -22.3185,31.1045 -22.3334,31.097 -22.3349,31.0876 -22.3369,31.0703 -22.3337,31.0361 -22.3196,30.9272 -22.2957,30.8671 -22.2896,30.8379 -22.2823,30.8053 -22.2945,30.6939 -22.3028,30.6743 -22.3086,30.6474 -22.3264,30.6324 -22.3307,30.6256 -22.3286,30.6103 -22.3187,30.6011 -22.3164,30.5722 -22.3166,30.5074 -22.3096,30.4885 -22.3102,30.4692 -22.3151,30.4317 -22.3312,30.4127 -22.3369,30.3721 -22.3435,30.335 -22.3447,30.3008 -22.337,30.2693 -22.3164,30.2553 -22.3047,30.2404 -22.2962,30.2217 -22.2909,30.197 -22.2891,30.1527 -22.2948,30.1351 -22.2936,30.1111 -22.2823,30.0826 -22.2629,30.0679 -22.2571,30.0381 -22.2538,30.0359 -22.2506,30.0345 -22.2461,30.0155 -22.227,30.0053 -22.2223,29.9838 -22.2177,29.974 -22.214,29.9467 -22.1983,29.9321 -22.1944,29.896 -22.1914,29.8715 -22.1793,29.8373 -22.1724,29.7792 -22.1364,29.7589 -22.1309,29.6914 -22.1341,29.6796 -22.1383,29.6614 -22.1265,29.6411 -22.1292,29.604 -22.1451,29.5702 -22.142,29.551 -22.146,29.5425 -22.1625,29.5318 -22.1724,29.5069 -22.1701,29.4569 -22.1588,29.4361 -22.1631,29.3995 -22.1822,29.378 -22.1929,29.3633 -22.1923,29.3569 -22.1909,29.3501 -22.1867,29.2736 -22.1251,29.2673 -22.1158,29.2596 -22.0961,29.2541 -22.0871,29.2444 -22.0757,29.2393 -22.0726,29.1449 -22.0753,29.108 -22.0692,29.0708 -22.051,29.0405 -22.0209,29.0216 -21.9828,29.0138 -21.9404,29.0179 -21.8981,29.0289 -21.8766,29.0454 -21.8526,29.0576 -21.8292,29.0553 -21.81,29.0387 -21.7979,28.9987 -21.786,28.9808 -21.7748,28.9519 -21.7683,28.891 -21.7649,28.8609 -21.7574,28.7142 -21.6935,28.6684 -21.68,28.6297 -21.6513,28.6157 -21.6471,28.5859 -21.6444,28.554 -21.6366,28.5429 -21.6383,28.5325 -21.6431,28.4973 -21.6515,28.4814 -21.6574,28.4646 -21.6603,28.4431 -21.6558,28.3618 -21.6163,28.3219 -21.6035,28.2849 -21.5969,28.1657 -21.5952,28.0908 -21.5813,28.0329 -21.5779,28.0166 -21.5729,28.0026 -21.5642,27.9904 -21.5519,27.9847 -21.5429,27.9757 -21.5226,27.9706 -21.5144,27.9637 -21.5105,27.9581 -21.5115,27.9532 -21.5105,27.9493 -21.5008,27.9544 -21.4878,27.9504 -21.482,27.9433 -21.4799,27.9399 -21.478,27.9419 -21.4685,27.9496 -21.4565,27.953 -21.4487,27.9502 -21.4383,27.9205 -21.3812,27.9042 -21.3647,27.8978 -21.3554,27.8962 -21.3479,27.8967 -21.3324,27.8944 -21.3243,27.885 -21.3102,27.8491 -21.2697,27.8236 -21.2317,27.7938 -21.1974,27.7244 -21.1497,27.7092 -21.1345,27.6748 -21.0901,27.6666 -21.0712,27.6668 -21.0538,27.679 -21.0007,27.6804 -20.9796,27.6727 -20.9235,27.6726 -20.9137,27.6751 -20.8913,27.6748 -20.8799,27.676 -20.8667,27.6818 -20.8576,27.689 -20.849,27.6944 -20.8377,27.7096 -20.7567,27.7073 -20.7167,27.6825 -20.6373,27.6904 -20.6015,27.7026 -20.5661,27.7056 -20.5267,27.6981 -20.5091,27.6838 -20.4961,27.666 -20.4891,27.6258 -20.4886,27.5909 -20.4733,27.5341 -20.483,27.4539 -20.4733,27.3407 -20.473,27.306 -20.4774,27.2684 -20.4958,27.284 -20.3515,27.266 -20.2342,27.2149 -20.1105,27.2018 -20.093,27.1837 -20.0823,27.1629 -20.0766,27.1419 -20.0733,27.1297 -20.0729,27.1198 -20.0739,27.1096 -20.0732,27.0973 -20.0689,27.0865 -20.0605,27.0692 -20.0374,27.0601 -20.0276,27.0267 -20.0101,26.9943 -20.0068,26.9611 -20.0072,26.9251 -20.0009,26.8119 -19.9464,26.7745 -19.9398,26.7508 -19.9396,26.731 -19.9359,26.7139 -19.9274,26.6986 -19.9125,26.6848 -19.8945,26.6772 -19.8868,26.6738 -19.8834,26.6594 -19.8757,26.6141 -19.8634,26.5956 -19.8556,26.5819 -19.8421,26.5748 -19.8195,26.5663 -19.8008,26.5493 -19.7841,26.5089 -19.7593,26.4897 -19.7519,26.4503 -19.7433,26.4319 -19.7365,26.4128 -19.7196,26.3852 -19.6791,26.3627 -19.6676,26.3323 -19.6624,26.3244 -19.6591,26.3122 -19.6514,26.3125 -19.6496,26.3191 -19.6463,26.3263 -19.6339,26.3335 -19.613,26.331 -19.605,26.3211 -19.592,26.3132 -19.5842,26.3035 -19.5773,26.2926 -19.5725,26.2391 -19.5715,26.1945 -19.5602,26.1555 -19.5372,26.1303 -19.5011,26.0344 -19.2437,26.0114 -19.1998,25.9811 -19.1618,25.9565 -19.1221,25.9486 -19.1033,25.9449 -19.0792,25.9481 -19.0587,25.9644 -19.0216,25.9678 -19.001,25.9674 -18.9999,25.9407 -18.9213,25.8153 -18.814,25.7795 -18.7388,25.7734 -18.6656,25.7619 -18.6303,25.7369 -18.6087,25.6983 -18.5902,25.6695 -18.566,25.6221 -18.5011,25.6084 -18.4877,25.5744 -18.4657,25.5085 -18.3991,25.4956 -18.3789,25.4905 -18.3655,25.4812 -18.3234,25.4732 -18.3034,25.4409 -18.2532,25.4088 -18.176,25.3875 -18.139,25.3574 -18.1158,25.3234 -18.0966,25.2964 -18.0686,25.255 -18.0011,25.2261 -17.9319,25.2194 -17.908,25.2194 -17.8798,25.2598 -17.7941,25.2667 -17.8009,25.2854 -17.8093,25.3159 -17.8321,25.3355 -17.8412,25.3453 -17.8426,25.3765 -17.8412,25.4095 -17.853,25.4203 -17.8549,25.4956 -17.8549,25.5007 -17.856,25.5102 -17.8612,25.5165 -17.8623,25.5221 -17.8601,25.5309 -17.851,25.5368 -17.8487,25.604 -17.8362,25.657 -17.8139,25.6814 -17.8115,25.6942 -17.8194,25.7064 -17.8299,25.7438 -17.8394,25.766 -17.8498,25.786 -17.8622,25.7947 -17.8727,25.8044 -17.8882,25.8497 -17.9067,25.8636 -17.9238,25.8475 -17.9294,25.8462 -17.9437,25.8535 -17.96,25.8636 -17.9716,25.9245 -17.999,25.967 -18.0005,25.9785 -17.999,26.0337 -17.9716,26.0406 -17.9785,26.0466 -17.9663,26.0625 -17.9629,26.0812 -17.9624,26.0952 -17.9585,26.0962 -17.9546,26.0942 -17.9419,26.0952 -17.9381,26.1012 -17.9358,26.1186 -17.9316,26.1354 -17.9226,26.1586 -17.9183,26.1675 -17.9136,26.203 -17.8872,26.2119 -17.8828,26.2211 -17.8863,26.2282 -17.8947,26.2339 -17.904,26.2392 -17.9102,26.2483 -17.9134,26.2943 -17.9185,26.3038 -17.9228,26.312 -17.9284,26.3183 -17.9344,26.3255 -17.936,26.3627 -17.9306,26.4086 -17.939,26.4855 -17.9793,26.5271 -17.992,26.5536 -17.9965,26.5702 -18.0029,26.5834 -18.0132,26.5989 -18.03,26.6127 -18.0412,26.6288 -18.0492,26.6857 -18.0668,26.7 -18.0692,26.7119 -18.0658,26.7406 -18.0405,26.7536 -18.033,26.7697 -18.029,26.794 -18.0262,26.8883 -17.9846,26.912 -17.992,26.9487 -17.9689,26.9592 -17.9647,27.0063 -17.9627,27.0213 -17.9585,27.0485 -17.9443,27.0782 -17.917,27.1154 -17.8822,27.149 -17.8425,27.1465 -17.8189,27.1453 -17.7941,27.147 -17.7839,27.1571 -17.7693,27.4221 -17.5048,27.5243 -17.4151,27.5773 -17.3631,27.6045 -17.3128,27.6249 -17.2333,27.6412 -17.1985,27.7773 -17.0012,27.8169 -16.9596,27.8686 -16.9297,28.023 -16.8654,28.1139 -16.8276,28.2125 -16.7486,28.2801 -16.7065,28.6433 -16.5688,28.6907 -16.5603,28.7188 -16.5603,28.7328 -16.5581,28.7414 -16.5507,28.7611 -16.5323,28.7693 -16.5152,28.8089 -16.4863,28.8225 -16.4708,28.8291 -16.4346,28.8331 -16.4264,28.8572 -16.3882,28.857 -16.3655,28.8405 -16.3236,28.8368 -16.3063,28.8403 -16.2847,28.8642 -16.2312,28.8471 -16.2027,28.8525 -16.1628,28.8654 -16.1212,28.871 -16.0872,28.8685 -16.0822,28.8638 -16.0766,28.8593 -16.0696,28.8572 -16.0605,28.8603 -16.0494,28.8741 -16.0289,28.8772 -16.022,28.8989 -15.9955,28.9324 -15.9637,28.9469 -15.9572,28.9513 -15.9553,28.9728 -15.9514,29.0181 -15.9506,29.0423 -15.9463,29.0551 -15.9344,29.0763 -15.8954,29.0862 -15.8846,29.1022 -15.8709,29.1217 -15.8593,29.1419 -15.8545,29.151 -15.8488,29.1863 -15.8128,29.407 -15.7142,29.4221 -15.711,29.5085 -15.7036,29.5262 -15.6928,29.5634 -15.6621,29.5872 -15.6557,29.6086 -15.6584,29.628 -15.6636,29.6485 -15.6666,29.6728 -15.6633,29.73 -15.6447,29.7733 -15.6381,29.8143 -15.6197,29.8373 -15.6148,29.8818 -15.6188,29.9675 -15.6415,30.0107 -15.6462))
```
-
-
#### Использование функции polygonPerimeterSpherical {#usage-of-polygon-perimeter-spherical}
-
-
```sql
SELECT round(polygonPerimeterSpherical([(30.010654, -15.646227), (30.050238, -15.640129), (30.090029, -15.629381), (30.130129, -15.623696), (30.16992, -15.632171), (30.195552, -15.649121), (30.207231, -15.653152), (30.223147, -15.649741), (30.231002, -15.644677), (30.246091, -15.632068), (30.254876, -15.628864), (30.280094, -15.632275), (30.296196, -15.639042), (30.32805, -15.652428), (30.356679, -15.651498), (30.396263, -15.635995), (30.39771, -15.716817), (30.39926, -15.812005), (30.401327, -15.931688), (30.402568, -16.001244), (30.514809, -16.000418), (30.586587, -16.000004), (30.74973, -15.998867), (30.857424, -15.998144), (30.901865, -16.007136), (30.942173, -16.034524), (30.958296, -16.05106), (30.973075, -16.062016), (30.989767, -16.06429), (31.012039, -16.054885), (31.023718, -16.045169), (31.042218, -16.024912), (31.056895, -16.017574), (31.065421, -16.019641), (31.073328, -16.025532), (31.080872, -16.025946), (31.089037, -16.01189), (31.1141, -15.996904), (31.15849, -16.000211), (31.259983, -16.023465), (31.278897, -16.030287), (31.29533, -16.041655), (31.309592, -16.059019), (31.328351, -16.092815), (31.340908, -16.106664), (31.360339, -16.116896), (31.37026, -16.123718), (31.374601, -16.132916), (31.377754, -16.142218), (31.384006, -16.148832), (31.387727, -16.149556), (31.395582, -16.147695), (31.399613, -16.147282), (31.404315, -16.149866), (31.404057, -16.154517), (31.402713, -16.159374), (31.404574, -16.162268), (31.424107, -16.164749), (31.445708, -16.164955), (31.465655, -16.167746), (31.480641, -16.177978), (31.519192, -16.196478), (31.686107, -16.207227), (31.710705, -16.217872), (31.738197, -16.239783), (31.798761, -16.303655), (31.818088, -16.319571), (31.86005, -16.340759), (31.871935, -16.35037), (31.88072, -16.368044), (31.88563, -16.406284), (31.894363, -16.421477), (31.910279, -16.428919), (32.014149, -16.444938), (32.211759, -16.440184), (32.290463, -16.45176), (32.393661, -16.491757), (32.5521, -16.553355), (32.671783, -16.599761), (32.6831, -16.609889), (32.687906, -16.624255), (32.68863, -16.647303), (32.698655, -16.686784), (32.725217, -16.706421), (32.73095, -16.708656), (32.731314, -16.708798), (32.739893, -16.703217), (32.753845, -16.697946), (32.769348, -16.695466), (32.800664, -16.697326), (32.862004, -16.710452), (32.893372, -16.712415), (32.909598, -16.708075), (32.93957, -16.689781), (32.95621, -16.683063), (32.968509, -16.681615999999998), (32.961585, -16.710348), (32.933369, -16.815768), (32.916213, -16.847911), (32.900503, -16.867755), (32.828776, -16.935141), (32.83012, -16.941549), (32.886757, -17.038184), (32.928512, -17.109497), (32.954143, -17.167168), (32.967786, -17.22887), (32.96909, -17.266115), (32.969439, -17.276102), (32.973212, -17.297909), (32.983599, -17.317753), (32.992384, -17.324678), (33.014656, -17.336667), (33.021633, -17.345555), (33.022459, -17.361471), (33.016258, -17.377181), (33.011651, -17.383991), (32.997448, -17.404983), (32.958174, -17.478467), (32.951663, -17.486218), (32.942981, -17.491593), (32.936573, -17.498311), (32.936676, -17.509369), (32.947218, -17.543166), (32.951663, -17.551434), (32.969129, -17.56456), (33.006646, -17.580993), (33.020392, -17.598563), (33.024526, -17.619233), (33.020599, -17.638457), (33.004063, -17.675561), (33.000238, -17.713905), (33.003184, -17.757726), (32.999102, -17.794313), (32.973573, -17.810643), (32.957037, -17.817981), (32.946082, -17.834724), (32.939674, -17.855498), (32.936883, -17.875032), (32.938433, -17.894566), (32.950267, -17.922574), (32.952128, -17.940247), (32.948149, -17.95327), (32.940397, -17.959988), (32.932439, -17.964949), (32.927375, -17.972907), (32.928977, -17.982312), (32.941224, -17.996265), (32.940294, -18.004843), (32.934919, -18.024583), (32.93709, -18.047114), (32.972282, -18.150261), (32.975537, -18.183333), (32.974865, -18.190775), (32.965925, -18.212169), (32.958174, -18.225398), (32.952283, -18.233046), (32.950525999999996, -18.241314), (32.95497, -18.256301), (32.970163, -18.277488), (33.016878, -18.313661), (33.034965, -18.332885), (33.042768, -18.352005), (33.038066, -18.363064), (33.00923, -18.383941), (32.988198, -18.41319), (32.985356, -18.412467), (32.986803, -18.422285), (32.999515, -18.436651), (33.003029, -18.446883), (32.996414, -18.46714), (32.978586, -18.48006), (32.956624, -18.489878), (32.937142, -18.50104), (32.919313, -18.510032), (32.900296, -18.515303), (32.88314, -18.522124), (32.870737, -18.535767), (32.868257, -18.552613), (32.871668, -18.57318), (32.884483, -18.609044), (32.914559, -18.665888), (32.92231, -18.693173), (32.920243, -18.726246), (32.913267, -18.753014), (32.902518, -18.774512), (32.885207, -18.787844), (32.858852, -18.790015), (32.817924, -18.787018), (32.787642, -18.791255), (32.69142, -18.83425), (32.68987, -18.843241), (32.696794, -18.897192), (32.703202, -18.911868), (32.71576, -18.919826), (32.705063, -18.927474), (32.692247, -18.934295), (32.682532, -18.942667), (32.681085, -18.954966), (32.68863, -18.97729), (32.690283, -18.988246), (32.68863, -19.000958), (32.691058, -19.01429), (32.698965, -19.022249), (32.710282, -19.025969), (32.723873, -19.026589), (32.785988, -19.017701), (32.803351, -19.019561), (32.814203, -19.023799), (32.819991, -19.028346), (32.822988, -19.035168), (32.825262, -19.046847), (32.830223, -19.059146), (32.83813, -19.066897), (32.847483, -19.073925), (32.855906, -19.083744), (32.862262, -19.118057), (32.83322, -19.241977), (32.832187, -19.266678), (32.828673, -19.284558), (32.820715, -19.301301), (32.806142, -19.323419), (32.768831, -19.363623), (32.766454, -19.373442), (32.768521, -19.402794), (32.762217, -19.443412), (32.763354, -19.463979), (32.773947, -19.475864), (32.793119, -19.476691), (32.811309, -19.474521), (32.825365, -19.479172), (32.832187, -19.500876), (32.832497000000004, -19.519273), (32.825365, -19.59162), (32.825675, -19.600818), (32.828156, -19.610636), (32.829603, -19.623659), (32.825365, -19.633271), (32.819474, -19.641952), (32.81627, -19.652081), (32.819629, -19.674302), (32.83105, -19.685154), (32.849137, -19.689081), (32.872184, -19.690218), (32.894715, -19.684327), (32.924584, -19.655285), (32.943188, -19.64929), (32.960964, -19.658799), (32.962411, -19.679056), (32.954143, -19.717813), (32.962411, -19.735383), (32.979051, -19.751403), (33.0006, -19.764322), (33.022769, -19.773107), (33.032795, -19.784166), (33.029642, -19.80339), (33.022873, -19.826851), (33.021322, -19.868088), (33.001995, -19.927), (32.998378, -20.000897), (33.004373, -20.024255), (33.007266, -20.032006), (32.95373, -20.030249), (32.940087, -20.041515), (32.934299, -20.072107), (32.926548, -20.086473), (32.910683, -20.091124), (32.894405, -20.094018), (32.88531, -20.10301), (32.877869, -20.151689), (32.872908, -20.167192), (32.859265, -20.190859), (32.857095, -20.200575), (32.858335, -20.207499), (32.865053, -20.220935), (32.86557, -20.228893), (32.858438, -20.259486), (32.852961, -20.273852), (32.845209, -20.286668), (32.800767, -20.338551), (32.735862, -20.414205), (32.704443, -20.471773), (32.671783, -20.531821), (32.646462, -20.557969), (32.603674, -20.56479), (32.556545, -20.559312), (32.513136, -20.564583), (32.481614, -20.603031), (32.471072, -20.645509), (32.469108, -20.68685), (32.483474, -20.794233), (32.49722, -20.898103), (32.491019, -20.936344), (32.467661, -20.980165), (32.417122, -21.040937), (32.339814, -21.134058), (32.345343, -21.142843), (32.359864, -21.151421), (32.368856, -21.162997), (32.373352, -21.163617), (32.377744, -21.16341), (32.380638, -21.165477), (32.380535, -21.172195), (32.376866, -21.178499), (32.37299, -21.183977), (32.37175, -21.187905), (32.444613, -21.304693), (32.445849, -21.308994), (32.447197, -21.313685), (32.408543, -21.290327), (32.37299, -21.327948), (32.324517, -21.378177), (32.272221, -21.432541), (32.219718, -21.486904), (32.167318, -21.541268), (32.114814, -21.595632), (32.062415, -21.649995), (32.010015, -21.704462), (31.957615, -21.758826), (31.905215, -21.813189), (31.852712, -21.867553), (31.800312, -21.92202), (31.747808, -21.976384), (31.695512, -22.030747), (31.643112, -22.085214), (31.590712, -22.139578), (31.538209, -22.193941), (31.485809, -22.248305), (31.433822, -22.302048), (31.36871, -22.345043), (31.288922, -22.39734), (31.265616, -22.365507), (31.255642, -22.357962), (31.24572, -22.357549), (31.229597, -22.363957), (31.221536, -22.364887), (31.213474, -22.36189), (31.197868, -22.352588), (31.190685, -22.350624), (31.183657, -22.34556), (31.163348, -22.322616), (31.152599, -22.316414), (31.137717, -22.318482), (31.10454, -22.333364), (31.097048, -22.334922), (31.087642, -22.336878), (31.07033, -22.333674), (31.036121, -22.319618), (30.927187, -22.295744), (30.867087, -22.289646), (30.83789, -22.282308), (30.805282, -22.294504), (30.693919, -22.302772), (30.674282, -22.30856), (30.647410999999998, -22.32644), (30.632424, -22.330677), (30.625551, -22.32861), (30.610307, -22.318688), (30.601108, -22.316414), (30.57217, -22.316621), (30.507367, -22.309593), (30.488454, -22.310213), (30.46923, -22.315071), (30.431713, -22.331194), (30.412696, -22.336878), (30.372078, -22.343493), (30.334975, -22.344733), (30.300765, -22.336982), (30.269346, -22.316414), (30.25529, -22.304736), (30.240407, -22.296157), (30.2217, -22.290886), (30.196999, -22.289129), (30.15266, -22.294814), (30.13509, -22.293574), (30.111113, -22.282308), (30.082587, -22.262878), (30.067911, -22.25709), (30.038145, -22.253783), (30.035872, -22.250579), (30.034528, -22.246135), (30.015511, -22.227014), (30.005279, -22.22226), (29.983782, -22.217713), (29.973963, -22.213992), (29.946678, -22.198282), (29.932105, -22.194355), (29.896035, -22.191358), (29.871489, -22.179265), (29.837331, -22.172444), (29.779246, -22.136374), (29.758886, -22.130896), (29.691448, -22.1341), (29.679614, -22.138338), (29.661424, -22.126452), (29.641064, -22.129242), (29.60396, -22.145055), (29.570164, -22.141955), (29.551043, -22.145986), (29.542517, -22.162522), (29.53182, -22.172444), (29.506912, -22.170067), (29.456889, -22.158801), (29.436115, -22.163142), (29.399528, -22.182159), (29.378031, -22.192908), (29.363250999999998, -22.192288), (29.356947, -22.190944000000002), (29.350074, -22.186707), (29.273644, -22.125108), (29.26734, -22.115807), (29.259588, -22.096066), (29.254111, -22.087074), (29.244395, -22.075706), (29.239331, -22.072605), (29.144867, -22.075292), (29.10797, -22.069194), (29.070763, -22.051004), (29.040532, -22.020929), (29.021567, -21.982791), (29.013815, -21.940417), (29.017949, -21.898145), (29.028905, -21.876648), (29.045441, -21.852567), (29.057637, -21.829209), (29.05526, -21.809985), (29.038723, -21.797893), (28.998726, -21.786008), (28.980846, -21.774845), (28.951907, -21.768334), (28.891032, -21.764924), (28.860853, -21.757379), (28.714195, -21.693507), (28.66841, -21.679968), (28.629704, -21.651339), (28.6157, -21.647101), (28.585934, -21.644414), (28.553998, -21.636559), (28.542939, -21.638316), (28.532501, -21.643071), (28.497309, -21.651546), (28.481393, -21.657437), (28.464598, -21.660331), (28.443101, -21.655783), (28.361762, -21.616302), (28.321919, -21.603486), (28.284867, -21.596872), (28.165702, -21.595218), (28.090771, -21.581266), (28.032893, -21.577855), (28.016563, -21.572894), (28.002559, -21.564212), (27.990415, -21.551913), (27.984731, -21.542922), (27.975739, -21.522561), (27.970571, -21.514396), (27.963698, -21.510469), (27.958066, -21.511502), (27.953208, -21.510469), (27.949281, -21.500754), (27.954448, -21.487835), (27.950418, -21.482047), (27.943338, -21.479876), (27.939876, -21.478016), (27.941943, -21.468508), (27.949642, -21.456519), (27.953001, -21.448664), (27.950211, -21.438329), (27.920549, -21.381174), (27.904219, -21.364741), (27.897811, -21.35544), (27.896157, -21.347895), (27.896674, -21.332392), (27.8944, -21.32433), (27.884995, -21.310171), (27.849132, -21.269657), (27.823604, -21.231726), (27.793838, -21.197413), (27.724385, -21.149664), (27.709192, -21.134471), (27.674775, -21.090133), (27.666611, -21.071219), (27.666817, -21.053753), (27.678961, -21.000733), (27.680356, -20.979649), (27.672657, -20.923528), (27.672605, -20.913709), (27.675085, -20.891282), (27.674775, -20.879913), (27.676016, -20.866684), (27.681803, -20.857589), (27.689038, -20.849011), (27.694412, -20.837744999999998), (27.709605, -20.756716), (27.707332, -20.716719), (27.682475, -20.637344), (27.690382, -20.60148), (27.702629, -20.566134), (27.705575, -20.526653), (27.698133, -20.509083), (27.683767, -20.49606), (27.66599, -20.489136), (27.625786, -20.488619), (27.590853, -20.473323), (27.534112, -20.483038), (27.45391, -20.473323), (27.340739, -20.473013), (27.306012, -20.477354), (27.268392, -20.49575), (27.283998, -20.35147), (27.266015, -20.234164), (27.214907, -20.110451), (27.201781, -20.092984), (27.183746, -20.082339), (27.16292, -20.076551), (27.141888, -20.073347), (27.129692, -20.072934), (27.119771, -20.073864), (27.109642, -20.073244), (27.097343, -20.068903), (27.086491, -20.060532), (27.069231, -20.03738), (27.060136, -20.027562), (27.02665, -20.010095), (26.9943, -20.006788), (26.961072, -20.007201), (26.925054, -20.000897), (26.811882, -19.94643), (26.774469, -19.939815), (26.750801, -19.939609), (26.730957, -19.935888), (26.713904, -19.927413), (26.698608, -19.91253), (26.684758, -19.894547), (26.67717, -19.886815), (26.673803, -19.883385), (26.659437, -19.875737), (26.614065, -19.863438), (26.595565, -19.855583), (26.581922, -19.842147), (26.574791, -19.819513), (26.566316, -19.800806), (26.549263, -19.784063), (26.508852, -19.759258), (26.489731, -19.75192), (26.450251, -19.743342), (26.431854, -19.73652), (26.412837, -19.71957), (26.385242, -19.679056), (26.362711, -19.667584), (26.332325, -19.662416), (26.324367, -19.659109), (26.312171, -19.651358), (26.312481, -19.649601), (26.319096, -19.646293), (26.326331, -19.633891), (26.333462, -19.613014), (26.330981, -19.604952), (26.32106, -19.592033), (26.313205, -19.584178), (26.30349, -19.577254), (26.292638, -19.572499), (26.239101, -19.571466), (26.194452, -19.560200000000002), (26.155488, -19.537153), (26.13027, -19.501082), (26.034359, -19.243734), (26.011414, -19.199809), (25.981132, -19.161775), (25.956534, -19.122088), (25.948576, -19.103277), (25.944855, -19.079196), (25.948059, -19.058732), (25.964389, -19.021629), (25.9678, -19.000958), (25.967449, -18.999925), (25.940721, -18.921273), (25.815251, -18.813993), (25.779491, -18.738752), (25.773393, -18.665578), (25.761921, -18.630335), (25.736909, -18.608734), (25.698255, -18.590234), (25.669523, -18.566049), (25.622084, -18.501143), (25.608442, -18.487708), (25.574439, -18.465693), (25.508499, -18.399134), (25.49558, -18.378877), (25.490516, -18.365545), (25.481163, -18.323377), (25.473204, -18.303429), (25.440855, -18.2532), (25.408816, -18.175995), (25.387525, -18.138995), (25.357449, -18.115844), (25.323446, -18.09662), (25.296368, -18.068612), (25.255026, -18.001122), (25.226088, -17.931876), (25.21937, -17.908001), (25.21937, -17.879786), (25.259781, -17.794107), (25.266705, -17.800928), (25.285412, -17.809299), (25.315901, -17.83214), (25.335538, -17.841235), (25.345254, -17.842579), (25.376466, -17.841235), (25.409539, -17.853018), (25.420288, -17.854878), (25.49558, -17.854878), (25.500748, -17.856015), (25.510153, -17.861183), (25.516458, -17.862319), (25.522142, -17.860149), (25.530927, -17.850951), (25.536818, -17.848677), (25.603997, -17.836171), (25.657017, -17.81395), (25.681409, -17.81147), (25.694224, -17.819428), (25.70642, -17.829867), (25.743834, -17.839375), (25.765951, -17.849814), (25.786002, -17.862216), (25.794683, -17.872655), (25.804399, -17.888158), (25.849667, -17.906658), (25.86362, -17.923814), (25.847497, -17.929395), (25.846153, -17.943658), (25.853490999999998, -17.959988), (25.86362, -17.971563), (25.924495, -17.998952), (25.966973, -18.000502), (25.978548, -17.998952), (26.033739, -17.971563), (26.04056, -17.978488), (26.046554, -17.966292), (26.062471, -17.962882), (26.081178, -17.962365), (26.095234, -17.958541), (26.096164, -17.954614), (26.0942, -17.941901), (26.095234, -17.938077), (26.101228, -17.935803), (26.118591, -17.931566), (26.135438, -17.922574), (26.158589, -17.918337), (26.167477, -17.913582), (26.203031, -17.887227), (26.211919, -17.882783), (26.221117, -17.886297), (26.228249, -17.894669), (26.233933, -17.903971), (26.239204, -17.910172), (26.248299, -17.913376), (26.294291, -17.918543), (26.3038, -17.922781), (26.311965, -17.928362), (26.318269, -17.934356), (26.325504, -17.93601), (26.362711, -17.930636), (26.408599, -17.939007), (26.485494, -17.979315), (26.527145, -17.992027), (26.553604, -17.996471), (26.570243, -18.002879), (26.583369, -18.013215), (26.598872, -18.029958), (26.612721, -18.041223), (26.628844, -18.049181), (26.685689, -18.066751), (26.700003, -18.069232), (26.71194, -18.065821), (26.740569, -18.0405), (26.753591, -18.032955), (26.769714, -18.029028), (26.794002, -18.026237), (26.88826, -17.984586), (26.912031, -17.992027), (26.94867, -17.968876), (26.95916, -17.964742), (27.006289, -17.962675), (27.021275, -17.958541), (27.048457, -17.944278), (27.078171, -17.916993), (27.11543, -17.882163), (27.149019, -17.842476), (27.146539, -17.818911), (27.145299, -17.794107), (27.146952, -17.783875), (27.157081, -17.769302), (27.422078, -17.504822), (27.524294, -17.415112), (27.577314, -17.363125), (27.604495, -17.312792), (27.624856, -17.233314), (27.641186, -17.198484), (27.777301, -17.001183), (27.816886, -16.959636), (27.868562, -16.929663), (28.022993, -16.865393), (28.113922, -16.827551), (28.21252, -16.748589), (28.280113, -16.706524), (28.643295, -16.568755), (28.690734, -16.56028), (28.718794, -16.56028), (28.73285, -16.55811), (28.741377, -16.550668), (28.761117, -16.532271), (28.769282, -16.515218), (28.808866, -16.486279), (28.822509, -16.470776), (28.829124, -16.434603), (28.833051, -16.426438), (28.857236, -16.388198), (28.857029, -16.36546), (28.840492, -16.323602), (28.836772, -16.306342), (28.840286, -16.284741), (28.86416, -16.231205), (28.847107, -16.202679), (28.852481, -16.162785), (28.8654, -16.121237), (28.870981, -16.087234), (28.868501, -16.08217), (28.86385, -16.076589), (28.859303, -16.069561), (28.857236, -16.060466), (28.860336, -16.049407), (28.874082, -16.028943), (28.877183, -16.022018), (28.898887, -15.995457), (28.932373, -15.963727), (28.946862, -15.957235), (28.951287, -15.955252), (28.972784, -15.951428), (29.018053, -15.950602), (29.042341, -15.946261), (29.055053, -15.934375), (29.076344, -15.895411), (29.086162, -15.884559), (29.102182, -15.870916), (29.121716, -15.859341), (29.141869, -15.854483), (29.150964, -15.848799), (29.186311, -15.812832), (29.406969, -15.714233), (29.422059, -15.711030000000001), (29.508462, -15.703588), (29.526239, -15.692839), (29.563446, -15.662144), (29.587217, -15.655736), (29.608559, -15.658422999999999), (29.62799, -15.663591), (29.648505, -15.666588), (29.672793, -15.663281), (29.73005, -15.644677), (29.773252, -15.638062), (29.814283, -15.619666), (29.837331, -15.614808), (29.881773, -15.618839), (29.967504, -15.641473), (30.010654, -15.646227)]), 6)
```
@@ -712,14 +679,10 @@ SELECT round(polygonPerimeterSpherical([(30.010654, -15.646227), (30.050238, -15
0.45539
```
-
-
### Входные параметры {#input-parameters-15}
### Возвращаемое значение {#returned-value-22}
-
-
## polygonsIntersectionCartesian {#polygonsintersectioncartesian}
Вычисляет пересечение многоугольников.
@@ -742,7 +705,6 @@ Polygons
MultiPolygon
-
## polygonAreaCartesian {#polygonareacartesian}
Вычисляет площадь многоугольника
@@ -765,7 +727,6 @@ Polygon
Float64
-
## polygonPerimeterCartesian {#polygonperimetercartesian}
Вычисляет периметр многоугольника.
@@ -788,7 +749,6 @@ Polygon
Float64
-
## polygonsUnionCartesian {#polygonsunioncartesian}
Вычисляет объединение многоугольников.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/s2.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/s2.md
index e01a4704b49..57d6dee482c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/s2.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/geo/s2.md
@@ -6,20 +6,14 @@ description: 'Документация по функциям для работы
doc_type: 'reference'
---
-
-
# Функции для работы с индексом S2 {#functions-for-working-with-s2-index}
-
-
## S2Index {#s2index}
[S2](https://s2geometry.io/) — это система географического индексирования, в которой все географические данные представляются на поверхности сферы (аналогично глобусу).
В библиотеке S2 точки представлены в виде индекса S2 — конкретного числа, которое кодирует точку на поверхности единичной сферы, в отличие от традиционных пар (широта, долгота). Чтобы получить индекс точки S2 для заданной точки в формате (широта, долгота), используйте функцию [geoToS2](#geotos2). Также можно использовать функцию [s2ToGeo](#s2togeo) для получения географических координат, соответствующих указанному индексу точки S2.
-
-
## geoToS2 {#geotos2}
Возвращает индекс точки [S2](#s2index), соответствующий переданным координатам `(longitude, latitude)`.
@@ -55,7 +49,6 @@ SELECT geoToS2(37.79506683, 55.71290588) AS s2Index;
└─────────────────────┘
```
-
## s2ToGeo {#s2togeo}
Возвращает географические координаты `(longitude, latitude)`, соответствующие заданному индексу точки [S2](#s2index).
@@ -92,7 +85,6 @@ SELECT s2ToGeo(4704772434919038107) AS s2Coodrinates;
└──────────────────────────────────────┘
```
-
## s2GetNeighbors {#s2getneighbors}
Возвращает индексы соседних ячеек S2, соответствующие указанному [S2](#s2index). Каждая ячейка в системе S2 — это четырёхугольник, ограниченный четырьмя геодезическими линиями. Поэтому у каждой ячейки 4 соседа.
@@ -127,7 +119,6 @@ SELECT s2GetNeighbors(5074766849661468672) AS s2Neighbors;
└───────────────────────────────────────────────────────────────────────────────────┘
```
-
## s2CellsIntersect {#s2cellsintersect}
Определяет, пересекаются ли две указанные ячейки [S2](#s2index).
@@ -163,7 +154,6 @@ SELECT s2CellsIntersect(9926595209846587392, 9926594385212866560) AS intersect;
└───────────┘
```
-
## s2CapContains {#s2capcontains}
Определяет, содержит ли сферический сегмент (cap) точку S2. Сферический сегмент представляет собой часть сферы, отсечённую плоскостью. Он задаётся точкой на сфере и радиусом в градусах.
@@ -201,7 +191,6 @@ SELECT s2CapContains(1157339245694594829, 1.0, 1157347770437378819) AS capContai
└─────────────┘
```
-
## s2CapUnion {#s2capunion}
Определяет наименьшую сферическую шапку, которая содержит две заданные шапки. Сферическая шапка представляет собой часть сферы, отсечённую плоскостью. Она задаётся точкой на сфере и радиусом в градусах.
@@ -238,7 +227,6 @@ SELECT s2CapUnion(3814912406305146967, 1.0, 1157347770437378819, 1.0) AS capUnio
└────────────────────────────────────────┘
```
-
## s2RectAdd {#s2rectadd}
Увеличивает размер ограничивающего прямоугольника так, чтобы он включал заданную точку S2. В системе S2 прямоугольник представлен типом `S2Region`, называемым `S2LatLngRect`, который описывает прямоугольник в пространстве широты и долготы.
@@ -276,7 +264,6 @@ SELECT s2RectAdd(5178914411069187297, 5177056748191934217, 5179056748191934217)
└───────────────────────────────────────────┘
```
-
## s2RectContains {#s2rectcontains}
Определяет, содержит ли заданный прямоугольник точку S2. В системе S2 прямоугольник представлен типом `S2Region` под названием `S2LatLngRect`, который задаёт прямоугольник в широтно-долготном пространстве.
@@ -314,7 +301,6 @@ SELECT s2RectContains(5179062030687166815, 5177056748191934217, 5177914411069187
└──────────────┘
```
-
## s2RectUnion {#s2rectunion}
Возвращает наименьший прямоугольник, содержащий объединение этого прямоугольника и указанного прямоугольника. В системе S2 прямоугольник представлен типом `S2Region` с названием `S2LatLngRect`, который описывает прямоугольник в пространстве широта–долгота.
@@ -351,7 +337,6 @@ SELECT s2RectUnion(5178914411069187297, 5177056748191934217, 5179062030687166815
└───────────────────────────────────────────┘
```
-
## s2RectIntersection {#s2rectintersection}
Возвращает наименьший прямоугольник, содержащий пересечение этого прямоугольника с заданным прямоугольником. В системе S2 прямоугольник представляется типом `S2Region` — `S2LatLngRect`, который описывает прямоугольник в пространстве географических координат (широта/долгота).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/in-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/in-functions.md
index a7887149e99..da6794842a1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/in-functions.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/in-functions.md
@@ -6,12 +6,8 @@ title: 'Функции, реализующие оператор IN'
doc_type: 'reference'
---
-
-
# Функции для реализации оператора IN {#functions-for-implementing-the-in-operator}
-
-
## in, notIn, globalIn, globalNotIn {#in-notin-globalin-globalnotin}
См. раздел [Операторы IN](/sql-reference/operators/in).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/machine-learning-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/machine-learning-functions.md
index 9e0fcd99838..c6f81e08af8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/machine-learning-functions.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/machine-learning-functions.md
@@ -6,30 +6,20 @@ title: 'Функции машинного обучения'
doc_type: 'reference'
---
-
-
# Функции машинного обучения {#machine-learning-functions}
-
-
## evalMLMethod {#evalmlmethod}
Для предсказаний с использованием обученных регрессионных моделей используется функция `evalMLMethod`. См. ссылку в разделе `linearRegression`.
-
-
## stochasticLinearRegression {#stochasticlinearregression}
Агрегатная функция [stochasticLinearRegression](/sql-reference/aggregate-functions/reference/stochasticlinearregression) реализует метод стохастического градиентного спуска с использованием линейной модели и функции потерь MSE. Использует `evalMLMethod` для предсказаний на новых данных.
-
-
## stochasticLogisticRegression {#stochasticlogisticregression}
Агрегатная функция [stochasticLogisticRegression](/sql-reference/aggregate-functions/reference/stochasticlogisticregression) реализует метод стохастического градиентного спуска для задачи бинарной классификации. Использует `evalMLMethod` для предсказания по новым данным.
-
-
## naiveBayesClassifier {#naivebayesclassifier}
Классифицирует входной текст с использованием модели наивного Байеса с n-граммами и сглаживанием Лапласа. Перед использованием модель должна быть настроена в ClickHouse.
@@ -130,7 +120,6 @@ SELECT naiveBayesClassifier('language', 'Как дела?');
**Руководство по обучению модели**
-
**Формат файла**
В человекочитаемом формате, при `n=1` и режиме `token`, модель может выглядеть следующим образом:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/numeric-indexed-vector-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/numeric-indexed-vector-functions.md
index a1b6f973e00..dedb38968fa 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/numeric-indexed-vector-functions.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/numeric-indexed-vector-functions.md
@@ -6,14 +6,10 @@ title: 'Функции NumericIndexedVector'
doc_type: 'reference'
---
-
-
# NumericIndexedVector {#numericindexedvector}
NumericIndexedVector — это абстрактная структура данных, которая инкапсулирует вектор и реализует агрегирующие и покомпонентные операции над векторами. В качестве формата хранения в ней используется Bit-Sliced Index. Теоретические основы и сценарии использования описаны в статье [Large-Scale Metric Computation in Online Controlled Experiment Platform](https://arxiv.org/pdf/2405.08411).
-
-
## BSI {#bit-sliced-index}
В методе хранения BSI (Bit-Sliced Index) данные сохраняются в формате [Bit-Sliced Index](https://dl.acm.org/doi/abs/10.1145/253260.253268), а затем сжимаются с помощью [Roaring Bitmap](https://github.com/RoaringBitmap/RoaringBitmap). Операции агрегации и покомпонентные операции выполняются непосредственно над сжатыми данными, что может значительно повысить эффективность хранения и выполнения запросов.
@@ -27,8 +23,6 @@ NumericIndexedVector — это абстрактная структура дан
- Механизм Bit-Sliced Index преобразует значение в двоичное представление. Для типов с плавающей запятой используется фиксированно-точечное представление, что может привести к потере точности. Точность можно настраивать, задавая количество бит для дробной части; по умолчанию используется 24 бита, чего достаточно для большинства сценариев. Вы можете задать количество бит для целой и дробной части при создании NumericIndexedVector с помощью агрегатной функции groupNumericIndexedVector с суффиксом `-State`.
- Для индексов возможны три состояния: ненулевое значение, нулевое значение и отсутствие. В NumericIndexedVector хранятся только ненулевые и нулевые значения. Кроме того, при покомпонентных операциях между двумя NumericIndexedVector значение отсутствующего индекса трактуется как 0. В сценарии деления результат также равен нулю, если делитель равен нулю.
-
-
## Создание объекта numericIndexedVector {#create-numeric-indexed-vector-object}
Существует два способа создать эту структуру: первый — использовать агрегатную функцию `groupNumericIndexedVector` с суффиксом `-State`.
@@ -37,8 +31,6 @@ NumericIndexedVector — это абстрактная структура дан
Второй способ — построить её из значения типа Map с помощью `numericIndexedVectorBuild`.
Функция `groupNumericIndexedVectorState` позволяет настроить количество целых и дробных битов через параметры, в то время как `numericIndexedVectorBuild` такой возможности не предоставляет.
-
-
## groupNumericIndexedVector {#group-numeric-indexed-vector}
Создает `NumericIndexedVector` из двух столбцов данных и возвращает сумму всех значений как значение типа `Float64`. Если добавить суффикс `State`, возвращает объект `NumericIndexedVector`.
@@ -107,7 +99,6 @@ SELECT groupNumericIndexedVectorStateIf('BSI', 32, 0)(UserID, PlayTime, day = '2
Подробнее см. https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md
*/ }
-
{/*AUTOGENERATED_START*/ }
## numericIndexedVectorAllValueSum {#numericIndexedVectorAllValueSum}
@@ -144,7 +135,6 @@ SELECT numericIndexedVectorAllValueSum(numericIndexedVectorBuild(mapFromArrays([
└─────┘
```
-
## numericIndexedVectorBuild {#numericIndexedVectorBuild}
Появилось в: v25.7
@@ -179,7 +169,6 @@ SELECT numericIndexedVectorBuild(mapFromArrays([1, 2, 3], [10, 20, 30])) AS res,
└─────┴────────────────────────────────────────────────────────────┘
```
-
## numericIndexedVectorCardinality {#numericIndexedVectorCardinality}
Впервые представлена в: v25.7
@@ -214,7 +203,6 @@ SELECT numericIndexedVectorCardinality(numericIndexedVectorBuild(mapFromArrays([
└─────┘
```
-
## numericIndexedVectorGetValue {#numericIndexedVectorGetValue}
Появилась в версии: v25.7
@@ -250,7 +238,6 @@ SELECT numericIndexedVectorGetValue(numericIndexedVectorBuild(mapFromArrays([1,
└─────┘
```
-
## numericIndexedVectorPointwiseAdd {#numericIndexedVectorPointwiseAdd}
Представлен в версии: v25.7
@@ -291,7 +278,6 @@ SELECT
└───────────────────────┴──────────────────┘
```
-
## numericIndexedVectorPointwiseDivide {#numericIndexedVectorPointwiseDivide}
Введён в версии: v25.7
@@ -332,7 +318,6 @@ SELECT
└─────────────┴─────────────────┘
```
-
## numericIndexedVectorPointwiseEqual {#numericIndexedVectorPointwiseEqual}
Введено в: v25.7
@@ -374,7 +359,6 @@ SELECT
└───────┴───────┘
```
-
## numericIndexedVectorPointwiseGreater {#numericIndexedVectorPointwiseGreater}
Появилась в версии: v25.7
@@ -416,7 +400,6 @@ SELECT
└───────────┴───────┘
```
-
## numericIndexedVectorPointwiseGreaterEqual {#numericIndexedVectorPointwiseGreaterEqual}
Введено в: v25.7
@@ -458,7 +441,6 @@ SELECT
└───────────────┴───────────┘
```
-
## numericIndexedVectorPointwiseLess {#numericIndexedVectorPointwiseLess}
Впервые представлено в: v25.7
@@ -500,7 +482,6 @@ SELECT
└───────────┴───────┘
```
-
## numericIndexedVectorPointwiseLessEqual {#numericIndexedVectorPointwiseLessEqual}
Добавлена в: v25.7
@@ -542,7 +523,6 @@ SELECT
└───────────────┴───────────┘
```
-
## numericIndexedVectorPointwiseMultiply {#numericIndexedVectorPointwiseMultiply}
Введено в: v25.7
@@ -583,7 +563,6 @@ SELECT
└───────────────┴──────────────────┘
```
-
## numericIndexedVectorPointwiseNotEqual {#numericIndexedVectorPointwiseNotEqual}
Впервые появился в: v25.7
@@ -625,7 +604,6 @@ SELECT
└───────────────┴───────────┘
```
-
## numericIndexedVectorPointwiseSubtract {#numericIndexedVectorPointwiseSubtract}
Представлено в: v25.7
@@ -666,7 +644,6 @@ SELECT
└────────────────────────┴─────────────────┘
```
-
## numericIndexedVectorShortDebugString {#numericIndexedVectorShortDebugString}
Появилась в версии: v25.7
@@ -702,7 +679,6 @@ SELECT numericIndexedVectorShortDebugString(numericIndexedVectorBuild(mapFromArr
res: {"vector_type":"BSI","index_type":"char8_t","value_type":"char8_t","integer_bit_num":8,"fraction_bit_num":0,"zero_indexes_info":{"cardinality":"0"},"non_zero_indexes_info":{"total_cardinality":"3","all_value_sum":60,"number_of_bitmaps":"8","bitmap_info":{"cardinality":{"0":"0","1":"2","2":"2","3":"2","4":"2","5":"0","6":"0","7":"0"}}}}
```
-
## numericIndexedVectorToMap {#numericIndexedVectorToMap}
Впервые появилась в версии v25.7
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/overview.md
index 2f631d712db..391fcbcf39b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/overview.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/overview.md
@@ -7,8 +7,6 @@ title: 'Обычные функции'
doc_type: 'reference'
---
-
-
# Обычные функции {#regular-functions}
Существует по меньшей мере\* два типа функций — обычные функции (их просто называют «функциями») и агрегатные функции. Это совершенно разные понятия. Обычные функции работают так, как если бы они применялись к каждой строке отдельно (для каждой строки результат функции не зависит от остальных строк). Агрегатные функции накапливают набор значений из различных строк (то есть зависят от всего набора строк).
@@ -19,26 +17,18 @@ doc_type: 'reference'
Существует третий тип функций, к которому относится функция ['arrayJoin'](../functions/array-join.md). Отдельно также можно упомянуть [табличные функции](../table-functions/index.md).
:::
-
-
## Строгая типизация {#strong-typing}
В отличие от стандартного SQL, ClickHouse использует строгую типизацию. Другими словами, он не выполняет неявные преобразования типов. Каждая функция работает с определённым набором типов. Это означает, что иногда необходимо использовать функции приведения типов.
-
-
## Устранение общих подвыражений {#common-subexpression-elimination}
Все выражения в запросе, которые имеют одинаковое AST (одинаковое представление или один и тот же результат синтаксического разбора), считаются эквивалентными по значению. Такие выражения объединяются и выполняются один раз. Идентичные подзапросы также устраняются таким образом.
-
-
## Типы результатов {#types-of-results}
Все функции возвращают одно значение как результат (не несколько значений и не отсутствие значения). Тип возвращаемого значения обычно определяется только типами аргументов, а не их значениями. Исключениями являются функция tupleElement (оператор a.N) и функция toFixedString.
-
-
## Константы {#constants}
Для упрощения реализации некоторые функции могут работать только с константами для части своих аргументов. Например, правый аргумент оператора LIKE должен быть константой.
@@ -48,8 +38,6 @@ doc_type: 'reference'
Функции могут быть реализованы по-разному для константных и неконстантных аргументов (выполняется разный код). При этом результаты для константы и для обычного столбца, содержащего одно и то же значение во всех строках, должны совпадать.
-
-
## Обработка NULL {#null-processing}
Функции ведут себя следующим образом:
@@ -57,14 +45,10 @@ doc_type: 'reference'
- Если хотя бы один из аргументов функции имеет значение `NULL`, результат функции также будет `NULL`.
- Особое поведение, описанное отдельно в описании каждой функции. В исходном коде ClickHouse эти функции имеют `UseDefaultImplementationForNulls=false`.
-
-
## Константность {#constancy}
Функции не могут изменять значения своих аргументов — любые изменения отражаются только в возвращаемом результате. Поэтому результат вычисления отдельных функций не зависит от порядка, в котором функции указаны в запросе.
-
-
## Функции высшего порядка {#higher-order-functions}
### Оператор `->` и функции lambda(params, expr) {#arrow-operator-and-lambda}
@@ -82,7 +66,6 @@ str -> str != Referer
Для некоторых функций первый аргумент (лямбда-функцию) можно опустить. В этом случае подразумевается тождественное отображение.
-
## Пользовательские функции (UDFs) {#user-defined-functions-udfs}
ClickHouse поддерживает пользовательские функции. См. [UDFs](../functions/udf.md).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md
index 04a984529e4..44947a01799 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md
@@ -10,7 +10,6 @@ keywords: ['временное окно']
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Функции временных окон {#time-window-functions}
@@ -26,7 +25,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
См.: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md
*/ }
-
{/*AUTOGENERATED_START*/ }
## hop {#hop}
@@ -66,7 +64,6 @@ SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
('2024-07-03 00:00:00','2024-07-05 00:00:00')
```
-
## hopEnd {#hopEnd}
Добавлена в версии: v22.1
@@ -104,7 +101,6 @@ SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
2024-07-05 00:00:00
```
-
## hopStart {#hopStart}
Впервые появилась в: v22.1
@@ -142,7 +138,6 @@ SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
2024-07-03 00:00:00
```
-
## tumble {#tumble}
Добавлено в: v21.12
@@ -177,7 +172,6 @@ SELECT tumble(now(), toIntervalDay('1'))
('2024-07-04 00:00:00','2024-07-05 00:00:00')
```
-
## tumbleEnd {#tumbleEnd}
Добавлена в версии: v22.1
@@ -212,7 +206,6 @@ SELECT tumbleEnd(now(), toIntervalDay('1'))
2024-07-05 00:00:00
```
-
## tumbleStart {#tumbleStart}
Появилась в версии v22.1
@@ -249,7 +242,6 @@ SELECT tumbleStart(now(), toIntervalDay('1'))
{/*AUTOGENERATED_END*/ }
-
## Связанные материалы {#related-content}
- [Руководства по сценариям использования временных рядов](/use-cases/time-series)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md
index 8071f9df8d7..907f63e3fe5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md
@@ -16,7 +16,6 @@ doc_type: 'reference'
См.: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md
*/ }
-
{/*AUTOGENERATED_START*/ }
## flattenTuple {#flattenTuple}
@@ -57,7 +56,6 @@ SELECT flattenTuple(t) FROM tab;
└────────────────┘
```
-
## tuple {#tuple}
Впервые представлена в версии: v
@@ -92,7 +90,6 @@ SELECT tuple(1, 2)
(1,2)
```
-
## tupleConcat {#tupleConcat}
Впервые представлена в: v23.8
@@ -125,7 +122,6 @@ SELECT tupleConcat((1, 2), ('a',), (true, false))
(1, 2, 'a', true, false)
```
-
## tupleDivide {#tupleDivide}
Появилась в: v21.11
@@ -163,7 +159,6 @@ SELECT tupleDivide((1, 2), (2, 3))
(0.5, 0.6666666666666666)
```
-
## tupleDivideByNumber {#tupleDivideByNumber}
Добавлена в версии: v21.11
@@ -201,7 +196,6 @@ SELECT tupleDivideByNumber((1, 2), 0.5)
(2, 4)
```
-
## tupleElement {#tupleElement}
Введена в версии: v1.1
@@ -277,7 +271,6 @@ SELECT (1, 'hello').2
Здравствуйте
```
-
## tupleHammingDistance {#tupleHammingDistance}
Впервые представлена в: v21.1
@@ -341,7 +334,6 @@ SELECT tupleHammingDistance(wordShingleMinHash(string), wordShingleMinHashCaseIn
2
```
-
## tupleIntDiv {#tupleIntDiv}
Введено в: v23.8
@@ -387,7 +379,6 @@ SELECT tupleIntDiv((15, 10, 5), (5.5, 5.5, 5.5))
(2, 1, 0)
```
-
## tupleIntDivByNumber {#tupleIntDivByNumber}
Впервые появилась в версии v23.8
@@ -433,7 +424,6 @@ SELECT tupleIntDivByNumber((15.2, 10.7, 5.5), 5.8)
(2, 1, 0)
```
-
## tupleIntDivOrZero {#tupleIntDivOrZero}
Добавлена в версии: v23.8
@@ -469,7 +459,6 @@ SELECT tupleIntDivOrZero((5, 10, 15), (0, 0, 0))
(0, 0, 0)
```
-
## tupleIntDivOrZeroByNumber {#tupleIntDivOrZeroByNumber}
Введена в версии: v23.8
@@ -515,7 +504,6 @@ SELECT tupleIntDivOrZeroByNumber((15, 10, 5), 0)
(0, 0, 0)
```
-
## tupleMinus {#tupleMinus}
Добавлена в версии v21.11
@@ -551,7 +539,6 @@ SELECT tupleMinus((1, 2), (2, 3))
(-1, -1)
```
-
## tupleModulo {#tupleModulo}
Появилась в версии: v23.8
@@ -585,7 +572,6 @@ SELECT tupleModulo((15, 10, 5), (5, 3, 2))
(0, 1, 1)
```
-
## tupleModuloByNumber {#tupleModuloByNumber}
Добавлена в: v23.8
@@ -619,7 +605,6 @@ SELECT tupleModuloByNumber((15, 10, 5), 2)
(1, 0, 1)
```
-
## tupleMultiply {#tupleMultiply}
Появилась в версии: v21.11
@@ -653,7 +638,6 @@ SELECT tupleMultiply((1, 2), (2, 3))
(2, 6)
```
-
## tupleMultiplyByNumber {#tupleMultiplyByNumber}
Введена в версии: v21.11
@@ -687,7 +671,6 @@ SELECT tupleMultiplyByNumber((1, 2), -2.1)
(-2.1, -4.2)
```
-
## tupleNames {#tupleNames}
Впервые появилась в версии: v
@@ -717,7 +700,6 @@ SELECT tupleNames(tuple(1 as a, 2 as b))
['a','b']
```
-
## tupleNegate {#tupleNegate}
Добавлена в версии: v21.11
@@ -750,7 +732,6 @@ SELECT tupleNegate((1, 2))
(-1, -2)
```
-
## tuplePlus {#tuplePlus}
Появился в версии: v21.11
@@ -786,7 +767,6 @@ SELECT tuplePlus((1, 2), (2, 3))
(3, 5)
```
-
## tupleToNameValuePairs {#tupleToNameValuePairs}
Впервые появилась в версии: v21.9
@@ -833,7 +813,6 @@ SELECT tupleToNameValuePairs(tuple(3, 2, 1))
{/*АВТОСГЕНЕРИРОВАНО_КОНЕЦ*/ }
-
## untuple {#untuple}
Выполняет синтаксическую подстановку элементов [tuple](/sql-reference/data-types/tuple) на месте вызова.
@@ -910,7 +889,6 @@ SELECT untuple((* EXCEPT (v2, v3),)) FROM kv;
└─────┴────┴────┴────┴───────────┘
```
-
## Функции расстояния {#distance-functions}
Все поддерживаемые функции описаны в [документации по функциям расстояния](../../sql-reference/functions/distance-functions.md).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md
index e6f3a5d4717..b8f74b7fb65 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md
@@ -1,5 +1,5 @@
---
-description: 'Документация по функциям кортежей и Map'
+description: 'Документация по функциям Map и Tuple'
sidebar_label: 'Map'
slug: /sql-reference/functions/tuple-map-functions
title: 'Функции Map'
@@ -8,7 +8,7 @@ doc_type: 'reference'
## map {#map}
-Создаёт значение типа [Map(key, value)](../data-types/map.md) из пар «ключ–значение».
+Создаёт значение типа [Map(key, value)](../data-types/map.md) из пар ключ–значение.
**Синтаксис**
@@ -18,12 +18,12 @@ map(key1, value1[, key2, value2, ...])
**Аргументы**
-* `key_n` — Ключи элементов Map. Любой тип, поддерживаемый как тип ключа для [Map](../data-types/map.md).
-* `value_n` — Значения элементов Map. Любой тип, поддерживаемый как тип значения для [Map](../data-types/map.md).
+* `key_n` — ключи элементов `Map`. Любой тип, поддерживаемый как тип ключа для [Map](../data-types/map.md).
+* `value_n` — значения элементов `Map`. Любой тип, поддерживаемый как тип значения для [Map](../data-types/map.md).
**Возвращаемое значение**
-* Map, содержащий пары `key:value`. [Map(key, value)](../data-types/map.md).
+* Тип `Map`, содержащий пары `key:value`. [Map(key, value)](../data-types/map.md).
**Примеры**
@@ -45,7 +45,7 @@ SELECT map('key1', number, 'key2', number * 2) FROM numbers(3);
## mapFromArrays {#mapfromarrays}
-Создает значение типа `Map` из массива (или `Map`) ключей и массива (или `Map`) значений.
+Создает map из массива (или map) ключей и массива (или map) значений.
Функция является удобной альтернативой синтаксису `CAST([...], 'Map(key_type, value_type)')`.
Например, вместо того чтобы писать
@@ -61,16 +61,16 @@ SELECT map('key1', number, 'key2', number * 2) FROM numbers(3);
mapFromArrays(keys, values)
```
-Псевдоним: `MAP_FROM_ARRAYS(keys, values)`
+Alias: `MAP_FROM_ARRAYS(keys, values)`
**Аргументы**
-* `keys` — Массив или отображение ключей типа [Array](../data-types/array.md) или [Map](../data-types/map.md), из которых создаётся значение типа Map. Если `keys` — массив, допускаются типы `Array(Nullable(T))` или `Array(LowCardinality(Nullable(T)))` при условии, что он не содержит значения NULL.
-* `values` — Массив или отображение значений типа [Array](../data-types/array.md) или [Map](../data-types/map.md), из которых создаётся значение типа Map.
+* `keys` — массив или map ключей ([Array](../data-types/array.md) или [Map](../data-types/map.md)), из которых формируется результирующий map. Если `keys` — массив, допускаются типы `Array(Nullable(T))` или `Array(LowCardinality(Nullable(T)))` при условии, что он не содержит значения NULL.
+* `values` — массив или map значений ([Array](../data-types/array.md) или [Map](../data-types/map.md)), из которых формируется результирующий map.
**Возвращаемое значение**
-* Отображение (Map) с ключами и значениями, сформированными из массива ключей и массива/отображения значений.
+* Map, в котором ключи и значения сформированы из массива ключей и массива/map значений.
**Пример**
@@ -88,7 +88,7 @@ SELECT mapFromArrays(['a', 'b', 'c'], [1, 2, 3])
└───────────────────────────────────────────┘
```
-`mapFromArrays` также принимает аргументы типа [Map](../data-types/map.md). Во время выполнения они преобразуются в массив кортежей.
+`mapFromArrays` также принимает аргументы типа [Map](../data-types/map.md). Во время выполнения они приводятся к массиву из кортежей.
```sql
SELECT mapFromArrays([1, 2, 3], map('a', 1, 'b', 2, 'c', 3))
@@ -117,7 +117,7 @@ SELECT mapFromArrays(map('a', 1, 'b', 2, 'c', 3), [1, 2, 3])
## extractKeyValuePairs {#extractkeyvaluepairs}
Преобразует строку с парами ключ-значение в [Map(String, String)](../data-types/map.md).
-Разбор строки устойчив к «шуму» (например, в журналах/логах).
+Парсинг устойчив к «шуму» (например, в файлах логов).
Пары ключ-значение во входной строке состоят из ключа, за которым следует разделитель ключ-значение и значение.
Пары ключ-значение разделяются разделителем пар.
Ключи и значения могут быть заключены в кавычки.
@@ -135,15 +135,15 @@ extractKeyValuePairs(data[, key_value_delimiter[, pair_delimiter[, quoting_chara
**Аргументы**
-* `data` — Строка, из которой извлекаются пары ключ–значение. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md).
-* `key_value_delimiter` — Одиночный символ, разделяющий ключи и значения. По умолчанию `:`. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md).
-* `pair_delimiters` — Набор символов, разделяющих пары. По умолчанию ` `, `,` и `;`. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md).
-* `quoting_character` — Одиночный символ, используемый в качестве символа-кавычки. По умолчанию `"`. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md).
-* `unexpected_quoting_character_strategy` — Стратегия обработки символов-кавычек в неожиданных местах во время фаз `read_key` и `read_value`. Возможные значения: "invalid", "accept" и "promote". `invalid` отбросит ключ/значение и вернёт состояние `WAITING_KEY`. `accept` будет трактовать символ как обычный. `promote` переведёт состояние в `READ_QUOTED_{KEY/VALUE}` и продолжит обработку со следующего символа.
+* `data` — строка, из которой извлекаются пары ключ-значение. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md).
+* `key_value_delimiter` — одиночный символ, разделяющий ключи и значения. По умолчанию `:`. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md).
+* `pair_delimiters` — набор символов, разделяющих пары. По умолчанию ` `, `,` и `;`. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md).
+* `quoting_character` — одиночный символ, используемый в качестве кавычки. По умолчанию `"`. [String](../data-types/string.md) или [FixedString](../data-types/fixedstring.md).
+* `unexpected_quoting_character_strategy` — стратегия обработки кавычек в неожиданных местах на этапах `read_key` и `read_value`. Возможные значения: `invalid`, `accept` и `promote`. `invalid` отбросит ключ/значение и вернётся в состояние `WAITING_KEY`. `accept` будет обрабатывать символ как обычный. `promote` перейдёт в состояние `READ_QUOTED_{KEY/VALUE}` и начнёт обработку со следующего символа.
**Возвращаемые значения**
-* Набор пар ключ–значение. Тип: [Map(String, String)](../data-types/map.md)
+* Массив пар ключ-значение. Тип: [Map(String, String)](../data-types/map.md)
**Примеры**
@@ -161,7 +161,7 @@ SELECT extractKeyValuePairs('name:neymar, age:31 team:psg,nationality:brazil') A
└─────────────────────────────────────────────────────────────────────────┘
```
-С одинарной кавычкой `'` в качестве символа кавычания:
+С одинарной кавычкой `'` в качестве символа цитирования:
```sql
SELECT extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') AS kv
@@ -175,7 +175,7 @@ SELECT extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:bra
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```
-Примеры параметра unexpected_quoting_character_strategy:
+Примеры unexpected_quoting_character_strategy:
unexpected_quoting_character_strategy=invalid
@@ -243,7 +243,7 @@ SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'PROMOTE') AS kv;
└──────────────┘
```
-Последовательности экранирования при отключённой поддержке экранирования:
+Escape-последовательности при отсутствии поддержки:
```sql
SELECT extractKeyValuePairs('age:a\\x0A\\n\\0') AS kv
@@ -257,7 +257,7 @@ SELECT extractKeyValuePairs('age:a\\x0A\\n\\0') AS kv
└────────────────────────┘
```
-Чтобы восстановить строковые пары ключ–значение Map, сериализованные с помощью `toString`:
+Чтобы восстановить пары ключ–значение строковой карты, сериализованные с помощью `toString`:
```sql
SELECT
@@ -270,7 +270,7 @@ FORMAT Vertical;
Результат:
```response
-Row 1:
+Строка 1:
──────
m: {'John':'33','Paula':'31'}
map_serialized: {'John':'33','Paula':'31'}
@@ -281,21 +281,21 @@ map_restored: {'John':'33','Paula':'31'}
То же, что и `extractKeyValuePairs`, но с поддержкой экранирования.
-Поддерживаемые последовательности экранирования: `\x`, `\N`, `\a`, `\b`, `\e`, `\f`, `\n`, `\r`, `\t`, `\v` и `\0`.
-Нестандартные последовательности экранирования возвращаются без изменений (включая обратную косую черту), за исключением следующих:
-`\\`, `'`, `"`, «backtick» (обратная кавычка), `/`, `=` или управляющие символы ASCII (c <= 31).
+Поддерживаемые escape-последовательности: `\x`, `\N`, `\a`, `\b`, `\e`, `\f`, `\n`, `\r`, `\t`, `\v` и `\0`.
+Нестандартные escape-последовательности возвращаются как есть (включая обратный слэш), за исключением следующих:
+`\\`, `'`, `"`, `backtick` (обратная кавычка), `/`, `=` или управляющие символы ASCII (c <= 31).
-Эта функция подходит для случаев, когда предварительное и последующее экранирование не подходят. Например, рассмотрим следующую
-входную строку: `a: "aaaa\"bbb"`. Ожидаемый результат: `a: aaaa\"bbbb`.
+Эта функция подходит для случаев, когда предварительное и последующее экранирование неприменимы. Например, рассмотрим следующую
+входную строку: `a: "aaaa\"bbb"`. Ожидаемый вывод: `a: aaaa\"bbbb`.
-* Предварительное экранирование: при предварительном экранировании получится: `a: "aaaa"bbb"`, а затем `extractKeyValuePairs` вернёт: `a: aaaa`
-* Последующее экранирование: `extractKeyValuePairs` вернёт `a: aaaa\`, и последующее экранирование сохранит это без изменений.
+* Предварительное экранирование: при предварительном экранировании будет получен вывод: `a: "aaaa"bbb"`, а `extractKeyValuePairs` затем вернёт: `a: aaaa`
+* Последующее экранирование: `extractKeyValuePairs` вернёт `a: aaaa\`, и последующее экранирование оставит строку без изменений.
-Начальные последовательности экранирования будут пропускаться в ключах и будут считаться некорректными для значений.
+Начальные escape-последовательности будут пропущены в ключах и будут считаться недопустимыми для значений.
**Примеры**
-Последовательности экранирования при включённой поддержке экранирования:
+Escape-последовательности при включённой поддержке экранирования:
```sql
SELECT extractKeyValuePairsWithEscaping('age:a\\x0A\\n\\0') AS kv
@@ -311,7 +311,7 @@ SELECT extractKeyValuePairsWithEscaping('age:a\\x0A\\n\\0') AS kv
## mapAdd {#mapadd}
-Собирает все ключи и суммирует соответствующие им значения.
+Собирает все ключи и суммирует соответствующие значения.
**Синтаксис**
@@ -321,11 +321,11 @@ mapAdd(arg1, arg2 [, ...])
**Аргументы**
-Аргументы — это [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple) из двух [arrays](/sql-reference/data-types/array), где элементы в первом массиве представляют ключи, а второй массив содержит значения для каждого ключа. Все массивы ключей должны иметь один и тот же тип, а все массивы значений должны содержать элементы, которые приводятся к одному типу ([Int64](/sql-reference/data-types/int-uint#integer-ranges), [UInt64](/sql-reference/data-types/int-uint#integer-ranges) или [Float64](/sql-reference/data-types/float)). Общий приведённый тип используется как тип результирующего массива.
+Аргументы представляют собой [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple) из двух [arrays](/sql-reference/data-types/array), где элементы в первом массиве являются ключами, а второй массив содержит значения для каждого ключа. Все массивы ключей должны иметь одинаковый тип, а все массивы значений должны содержать элементы, которые могут быть приведены к одному типу ([Int64](/sql-reference/data-types/int-uint#integer-ranges), [UInt64](/sql-reference/data-types/int-uint#integer-ranges) или [Float64](/sql-reference/data-types/float)). Общий приведённый тип используется как тип для результирующего массива.
**Возвращаемое значение**
-* В зависимости от аргументов функция возвращает один [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple), где первый массив содержит отсортированные ключи, а второй массив содержит значения.
+* В зависимости от аргументов возвращается один [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple), где первый массив содержит отсортированные ключи, а второй массив — значения.
**Пример**
@@ -343,7 +343,7 @@ SELECT mapAdd(map(1,1), map(1,1));
└──────────────────────────────┘
```
-Запрос с использованием кортежа:
+Запрос с кортежем:
```sql
SELECT mapAdd(([toUInt8(1), 2], [1, 1]), ([toUInt8(1), 2], [1, 1])) AS res, toTypeName(res) AS type;
@@ -364,16 +364,16 @@ SELECT mapAdd(([toUInt8(1), 2], [1, 1]), ([toUInt8(1), 2], [1, 1])) AS res, toTy
**Синтаксис**
```sql
-mapSubtract(Кортеж(Массив, Массив), Кортеж(Массив, Массив) [, ...])
+mapSubtract(Tuple(Array, Array), Tuple(Array, Array) [, ...])
```
**Аргументы**
-Аргументы — это [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple) из двух [array](/sql-reference/data-types/array), где элементы первого массива являются ключами, а второй массив содержит значения для каждого ключа. Все массивы ключей должны иметь одинаковый тип, а все массивы значений должны содержать элементы, которые могут быть приведены к одному типу ([Int64](/sql-reference/data-types/int-uint#integer-ranges), [UInt64](/sql-reference/data-types/int-uint#integer-ranges) или [Float64](/sql-reference/data-types/float)). Общий приведённый тип используется как тип результирующего массива.
+Аргументы — это [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple) из двух [array](/sql-reference/data-types/array), где элементы первого массива представляют ключи, а второй массив содержит значения для каждого ключа. Все массивы ключей должны иметь один и тот же тип, а все массивы значений должны содержать элементы, которые могут быть приведены к одному типу ([Int64](/sql-reference/data-types/int-uint#integer-ranges), [UInt64](/sql-reference/data-types/int-uint#integer-ranges) или [Float64](/sql-reference/data-types/float)). Общий приведённый тип используется как тип для результирующего массива.
**Возвращаемое значение**
-* В зависимости от аргументов функция возвращает один [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple), где первый массив содержит отсортированные ключи, а второй массив содержит значения.
+* В зависимости от аргументов функция возвращает [map](../data-types/map.md) или [tuple](/sql-reference/data-types/tuple), где первый массив содержит отсортированные ключи, а второй массив содержит значения.
**Пример**
@@ -391,7 +391,7 @@ SELECT mapSubtract(map(1,1), map(1,1));
└───────────────────────────────────┘
```
-Запрос с картой кортежей:
+Запрос с отображением кортежей:
```sql
SELECT mapSubtract(([toUInt8(1), 2], [toInt32(1), 1]), ([toUInt8(1), 2], [toInt32(2), 1])) AS res, toTypeName(res) AS type;
@@ -407,11 +407,11 @@ SELECT mapSubtract(([toUInt8(1), 2], [toInt32(1), 1]), ([toUInt8(1), 2], [toInt3
## mapPopulateSeries {#mappopulateseries}
-Заполняет отсутствующие пары ключ-значение в `map` с целочисленными ключами.
-Чтобы можно было расширять диапазон ключей за пределы наибольшего значения, можно задать максимальный ключ.
-Более точно, функция возвращает `map`, в которой ключи образуют последовательность от наименьшего до наибольшего ключа (или до аргумента `max`, если он указан) с шагом 1 и соответствующими значениями.
-Если значение для ключа не задано, в качестве результата используется значение по умолчанию.
-Если ключи повторяются, с ключом связывается только первое значение (в порядке появления).
+Заполняет отсутствующие пары ключ–значение в отображении (map) с целочисленными ключами.
+Чтобы можно было расширять множество ключей за пределы наибольшего значения, можно задать максимальный ключ.
+Более конкретно, функция возвращает отображение, в котором ключи образуют последовательность от наименьшего до наибольшего ключа (или аргумента `max`, если он указан) с шагом 1 и соответствующими значениями.
+Если для ключа не задано значение, используется значение по умолчанию.
+В случае повторяющихся ключей с каждым ключом связывается только первое значение (в порядке появления).
**Синтаксис**
@@ -420,13 +420,13 @@ mapPopulateSeries(map[, max])
mapPopulateSeries(keys, values[, max])
```
-Для аргументов-массивов количество элементов в `keys` и `values` должно быть одинаковым для каждой строки.
+Для аргументов-массивов количество элементов в `keys` и `values` должно совпадать для каждой строки.
**Аргументы**
-В качестве аргументов используется либо [Map](../data-types/map.md), либо две [Array](/sql-reference/data-types/array), где первый массив содержит ключи, а второй — значения для каждого ключа.
+Аргументы — это [Map](../data-types/map.md) или два массива [Array](/sql-reference/data-types/array), где первый массив содержит ключи, а второй — значения для каждого ключа.
-Массивы для отображения:
+Отображаемые массивы:
* `map` — Map с целочисленными ключами. [Map](../data-types/map.md).
@@ -434,11 +434,11 @@ mapPopulateSeries(keys, values[, max])
* `keys` — Массив ключей. [Array](/sql-reference/data-types/array)([Int](/sql-reference/data-types/int-uint#integer-ranges)).
* `values` — Массив значений. [Array](/sql-reference/data-types/array)([Int](/sql-reference/data-types/int-uint#integer-ranges)).
-* `max` — Максимальное значение ключа. Необязательный аргумент. [Int8, Int16, Int32, Int64, Int128, Int256](/sql-reference/data-types/int-uint#integer-ranges).
+* `max` — Максимальное значение ключа. Необязательный параметр. [Int8, Int16, Int32, Int64, Int128, Int256](/sql-reference/data-types/int-uint#integer-ranges).
**Возвращаемое значение**
-* В зависимости от аргументов возвращается [Map](../data-types/map.md) или [Tuple](/sql-reference/data-types/tuple) из двух [Array](/sql-reference/data-types/array): ключи в отсортированном порядке и значения, соответствующие этим ключам.
+* В зависимости от аргументов — [Map](../data-types/map.md) или [Tuple](/sql-reference/data-types/tuple) из двух [Array](/sql-reference/data-types/array): ключи в отсортированном порядке и значения, соответствующие этим ключам.
**Пример**
@@ -456,7 +456,7 @@ SELECT mapPopulateSeries(map(1, 10, 5, 20), 6);
└─────────────────────────────────────────┘
```
-Запрос с сопоставлением массивов:
+Запрос с сопоставленными массивами:
```sql
SELECT mapPopulateSeries([1,2,4], [11,22,44], 5) AS res, toTypeName(res) AS type;
@@ -472,10 +472,10 @@ SELECT mapPopulateSeries([1,2,4], [11,22,44], 5) AS res, toTypeName(res) AS type
## mapKeys {#mapkeys}
-Возвращает ключи заданного `Map`.
+Возвращает ключи заданной `Map`.
-Эта функция может быть оптимизирована с помощью настройки [optimize_functions_to_subcolumns](/operations/settings/settings#optimize_functions_to_subcolumns).
-При включённой настройке функция читает только подколонку [keys](/sql-reference/data-types/map#reading-subcolumns-of-map) вместо всей `Map`.
+Эту функцию можно оптимизировать с помощью настройки [optimize_functions_to_subcolumns](/operations/settings/settings#optimize_functions_to_subcolumns).
+При включённой настройке функция читает только подстолбец [keys](/sql-reference/data-types/map#reading-subcolumns-of-map) вместо всей `Map`.
Запрос `SELECT mapKeys(m) FROM table` преобразуется в `SELECT m.keys FROM table`.
**Синтаксис**
@@ -486,11 +486,11 @@ mapKeys(map)
**Аргументы**
-* `map` — значение типа [Map](../data-types/map.md).
+* `map` — отображение. [Map](../data-types/map.md).
**Возвращаемое значение**
-* Массив, содержащий все ключи из `map`. [Array](../data-types/array.md).
+* Массив, содержащий все ключи из отображения `map`. [Array](../data-types/array.md).
**Пример**
@@ -515,7 +515,7 @@ SELECT mapKeys(a) FROM tab;
## mapContains {#mapcontains}
-Возвращает, содержится ли заданный ключ в заданном отображении.
+Возвращает, содержится ли заданный ключ в указанном отображении.
**Синтаксис**
@@ -527,7 +527,7 @@ mapContains(map, key)
**Аргументы**
-* `map` — отображение. [Map](../data-types/map.md).
+* `map` — Map. [Map](../data-types/map.md).
* `key` — ключ. Тип должен совпадать с типом ключа в `map`.
**Возвращаемое значение**
@@ -566,12 +566,12 @@ mapContainsKeyLike(map, pattern)
**Аргументы**
-* `map` — карта. [Map](../data-types/map.md).
-* `pattern` — строковый шаблон для сопоставления.
+* `map` — Map. [Map](../data-types/map.md).
+* `pattern` - Строковый шаблон для сопоставления.
**Возвращаемое значение**
-* `1`, если `map` содержит ключ, соответствующий заданному шаблону, `0` — в противном случае.
+* `1`, если `map` содержит `key`, соответствующий заданному шаблону, `0` — если не содержит.
**Пример**
@@ -596,7 +596,7 @@ SELECT mapContainsKeyLike(a, 'a%') FROM tab;
## mapExtractKeyLike {#mapextractkeylike}
-Для `map` со строковыми ключами и шаблоном `LIKE` функция возвращает `map`, содержащую элементы, ключи которых соответствуют этому шаблону.
+Для map со строковыми ключами и шаблоном `LIKE` эта функция возвращает map с элементами, ключи которых соответствуют заданному шаблону.
**Синтаксис**
@@ -606,12 +606,12 @@ mapExtractKeyLike(map, pattern)
**Аргументы**
-* `map` — значение типа [Map](../data-types/map.md).
-* `pattern` - строковый шаблон для сопоставления.
+* `map` — Map. [Map](../data-types/map.md).
+* `pattern` - Строковый шаблон для сопоставления.
**Возвращаемое значение**
-* Map, содержащий элементы, ключ которых соответствует указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустой Map.
+* Map, содержащая элементы, ключи которых соответствуют указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустая Map.
**Пример**
@@ -636,7 +636,7 @@ SELECT mapExtractKeyLike(a, 'a%') FROM tab;
## mapValues {#mapvalues}
-Возвращает значения заданной карты.
+Возвращает значения указанной карты (Map).
Эта функция может быть оптимизирована с помощью настройки [optimize_functions_to_subcolumns](/operations/settings/settings#optimize_functions_to_subcolumns).
При включённой настройке функция считывает только подстолбец [values](/sql-reference/data-types/map#reading-subcolumns-of-map) вместо всей карты.
@@ -650,11 +650,11 @@ mapValues(map)
**Аргументы**
-* `map` — отображение. [Map](../data-types/map.md).
+* `map` — `Map`. [Map](../data-types/map.md).
**Возвращаемое значение**
-* Массив, содержащий все значения отображения `map`. [Array](../data-types/array.md).
+* Массив, содержащий все значения из `map`. [Array](../data-types/array.md).
**Пример**
@@ -679,7 +679,7 @@ SELECT mapValues(a) FROM tab;
## mapContainsValue {#mapcontainsvalue}
-Возвращает, содержится ли заданное значение в указанном отображении (map).
+Возвращает, содержится ли заданный ключ в указанной карте.
**Синтаксис**
@@ -691,8 +691,8 @@ mapContainsValue(map, value)
**Аргументы**
-* `map` — Значение типа Map. [Map](../data-types/map.md).
-* `value` — Значение. Тип должен совпадать с типом значений в `map`.
+* `map` — Map. [Map](../data-types/map.md).
+* `value` — Значение. Тип должен совпадать с типом значения `map`.
**Возвращаемое значение**
@@ -725,17 +725,17 @@ SELECT mapContainsValue(a, '11') FROM tab;
**Синтаксис**
```sql
-mapСодержитЗначениеПоШаблону(map, pattern)
+mapContainsValueLike(map, pattern)
```
**Аргументы**
-* `map` — карта. См. [Map](../data-types/map.md).
-* `pattern` - строковый шаблон для сопоставления.
+* `map` — Map. [Map](../data-types/map.md).
+* `pattern` - Строковый шаблон для сопоставления.
**Возвращаемое значение**
-* `1`, если `map` содержит `value`, удовлетворяющее указанному шаблону, иначе `0`.
+* `1`, если `map` содержит `value`, соответствующее указанному шаблону, `0` в противном случае.
**Пример**
@@ -760,7 +760,7 @@ SELECT mapContainsValueLike(a, 'a%') FROM tab;
## mapExtractValueLike {#mapextractvaluelike}
-Для карты со строковыми значениями и шаблоном LIKE эта функция возвращает карту с элементами, значения которых соответствуют шаблону.
+Получив map со строковыми значениями и шаблоном LIKE, функция возвращает map с элементами, чьи значения соответствуют этому шаблону.
**Синтаксис**
@@ -770,12 +770,12 @@ mapExtractValueLike(map, pattern)
**Аргументы**
-* `map` — значение типа Map. См. [Map](../data-types/map.md).
-* `pattern` - строковый шаблон для сопоставления.
+* `map` — Map. [Map](../data-types/map.md).
+* `pattern` - Строковый шаблон для сопоставления.
**Возвращаемое значение**
-* Map, содержащий элементы, значения которых соответствуют указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустой Map.
+* Map, содержащая элементы, значения которых соответствуют указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустая Map.
**Пример**
@@ -800,7 +800,7 @@ SELECT mapExtractValueLike(a, 'a%') FROM tab;
## mapApply {#mapapply}
-Применяет функцию к каждому элементу карты (Map).
+Применяет функцию к каждому элементу карты.
**Синтаксис**
@@ -810,12 +810,12 @@ mapApply(func, map)
**Аргументы**
-* `func` — [лямбда-функция](/sql-reference/functions/overview#higher-order-functions).
+* `func` — [lambda-функция](/sql-reference/functions/overview#higher-order-functions).
* `map` — [Map](../data-types/map.md).
**Возвращаемое значение**
-* Возвращает отображение, полученное из исходного отображения путём применения `func(map1[i], ..., mapN[i])` к каждому элементу.
+* Возвращает объект Map, полученный из исходного объекта Map путём применения `func(map1[i], ..., mapN[i])` к каждому элементу.
**Пример**
@@ -842,7 +842,7 @@ FROM
## mapFilter {#mapfilter}
-Фильтрует отображение (map), применяя функцию к каждому его элементу.
+Фильтрует map, применяя функцию к каждому элементу карты.
**Синтаксис**
@@ -852,12 +852,12 @@ mapFilter(func, map)
**Аргументы**
-* `func` — [лямбда-функция](/sql-reference/functions/overview#higher-order-functions).
+* `func` - [лямбда-функция](/sql-reference/functions/overview#higher-order-functions).
* `map` — [Map](../data-types/map.md).
**Возвращаемое значение**
-* Возвращает объект типа Map, который содержит только те элементы `map`, для которых `func(map1[i], ..., mapN[i])` возвращает значение, отличное от 0.
+* Возвращает map, содержащий только те элементы из `map`, для которых `func(map1[i], ..., mapN[i])` возвращает значение, не равное 0.
**Пример**
@@ -917,8 +917,8 @@ SELECT mapUpdate(map('key1', 0, 'key3', 0), map('key1', 10, 'key2', 10)) AS map;
## mapConcat {#mapconcat}
-Объединяет несколько отображений (map) на основе равенства их ключей.
-Если элементы с одинаковым ключом присутствуют более чем в одном входном отображении, все элементы добавляются в результирующее отображение, но только первый из них доступен через оператор `[]`.
+Объединяет несколько map на основе совпадения их ключей.
+Если элементы с одинаковым ключом присутствуют более чем в одной входной map, все элементы добавляются в результирующую map, но только первый элемент доступен через оператор `[]`.
**Синтаксис**
@@ -932,7 +932,7 @@ mapConcat(maps)
**Возвращаемое значение**
-* Возвращает значение типа Map, полученное конкатенацией значений Map, переданных в качестве аргументов.
+* Возвращает значение типа Map, полученное объединением карт, переданных в качестве аргументов.
**Примеры**
@@ -966,11 +966,11 @@ SELECT mapConcat(map('key1', 1, 'key2', 2), map('key1', 3)) AS map, map['key1'];
## mapExists([func,], map) {#mapexistsfunc-map}
-Возвращает 1, если в `map` есть хотя бы одна пара ключ–значение, для которой `func(key, value)` возвращает значение, отличное от 0. В противном случае возвращает 0.
+Возвращает 1, если в `map` есть хотя бы одна пара ключ-значение, для которой `func(key, value)` возвращает что-либо, отличное от 0. В противном случае возвращает 0.
:::note
-`mapExists` — это [функция высшего порядка](/sql-reference/functions/overview#higher-order-functions).
-Ей можно передать лямбда-функцию в качестве первого аргумента.
+`mapExists` — [функция высшего порядка](/sql-reference/functions/overview#higher-order-functions).
+Вы можете передать ей лямбда-функцию в качестве первого аргумента.
:::
**Пример**
@@ -991,11 +991,11 @@ SELECT mapExists((k, v) -> (v = 1), map('k1', 1, 'k2', 2)) AS res
## mapAll([func,] map) {#mapallfunc-map}
-Возвращает 1, если `func(key, value)` возвращает значение, отличное от 0, для всех пар ключ–значение в `map`. В противном случае возвращает 0.
+Возвращает 1, если `func(key, value)` возвращает значение, отличное от 0, для всех пар «ключ–значение» в `map`. В противном случае возвращает 0.
:::note
-Учтите, что `mapAll` — это [функция высшего порядка](/sql-reference/functions/overview#higher-order-functions).
-Ей можно передать лямбда-функцию в качестве первого аргумента.
+Обратите внимание, что `mapAll` — это [функция высшего порядка](/sql-reference/functions/overview#higher-order-functions).
+В качестве первого аргумента ей можно передать лямбда-функцию.
:::
**Пример**
@@ -1016,8 +1016,8 @@ SELECT mapAll((k, v) -> (v = 1), map('k1', 1, 'k2', 2)) AS res
## mapSort([func,], map) {#mapsortfunc-map}
-Сортирует элементы `map` по возрастанию.
-Если указана функция `func`, порядок сортировки определяется результатом применения этой функции к ключам и значениям `map`.
+Сортирует элементы карты по возрастанию.
+Если указана функция `func`, порядок сортировки определяется результатом применения `func` к ключам и значениям карты.
**Примеры**
@@ -1041,12 +1041,12 @@ SELECT mapSort((k, v) -> v, map('key2', 2, 'key3', 1, 'key1', 3)) AS map;
└──────────────────────────────┘
```
-Для получения дополнительных сведений см. [справочник](/sql-reference/functions/array-functions#arraySort) по функции `arraySort`.
+Подробнее см. [справочник](/sql-reference/functions/array-functions#arraySort) по функции `arraySort`.
## mapPartialSort {#mappartialsort}
-Сортирует элементы `map` по возрастанию с дополнительным аргументом `limit`, позволяющим выполнить частичную сортировку.
-Если указана функция `func`, порядок сортировки определяется результатом применения `func` к ключам и значениям `map`.
+Сортирует элементы карты в порядке возрастания с дополнительным аргументом `limit`, который позволяет выполнять частичную сортировку.
+Если указана функция `func`, порядок сортировки определяется результатом применения функции `func` к ключам и значениям карты.
**Синтаксис**
@@ -1056,13 +1056,13 @@ mapPartialSort([func,] limit, map)
**Аргументы**
-* `func` – необязательная функция, применяемая к ключам и значениям `map`. [Lambda function](/sql-reference/functions/overview#higher-order-functions).
-* `limit` – элементы в диапазоне [1..limit] сортируются. [(U)Int](../data-types/int-uint.md).
-* `map` – отображение (map) для сортировки. [Map](../data-types/map.md).
+* `func` – необязательная функция, применяемая к ключам и значениям отображения. [Lambda function](/sql-reference/functions/overview#higher-order-functions).
+* `limit` – количество элементов, которые будут отсортированы (элементы с позициями в диапазоне [1..limit]). [(U)Int](../data-types/int-uint.md).
+* `map` – отображение для сортировки. [Map](../data-types/map.md).
**Возвращаемое значение**
-* Частично отсортированное отображение (map). [Map](../data-types/map.md).
+* Частично отсортированное отображение. [Map](../data-types/map.md).
**Пример**
@@ -1079,7 +1079,7 @@ SELECT mapPartialSort((k, v) -> v, 2, map('k1', 3, 'k2', 1, 'k3', 2));
## mapReverseSort([func,], map) {#mapreversesortfunc-map}
Сортирует элементы map в порядке убывания.
-Если указана функция `func`, порядок сортировки определяется результатом функции `func`, применяемой к ключам и значениям map.
+Если указана функция `func`, порядок сортировки определяется результатом её применения к ключам и значениям map.
**Примеры**
@@ -1103,12 +1103,12 @@ SELECT mapReverseSort((k, v) -> v, map('key2', 2, 'key3', 1, 'key1', 3)) AS map;
└──────────────────────────────┘
```
-Подробнее см. описание функции [arrayReverseSort](/sql-reference/functions/array-functions#arrayReverseSort).
+Подробнее см. функцию [arrayReverseSort](/sql-reference/functions/array-functions#arrayReverseSort).
## mapPartialReverseSort {#mappartialreversesort}
-Сортирует элементы map в порядке убывания, при этом дополнительный аргумент `limit` позволяет выполнить частичную сортировку.
-Если указана функция `func`, порядок сортировки определяется результатом применения функции `func` к ключам и значениям map.
+Сортирует элементы map в порядке убывания с дополнительным аргументом `limit`, позволяющим выполнять частичную сортировку.
+Если указана функция `func`, порядок сортировки определяется результатом функции `func`, применённой к ключам и значениям map.
**Синтаксис**
@@ -1118,13 +1118,13 @@ mapPartialReverseSort([func,] limit, map)
**Аргументы**
-* `func` – Необязательная функция, применяемая к ключам и значениям карты. [Lambda function](/sql-reference/functions/overview#higher-order-functions).
-* `limit` – Сортируются элементы с индексами в диапазоне [1..limit]. [(U)Int](../data-types/int-uint.md).
-* `map` – Карта для сортировки. [Map](../data-types/map.md).
+* `func` – необязательная функция, применяемая к ключам и значениям map. [Lambda function](/sql-reference/functions/overview#higher-order-functions).
+* `limit` – сортируются элементы с индексами в диапазоне [1..limit]. [(U)Int](../data-types/int-uint.md).
+* `map` – объект типа Map для сортировки. [Map](../data-types/map.md).
**Возвращаемое значение**
-* Частично отсортированная карта. [Map](../data-types/map.md).
+* Частично отсортированный объект типа Map. [Map](../data-types/map.md).
**Пример**
@@ -1139,11 +1139,1073 @@ SELECT mapPartialReverseSort((k, v) -> v, 2, map('k1', 3, 'k2', 1, 'k3', 2));
```
{/*
- Внутреннее содержимое тегов ниже заменяется на этапе сборки фреймворка документации
- материалами, сгенерированными из system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги.
+ Содержимое тегов ниже заменяется во время сборки фреймворка документации
+ документацией, сгенерированной на основе system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги.
См.: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md
*/ }
{/*AUTOGENERATED_START*/ }
+## extractKeyValuePairs {#extractKeyValuePairs}
+
+Введено в: v
+
+Извлекает пары ключ-значение из произвольной строки. Строка не обязана строго соответствовать формату пар ключ-значение;
+
+она может содержать «шум» (например, файлы журналов / логи). Формат пар ключ-значение, который нужно интерпретировать, задаётся через аргументы функции.
+
+Пара ключ-значение состоит из ключа, за которым следует `key_value_delimiter`, и значения. Также поддерживаются ключи и значения, заключённые в кавычки. Пары ключ-значение должны быть разделены разделителями пар ключ-значение.
+
+**Синтаксис**
+
+```sql
+ extractKeyValuePairs(data, [key_value_delimiter], [pair_delimiter], [quoting_character])
+```
+
+**Аргументы**
+
+* `data` - Строка, из которой извлекаются пары ключ-значение. [String](../../sql-reference/data-types/string.md) или [FixedString](../../sql-reference/data-types/fixedstring.md).
+ * `key_value_delimiter` - Символ, используемый в качестве разделителя между ключом и значением. По умолчанию `:`. [String](../../sql-reference/data-types/string.md) или [FixedString](../../sql-reference/data-types/fixedstring.md).
+ * `pair_delimiters` - Набор символов, используемых в качестве разделителей между парами. По умолчанию `\space`, `,` и `;`. [String](../../sql-reference/data-types/string.md) или [FixedString](../../sql-reference/data-types/fixedstring.md).
+ * `quoting_character` - Символ, используемый в качестве символа кавычек. По умолчанию `"`. [String](../../sql-reference/data-types/string.md) или [FixedString](../../sql-reference/data-types/fixedstring.md).
+ * `unexpected_quoting_character_strategy` - Стратегия обработки символов кавычек в неожиданных местах во время фаз `read_key` и `read_value`. Возможные значения: `invalid`, `accept` и `promote`. `invalid` отбросит ключ/значение и вернёт состояние `WAITING_KEY`. `accept` будет трактовать его как обычный символ. `promote` переведёт в состояние `READ_QUOTED_{KEY/VALUE}` и начнёт со следующего символа. Значение по умолчанию — `INVALID`.
+
+**Возвращаемые значения**
+
+* Извлечённые пары ключ-значение в Map(String, String).
+
+**Примеры**
+
+Запрос:
+
+**Простой пример**
+
+```sql
+ arthur :) select extractKeyValuePairs('name:neymar, age:31 team:psg,nationality:brazil') as kv
+
+ SELECT extractKeyValuePairs('name:neymar, age:31 team:psg,nationality:brazil') as kv
+
+ Query id: f9e0ca6f-3178-4ee2-aa2c-a5517abb9cee
+
+ ┌─kv──────────────────────────────────────────────────────────────────────┐
+ │ {'name':'neymar','age':'31','team':'psg','nationality':'brazil'} │
+ └─────────────────────────────────────────────────────────────────────────┘
+```
+
+**Одинарная кавычка как символ обрамления**
+
+```sql
+ arthur :) select extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') as kv
+
+ SELECT extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') as kv
+
+ Идентификатор запроса: 0e22bf6b-9844-414a-99dc-32bf647abd5e
+
+ ┌─kv───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │ {'name':'neymar','age':'31','team':'psg','nationality':'brazil','last_key':'last_value'} │
+ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+```
+
+Примеры unexpected_quoting_character_strategy:
+
+unexpected_quoting_character_strategy=invalid
+
+```sql
+ SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'INVALID') as kv;
+```
+
+```text
+ ┌─kv────────────────┐
+ │ {'abc':'5'} │
+ └───────────────────┘
+```
+
+```sql
+ SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'INVALID') as kv;
+```
+
+```text
+ ┌─kv──┐
+ │ {} │
+ └─────┘
+```
+
+unexpected_quoting_character_strategy=accept
+
+```sql
+ SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'ACCEPT') as kv;
+```
+
+```text
+ ┌─kv────────────────┐
+ │ {'name"abc':'5'} │
+ └───────────────────┘
+```
+
+```sql
+ SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'ACCEPT') as kv;
+```
+
+```text
+ ┌─kv─────────────────┐
+ │ {'name"abc"':'5'} │
+ └────────────────────┘
+```
+
+unexpected_quoting_character_strategy=promote
+
+```sql
+ SELECT extractKeyValuePairs('name"abc:5', ':', ' ,;', '\"', 'PROMOTE') as kv;
+```
+
+```text
+ ┌─kv──┐
+ │ {} │
+ └─────┘
+```
+
+```sql
+ SELECT extractKeyValuePairs('name"abc":5', ':', ' ,;', '\"', 'PROMOTE') as kv;
+```
+
+```text
+ ┌─kv───────────┐
+ │ {'abc':'5'} │
+ └──────────────┘
+```
+
+**Escape-последовательности при отключённой поддержке экранирования**
+
+```sql
+ arthur :) select extractKeyValuePairs('age:a\\x0A\\n\\0') as kv
+
+ SELECT extractKeyValuePairs('age:a\\x0A\\n\\0') AS kv
+
+ Query id: e9fd26ee-b41f-4a11-b17f-25af6fd5d356
+
+ ┌─kv────────────────────┐
+ │ {'age':'a\\x0A\\n\\0'} │
+ └───────────────────────┘
+```
+
+**Синтаксис**
+
+```sql
+```
+
+**Псевдонимы**: `str_to_map`, `mapFromString`
+
+**Аргументы**
+
+* Отсутствуют.
+
+**Возвращаемое значение**
+
+**Примеры**
+
+## extractKeyValuePairsWithEscaping {#extractKeyValuePairsWithEscaping}
+
+Введена в: v
+
+Та же функция, что и `extractKeyValuePairs`, но с поддержкой экранирования.
+
+Поддерживаемые последовательности экранирования: `\x`, `\N`, `\a`, `\b`, `\e`, `\f`, `\n`, `\r`, `\t`, `\v` и `\0`.
+Нестандартные последовательности экранирования возвращаются без изменений (включая обратный слеш), за исключением следующих:
+`\\`, `'`, `"`, `backtick`, `/`, `=` или управляющие символы ASCII (`c <= 31`).
+
+Эта функция подходит для случаев, когда предварительное и последующее экранирование неприменимы. Например, рассмотрим следующую
+входную строку: `a: "aaaa\"bbb"`. Ожидаемый результат: `a: aaaa\"bbbb`.
+
+* Предварительное экранирование: при предварительном экранировании результат будет: `a: "aaaa"bbb"`, а затем `extractKeyValuePairs` вернёт: `a: aaaa`
+ * Последующее экранирование: `extractKeyValuePairs` вернёт `a: aaaa\`, и последующее экранирование сохранит это без изменений.
+
+Начальные последовательности экранирования в ключах будут пропущены и будут считаться недопустимыми для значений.
+
+**Последовательности экранирования при включённой поддержке экранирования**
+
+```sql
+ arthur :) select extractKeyValuePairsWithEscaping('age:a\\x0A\\n\\0') as kv
+
+ SELECT extractKeyValuePairsWithEscaping('age:a\\x0A\\n\\0') AS kv
+
+ Query id: 44c114f0-5658-4c75-ab87-4574de3a1645
+
+ ┌─kv───────────────┐
+ │ {'age':'a\n\n\0'} │
+ └──────────────────┘
+```
+
+**Синтаксис**
+
+```sql
+```
+
+**Аргументы**
+
+* Нет.
+
+**Возвращаемое значение**
+
+**Примеры**
+
+## map {#map}
+
+Добавлена в: v21.1
+
+Создаёт значение типа `Map(key, value)` из пар ключ–значение.
+
+**Синтаксис**
+
+```sql
+map(key1, value1[, key2, value2, ...])
+```
+
+**Аргументы**
+
+* `key_n` — ключи элементов map. [`Any`](/sql-reference/data-types)
+* `value_n` — значения элементов map. [`Any`](/sql-reference/data-types)
+
+**Возвращаемое значение**
+
+Возвращает map с парами ключ:значение. [`Map(Any, Any)`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT map('key1', number, 'key2', number * 2) FROM numbers(3)
+```
+
+```response title=Response
+{'key1':0,'key2':0}
+{'key1':1,'key2':2}
+{'key1':2,'key2':4}
+```
+
+## mapAdd {#mapAdd}
+
+Добавлена в версии: v20.7
+
+Собирает все ключи и суммирует соответствующие значения.
+
+**Синтаксис**
+
+```sql
+mapAdd(arg1[, arg2, ...])
+```
+
+**Аргументы**
+
+* `arg1[, arg2, ...]` — значения типов `Map` или `Tuple` из двух массивов, в которых элементы первого массива представляют ключи, а второй массив содержит значения для каждого ключа. [`Map(K, V)`](/sql-reference/data-types/map) или [`Tuple(Array(T), Array(T))`](/sql-reference/data-types/tuple)
+
+**Возвращаемое значение**
+
+Возвращает значение типа `Map` или `Tuple`, где первый массив содержит отсортированные ключи, а второй массив — соответствующие им значения. [`Map(K, V)`](/sql-reference/data-types/map) или [`Tuple(Array(T), Array(T))`](/sql-reference/data-types/tuple)
+
+**Примеры**
+
+**Для типа Map**
+
+```sql title=Query
+SELECT mapAdd(map(1, 1), map(1, 1))
+```
+
+```response title=Response
+{1:2}
+```
+
+**С использованием кортежа**
+
+```sql title=Query
+SELECT mapAdd(([toUInt8(1), 2], [1, 1]), ([toUInt8(1), 2], [1, 1]))
+```
+
+```response title=Response
+([1, 2], [2, 2])
+```
+
+## mapAll {#mapAll}
+
+Введена в: v23.4
+
+Проверяет, выполняется ли условие для всех пар ключ–значение в map.
+`mapAll` — это функция высшего порядка.
+В качестве первого аргумента ей можно передать лямбда-функцию.
+
+**Синтаксис**
+
+```sql
+mapAll([func,] map)
+```
+
+**Аргументы**
+
+* `func` — лямбда-функция. [`Lambda function`](/sql-reference/functions/overview#arrow-operator-and-lambda)
+* `map` — проверяемая структура Map. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает `1`, если все пары ключ-значение удовлетворяют условию, иначе `0`. [`UInt8`](/sql-reference/data-types/int-uint)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapAll((k, v) -> v = 1, map('k1', 1, 'k2', 2))
+```
+
+```response title=Response
+0
+```
+
+## mapApply {#mapApply}
+
+Впервые представлена в: v22.3
+
+Применяет функцию к каждому элементу map.
+
+**Синтаксис**
+
+```sql
+mapApply(func, map)
+```
+
+**Аргументы**
+
+* `func` — лямбда-функция. [`Lambda function`](/sql-reference/functions/overview#arrow-operator-and-lambda)
+* `map` — map, к которому применяется функция. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает новый map, полученный из исходного map посредством применения `func` к каждому элементу. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapApply((k, v) -> (k, v * 2), map('k1', 1, 'k2', 2))
+```
+
+```response title=Response
+{'k1':2,'k2':4}
+```
+
+## mapConcat {#mapConcat}
+
+Появилась в версии: v23.4
+
+Объединяет несколько значений типа `Map` по совпадающим ключам.
+Если элементы с одинаковым ключом присутствуют более чем в одном входном значении `Map`, все элементы добавляются в результирующее значение `Map`, но через оператор [] доступен только первый.
+
+**Синтаксис**
+
+```sql
+mapConcat(maps)
+```
+
+**Аргументы**
+
+* `maps` — произвольное количество отображений типа [`Map`](/sql-reference/data-types/map).
+
+**Возвращаемое значение**
+
+Возвращает `Map`, полученный объединением карт, переданных в качестве аргументов. [`Map`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapConcat(map('k1', 'v1'), map('k2', 'v2'))
+```
+
+```response title=Response
+{'k1':'v1','k2':'v2'}
+```
+
+## mapContainsKey {#mapContainsKey}
+
+Введена в версии: v21.2
+
+Определяет, содержится ли ключ в `map`.
+
+**Синтаксис**
+
+```sql
+mapContains(map, key)
+```
+
+**Псевдонимы**: `mapContains`
+
+**Аргументы**
+
+* `map` — отображение, в котором выполняется поиск. [`Map(K, V)`](/sql-reference/data-types/map)
+* `key` — ключ для поиска. Тип должен совпадать с типом ключа отображения. [`Any`](/sql-reference/data-types)
+
+**Возвращаемое значение**
+
+Возвращает 1, если отображение содержит ключ, и 0, если не содержит. [`UInt8`](/sql-reference/data-types/int-uint)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapContainsKey(map('k1', 'v1', 'k2', 'v2'), 'k1')
+```
+
+```response title=Response
+1
+```
+
+## mapContainsKeyLike {#mapContainsKeyLike}
+
+Добавлено в версии: v23.4
+
+Проверяет, содержит ли `map` ключ, соответствующий заданному шаблону `LIKE`.
+
+**Синтаксис**
+
+```sql
+mapContainsKeyLike(map, pattern)
+```
+
+**Аргументы**
+
+* `map` — Карта, в которой выполняется поиск. [`Map(K, V)`](/sql-reference/data-types/map)
+* `pattern` — Шаблон для сопоставления с ключами. [`const String`](/sql-reference/data-types/string)
+
+**Возвращаемое значение**
+
+Возвращает `1`, если `map` содержит ключ, соответствующий `pattern`, иначе `0`. [`UInt8`](/sql-reference/data-types/int-uint)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+CREATE TABLE tab (a Map(String, String))
+ENGINE = MergeTree
+ORDER BY tuple();
+
+INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'});
+
+SELECT mapContainsKeyLike(a, 'a%') FROM tab;
+```
+
+```response title=Response
+┌─mapContainsKeyLike(a, 'a%')─┐
+│ 1 │
+│ 0 │
+└─────────────────────────────┘
+```
+
+## mapContainsValue {#mapContainsValue}
+
+Впервые представлена в: v25.6
+
+Определяет, содержится ли значение в отображении (map).
+
+**Синтаксис**
+
+```sql
+mapContainsValue(map, value)
+```
+
+**Аргументы**
+
+* `map` — отображение, в котором выполняется поиск. [`Map(K, V)`](/sql-reference/data-types/map)
+* `value` — значение, которое требуется найти. Тип должен совпадать с типом значений отображения. [`Any`](/sql-reference/data-types)
+
+**Возвращаемое значение**
+
+Возвращает `1`, если отображение содержит это значение, и `0` в противном случае. [`UInt8`](/sql-reference/data-types/int-uint)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapContainsValue(map('k1', 'v1', 'k2', 'v2'), 'v1')
+```
+
+```response title=Response
+1
+```
+
+## mapContainsValueLike {#mapContainsValueLike}
+
+Впервые появилась в версии: v25.5
+
+Проверяет, содержит ли отображение (map) значение, соответствующее шаблону `LIKE`.
+
+**Синтаксис**
+
+```sql
+mapContainsValueLike(map, pattern)
+```
+
+**Аргументы**
+
+* `map` — карта, в которой выполняется поиск. [`Map(K, V)`](/sql-reference/data-types/map)
+* `pattern` — шаблон для сопоставления значений. [`const String`](/sql-reference/data-types/string)
+
+**Возвращаемое значение**
+
+Возвращает `1`, если `map` содержит значение, соответствующее `pattern`, иначе `0`. [`UInt8`](/sql-reference/data-types/int-uint)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+CREATE TABLE tab (a Map(String, String))
+ENGINE = MergeTree
+ORDER BY tuple();
+
+INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'});
+
+SELECT mapContainsValueLike(a, 'a%') FROM tab;
+```
+
+```response title=Response
+┌─mapContainsV⋯ke(a, 'a%')─┐
+│ 1 │
+│ 0 │
+└──────────────────────────┘
+```
+
+## mapExists {#mapExists}
+
+Введена в версии: v23.4
+
+Проверяет, выполняется ли условие хотя бы для одной пары ключ–значение в типе данных `Map`.
+`mapExists` — это функция высшего порядка.
+В качестве первого аргумента ей можно передать лямбда-функцию.
+
+**Синтаксис**
+
+```sql
+mapExists([func,] map)
+```
+
+**Аргументы**
+
+* `func` — необязательный параметр. Лямбда-функция. [`Lambda function`](/sql-reference/functions/overview#arrow-operator-and-lambda)
+* `map` — отображение для проверки. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает `1`, если хотя бы одна пара ключ-значение удовлетворяет условию, иначе `0`. [`UInt8`](/sql-reference/data-types/int-uint)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapExists((k, v) -> v = 1, map('k1', 1, 'k2', 2))
+```
+
+```response title=Response
+1
+```
+
+## mapExtractKeyLike {#mapExtractKeyLike}
+
+Добавлена в версии v23.4
+
+Для карты со строковыми ключами и шаблоном `LIKE` эта функция возвращает карту с элементами, ключи которых соответствуют шаблону.
+
+**Синтаксис**
+
+```sql
+mapExtractKeyLike(map, pattern)
+```
+
+**Аргументы**
+
+* `map` — Карта, из которой выполняется извлечение. [`Map(K, V)`](/sql-reference/data-types/map)
+* `pattern` — Шаблон для сопоставления с ключами карты. [`const String`](/sql-reference/data-types/string)
+
+**Возвращаемое значение**
+
+Возвращает карту, содержащую элементы, ключ которых соответствует указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустая карта. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+CREATE TABLE tab (a Map(String, String))
+ENGINE = MergeTree
+ORDER BY tuple();
+
+INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'});
+
+SELECT mapExtractKeyLike(a, 'a%') FROM tab;
+```
+
+```response title=Response
+┌─mapExtractKeyLike(a, 'a%')─┐
+│ {'abc':'abc'} │
+│ {} │
+└────────────────────────────┘
+```
+
+## mapExtractValueLike {#mapExtractValueLike}
+
+Впервые появилась в: v25.5
+
+Для заданного `map` со строковыми значениями и шаблоном `LIKE` эта функция возвращает `map` с элементами, значения которых соответствуют шаблону.
+
+**Синтаксис**
+
+```sql
+mapExtractValueLike(map, pattern)
+```
+
+**Аргументы**
+
+* `map` — карта, из которой выполняется извлечение. [`Map(K, V)`](/sql-reference/data-types/map)
+* `pattern` — шаблон для сопоставления значений. [`const String`](/sql-reference/data-types/string)
+
+**Возвращаемое значение**
+
+Возвращает карту, содержащую элементы, значение которых соответствует указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустая карта. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+CREATE TABLE tab (a Map(String, String))
+ENGINE = MergeTree
+ORDER BY tuple();
+
+INSERT INTO tab VALUES ({'abc':'abc','def':'def'}), ({'hij':'hij','klm':'klm'});
+
+SELECT mapExtractValueLike(a, 'a%') FROM tab;
+```
+
+```response title=Response
+┌─mapExtractValueLike(a, 'a%')─┐
+│ {'abc':'abc'} │
+│ {} │
+└──────────────────────────────┘
+```
+
+## mapFilter {#mapFilter}
+
+Появилась в версии: v22.3
+
+Фильтрует `map`, применяя функцию к каждому её элементу.
+
+**Синтаксис**
+
+```sql
+mapFilter(func, map)
+```
+
+**Аргументы**
+
+* `func` — лямбда-функция. [`Lambda function`](/sql-reference/functions/overview#arrow-operator-and-lambda)
+* `map` — отображение (map), которое нужно отфильтровать. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает отображение (map), содержащее только те элементы, для которых `func` возвращает значение, отличное от `0`. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapFilter((k, v) -> v > 1, map('k1', 1, 'k2', 2))
+```
+
+```response title=Response
+{'k2':2}
+```
+
+## mapFromArrays {#mapFromArrays}
+
+Введена в версии: v23.3
+
+Создаёт Map из массива или Map с ключами и массива или Map со значениями.
+Функция является удобной альтернативой синтаксису `CAST([...], 'Map(key_type, value_type)')`.
+
+**Синтаксис**
+
+```sql
+mapFromArrays(keys, values)
+```
+
+**Псевдонимы**: `MAP_FROM_ARRAYS`
+
+**Аргументы**
+
+* `keys` — Массив или `Map` с ключами, из которых создаётся отображение. [`Array`](/sql-reference/data-types/array) или [`Map`](/sql-reference/data-types/map)
+* `values` — Массив или `Map` со значениями, из которых создаётся отображение. [`Array`](/sql-reference/data-types/array) или [`Map`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает отображение с ключами и значениями, построенными на основе массива ключей и массива/`Map` значений. [`Map`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Базовое использование**
+
+```sql title=Query
+SELECT mapFromArrays(['a', 'b', 'c'], [1, 2, 3])
+```
+
+```response title=Response
+{'a':1,'b':2,'c':3}
+```
+
+**Для входных данных типа map**
+
+```sql title=Query
+SELECT mapFromArrays([1, 2, 3], map('a', 1, 'b', 2, 'c', 3))
+```
+
+```response title=Response
+{1:('a', 1), 2:('b', 2), 3:('c', 3)}
+```
+
+## mapKeys {#mapKeys}
+
+Добавлено в версии: v21.2
+
+Возвращает ключи указанного столбца типа Map.
+Эта функция может быть оптимизирована путём включения настройки [`optimize_functions_to_subcolumns`](/operations/settings/settings#optimize_functions_to_subcolumns).
+При включённой настройке функция читает только подстолбец `keys` вместо всего столбца Map.
+Запрос `SELECT mapKeys(m) FROM table` преобразуется в `SELECT m.keys FROM table`.
+
+**Синтаксис**
+
+```sql
+mapKeys(map)
+```
+
+**Аргументы**
+
+* `map` — отображение, из которого извлекаются ключи. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает массив, содержащий все ключи отображения. [`Array(T)`](/sql-reference/data-types/array)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapKeys(map('k1', 'v1', 'k2', 'v2'))
+```
+
+```response title=Response
+['k1','k2']
+```
+
+## mapPartialReverseSort {#mapPartialReverseSort}
+
+Добавлена в версии: v23.4
+
+Сортирует элементы map по убыванию с дополнительным аргументом `limit`, который позволяет выполнять частичную сортировку.
+Если указана функция `func`, порядок сортировки определяется результатом применения функции `func` к ключам и значениям map.
+
+**Синтаксис**
+
+```sql
+mapPartialReverseSort([func,] limit, map)
+```
+
+**Аргументы**
+
+* `func` — Необязательный параметр. Лямбда-функция. [`Лямбда-функция`](/sql-reference/functions/overview#arrow-operator-and-lambda)
+* `limit` — Сортируются элементы в диапазоне `[1..limit]`. [`(U)Int*`](/sql-reference/data-types/int-uint)
+* `map` — Отображение (map), которое требуется отсортировать. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает частично отсортированное отображение (map) по убыванию. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapPartialReverseSort((k, v) -> v, 2, map('k1', 3, 'k2', 1, 'k3', 2))
+```
+
+```response title=Response
+{'k1':3,'k3':2,'k2':1}
+```
+
+## mapPartialSort {#mapPartialSort}
+
+Введена в версии v23.4
+
+Сортирует элементы map по возрастанию с дополнительным аргументом limit, который позволяет выполнять частичную сортировку.
+Если указана функция func, порядок сортировки определяется результатом применения функции func к ключам и значениям map.
+
+**Синтаксис**
+
+```sql
+mapPartialSort([func,] limit, map)
+```
+
+**Аргументы**
+
+* `func` — Необязательный аргумент. Лямбда-функция. [`Lambda function`](/sql-reference/functions/overview#arrow-operator-and-lambda)
+* `limit` — Сортируются элементы в диапазоне `[1..limit]`. [`(U)Int*`](/sql-reference/data-types/int-uint)
+* `map` — Отображение (map) для сортировки. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает частично отсортированное отображение. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapPartialSort((k, v) -> v, 2, map('k1', 3, 'k2', 1, 'k3', 2))
+```
+
+```response title=Response
+{'k2':1,'k3':2,'k1':3}
+```
+
+## mapPopulateSeries {#mapPopulateSeries}
+
+Введена в: v20.10
+
+Заполняет отсутствующие пары ключ-значение в `map` с целочисленными ключами.
+Чтобы можно было продолжить последовательность ключей за пределы наибольшего значения, можно указать максимальный ключ.
+Более точно, функция возвращает `map`, в котором ключи образуют последовательность от наименьшего до наибольшего ключа (или до аргумента `max`, если он указан) с шагом 1 и соответствующими значениями.
+Если для ключа не задано значение, используется значение по умолчанию.
+Если ключи повторяются, с ключом связывается только первое значение (в порядке появления).
+
+**Синтаксис**
+
+```sql
+mapPopulateSeries(map[, max]) | mapPopulateSeries(keys, values[, max])
+```
+
+**Аргументы**
+
+* `map` — Map с целочисленными ключами. [`Map((U)Int*, V)`](/sql-reference/data-types/map)
+* `keys` — Массив ключей. [`Array(T)`](/sql-reference/data-types/array)
+* `values` — Массив значений. [`Array(T)`](/sql-reference/data-types/array)
+* `max` — Необязательный параметр. Максимальное значение ключа. [`Int8`](/sql-reference/data-types/int-uint) или [`Int16`](/sql-reference/data-types/int-uint) или [`Int32`](/sql-reference/data-types/int-uint) или [`Int64`](/sql-reference/data-types/int-uint) или [`Int128`](/sql-reference/data-types/int-uint) или [`Int256`](/sql-reference/data-types/int-uint)
+
+**Возвращаемое значение**
+
+Возвращает Map или кортеж из двух массивов, в котором первый содержит ключи в отсортированном порядке, а второй — значения для соответствующих ключей. [`Map(K, V)`](/sql-reference/data-types/map) или [`Tuple(Array(UInt*), Array(Any))`](/sql-reference/data-types/tuple)
+
+**Примеры**
+
+**С типом Map**
+
+```sql title=Query
+SELECT mapPopulateSeries(map(1, 10, 5, 20), 6)
+```
+
+```response title=Response
+{1:10, 2:0, 3:0, 4:0, 5:20, 6:0}
+```
+
+**С сопоставленными массивами**
+
+```sql title=Query
+SELECT mapPopulateSeries([1, 2, 4], [11, 22, 44], 5)
+```
+
+```response title=Response
+([1, 2, 3, 4, 5], [11, 22, 0, 44, 0])
+```
+
+## mapReverseSort {#mapReverseSort}
+
+Введена в версии: v23.4
+
+Сортирует элементы `map` в порядке убывания.
+Если указана функция `func`, порядок сортировки определяется результатом применения функции `func` к ключам и значениям `map`.
+
+**Синтаксис**
+
+```sql
+mapReverseSort([func,] map)
+```
+
+**Аргументы**
+
+* `func` — необязательная лямбда‑функция. [`Lambda function`](/sql-reference/functions/overview#arrow-operator-and-lambda)
+* `map` — отображение для сортировки. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает отображение, отсортированное по убыванию. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapReverseSort((k, v) -> v, map('k1', 3, 'k2', 1, 'k3', 2))
+```
+
+```response title=Response
+{'k1':3,'k3':2,'k2':1}
+```
+
+## mapSort {#mapSort}
+
+Впервые добавлена в: v23.4
+
+Сортирует элементы map по возрастанию.
+Если указана функция func, порядок сортировки определяется результатом применения функции func к ключам и значениям map.
+
+**Синтаксис**
+
+```sql
+mapSort([func,] map)
+```
+
+**Аргументы**
+
+* `func` — Необязательная лямбда-функция. [`Lambda function`](/sql-reference/functions/overview#arrow-operator-and-lambda)
+* `map` — Map для сортировки. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает Map, отсортированный по возрастанию. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapSort((k, v) -> v, map('k1', 3, 'k2', 1, 'k3', 2))
+```
+
+```response title=Response
+{'k2':1,'k3':2,'k1':3}
+```
+
+## mapSubtract {#mapSubtract}
+
+Появилась в версии v20.7
+
+Собирает все ключи и вычитает соответствующие им значения.
+
+**Синтаксис**
+
+```sql
+mapSubtract(arg1[, arg2, ...])
+```
+
+**Аргументы**
+
+* `arg1[, arg2, ...]` — значения типа `Map` или кортежи из двух массивов, в которых элементы первого массива являются ключами, а второй массив содержит значения, соответствующие каждому ключу. [`Map(K, V)`](/sql-reference/data-types/map) или [`Tuple(Array(T), Array(T))`](/sql-reference/data-types/tuple)
+
+**Возвращаемое значение**
+
+Возвращает одно значение типа Map или кортеж, где первый массив содержит отсортированные ключи, а второй массив — соответствующие им значения. [`Map(K, V)`](/sql-reference/data-types/map) или [`Tuple(Array(T), Array(T))`](/sql-reference/data-types/tuple)
+
+**Примеры**
+
+**С типом Map**
+
+```sql title=Query
+SELECT mapSubtract(map(1, 1), map(1, 1))
+```
+
+```response title=Response
+{1:0}
+```
+
+**С отображением с кортежами в качестве ключей**
+
+```sql title=Query
+SELECT mapSubtract(([toUInt8(1), 2], [toInt32(1), 1]), ([toUInt8(1), 2], [toInt32(2), 1]))
+```
+
+```response title=Response
+([1, 2], [-1, 0])
+```
+
+## mapUpdate {#mapUpdate}
+
+Впервые появилась в: v22.3
+
+Для двух `map` возвращает первую `map`, в которой значения заменены на значения из второй `map` для соответствующих ключей.
+
+**Синтаксис**
+
+```sql
+mapUpdate(map1, map2)
+```
+
+**Аргументы**
+
+* `map1` — Отображение, которое нужно обновить. [`Map(K, V)`](/sql-reference/data-types/map)
+* `map2` — Отображение, используемое для обновления. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает `map1`, в котором значения для соответствующих ключей обновлены значениями из `map2`. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Примеры**
+
+**Базовое использование**
+
+```sql title=Query
+SELECT mapUpdate(map('key1', 0, 'key3', 0), map('key1', 10, 'key2', 10))
+```
+
+```response title=Response
+{'key3':0,'key1':10,'key2':10}
+```
+
+## mapValues {#mapValues}
+
+Введена в версии: v21.2
+
+Возвращает значения заданной карты.
+Эту функцию можно оптимизировать, включив настройку [`optimize_functions_to_subcolumns`](/operations/settings/settings#optimize_functions_to_subcolumns).
+При включённой настройке функция читает только подстолбец `values` вместо всей карты.
+Запрос `SELECT mapValues(m) FROM table` преобразуется в `SELECT m.values FROM table`.
+
+**Синтаксис**
+
+```sql
+mapValues(map)
+```
+
+**Аргументы**
+
+* `map` — отображение, из которого извлекаются значения. [`Map(K, V)`](/sql-reference/data-types/map)
+
+**Возвращаемое значение**
+
+Возвращает массив, содержащий все значения из отображения. [`Array(T)`](/sql-reference/data-types/array)
+
+**Примеры**
+
+**Пример использования**
+
+```sql title=Query
+SELECT mapValues(map('k1', 'v1', 'k2', 'v2'))
+```
+
+```response title=Response
+['v1','v2']
+```
+
{/*AUTOGENERATED_END*/ }
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md
index f996c531469..c9dd3e9ec74 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md
@@ -6,12 +6,8 @@ title: 'Функции преобразования типов данных'
doc_type: 'reference'
---
-
-
# Функции преобразования типов {#type-conversion-functions}
-
-
## Общие проблемы при преобразовании данных {#common-issues-with-data-conversion}
ClickHouse в целом использует [то же поведение, что и программы на C++](https://en.cppreference.com/w/cpp/language/implicit_conversion).
@@ -54,7 +50,6 @@ SETTINGS cast_keep_nullable = 1
└──────────────────┴─────────────────────┴──────────────────┘
```
-
## Примечания к функциям `toString` {#to-string-functions}
Семейство функций `toString` позволяет выполнять преобразования между числами, строками (но не фиксированными строками), датами и датами со временем.
@@ -65,8 +60,6 @@ SETTINGS cast_keep_nullable = 1
- При преобразовании дат со временем в числа или наоборот дате со временем соответствует количество секунд, прошедших с начала эпохи Unix.
- Функция `toString` с аргументом типа `DateTime` может принимать второй аргумент типа `String`, содержащий имя часового пояса, например: `Europe/Amsterdam`. В этом случае время форматируется в соответствии с указанным часовым поясом.
-
-
## Примечания о функциях `toDate`/`toDateTime` {#to-date-and-date-time-functions}
Форматы даты и даты со временем для функций `toDate`/`toDateTime` определены следующим образом:
@@ -116,7 +109,6 @@ LIMIT 10
См. также функцию [`toUnixTimestamp`](#toUnixTimestamp).
-
## toBool {#tobool}
Преобразует входное значение в значение типа [`Bool`](../data-types/boolean.md). В случае ошибки вызывает исключение.
@@ -167,7 +159,6 @@ toBool('false'): false
toBool('FALSE'): false
```
-
## toInt8 {#toint8}
Преобразует входное значение в значение типа [`Int8`](../data-types/int-uint.md). В случае ошибки выбрасывает исключение.
@@ -234,7 +225,6 @@ toInt8('-8'): -8
* [`toInt8OrNull`](#toInt8OrNull).
* [`toInt8OrDefault`](#toint8ordefault).
-
## toInt8OrZero {#toint8orzero}
Как и функция [`toInt8`](#toint8), эта функция преобразует входное значение в значение типа [Int8](../data-types/int-uint.md), но в случае ошибки возвращает `0`.
@@ -297,7 +287,6 @@ toInt8OrZero('abc'): 0
* [`toInt8OrNull`](#toInt8OrNull).
* [`toInt8OrDefault`](#toint8ordefault).
-
## toInt8OrNull {#toInt8OrNull}
Подобно функции [`toInt8`](#toint8), эта функция преобразует входное значение к типу [Int8](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`.
@@ -360,7 +349,6 @@ toInt8OrNull('abc'): ᴺᵁᴸᴸ
* [`toInt8OrZero`](#toint8orzero).
* [`toInt8OrDefault`](#toint8ordefault).
-
## toInt8OrDefault {#toint8ordefault}
Как и [`toInt8`](#toint8), эта функция преобразует входное значение в значение типа [Int8](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию.
@@ -428,7 +416,6 @@ toInt8OrDefault('abc', CAST('-1', 'Int8')): -1
* [`toInt8OrZero`](#toint8orzero).
* [`toInt8OrNull`](#toInt8OrNull).
-
## toInt16 {#toint16}
Преобразует входное значение в значение типа [`Int16`](../data-types/int-uint.md). В случае ошибки выбрасывает исключение.
@@ -495,7 +482,6 @@ toInt16('-16'): -16
* [`toInt16OrNull`](#toint16ornull).
* [`toInt16OrDefault`](#toint16ordefault).
-
## toInt16OrZero {#toint16orzero}
Аналогично функции [`toInt16`](#toint16), эта функция преобразует входное значение в значение типа [Int16](../data-types/int-uint.md), но в случае ошибки возвращает `0`.
@@ -558,7 +544,6 @@ toInt16OrZero('abc'): 0
* [`toInt16OrNull`](#toint16ornull).
* [`toInt16OrDefault`](#toint16ordefault).
-
## toInt16OrNull {#toint16ornull}
Как и [`toInt16`](#toint16), эта функция преобразует входное значение в значение типа [Int16](../data-types/int-uint.md), но при ошибке возвращает `NULL`.
@@ -621,7 +606,6 @@ toInt16OrNull('abc'): ᴺᵁᴸᴸ
* [`toInt16OrZero`](#toint16orzero).
* [`toInt16OrDefault`](#toint16ordefault).
-
## toInt16OrDefault {#toint16ordefault}
Подобно функции [`toInt16`](#toint16), эта функция преобразует входное значение в значение типа [Int16](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию.
@@ -689,7 +673,6 @@ toInt16OrDefault('abc', CAST('-1', 'Int16')): -1
* [`toInt16OrZero`](#toint16orzero).
* [`toInt16OrNull`](#toint16ornull).
-
## toInt32 {#toint32}
Преобразует входное значение в значение типа [`Int32`](../data-types/int-uint.md). В случае ошибки вызывает исключение.
@@ -756,7 +739,6 @@ toInt32('-32'): -32
* [`toInt32OrNull`](#toint32ornull).
* [`toInt32OrDefault`](#toint32ordefault).
-
## toInt32OrZero {#toint32orzero}
Подобно функции [`toInt32`](#toint32), эта функция преобразует входное значение к типу [Int32](../data-types/int-uint.md), но возвращает `0` в случае ошибки.
@@ -819,7 +801,6 @@ toInt32OrZero('abc'): 0
* [`toInt32OrNull`](#toint32ornull).
* [`toInt32OrDefault`](#toint32ordefault).
-
## toInt32OrNull {#toint32ornull}
Аналогично функции [`toInt32`](#toint32), эта функция преобразует входное значение в значение типа [Int32](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`.
@@ -882,7 +863,6 @@ toInt32OrNull('abc'): ᴺᵁᴸᴸ
* [`toInt32OrZero`](#toint32orzero).
* [`toInt32OrDefault`](#toint32ordefault).
-
## toInt32OrDefault {#toint32ordefault}
Подобно функции [`toInt32`](#toint32), эта функция преобразует входное значение в значение типа [Int32](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию.
@@ -950,7 +930,6 @@ toInt32OrDefault('abc', CAST('-1', 'Int32')): -1
* [`toInt32OrZero`](#toint32orzero).
* [`toInt32OrNull`](#toint32ornull).
-
## toInt64 {#toint64}
Преобразует входное значение в значение типа [`Int64`](../data-types/int-uint.md). В случае ошибки выбрасывает исключение.
@@ -1017,7 +996,6 @@ toInt64('-64'): -64
* [`toInt64OrNull`](#toint64ornull).
* [`toInt64OrDefault`](#toint64ordefault).
-
## toInt64OrZero {#toint64orzero}
Как и [`toInt64`](#toint64), эта функция преобразует входное значение в значение типа [Int64](../data-types/int-uint.md), но в случае ошибки возвращает `0`.
@@ -1080,7 +1058,6 @@ toInt64OrZero('abc'): 0
* [`toInt64OrNull`](#toint64ornull).
* [`toInt64OrDefault`](#toint64ordefault).
-
## toInt64OrNull {#toint64ornull}
Аналогично функции [`toInt64`](#toint64), эта функция преобразует входное значение в значение типа [Int64](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`.
@@ -1143,7 +1120,6 @@ toInt64OrNull('abc'): ᴺᵁᴸᴸ
* [`toInt64OrZero`](#toint64orzero).
* [`toInt64OrDefault`](#toint64ordefault).
-
## toInt64OrDefault {#toint64ordefault}
Как и [`toInt64`](#toint64), эта функция преобразует входное значение в значение типа [Int64](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию.
@@ -1211,7 +1187,6 @@ toInt64OrDefault('abc', CAST('-1', 'Int64')): -1
* [`toInt64OrZero`](#toint64orzero).
* [`toInt64OrNull`](#toint64ornull).
-
## toInt128 {#toint128}
Преобразует входное значение в значение типа [`Int128`](../data-types/int-uint.md). В случае ошибки выбрасывает исключение.
@@ -1277,7 +1252,6 @@ toInt128('-128'): -128
* [`toInt128OrNull`](#toint128ornull).
* [`toInt128OrDefault`](#toint128ordefault).
-
## toInt128OrZero {#toint128orzero}
Подобно функции [`toInt128`](#toint128), преобразует входное значение в значение типа [Int128](../data-types/int-uint.md), но в случае ошибки возвращает `0`.
@@ -1340,7 +1314,6 @@ toInt128OrZero('abc'): 0
* [`toInt128OrNull`](#toint128ornull).
* [`toInt128OrDefault`](#toint128ordefault).
-
## toInt128OrNull {#toint128ornull}
Как и [`toInt128`](#toint128), эта функция преобразует входное значение в значение типа [Int128](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки.
@@ -1403,7 +1376,6 @@ toInt128OrNull('abc'): ᴺᵁᴸᴸ
* [`toInt128OrZero`](#toint128orzero).
* [`toInt128OrDefault`](#toint128ordefault).
-
## toInt128OrDefault {#toint128ordefault}
Как и [`toInt128`](#toint128), эта функция преобразует входное значение в значение типа [Int128](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию.
@@ -1472,7 +1444,6 @@ toInt128OrDefault('abc', CAST('-1', 'Int128')): -1
* [`toInt128OrZero`](#toint128orzero).
* [`toInt128OrNull`](#toint128ornull).
-
## toInt256 {#toint256}
Преобразует входное значение в значение типа [`Int256`](../data-types/int-uint.md). В случае ошибки генерирует исключение.
@@ -1538,7 +1509,6 @@ toInt256('-256'): -256
* [`toInt256OrNull`](#toint256ornull).
* [`toInt256OrDefault`](#toint256ordefault).
-
## toInt256OrZero {#toint256orzero}
Как и [`toInt256`](#toint256), эта функция преобразует входное значение в значение типа [Int256](../data-types/int-uint.md), но в случае ошибки возвращает `0`.
@@ -1601,7 +1571,6 @@ toInt256OrZero('abc'): 0
* [`toInt256OrNull`](#toint256ornull).
* [`toInt256OrDefault`](#toint256ordefault).
-
## toInt256OrNull {#toint256ornull}
Подобно функции [`toInt256`](#toint256), эта функция преобразует входное значение в значение типа [Int256](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки.
@@ -1664,7 +1633,6 @@ toInt256OrNull('abc'): ᴺᵁᴸᴸ
* [`toInt256OrZero`](#toint256orzero).
* [`toInt256OrDefault`](#toint256ordefault).
-
## toInt256OrDefault {#toint256ordefault}
Как и [`toInt256`](#toint256), эта функция преобразует входное значение в значение типа [Int256](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию.
@@ -1732,7 +1700,6 @@ toInt256OrDefault('abc', CAST('-1', 'Int256')): -1
* [`toInt256OrZero`](#toint256orzero).
* [`toInt256OrNull`](#toint256ornull).
-
## toUInt8 {#touint8}
Преобразует входное значение в значение типа [`UInt8`](../data-types/int-uint.md). В случае ошибки выбрасывает исключение.
@@ -1799,7 +1766,6 @@ toUInt8('8'): 8
* [`toUInt8OrNull`](#touint8ornull).
* [`toUInt8OrDefault`](#touint8ordefault).
-
## toUInt8OrZero {#touint8orzero}
Как и [`toUInt8`](#touint8), эта функция преобразует входное значение в значение типа [UInt8](../data-types/int-uint.md), но при ошибке возвращает `0`.
@@ -1862,7 +1828,6 @@ toUInt8OrZero('abc'): 0
* [`toUInt8OrNull`](#touint8ornull).
* [`toUInt8OrDefault`](#touint8ordefault).
-
## toUInt8OrNull {#touint8ornull}
Подобно функции [`toUInt8`](#touint8), эта функция преобразует входное значение в тип [UInt8](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`.
@@ -1925,7 +1890,6 @@ toUInt8OrNull('abc'): ᴺᵁᴸᴸ
* [`toUInt8OrZero`](#touint8orzero).
* [`toUInt8OrDefault`](#touint8ordefault).
-
## toUInt8OrDefault {#touint8ordefault}
Как и функция [`toUInt8`](#touint8), эта функция преобразует входное значение в значение типа [UInt8](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию.
@@ -1993,7 +1957,6 @@ toUInt8OrDefault('abc', CAST('0', 'UInt8')): 0
* [`toUInt8OrZero`](#touint8orzero).
* [`toUInt8OrNull`](#touint8ornull).
-
## toUInt16 {#touint16}
Преобразует входное значение в значение типа [`UInt16`](../data-types/int-uint.md). В случае ошибки выбрасывает исключение.
@@ -2060,7 +2023,6 @@ toUInt16('16'): 16
* [`toUInt16OrNull`](#touint16ornull).
* [`toUInt16OrDefault`](#touint16ordefault).
-
## toUInt16OrZero {#touint16orzero}
Аналогично функции [`toUInt16`](#touint16), эта функция преобразует входное значение в значение типа [UInt16](../data-types/int-uint.md), но в случае ошибки возвращает `0`.
@@ -2123,7 +2085,6 @@ toUInt16OrZero('abc'): 0
* [`toUInt16OrNull`](#touint16ornull).
* [`toUInt16OrDefault`](#touint16ordefault).
-
## toUInt16OrNull {#touint16ornull}
Аналогично функции [`toUInt16`](#touint16), эта функция преобразует входное значение в значение типа [UInt16](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`.
@@ -2186,7 +2147,6 @@ toUInt16OrNull('abc'): ᴺᵁᴸᴸ
* [`toUInt16OrZero`](#touint16orzero).
* [`toUInt16OrDefault`](#touint16ordefault).
-
## toUInt16OrDefault {#touint16ordefault}
Подобно [`toUInt16`](#touint16), эта функция преобразует входное значение в значение типа [UInt16](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию.
@@ -2254,7 +2214,6 @@ toUInt16OrDefault('abc', CAST('0', 'UInt16')): 0
* [`toUInt16OrZero`](#touint16orzero).
* [`toUInt16OrNull`](#touint16ornull).
-
## toUInt32 {#touint32}
Преобразует входное значение в значение типа [`UInt32`](../data-types/int-uint.md). В случае ошибки выбрасывает исключение.
@@ -2321,7 +2280,6 @@ toUInt32('32'): 32
* [`toUInt32OrNull`](#touint32ornull).
* [`toUInt32OrDefault`](#touint32ordefault).
-
## toUInt32OrZero {#touint32orzero}
Аналогично функции [`toUInt32`](#touint32), преобразует входное значение в тип [UInt32](../data-types/int-uint.md), но в случае ошибки возвращает `0`.
@@ -2385,7 +2343,6 @@ toUInt32OrZero('abc'): 0
* [`toUInt32OrNull`](#touint32ornull).
* [`toUInt32OrDefault`](#touint32ordefault).
-
## toUInt32OrNull {#touint32ornull}
Как и [`toUInt32`](#touint32), эта функция преобразует входное значение в значение типа [UInt32](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`.
@@ -2449,7 +2406,6 @@ toUInt32OrNull('abc'): ᴺᵁᴸᴸ
* [`toUInt32OrZero`](#touint32orzero).
* [`toUInt32OrDefault`](#touint32ordefault).
-
## toUInt32OrDefault {#touint32ordefault}
Как и функция [`toUInt32`](#touint32), эта функция преобразует входное значение в значение типа [UInt32](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию.
@@ -2517,7 +2473,6 @@ toUInt32OrDefault('abc', CAST('0', 'UInt32')): 0
* [`toUInt32OrZero`](#touint32orzero).
* [`toUInt32OrNull`](#touint32ornull).
-
## toUInt64 {#touint64}
Преобразует входное значение в значение типа [`UInt64`](../data-types/int-uint.md). В случае ошибки вызывает исключение.
@@ -2584,7 +2539,6 @@ toUInt64('64'): 64
* [`toUInt64OrNull`](#touint64ornull).
* [`toUInt64OrDefault`](#touint64ordefault).
-
## toUInt64OrZero {#touint64orzero}
Как и [`toUInt64`](#touint64), эта функция преобразует входное значение в значение типа [UInt64](../data-types/int-uint.md), но в случае ошибки возвращает `0`.
@@ -2647,7 +2601,6 @@ toUInt64OrZero('abc'): 0
* [`toUInt64OrNull`](#touint64ornull).
* [`toUInt64OrDefault`](#touint64ordefault).
-
## toUInt64OrNull {#touint64ornull}
Как и функция [`toUInt64`](#touint64), эта функция преобразует входное значение в значение типа [UInt64](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`.
@@ -2710,7 +2663,6 @@ toUInt64OrNull('abc'): ᴺᵁᴸᴸ
* [`toUInt64OrZero`](#touint64orzero).
* [`toUInt64OrDefault`](#touint64ordefault).
-
## toUInt64OrDefault {#touint64ordefault}
Как и [`toUInt64`](#touint64), эта функция преобразует входное значение к типу [UInt64](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию.
@@ -2778,7 +2730,6 @@ toUInt64OrDefault('abc', CAST('0', 'UInt64')): 0
* [`toUInt64OrZero`](#touint64orzero).
* [`toUInt64OrNull`](#touint64ornull).
-
## toUInt128 {#touint128}
Преобразует входное значение в значение типа [`UInt128`](../data-types/int-uint.md). В случае ошибки вызывает исключение.
@@ -2844,7 +2795,6 @@ toUInt128('128'): 128
* [`toUInt128OrNull`](#touint128ornull).
* [`toUInt128OrDefault`](#touint128ordefault).
-
## toUInt128OrZero {#touint128orzero}
Подобно функции [`toUInt128`](#touint128), эта функция преобразует входное значение к типу [UInt128](../data-types/int-uint.md), но в случае ошибки возвращает `0`.
@@ -2907,7 +2857,6 @@ toUInt128OrZero('abc'): 0
* [`toUInt128OrNull`](#touint128ornull).
* [`toUInt128OrDefault`](#touint128ordefault).
-
## toUInt128OrNull {#touint128ornull}
Аналогично функции [`toUInt128`](#touint128), эта функция преобразует входное значение в значение типа [UInt128](../data-types/int-uint.md), но при возникновении ошибки возвращает `NULL`.
@@ -2970,7 +2919,6 @@ toUInt128OrNull('abc'): ᴺᵁᴸᴸ
* [`toUInt128OrZero`](#touint128orzero).
* [`toUInt128OrDefault`](#touint128ordefault).
-
## toUInt128OrDefault {#touint128ordefault}
Аналогично функции [`toUInt128`](#toint128), эта функция преобразует входное значение в значение типа [UInt128](../data-types/int-uint.md), но при ошибке возвращает значение по умолчанию.
@@ -3039,7 +2987,6 @@ toUInt128OrDefault('abc', CAST('0', 'UInt128')): 0
* [`toUInt128OrZero`](#touint128orzero).
* [`toUInt128OrNull`](#touint128ornull).
-
## toUInt256 {#touint256}
Преобразует входное значение в значение типа [`UInt256`](../data-types/int-uint.md). В случае ошибки выбрасывает исключение.
@@ -3105,7 +3052,6 @@ toUInt256('256'): 256
* [`toUInt256OrNull`](#touint256ornull).
* [`toUInt256OrDefault`](#touint256ordefault).
-
## toUInt256OrZero {#touint256orzero}
Как и функция [`toUInt256`](#touint256), эта функция преобразует входное значение в значение типа [UInt256](../data-types/int-uint.md), но в случае ошибки возвращает `0`.
@@ -3168,7 +3114,6 @@ toUInt256OrZero('abc'): 0
* [`toUInt256OrNull`](#touint256ornull).
* [`toUInt256OrDefault`](#touint256ordefault).
-
## toUInt256OrNull {#touint256ornull}
Как и функция [`toUInt256`](#touint256), эта функция преобразует входное значение в значение типа [UInt256](../data-types/int-uint.md), но при ошибке возвращает `NULL`.
@@ -3231,7 +3176,6 @@ toUInt256OrNull('abc'): ᴺᵁᴸᴸ
* [`toUInt256OrZero`](#touint256orzero).
* [`toUInt256OrDefault`](#touint256ordefault).
-
## toUInt256OrDefault {#touint256ordefault}
Как и [`toUInt256`](#touint256), эта функция преобразует входное значение в значение типа [UInt256](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию.
@@ -3299,7 +3243,6 @@ toUInt256OrDefault('abc', CAST('0', 'UInt256')): 0
* [`toUInt256OrZero`](#touint256orzero).
* [`toUInt256OrNull`](#touint256ornull).
-
## toFloat32 {#tofloat32}
Преобразует входное значение в значение типа [`Float32`](../data-types/float.md). В случае ошибки выбрасывает исключение.
@@ -3357,7 +3300,6 @@ toFloat32('NaN'): nan
* [`toFloat32OrNull`](#tofloat32ornull).
* [`toFloat32OrDefault`](#tofloat32ordefault).
-
## toFloat32OrZero {#tofloat32orzero}
Как и функция [`toFloat32`](#tofloat32), эта функция преобразует входное значение к значению типа [Float32](../data-types/float.md), но в случае ошибки возвращает `0`.
@@ -3410,7 +3352,6 @@ toFloat32OrZero('abc'): 0
* [`toFloat32OrNull`](#tofloat32ornull).
* [`toFloat32OrDefault`](#tofloat32ordefault).
-
## toFloat32OrNull {#tofloat32ornull}
Как и [`toFloat32`](#tofloat32), эта функция преобразует входное значение в тип [Float32](../data-types/float.md), но возвращает `NULL` в случае ошибки.
@@ -3463,7 +3404,6 @@ toFloat32OrNull('abc'): ᴺᵁᴸᴸ
* [`toFloat32OrZero`](#tofloat32orzero).
* [`toFloat32OrDefault`](#tofloat32ordefault).
-
## toFloat32OrDefault {#tofloat32ordefault}
Как и [`toFloat32`](#tofloat32), эта функция преобразует входное значение в значение типа [Float32](../data-types/float.md), но в случае ошибки возвращает значение по умолчанию.
@@ -3521,7 +3461,6 @@ toFloat32OrDefault('abc', CAST('0', 'Float32')): 0
* [`toFloat32OrZero`](#tofloat32orzero).
* [`toFloat32OrNull`](#tofloat32ornull).
-
## toFloat64 {#tofloat64}
Преобразует входное значение в значение типа [`Float64`](../data-types/float.md). В случае ошибки выбрасывает исключение.
@@ -3579,7 +3518,6 @@ toFloat64('NaN'): nan
* [`toFloat64OrNull`](#tofloat64ornull).
* [`toFloat64OrDefault`](#tofloat64ordefault).
-
## toFloat64OrZero {#tofloat64orzero}
Аналогично функции [`toFloat64`](#tofloat64), эта функция преобразует входное значение в значение типа [Float64](../data-types/float.md), но в случае ошибки возвращает `0`.
@@ -3632,7 +3570,6 @@ toFloat64OrZero('abc'): 0
* [`toFloat64OrNull`](#tofloat64ornull).
* [`toFloat64OrDefault`](#tofloat64ordefault).
-
## toFloat64OrNull {#tofloat64ornull}
Подобно [`toFloat64`](#tofloat64), эта функция преобразует входное значение в значение типа [Float64](../data-types/float.md), но в случае ошибки возвращает `NULL`.
@@ -3685,7 +3622,6 @@ toFloat64OrNull('abc'): ᴺᵁᴸᴸ
* [`toFloat64OrZero`](#tofloat64orzero).
* [`toFloat64OrDefault`](#tofloat64ordefault).
-
## toFloat64OrDefault {#tofloat64ordefault}
Как и функция [`toFloat64`](#tofloat64), эта функция преобразует входное значение в значение типа [Float64](../data-types/float.md), но в случае ошибки возвращает значение по умолчанию.
@@ -3743,7 +3679,6 @@ toFloat64OrDefault('abc', CAST('0', 'Float64')): 0
* [`toFloat64OrZero`](#tofloat64orzero).
* [`toFloat64OrNull`](#tofloat64ornull).
-
## toBFloat16 {#tobfloat16}
Преобразует входное значение в значение типа [`BFloat16`](/sql-reference/data-types/float#bfloat16).
@@ -3791,7 +3726,6 @@ SELECT toBFloat16('42.7');
* [`toBFloat16OrZero`](#tobfloat16orzero).
* [`toBFloat16OrNull`](#tobfloat16ornull).
-
## toBFloat16OrZero {#tobfloat16orzero}
Преобразует строковое входное значение в значение типа [`BFloat16`](/sql-reference/data-types/float#bfloat16).
@@ -3845,7 +3779,6 @@ SELECT toBFloat16OrZero('12.3456789');
* [`toBFloat16`](#tobfloat16).
* [`toBFloat16OrNull`](#tobfloat16ornull).
-
## toBFloat16OrNull {#tobfloat16ornull}
Преобразует входное строковое значение в значение типа [`BFloat16`](/sql-reference/data-types/float#bfloat16),
@@ -3899,7 +3832,6 @@ SELECT toBFloat16OrNull('12.3456789');
* [`toBFloat16`](#tobfloat16).
* [`toBFloat16OrZero`](#tobfloat16orzero).
-
## toDate {#todate}
Приводит аргумент к типу данных [Date](../data-types/date.md).
@@ -4003,7 +3935,6 @@ SELECT toDate(10000000000.)
Функцию `toDate` можно также записать другими способами:
-
```sql
SELECT
now() AS time,
@@ -4018,7 +3949,6 @@ SELECT
└─────────────────────┴───────────────┴─────────────┴─────────────────────┘
```
-
## toDateOrZero {#todateorzero}
То же, что и [toDate](#todate), но при получении некорректного аргумента возвращает нижнюю границу типа [Date](../data-types/date.md). Поддерживается только аргумент типа [String](../data-types/string.md).
@@ -4039,7 +3969,6 @@ SELECT toDateOrZero('2022-12-30'), toDateOrZero('');
└────────────────────────────┴──────────────────┘
```
-
## toDateOrNull {#todateornull}
То же, что и [toDate](#todate), но возвращает `NULL`, если передан некорректный аргумент. Поддерживается только аргумент типа [String](../data-types/string.md).
@@ -4060,7 +3989,6 @@ SELECT toDateOrNull('2022-12-30'), toDateOrNull('');
└────────────────────────────┴──────────────────┘
```
-
## toDateOrDefault {#todateordefault}
Аналог функции [toDate](#todate), но при неуспешном преобразовании возвращает значение по умолчанию — либо второй аргумент (если он указан), либо нижнюю границу типа [Date](../data-types/date.md).
@@ -4087,7 +4015,6 @@ SELECT toDateOrDefault('2022-12-30'), toDateOrDefault('', '2023-01-01'::Date);
└───────────────────────────────┴─────────────────────────────────────────────────┘
```
-
## toDateTime {#todatetime}
Преобразует входное значение в значение типа [DateTime](../data-types/datetime.md).
@@ -4129,7 +4056,6 @@ SELECT toDateTime('2022-12-30 13:44:17'), toDateTime(1685457500, 'UTC');
└───────────────────────────────────┴───────────────────────────────┘
```
-
## toDateTimeOrZero {#todatetimeorzero}
То же, что и [toDateTime](#todatetime), но возвращает нижнюю границу типа [DateTime](../data-types/datetime.md), если передан недопустимый аргумент. Поддерживается только аргумент типа [String](../data-types/string.md).
@@ -4150,7 +4076,6 @@ SELECT toDateTimeOrZero('2022-12-30 13:44:17'), toDateTimeOrZero('');
└─────────────────────────────────────────┴──────────────────────┘
```
-
## toDateTimeOrNull {#todatetimeornull}
Такая же функция, как [toDateTime](#todatetime), но возвращает `NULL`, если передан некорректный аргумент. Поддерживается только аргумент типа [String](../data-types/string.md).
@@ -4171,7 +4096,6 @@ SELECT toDateTimeOrNull('2022-12-30 13:44:17'), toDateTimeOrNull('');
└─────────────────────────────────────────┴──────────────────────┘
```
-
## toDateTimeOrDefault {#todatetimeordefault}
Аналогично [toDateTime](#todatetime), но в случае неуспешного преобразования возвращает значение по умолчанию — либо третий аргумент (если он указан), либо нижнюю границу типа [DateTime](../data-types/datetime.md).
@@ -4198,7 +4122,6 @@ SELECT toDateTimeOrDefault('2022-12-30 13:44:17'), toDateTimeOrDefault('', 'UTC'
└────────────────────────────────────────────┴─────────────────────────────────────────────────────────────────────────┘
```
-
## toDate32 {#todate32}
Преобразует аргумент в тип данных [Date32](../data-types/date32.md). Если значение выходит за допустимый диапазон, `toDate32` возвращает граничные значения, поддерживаемые [Date32](../data-types/date32.md). Если аргумент имеет тип [Date](../data-types/date.md), учитываются его границы диапазона.
@@ -4255,7 +4178,6 @@ SELECT toDate32(toDate('1899-01-01')) AS value, toTypeName(value);
└────────────┴────────────────────────────────────────────┘
```
-
## toDate32OrZero {#todate32orzero}
То же, что и [toDate32](#todate32), но возвращает минимальное значение типа [Date32](../data-types/date32.md), если передан некорректный аргумент.
@@ -4276,7 +4198,6 @@ SELECT toDate32OrZero('1899-01-01'), toDate32OrZero('');
└──────────────────────────────┴────────────────────┘
```
-
## toDate32OrNull {#todate32ornull}
То же, что и [toDate32](#todate32), но возвращает `NULL`, если получен некорректный аргумент.
@@ -4297,7 +4218,6 @@ SELECT toDate32OrNull('1955-01-01'), toDate32OrNull('');
└──────────────────────────────┴────────────────────┘
```
-
## toDate32OrDefault {#todate32ordefault}
Преобразует аргумент к типу данных [Date32](../data-types/date32.md). Если значение выходит за допустимый диапазон, `toDate32OrDefault` возвращает нижнюю границу диапазона значений, поддерживаемого [Date32](../data-types/date32.md). Если аргумент имеет тип [Date](../data-types/date.md), его границы также учитываются. Возвращает значение по умолчанию, если получен некорректный аргумент.
@@ -4320,7 +4240,6 @@ SELECT
└─────────────────────────────────────────────────────────┴───────────────────────────────────────────────────────────┘
```
-
## toDateTime64 {#todatetime64}
Преобразует входной аргумент в значение типа [DateTime64](../data-types/datetime64.md).
@@ -4391,7 +4310,6 @@ SELECT toDateTime64('2019-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeN
└─────────────────────────┴─────────────────────────────────────────────────────────────────────┘
```
-
## toDateTime64OrZero {#todatetime64orzero}
Подобно функции [toDateTime64](#todatetime64), эта функция преобразует входное значение в значение типа [DateTime64](../data-types/datetime64.md), но при некорректном аргументе возвращает минимальное значение [DateTime64](../data-types/datetime64.md).
@@ -4434,7 +4352,6 @@ SELECT toDateTime64OrZero('2008-10-12 00:00:00 00:30:30', 3) AS invalid_arg
* [toDateTime64OrNull](#todatetime64ornull).
* [toDateTime64OrDefault](#todatetime64ordefault).
-
## toDateTime64OrNull {#todatetime64ornull}
Подобно функции [toDateTime64](#todatetime64), эта функция преобразует входное значение в значение типа [DateTime64](../data-types/datetime64.md), но возвращает `NULL`, если передан некорректный аргумент.
@@ -4479,7 +4396,6 @@ SELECT
* [toDateTime64OrZero](#todatetime64orzero).
* [toDateTime64OrDefault](#todatetime64ordefault).
-
## toDateTime64OrDefault {#todatetime64ordefault}
Как и [toDateTime64](#todatetime64), эта функция преобразует входное значение в значение типа [DateTime64](../data-types/datetime64.md),
@@ -4527,7 +4443,6 @@ SELECT
* [toDateTime64OrZero](#todatetime64orzero).
* [toDateTime64OrNull](#todatetime64ornull).
-
## toDecimal32 {#todecimal32}
Преобразует входное значение в значение типа [`Decimal(9, S)`](../data-types/decimal.md) с масштабом `S`. В случае ошибки выбрасывает исключение.
@@ -4600,7 +4515,6 @@ type_c: Decimal(9, 3)
* [`toDecimal32OrNull`](#todecimal32ornull).
* [`toDecimal32OrDefault`](#todecimal32ordefault).
-
## toDecimal32OrZero {#todecimal32orzero}
Как и [`toDecimal32`](#todecimal32), эта функция преобразует входное значение в значение типа [Decimal(9, S)](../data-types/decimal.md), но в случае ошибки возвращает `0`.
@@ -4666,7 +4580,6 @@ toTypeName(b): Decimal(9, 5)
* [`toDecimal32OrNull`](#todecimal32ornull).
* [`toDecimal32OrDefault`](#todecimal32ordefault).
-
## toDecimal32OrNull {#todecimal32ornull}
Как и [`toDecimal32`](#todecimal32), эта функция преобразует входное значение в значение типа [Nullable(Decimal(9, S))](../data-types/decimal.md), но в случае ошибки возвращает `0`.
@@ -4732,7 +4645,6 @@ toTypeName(b): Nullable(Decimal(9, 5))
* [`toDecimal32OrZero`](#todecimal32orzero).
* [`toDecimal32OrDefault`](#todecimal32ordefault).
-
## toDecimal32OrDefault {#todecimal32ordefault}
Подобно [`toDecimal32`](#todecimal32), эта функция преобразует входное значение в значение типа [Decimal(9, S)](../data-types/decimal.md), но в случае ошибки возвращает значение по умолчанию.
@@ -4805,7 +4717,6 @@ toTypeName(b): Decimal(9, 0)
* [`toDecimal32OrZero`](#todecimal32orzero).
* [`toDecimal32OrNull`](#todecimal32ornull).
-
## toDecimal64 {#todecimal64}
Преобразует входное значение в значение типа [`Decimal(18, S)`](../data-types/decimal.md) с масштабом `S`. В случае ошибки выбрасывает исключение.
@@ -4878,7 +4789,6 @@ type_c: Decimal(18, 3)
* [`toDecimal64OrNull`](#todecimal64ornull).
* [`toDecimal64OrDefault`](#todecimal64ordefault).
-
## toDecimal64OrZero {#todecimal64orzero}
Как и [`toDecimal64`](#todecimal64), эта функция преобразует входное значение в значение типа [Decimal(18, S)](../data-types/decimal.md), но при ошибке возвращает `0`.
@@ -4944,7 +4854,6 @@ toTypeName(b): Decimal(18, 18)
* [`toDecimal64OrNull`](#todecimal64ornull).
* [`toDecimal64OrDefault`](#todecimal64ordefault).
-
## toDecimal64OrNull {#todecimal64ornull}
Как и функция [`toDecimal64`](#todecimal64), эта функция преобразует входное значение в значение типа [Nullable(Decimal(18, S))](../data-types/decimal.md), но в случае ошибки возвращает `0`.
@@ -5010,7 +4919,6 @@ toTypeName(b): Nullable(Decimal(18, 18))
* [`toDecimal64OrZero`](#todecimal64orzero).
* [`toDecimal64OrDefault`](#todecimal64ordefault).
-
## toDecimal64OrDefault {#todecimal64ordefault}
Как и [`toDecimal64`](#todecimal64), эта функция преобразует входное значение в значение типа [Decimal(18, S)](../data-types/decimal.md), но при ошибке возвращает значение по умолчанию.
@@ -5083,7 +4991,6 @@ toTypeName(b): Decimal(18, 0)
* [`toDecimal64OrZero`](#todecimal64orzero).
* [`toDecimal64OrNull`](#todecimal64ornull).
-
## toDecimal128 {#todecimal128}
Преобразует входное значение в значение типа [`Decimal(38, S)`](../data-types/decimal.md) с масштабом `S`. В случае ошибки выбрасывает исключение.
@@ -5156,7 +5063,6 @@ type_c: Decimal(38, 3)
* [`toDecimal128OrNull`](#todecimal128ornull).
* [`toDecimal128OrDefault`](#todecimal128ordefault).
-
## toDecimal128OrZero {#todecimal128orzero}
Аналогично функции [`toDecimal128`](#todecimal128), эта функция преобразует входное значение в тип [Decimal(38, S)](../data-types/decimal.md), но в случае ошибки возвращает `0`.
@@ -5222,7 +5128,6 @@ toTypeName(b): Decimal(38, 38)
* [`toDecimal128OrNull`](#todecimal128ornull).
* [`toDecimal128OrDefault`](#todecimal128ordefault).
-
## toDecimal128OrNull {#todecimal128ornull}
Аналогично функции [`toDecimal128`](#todecimal128), эта функция преобразует входное значение в значение типа [Nullable(Decimal(38, S))](../data-types/decimal.md), однако в случае ошибки возвращает `0`.
@@ -5288,7 +5193,6 @@ toTypeName(b): Nullable(Decimal(38, 38))
* [`toDecimal128OrZero`](#todecimal128orzero).
* [`toDecimal128OrDefault`](#todecimal128ordefault).
-
## toDecimal128OrDefault {#todecimal128ordefault}
Как и функция [`toDecimal128`](#todecimal128), эта функция преобразует входное значение в тип [Decimal(38, S)](../data-types/decimal.md), но в случае ошибки возвращает значение по умолчанию.
@@ -5361,7 +5265,6 @@ toTypeName(b): Decimal(38, 0)
* [`toDecimal128OrZero`](#todecimal128orzero).
* [`toDecimal128OrNull`](#todecimal128ornull).
-
## toDecimal256 {#todecimal256}
Преобразует входное значение в значение типа [`Decimal(76, S)`](../data-types/decimal.md) с масштабом `S`. В случае ошибки выбрасывает исключение.
@@ -5434,7 +5337,6 @@ type_c: Decimal(76, 3)
* [`toDecimal256OrNull`](#todecimal256ornull).
* [`toDecimal256OrDefault`](#todecimal256ordefault).
-
## toDecimal256OrZero {#todecimal256orzero}
Аналогично [`toDecimal256`](#todecimal256), эта функция преобразует входное значение в значение типа [Decimal(76, S)](../data-types/decimal.md), но в случае ошибки возвращает `0`.
@@ -5500,7 +5402,6 @@ toTypeName(b): Decimal(76, 76)
* [`toDecimal256OrNull`](#todecimal256ornull).
* [`toDecimal256OrDefault`](#todecimal256ordefault).
-
## toDecimal256OrNull {#todecimal256ornull}
Как и [`toDecimal256`](#todecimal256), эта функция преобразует входное значение в значение типа [Nullable(Decimal(76, S))](../data-types/decimal.md), но при ошибке возвращает `0`.
@@ -5566,7 +5467,6 @@ toTypeName(b): Nullable(Decimal(76, 76))
* [`toDecimal256OrZero`](#todecimal256orzero).
* [`toDecimal256OrDefault`](#todecimal256ordefault).
-
## toDecimal256OrDefault {#todecimal256ordefault}
Как и функция [`toDecimal256`](#todecimal256), эта функция преобразует входное значение в значение типа [Decimal(76, S)](../data-types/decimal.md), но в случае ошибки возвращает значение по умолчанию.
@@ -5639,7 +5539,6 @@ toTypeName(b): Decimal(76, 0)
* [`toDecimal256OrZero`](#todecimal256orzero).
* [`toDecimal256OrNull`](#todecimal256ornull).
-
## toString {#tostring}
Преобразует значения в их строковое представление.
@@ -5684,7 +5583,6 @@ LIMIT 10;
└─────────────────────┴───────────────────┴─────────────────────┘
```
-
## toFixedString {#tofixedstring}
Преобразует аргумент типа [String](../data-types/string.md) в тип [FixedString(N)](../data-types/fixedstring.md) (строку фиксированной длины N).
@@ -5721,7 +5619,6 @@ SELECT toFixedString('foo', 8) AS s;
└───────────────┘
```
-
## toStringCutToZero {#tostringcuttozero}
Принимает аргумент типа String или FixedString. Возвращает строку типа String, усечённую на первом найденном нулевом байте.
@@ -5762,7 +5659,6 @@ SELECT toFixedString('foo\0bar', 8) AS s, toStringCutToZero(s) AS s_cut;
└────────────┴───────┘
```
-
## toDecimalString {#todecimalstring}
Преобразует числовое значение в значение типа String с количеством дробных знаков в результирующей строке, заданным пользователем.
@@ -5801,7 +5697,6 @@ SELECT toDecimalString(CAST('64.32', 'Float64'), 5);
└─────────────────────────────────────────────┘
```
-
## reinterpretAsUInt8 {#reinterpretasuint8}
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа UInt8. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не имеет смысла.
@@ -5840,7 +5735,6 @@ SELECT
└───┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsUInt16 {#reinterpretasuint16}
Выполняет байтовую переинтерпретацию, рассматривая входное значение как значение типа UInt16. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить тип входного значения, результат не имеет осмысленного значения.
@@ -5879,7 +5773,6 @@ SELECT
└───┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsUInt32 {#reinterpretasuint32}
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt32. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить значение входного типа, результат не имеет смысла.
@@ -5918,7 +5811,6 @@ SELECT
└─────┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsUInt64 {#reinterpretasuint64}
Выполняет побайтовую переинтерпретацию, трактуя входное значение как значение типа UInt64. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не имеет смысла.
@@ -5957,7 +5849,6 @@ SELECT
└─────┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsUInt128 {#reinterpretasuint128}
Выполняет побайтовую переинтерпретацию, трактуя входное значение как значение типа UInt128. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить тип входного значения, результат не имеет смысла.
@@ -5996,7 +5887,6 @@ SELECT
└─────┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsUInt256 {#reinterpretasuint256}
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа UInt256. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не имеет смысла.
@@ -6035,7 +5925,6 @@ SELECT
└─────┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsInt8 {#reinterpretasint8}
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Int8. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить значение входного типа, результат не имеет смысла.
@@ -6074,7 +5963,6 @@ SELECT
└───┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsInt16 {#reinterpretasint16}
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Int16. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить тип входного значения, результат будет произвольным.
@@ -6113,7 +6001,6 @@ SELECT
└───┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsInt32 {#reinterpretasint32}
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Int32. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить тип входного значения, результат становится бессмысленным.
@@ -6152,7 +6039,6 @@ SELECT
└─────┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsInt64 {#reinterpretasint64}
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Int64. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат будет бессмысленным.
@@ -6191,7 +6077,6 @@ SELECT
└─────┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsInt128 {#reinterpretasint128}
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int128. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить значение исходного типа, результат не имеет смысла.
@@ -6230,7 +6115,6 @@ SELECT
└─────┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsInt256 {#reinterpretasint256}
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Int256. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, полученное значение не имеет смысла.
@@ -6269,7 +6153,6 @@ SELECT
└─────┴───────────────┴─────┴─────────────────┘
```
-
## reinterpretAsFloat32 {#reinterpretasfloat32}
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Float32. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может корректно представить исходное, результат не имеет смысла.
@@ -6304,7 +6187,6 @@ SELECT reinterpretAsUInt32(toFloat32(0.2)) AS x, reinterpretAsFloat32(x);
└────────────┴─────────────────────────┘
```
-
## reinterpretAsFloat64 {#reinterpretasfloat64}
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Float64. В отличие от [`CAST`](#cast), функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат будет некорректным.
@@ -6339,7 +6221,6 @@ SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x);
└─────────────────────┴─────────────────────────┘
```
-
## reinterpretAsDate {#reinterpretasdate}
Принимает значение типа String, FixedString или числовое значение и интерпретирует байты как число в порядке байтов хоста (little-endian). Возвращает дату, соответствующую количеству дней, прошедших с начала эпохи Unix.
@@ -6380,7 +6261,6 @@ SELECT reinterpretAsDate(65), reinterpretAsDate('A');
└───────────────────────┴────────────────────────┘
```
-
## reinterpretAsDateTime {#reinterpretasdatetime}
Эти функции принимают строку и интерпретируют байты, расположенные в начале строки, как число в порядке байтов хоста (little endian). Возвращают дату и время, интерпретируемые как количество секунд с начала эпохи Unix.
@@ -6421,7 +6301,6 @@ SELECT reinterpretAsDateTime(65), reinterpretAsDateTime('A');
└───────────────────────────┴────────────────────────────┘
```
-
## reinterpretAsString {#reinterpretasstring}
Эта функция принимает число, дату или дату со временем и возвращает строку, содержащую байты, представляющие соответствующее значение в порядке байт хоста (little-endian). Нулевые байты удаляются с конца. Например, значение типа UInt32, равное 255, представляется строкой длиной один байт.
@@ -6458,7 +6337,6 @@ SELECT
└────────────────────────────────────────────────────────┴───────────────────────────────────────────┘
```
-
## reinterpretAsFixedString {#reinterpretasfixedstring}
Эта функция принимает на вход число, дату или дату со временем и возвращает значение типа FixedString, содержащее байты, представляющие соответствующее значение в порядке байтов хоста (little-endian). Нулевые байты отбрасываются с конца. Например, значение типа UInt32, равное 255, — это FixedString длиной в один байт.
@@ -6495,7 +6373,6 @@ SELECT
└─────────────────────────────────────────────────────────────┴────────────────────────────────────────────────┘
```
-
## reinterpretAsUUID {#reinterpretasuuid}
:::note
@@ -6556,7 +6433,6 @@ SELECT uuid = uuid2;
└─────────────────────┘
```
-
## reinterpret {#reinterpret}
Использует ту же последовательность байт в памяти для значения `x` и интерпретирует её как значение целевого типа.
@@ -6608,7 +6484,6 @@ SELECT reinterpret(x'3108b4403108d4403108b4403108d440', 'Array(Float32)') AS str
└────────────────────────────┘
```
-
## CAST {#cast}
Преобразует входное значение к указанному типу данных. В отличие от функции [reinterpret](#reinterpret), `CAST` пытается представить то же значение, используя новый тип данных. Если преобразование невозможно, выбрасывается исключение.
@@ -6714,7 +6589,6 @@ SELECT toTypeName(CAST(x, 'Nullable(UInt16)')) FROM t_null;
* Настройка [cast_keep_nullable](../../operations/settings/settings.md/#cast_keep_nullable)
-
## accurateCast(x, T) {#accuratecastx-t}
Преобразует `x` к типу данных `T`.
@@ -6749,7 +6623,6 @@ SELECT accurateCast(-1, 'UInt8') AS uint8;
Код: 70. DB::Exception: Получено от localhost:9000. DB::Exception: Значение в столбце Int8 невозможно безопасно преобразовать в тип UInt8: При обработке accurateCast(-1, 'UInt8') AS uint8.
```
-
## accurateCastOrNull(x, T) {#accuratecastornullx-t}
Преобразует входное значение `x` в указанный тип данных `T`. Всегда возвращает тип [Nullable](../data-types/nullable.md) и значение [NULL](/sql-reference/syntax#null), если результат приведения не может быть представлен в целевом типе.
@@ -6802,7 +6675,6 @@ SELECT
└───────┴──────┴──────────────┘
```
-
## accurateCastOrDefault(x, T[, default_value]) {#accuratecastordefaultx-t-default_value}
Преобразует входное значение `x` в указанный тип данных `T`. Возвращает значение типа по умолчанию или `default_value` (если оно задано), если результат приведения не может быть представлен в целевом типе.
@@ -6859,7 +6731,6 @@ SELECT
└───────┴───────────────┴──────┴──────────────┴──────────────┴──────────────────────┘
```
-
## toInterval {#toInterval}
Создаёт значение типа данных [Interval](../../sql-reference/data-types/special-data-types/interval.md) из числового значения и единицы измерения интервала (например, 'second' или 'day').
@@ -6907,7 +6778,6 @@ SELECT toDateTime('2025-01-01 00:00:00') + toInterval(1, 'hour')
└────────────────────────────────────────────────────────────┘
```
-
## toIntervalYear {#tointervalyear}
Возвращает интервал продолжительностью `n` лет типа данных [IntervalYear](../data-types/special-data-types/interval.md).
@@ -6945,7 +6815,6 @@ SELECT date + interval_to_year AS result
└────────────┘
```
-
## toIntervalQuarter {#tointervalquarter}
Возвращает интервал продолжительностью `n` кварталов типа данных [IntervalQuarter](../data-types/special-data-types/interval.md).
@@ -6983,7 +6852,6 @@ SELECT date + interval_to_quarter AS result
└────────────┘
```
-
## toIntervalMonth {#tointervalmonth}
Возвращает интервал длительностью `n` месяцев типа данных [IntervalMonth](../data-types/special-data-types/interval.md).
@@ -7021,7 +6889,6 @@ SELECT date + interval_to_month AS result
└────────────┘
```
-
## toIntervalWeek {#tointervalweek}
Возвращает интервал продолжительностью `n` недель типа данных [IntervalWeek](../data-types/special-data-types/interval.md).
@@ -7059,7 +6926,6 @@ SELECT date + interval_to_week AS result
└────────────┘
```
-
## toIntervalDay {#tointervalday}
Возвращает интервал в `n` дней с типом данных [IntervalDay](../data-types/special-data-types/interval.md).
@@ -7097,7 +6963,6 @@ SELECT date + interval_to_days AS result
└────────────┘
```
-
## toIntervalHour {#tointervalhour}
Возвращает интервал продолжительностью `n` часов типа данных [IntervalHour](../data-types/special-data-types/interval.md).
@@ -7135,7 +7000,6 @@ SELECT date + interval_to_hours AS result
└─────────────────────┘
```
-
## toIntervalMinute {#tointervalminute}
Возвращает интервал в `n` минут типа данных [IntervalMinute](../data-types/special-data-types/interval.md).
@@ -7173,7 +7037,6 @@ SELECT date + interval_to_minutes AS result
└─────────────────────┘
```
-
## toIntervalSecond {#tointervalsecond}
Возвращает интервал длительностью `n` секунд типа данных [IntervalSecond](../data-types/special-data-types/interval.md).
@@ -7211,7 +7074,6 @@ SELECT date + interval_to_seconds AS result
└─────────────────────┘
```
-
## toIntervalMillisecond {#tointervalmillisecond}
Возвращает интервал продолжительностью `n` миллисекунд типа данных [IntervalMillisecond](../data-types/special-data-types/interval.md).
@@ -7249,7 +7111,6 @@ SELECT date + interval_to_milliseconds AS result
└─────────────────────────┘
```
-
## toIntervalMicrosecond {#tointervalmicrosecond}
Возвращает интервал длительностью `n` микросекунд типа данных [IntervalMicrosecond](../data-types/special-data-types/interval.md).
@@ -7287,7 +7148,6 @@ SELECT date + interval_to_microseconds AS result
└────────────────────────────┘
```
-
## toIntervalNanosecond {#tointervalnanosecond}
Возвращает интервал в `n` наносекунд типа данных [IntervalNanosecond](../data-types/special-data-types/interval.md).
@@ -7325,7 +7185,6 @@ SELECT date + interval_to_nanoseconds AS result
└───────────────────────────────┘
```
-
## parseDateTime {#parsedatetime}
Преобразует [String](../data-types/string.md) в [DateTime](../data-types/datetime.md) в соответствии со [строкой формата MySQL](https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format).
@@ -7366,21 +7225,16 @@ SELECT parseDateTime('2021-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')
Псевдоним: `TO_TIMESTAMP`.
-
## parseDateTimeOrZero {#parsedatetimeorzero}
Аналогично функции [parseDateTime](#parsedatetime), за исключением того, что при встрече формата даты, который не может быть обработан, возвращает нулевую дату.
-
-
## parseDateTimeOrNull {#parsedatetimeornull}
То же, что и [parseDateTime](#parsedatetime), за исключением того, что при встрече неподдерживаемого формата даты функция возвращает `NULL`.
Псевдоним: `str_to_date`.
-
-
## parseDateTimeInJodaSyntax {#parsedatetimeinjodasyntax}
Аналогична функции [parseDateTime](#parsedatetime), за исключением того, что строка формата задаётся в синтаксисе [Joda](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html), а не MySQL.
@@ -7421,19 +7275,14 @@ SELECT parseDateTimeInJodaSyntax('2023-02-24 14:53:31', 'yyyy-MM-dd HH:mm:ss', '
└─────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## parseDateTimeInJodaSyntaxOrZero {#parsedatetimeinjodasyntaxorzero}
То же, что и [parseDateTimeInJodaSyntax](#parsedatetimeinjodasyntax), за исключением того, что при встрече с форматом даты, который не удаётся обработать, возвращает нулевую дату.
-
-
## parseDateTimeInJodaSyntaxOrNull {#parsedatetimeinjodasyntaxornull}
Аналогично [parseDateTimeInJodaSyntax](#parsedatetimeinjodasyntax), за исключением того, что при обнаружении неподдерживаемого формата даты возвращает `NULL`.
-
-
## parseDateTime64 {#parsedatetime64}
Преобразует [String](../data-types/string.md) в тип [DateTime64](../data-types/datetime64.md) в соответствии со [строкой формата MySQL](https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format).
@@ -7455,19 +7304,14 @@ parseDateTime64(str[, format[, timezone]])
Возвращает значение типа [DateTime64](../data-types/datetime64.md), разобранное из входной строки в соответствии со строкой формата в стиле MySQL.
Точность возвращаемого значения равна 6.
-
## parseDateTime64OrZero {#parsedatetime64orzero}
То же, что и [parseDateTime64](#parsedatetime64), но при обнаружении неподдерживаемого формата даты возвращает нулевую дату.
-
-
## parseDateTime64OrNull {#parsedatetime64ornull}
То же, что и [parseDateTime64](#parsedatetime64), но возвращает `NULL`, если встречает формат даты, который не может быть обработан.
-
-
## parseDateTime64InJodaSyntax {#parsedatetime64injodasyntax}
Преобразует [String](../data-types/string.md) в [DateTime64](../data-types/datetime64.md) в соответствии с [форматной строкой Joda](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html).
@@ -7489,19 +7333,14 @@ parseDateTime64InJodaSyntax(str[, format[, timezone]])
Возвращает значение типа [DateTime64](../data-types/datetime64.md), полученное разбором входной строки в соответствии со строкой формата в стиле Joda.
Точность возвращаемого значения равна количеству символов `S` в строке формата (но не более 6).
-
## parseDateTime64InJodaSyntaxOrZero {#parsedatetime64injodasyntaxorzero}
Работает так же, как [parseDateTime64InJodaSyntax](#parsedatetime64injodasyntax), за исключением того, что при обнаружении формата даты, который не может быть обработан, возвращает нулевую дату.
-
-
## parseDateTime64InJodaSyntaxOrNull {#parsedatetime64injodasyntaxornull}
То же, что и [parseDateTime64InJodaSyntax](#parsedatetime64injodasyntax), но возвращает `NULL`, если формат даты не может быть обработан.
-
-
## parseDateTimeBestEffort {#parsedatetimebesteffort}
## parseDateTime32BestEffort {#parsedatetime32besteffort}
@@ -7607,7 +7446,6 @@ SELECT toYear(now()) AS year, parseDateTimeBestEffort('10 20:19');
Результат:
-
```response
┌─year─┬─parseDateTimeBestEffort('10 20:19')─┐
│ 2023 │ 2023-01-10 20:19:00 │
@@ -7644,39 +7482,28 @@ FROM (SELECT arrayJoin([ts_now - 30, ts_now + 30]) AS ts_around);
* [Анонс ISO 8601 от @xkcd](https://xkcd.com/1179/)
* [RFC 3164](https://datatracker.ietf.org/doc/html/rfc3164#section-4.1.2)
-
## parseDateTimeBestEffortUS {#parsedatetimebesteffortus}
Эта функция ведёт себя как [parseDateTimeBestEffort](#parsedatetimebesteffort) для ISO-форматов даты, например `YYYY-MM-DD hh:mm:ss`, и других форматов даты, в которых компоненты месяца и дня могут быть однозначно извлечены, например `YYYYMMDDhhmmss`, `YYYY-MM`, `DD hh` или `YYYY-MM-DD hh:mm:ss ±h:mm`. Если компоненты месяца и дня не могут быть однозначно извлечены, например `MM/DD/YYYY`, `MM-DD-YYYY` или `MM-DD-YY`, по умолчанию используется американский формат даты вместо `DD/MM/YYYY`, `DD-MM-YYYY` или `DD-MM-YY`. В качестве исключения из последнего, если значение месяца больше 12 и не превышает 31, функция переходит к поведению [parseDateTimeBestEffort](#parsedatetimebesteffort), например `15/08/2020` интерпретируется как `2020-08-15`.
-
-
## parseDateTimeBestEffortOrNull {#parsedatetimebesteffortornull}
## parseDateTime32BestEffortOrNull {#parsedatetime32besteffortornull}
Аналогично [parseDateTimeBestEffort](#parsedatetimebesteffort), за исключением того, что возвращает `NULL`, если встречает формат даты, который невозможно обработать.
-
-
## parseDateTimeBestEffortOrZero {#parsedatetimebesteffortorzero}
## parseDateTime32BestEffortOrZero {#parsedatetime32besteffortorzero}
То же, что и [parseDateTimeBestEffort](#parsedatetimebesteffort), за исключением того, что при встрече с форматом даты, который невозможно обработать, возвращается нулевая дата или нулевое значение даты-времени.
-
-
## parseDateTimeBestEffortUSOrNull {#parsedatetimebesteffortusornull}
То же, что и функция [parseDateTimeBestEffortUS](#parsedatetimebesteffortus), за исключением того, что она возвращает `NULL`, если встречает формат даты, который нельзя обработать.
-
-
## parseDateTimeBestEffortUSOrZero {#parsedatetimebesteffortusorzero}
То же, что и функция [parseDateTimeBestEffortUS](#parsedatetimebesteffortus), за исключением того, что она возвращает нулевую дату (`1970-01-01`) или нулевую дату со временем (`1970-01-01 00:00:00`), если встречается формат даты, который не удаётся обработать.
-
-
## parseDateTime64BestEffort {#parsedatetime64besteffort}
То же, что и функция [parseDateTimeBestEffort](#parsedatetimebesteffort), но дополнительно обрабатывает миллисекунды и микросекунды и возвращает тип данных [DateTime](/sql-reference/data-types/datetime).
@@ -7723,37 +7550,26 @@ FORMAT PrettyCompactMonoBlock;
└────────────────────────────┴────────────────────────────────┘
```
-
## parseDateTime64BestEffortUS {#parsedatetime64besteffortus}
Аналогична функции [parseDateTime64BestEffort](#parsedatetime64besteffort), за исключением того, что при неоднозначности она отдаёт предпочтение американскому формату даты (`MM/DD/YYYY` и т.д.).
-
-
## parseDateTime64BestEffortOrNull {#parsedatetime64besteffortornull}
Работает так же, как [parseDateTime64BestEffort](#parsedatetime64besteffort), но возвращает `NULL`, если встречает формат даты, который не может быть обработан.
-
-
## parseDateTime64BestEffortOrZero {#parsedatetime64besteffortorzero}
То же, что и [parseDateTime64BestEffort](#parsedatetime64besteffort), за исключением того, что при встрече с форматом даты, который не удаётся обработать, возвращает нулевую дату или нулевое значение даты и времени.
-
-
## parseDateTime64BestEffortUSOrNull {#parsedatetime64besteffortusornull}
Аналогична функции [parseDateTime64BestEffort](#parsedatetime64besteffort), за исключением того, что при неоднозначности эта функция отдаёт предпочтение формату даты, принятому в США (`MM/DD/YYYY` и т. д.), и возвращает `NULL`, если встречает формат даты, который не может быть обработан.
-
-
## parseDateTime64BestEffortUSOrZero {#parsedatetime64besteffortusorzero}
То же, что и [parseDateTime64BestEffort](#parsedatetime64besteffort), за исключением того, что при неоднозначной интерпретации эта функция предпочитает американский формат даты (`MM/DD/YYYY` и т. д.) и возвращает нулевую дату или нулевое значение дата-время, если встречает формат даты, который невозможно обработать.
-
-
## toLowCardinality {#tolowcardinality}
Преобразует входной параметр в вариант типа данных [LowCardinality](../data-types/lowcardinality.md) на основе исходного типа.
@@ -7790,7 +7606,6 @@ SELECT toLowCardinality('1');
└───────────────────────┘
```
-
## toUnixTimestamp {#toUnixTimestamp}
Преобразует `String`, `Date` или `DateTime` в Unix-метку времени (количество секунд с `1970-01-01 00:00:00 UTC`) типа `UInt32`.
@@ -7838,7 +7653,6 @@ from_date: 1509840000
from_date32: 1509840000
```
-
## toUnixTimestamp64Second {#tounixtimestamp64second}
Преобразует `DateTime64` в значение типа `Int64` с фиксированной точностью до секунды. Входное значение масштабируется вверх или вниз в зависимости от его точности.
@@ -7878,7 +7692,6 @@ SELECT toUnixTimestamp64Second(dt64);
└───────────────────────────────┘
```
-
## toUnixTimestamp64Milli {#tounixtimestamp64milli}
Преобразует `DateTime64` в значение типа `Int64` с фиксированной точностью до миллисекунд. Входное значение при необходимости увеличивается или уменьшается в зависимости от его исходной точности.
@@ -7918,7 +7731,6 @@ SELECT toUnixTimestamp64Milli(dt64);
└──────────────────────────────┘
```
-
## toUnixTimestamp64Micro {#tounixtimestamp64micro}
Преобразует `DateTime64` в значение типа `Int64` с фиксированной микросекундной точностью. Входное значение соответствующим образом масштабируется (увеличивается или уменьшается) в зависимости от его точности.
@@ -7958,7 +7770,6 @@ SELECT toUnixTimestamp64Micro(dt64);
└──────────────────────────────┘
```
-
## toUnixTimestamp64Nano {#tounixtimestamp64nano}
Преобразует `DateTime64` в значение типа `Int64` с фиксированной наносекундной точностью. Входное значение масштабируется вверх или вниз в зависимости от его точности.
@@ -7998,7 +7809,6 @@ SELECT toUnixTimestamp64Nano(dt64);
└─────────────────────────────┘
```
-
## fromUnixTimestamp64Second {#fromunixtimestamp64second}
Преобразует значение типа `Int64` в `DateTime64` с фиксированной точностью до секунд и необязательным указанием часового пояса. Входное значение масштабируется (увеличивается или уменьшается) в зависимости от его точности.
@@ -8041,7 +7851,6 @@ SELECT
└─────────────────────┴──────────────────────┘
```
-
## fromUnixTimestamp64Milli {#fromunixtimestamp64milli}
Преобразует значение типа `Int64` в значение типа `DateTime64` с фиксированной точностью до миллисекунд и необязательным указанием часового пояса. Входное значение соответствующим образом масштабируется вверх или вниз в зависимости от его точности.
@@ -8084,7 +7893,6 @@ SELECT
└─────────────────────────┴──────────────────────┘
```
-
## fromUnixTimestamp64Micro {#fromunixtimestamp64micro}
Преобразует значение типа `Int64` в `DateTime64` с фиксированной микросекундной точностью и необязательным часовым поясом. Входное значение масштабируется в большую или меньшую сторону в зависимости от его точности.
@@ -8127,7 +7935,6 @@ SELECT
└────────────────────────────┴──────────────────────┘
```
-
## fromUnixTimestamp64Nano {#fromunixtimestamp64nano}
Преобразует значение типа `Int64` в `DateTime64` с фиксированной точностью до наносекунд и необязательным указанием часового пояса. Входное значение масштабируется (увеличивается или уменьшается) в зависимости от его исходной точности.
@@ -8170,7 +7977,6 @@ SELECT
└───────────────────────────────┴──────────────────────┘
```
-
## formatRow {#formatrow}
Преобразует произвольные выражения в строку по указанному формату.
@@ -8242,7 +8048,6 @@ SETTINGS format_custom_result_before_delimiter='\n', format_custom_resul
Примечание: в этой функции поддерживаются только строчно-ориентированные форматы.
-
## formatRowNoNewline {#formatrownonewline}
Преобразует произвольные выражения в строку через заданный формат. Отличается от formatRow тем, что эта функция удаляет последний символ `\n`, если он есть.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/udf.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/udf.md
index 0dd7f5c82c1..09d19cc0e80 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/udf.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/udf.md
@@ -10,7 +10,6 @@ import PrivatePreviewBadge from '@theme/badges/PrivatePreviewBadge';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-
# Пользовательская функция (UDF) {#executable-user-defined-functions}
@@ -48,12 +47,8 @@ ClickHouse может вызывать любую внешнюю исполня
Команда должна читать аргументы из `STDIN` и выводить результат в `STDOUT`. Команда должна обрабатывать аргументы итеративно, то есть после обработки блока аргументов она должна ожидать следующий блок.
-
-
## Выполнимые пользовательские функции {#executable-user-defined-functions}
-
-
## Примеры {#examples}
### UDF из inline-скрипта {#udf-inline}
@@ -193,7 +188,6 @@ SELECT test_function_python(toUInt64(2));
Создайте `test_function_sum_json` с именованными аргументами и форматом [JSONEachRow](/interfaces/formats/JSONEachRow), используя конфигурацию в формате XML или YAML.
-
Файл `test_function.xml` (`/etc/clickhouse-server/test_function.xml` при использовании путей по умолчанию).
@@ -332,7 +326,6 @@ if __name__ == "__main__":
SELECT test_function_parameter_python(1)(2);
```
-
```text title="Result"
┌─test_function_parameter_python(1)(2)─┐
│ Параметр 1, значение 2 │
@@ -412,15 +405,12 @@ SELECT test_shell(number) FROM numbers(10);
└────────────────────┘
```
-
## Обработка ошибок {#error-handling}
Некоторые функции могут выбрасывать исключение, если данные некорректны.
В этом случае запрос отменяется, а клиенту возвращается текст ошибки.
При распределённой обработке, когда исключение происходит на одном из серверов, остальные серверы также пытаются прервать выполнение запроса.
-
-
## Вычисление выражений аргументов {#evaluation-of-argument-expressions}
Почти во всех языках программирования один из аргументов может не вычисляться для некоторых операторов.
@@ -428,8 +418,6 @@ SELECT test_shell(number) FROM numbers(10);
В ClickHouse аргументы функций (операторов) всегда вычисляются.
Это связано с тем, что целые фрагменты столбцов обрабатываются сразу, а не вычисляется каждая строка по отдельности.
-
-
## Выполнение функций при распределённой обработке запросов {#performing-functions-for-distributed-query-processing}
При распределённой обработке запросов как можно больше стадий обработки выполняется на удалённых серверах, а оставшиеся стадии (слияние промежуточных результатов и всё последующее) выполняются на сервере, инициировавшем запрос.
@@ -446,13 +434,9 @@ SELECT test_shell(number) FROM numbers(10);
Если функция в запросе выполняется на сервере, инициировавшем запрос, но вам нужно выполнить её на удалённых серверах, вы можете обернуть её в агрегатную функцию `any` или добавить её в ключ группировки в `GROUP BY`.
-
-
## Определяемые пользователем SQL-функции {#sql-user-defined-functions}
Пользовательские функции на основе лямбда-выражений можно создавать с помощью оператора [CREATE FUNCTION](../statements/create/function.md). Чтобы удалить эти функции, используйте оператор [DROP FUNCTION](../statements/drop.md#drop-function).
-
-
## Связанные материалы {#related-content}
- [Пользовательские функции (UDF) в ClickHouse Cloud](https://clickhouse.com/blog/user-defined-functions-clickhouse-udfs)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/ulid-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/ulid-functions.md
index 1e4d2f1204f..9d781aedd90 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/ulid-functions.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/ulid-functions.md
@@ -6,8 +6,6 @@ title: 'Функции для работы с ULID'
doc_type: 'reference'
---
-
-
# Функции для работы с ULID {#functions-for-working-with-ulids}
:::note
@@ -20,7 +18,6 @@ doc_type: 'reference'
См.: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md
*/ }
-
{/*AUTOGENERATED_START*/ }
## ULIDStringToDateTime {#ULIDStringToDateTime}
@@ -58,7 +55,6 @@ SELECT ULIDStringToDateTime('01GNB2S2FGN2P93QPXDNB4EN2R')
└────────────────────────────────────────────────────┘
```
-
## generateULID {#generateULID}
Введена в версии v23.2
@@ -107,7 +103,6 @@ SELECT generateULID(1), generateULID(2)
{/*AUTOGENERATED_END*/ }
-
## См. также {#see-also}
- [UUID](../../sql-reference/functions/uuid-functions.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/operators/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/operators/index.md
index 0574f2b2aa7..dfb1d046b87 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/operators/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/operators/index.md
@@ -130,7 +130,6 @@ SELECT
└──────────────────────────┴──────────────────────────┘
```
-
## Операторы для работы с наборами данных {#operators-for-working-with-data-sets}
См. [операторы IN](../../sql-reference/operators/in.md) и оператор [EXISTS](../../sql-reference/operators/exists.md).
@@ -205,7 +204,6 @@ SELECT number AS a FROM numbers(10) WHERE a > ANY (SELECT number FROM numbers(3,
└───┘
```
-
## Операторы для работы с датами и временем {#operators-for-working-with-dates-and-times}
### EXTRACT {#extract}
@@ -272,7 +270,6 @@ FROM test.Orders;
Дополнительные примеры можно найти в [tests](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/00619_extract.sql).
-
### INTERVAL {#interval}
Создает значение типа [Interval](../../sql-reference/data-types/special-data-types/interval.md), которое следует использовать в арифметических операциях со значениями типов [Date](../../sql-reference/data-types/date.md) и [DateTime](../../sql-reference/data-types/datetime.md).
@@ -347,7 +344,6 @@ SELECT toDateTime('2014-10-26 00:00:00', 'Asia/Istanbul') AS time, time + 60 * 6
* [Interval](../../sql-reference/data-types/special-data-types/interval.md) — тип данных
* функции преобразования типов [toInterval](/sql-reference/functions/type-conversion-functions#tointervalyear)
-
## Оператор логического AND {#logical-and-operator}
Синтаксис `SELECT a AND b` — вычисляет логическую конъюнкцию выражений `a` и `b` с помощью функции [and](/sql-reference/functions/logical-functions#and).
@@ -384,7 +380,6 @@ END
Функция `transform` не поддерживает значение `NULL`.
-
## Оператор конкатенации {#concatenation-operator}
`s1 || s2` – Функция `concat(s1, s2)`.
@@ -435,7 +430,6 @@ SELECT x+100 FROM t_null WHERE y IS NULL
└──────────────┘
```
-
### IS NOT NULL {#is_not_null}
* Для значений типа [Nullable](../../sql-reference/data-types/nullable.md) оператор `IS NOT NULL` возвращает:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/column.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/column.md
index 0f82d900611..7d95272dbd7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/column.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/column.md
@@ -32,7 +32,6 @@ ALTER [TEMPORARY] TABLE [db].name [ON CLUSTER cluster] ADD|DROP|RENAME|CLEAR|COM
* [MATERIALIZE COLUMN](#materialize-column) — Материализует столбец в частях таблицы, где этот столбец отсутствует.
Эти действия подробно описаны ниже.
-
## ADD COLUMN {#add-column}
```sql
@@ -69,7 +68,6 @@ ToDrop UInt32
Added3 UInt32
```
-
## Удаление столбца {#drop-column}
```sql
@@ -90,7 +88,6 @@ DROP COLUMN [IF EXISTS] name
ALTER TABLE visits DROP COLUMN browser
```
-
## ПЕРЕИМЕНОВАТЬ СТОЛБЕЦ {#rename-column}
```sql
@@ -107,7 +104,6 @@ RENAME COLUMN [IF EXISTS] имя_столбца TO новое_имя
ALTER TABLE visits RENAME COLUMN webBrowser TO browser
```
-
## ОЧИСТИТЬ СТОЛБЕЦ {#clear-column}
```sql
@@ -124,7 +120,6 @@ CLEAR COLUMN [IF EXISTS] имя IN PARTITION имя_раздела
ALTER TABLE visits CLEAR COLUMN browser IN PARTITION tuple()
```
-
## Столбец COMMENT {#comment-column}
```sql
@@ -143,7 +138,6 @@ COMMENT COLUMN [IF EXISTS] имя 'Текстовый комментарий'
ALTER TABLE visits COMMENT COLUMN browser 'В этом столбце указан браузер, используемый для доступа к сайту.'
```
-
## ИЗМЕНЕНИЕ СТОЛБЦА {#modify-column}
```sql
@@ -223,7 +217,6 @@ DESCRIBE users;
Будьте осторожны при изменении столбца типа Nullable на Non-Nullable. Убедитесь, что он не содержит значений NULL, в противном случае это приведёт к проблемам при чтении из него. В таком случае обходным решением будет остановить мутацию (KILL MUTATION) и вернуть столбец к типу Nullable.
:::
-
## MODIFY COLUMN REMOVE {#modify-column-remove}
Удаляет одно из следующих свойств столбца: `DEFAULT`, `ALIAS`, `MATERIALIZED`, `CODEC`, `COMMENT`, `TTL`, `SETTINGS`.
@@ -246,7 +239,6 @@ ALTER TABLE table_with_ttl MODIFY COLUMN column_ttl REMOVE TTL;
* [REMOVE TTL](ttl.md).
-
## MODIFY COLUMN MODIFY SETTING {#modify-column-modify-setting}
Изменяет параметр столбца.
@@ -265,7 +257,6 @@ ALTER TABLE table_name MODIFY COLUMN column_name MODIFY SETTING name=value,...;
ALTER TABLE table_name MODIFY COLUMN column_name MODIFY SETTING max_compress_block_size = 1048576;
```
-
## MODIFY COLUMN RESET SETTING {#modify-column-reset-setting}
Сбрасывает настройку столбца и удаляет объявление этой настройки в определении столбца в запросе CREATE таблицы.
@@ -284,7 +275,6 @@ ALTER TABLE имя_таблицы MODIFY COLUMN имя_столбца RESET SETT
ALTER TABLE имя_таблицы MODIFY COLUMN имя_столбца RESET SETTING max_compress_block_size;
```
-
## MATERIALIZE COLUMN {#materialize-column}
Материализует столбец с выражением значения `DEFAULT` или `MATERIALIZED`. При добавлении материализованного столбца с помощью `ALTER TABLE table_name ADD COLUMN column_name MATERIALIZED` существующие строки без материализованных значений не заполняются автоматически. Инструкцию `MATERIALIZE COLUMN` можно использовать для перезаписи данных существующего столбца после того, как выражение `DEFAULT` или `MATERIALIZED` было добавлено или обновлено (что обновляет только метаданные, но не изменяет существующие данные). Обратите внимание, что материализация столбца в ключе сортировки является недопустимой операцией, поскольку это может нарушить порядок сортировки.
@@ -345,7 +335,6 @@ SELECT groupArray(x), groupArray(s) FROM tmp;
* [MATERIALIZED](/sql-reference/statements/create/view#materialized-view).
-
## Ограничения {#limitations}
Запрос `ALTER` позволяет создавать и удалять отдельные элементы (столбцы) во вложенных структурах данных, но не целые вложенные структуры данных. Чтобы добавить вложенную структуру данных, вы можете добавить столбцы с именем вида `name.nested_name` и типом `Array(T)`. Вложенная структура данных эквивалентна нескольким столбцам-массивам с именами с одинаковым префиксом до точки.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/comment.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/comment.md
index f1220b68fbd..24dbad65005 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/comment.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/comment.md
@@ -9,21 +9,16 @@ keywords: ['ALTER TABLE', 'MODIFY COMMENT']
doc_type: 'reference'
---
-
-
# ALTER TABLE ... MODIFY COMMENT {#alter-table-modify-comment}
Добавляет, изменяет или удаляет комментарий к таблице, независимо от того, был ли он задан ранее или нет. Изменение комментария отображается как в [`system.tables`](../../../operations/system-tables/tables.md), так и в результате запроса `SHOW CREATE TABLE`.
-
-
## Синтаксис {#syntax}
```sql
ALTER TABLE [db].name [ON CLUSTER cluster] MODIFY COMMENT 'Комментарий'
```
-
## Примеры {#examples}
Чтобы создать таблицу с комментарием:
@@ -79,7 +74,6 @@ WHERE database = currentDatabase() AND name = 'table_with_comment';
└─────────┘
```
-
## Ограничения {#caveats}
Для таблиц Replicated комментарий может отличаться на разных репликах.
@@ -88,8 +82,6 @@ WHERE database = currentDatabase() AND name = 'table_with_comment';
Эта возможность доступна, начиная с версии 23.9. В предыдущих версиях
ClickHouse она не работает.
-
-
## Связанные материалы {#related-content}
- предложение [`COMMENT`](/sql-reference/statements/create/table#comment-clause)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/database-comment.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/database-comment.md
index 30a57b4b4b1..c220c9cde83 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/database-comment.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/database-comment.md
@@ -9,21 +9,16 @@ keywords: ['ALTER DATABASE', 'MODIFY COMMENT']
doc_type: 'reference'
---
-
-
# ALTER DATABASE ... MODIFY COMMENT {#alter-database-modify-comment}
Добавляет, изменяет или удаляет комментарий к базе данных, независимо от того, был ли он задан ранее. Изменение комментария отражается как в [`system.databases`](/operations/system-tables/databases.md), так и в результате запроса `SHOW CREATE DATABASE`.
-
-
## Синтаксис {#syntax}
```sql
ALTER DATABASE [db].name [ON CLUSTER cluster] MODIFY COMMENT 'Comment'
```
-
## Примеры {#examples}
Чтобы создать базу данных (`DATABASE`) с комментарием:
@@ -74,7 +69,6 @@ WHERE name = 'database_with_comment';
└─────────┘
```
-
## См. также {#related-content}
- Предложение [`COMMENT`](/sql-reference/statements/create/table#comment-clause)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/delete.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/delete.md
index deba18c03a4..7536db944bb 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/delete.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/delete.md
@@ -7,8 +7,6 @@ title: 'Оператор ALTER TABLE ... DELETE'
doc_type: 'reference'
---
-
-
# Инструкция ALTER TABLE ... DELETE {#alter-table-delete-statement}
```sql
@@ -33,7 +31,6 @@ ALTER TABLE [db.]table [ON CLUSTER cluster] DELETE WHERE filter_expr
* [Синхронность запросов ALTER](/sql-reference/statements/alter/index.md#synchronicity-of-alter-queries)
* Настройка [mutations_sync](/operations/settings/settings.md/#mutations_sync)
-
## Связанные материалы {#related-content}
- Блог: [Обработка обновлений и удалений в ClickHouse](https://clickhouse.com/blog/handling-updates-and-deletes-in-clickhouse)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/index.md
index 66e8919fc40..bede6f3a2f4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/index.md
@@ -7,8 +7,6 @@ title: 'ALTER'
doc_type: 'reference'
---
-
-
# ALTER {#alter}
Большинство запросов `ALTER TABLE` изменяют настройки таблицы или данные:
@@ -51,8 +49,6 @@ doc_type: 'reference'
| [ALTER TABLE ... MODIFY COMMENT](/sql-reference/statements/alter/comment.md) | Добавляет, изменяет или удаляет комментарии к таблице, независимо от того, были ли они заданы ранее. |
| [ALTER NAMED COLLECTION](/sql-reference/statements/alter/named-collection.md) | Изменяет [именованные коллекции](/operations/named-collections.md). |
-
-
## Мутации {#mutations}
`ALTER`-запросы, предназначенные для изменения данных таблицы, реализованы с помощью механизма, называемого «мутациями», в первую очередь [ALTER TABLE ... DELETE](/sql-reference/statements/alter/delete.md) и [ALTER TABLE ... UPDATE](/sql-reference/statements/alter/update.md). Это асинхронные фоновые процессы, подобные слияниям в таблицах [MergeTree](/engines/table-engines/mergetree-family/index.md), которые создают новые «мутированные» версии частей данных.
@@ -66,8 +62,6 @@ doc_type: 'reference'
Записи о завершенных мутациях не удаляются сразу (количество сохраняемых записей определяется параметром движка хранения `finished_mutations_to_keep`). Более старые записи о мутациях удаляются.
-
-
## Синхронность запросов ALTER {#synchronicity-of-alter-queries}
Для нереплицируемых таблиц все запросы `ALTER` выполняются синхронно. Для реплицируемых таблиц запрос лишь добавляет инструкции для соответствующих действий в `ZooKeeper`, а сами действия выполняются как можно скорее. Однако запрос может ожидать завершения этих действий на всех репликах.
@@ -82,8 +76,6 @@ doc_type: 'reference'
Для всех запросов `ALTER`, если `alter_sync = 2` и некоторые реплики неактивны дольше времени, указанного в настройке `replication_wait_for_inactive_replica_timeout`, будет сгенерировано исключение `UNFINISHED`.
:::
-
-
## Связанные материалы {#related-content}
- Блог: [Обработка обновлений и удалений в ClickHouse](https://clickhouse.com/blog/handling-updates-and-deletes-in-clickhouse)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/projection.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/projection.md
index ce8fa4a941c..c796a270443 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/projection.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/projection.md
@@ -21,8 +21,6 @@ doc_type: 'reference'
Более технические подробности об устройстве проекций можно найти на этой [странице](/guides/best-practices/sparse-primary-indexes.md/#option-3-projections).
-
-
## Пример фильтрации без использования первичного ключа {#example-filtering-without-using-primary-keys}
Создание таблицы:
@@ -79,7 +77,6 @@ LIMIT 2
SELECT query, projections FROM system.query_log WHERE query_id=''
```
-
## Пример запроса предварительной агрегации {#example-pre-aggregation-query}
Создание таблицы с проекцией:
@@ -157,7 +154,6 @@ GROUP BY user_agent
SELECT query, projections FROM system.query_log WHERE query_id=''
```
-
## Обычная проекция с полем `_part_offset` {#normal-projection-with-part-offset-field}
Создание таблицы с обычной проекцией, использующей поле `_part_offset`:
@@ -202,31 +198,22 @@ WHERE _part_starting_offset + _part_offset IN (
SETTINGS enable_shared_storage_snapshot_in_query = 1
```
-
# Управление проекциями {#manipulating-projections}
Доступны следующие операции с [проекциями](/engines/table-engines/mergetree-family/mergetree.md/#projections):
-
-
## ДОБАВИТЬ ПРОЕКЦИЮ {#add-projection}
`ALTER TABLE [db.]name [ON CLUSTER cluster] ADD PROJECTION [IF NOT EXISTS] name ( SELECT <COLUMN LIST EXPR> [GROUP BY] [ORDER BY] )` — добавляет в метаданные таблицы описание проекции.
-
-
## DROP PROJECTION {#drop-projection}
`ALTER TABLE [db.]name [ON CLUSTER cluster] DROP PROJECTION [IF EXISTS] name` — удаляет из метаданных таблицы описание проекции и соответствующие файлы проекции на диске. Реализовано как [мутация](/sql-reference/statements/alter/index.md#mutations).
-
-
## MATERIALIZE PROJECTION {#materialize-projection}
`ALTER TABLE [db.]table [ON CLUSTER cluster] MATERIALIZE PROJECTION [IF EXISTS] name [IN PARTITION partition_name]` - запрос перестраивает проекцию `name` в партиции `partition_name`. Реализован как [мутация](/sql-reference/statements/alter/index.md#mutations).
-
-
## CLEAR PROJECTION {#clear-projection}
`ALTER TABLE [db.]table [ON CLUSTER cluster] CLEAR PROJECTION [IF EXISTS] name [IN PARTITION partition_name]` — удаляет файлы проекции с диска, не удаляя её описания. Эта операция реализована как [мутация](/sql-reference/statements/alter/index.md#mutations).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/skipping-index.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/skipping-index.md
index 0677d5bfc9c..fda54a90e4a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/skipping-index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/skipping-index.md
@@ -8,32 +8,22 @@ toc_hidden_folder: true
doc_type: 'reference'
---
-
-
# Работа с индексами пропуска данных {#manipulating-data-skipping-indices}
Доступны следующие операции:
-
-
## ADD INDEX {#add-index}
`ALTER TABLE [db.]table_name [ON CLUSTER cluster] ADD INDEX [IF NOT EXISTS] name expression TYPE type [GRANULARITY value] [FIRST|AFTER name]` - Добавляет описание индекса в метаданные таблицы.
-
-
## DROP INDEX {#drop-index}
`ALTER TABLE [db.]table_name [ON CLUSTER cluster] DROP INDEX [IF EXISTS] name` — удаляет описание индекса из метаданных таблицы и файлы индекса с диска. Реализована как [мутация](/sql-reference/statements/alter/index.md#mutations).
-
-
## MATERIALIZE INDEX {#materialize-index}
`ALTER TABLE [db.]table_name [ON CLUSTER cluster] MATERIALIZE INDEX [IF EXISTS] name [IN PARTITION partition_name]` — перестраивает вторичный индекс `name` для указанного `partition_name`. Операция реализована как [мутация](/sql-reference/statements/alter/index.md#mutations). Если часть `IN PARTITION` опущена, индекс перестраивается для данных всей таблицы.
-
-
## CLEAR INDEX {#clear-index}
`ALTER TABLE [db.]table_name [ON CLUSTER cluster] CLEAR INDEX [IF EXISTS] name [IN PARTITION partition_name]` — удаляет с диска файлы вторичного индекса, при этом не удаляя его описание. Эта операция реализована как [мутация](/sql-reference/statements/alter/index.md#mutations).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/update.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/update.md
index 4df162c04e6..6a514a8456a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/update.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/update.md
@@ -7,8 +7,6 @@ title: 'Команды ALTER TABLE ... UPDATE'
doc_type: 'reference'
---
-
-
# Команды ALTER TABLE ... UPDATE {#alter-table-update-statements}
```sql
@@ -33,7 +31,6 @@ ALTER TABLE [db.]table [ON CLUSTER cluster] UPDATE column1 = expr1 [, ...] [IN P
* [Синхронность ALTER-запросов](/sql-reference/statements/alter/index.md#synchronicity-of-alter-queries)
* Настройка [mutations_sync](/operations/settings/settings.md/#mutations_sync)
-
## Связанные материалы {#related-content}
- Блог: [Обработка обновлений и удалений в ClickHouse](https://clickhouse.com/blog/handling-updates-and-deletes-in-clickhouse)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/user.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/user.md
index 8169ed033ef..b174bba82a1 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/user.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/user.md
@@ -30,7 +30,6 @@ ALTER USER [IF EXISTS] name1 [RENAME TO new_name |, name2 [,...]]
Чтобы использовать `ALTER USER`, необходимо иметь привилегию [ALTER USER](../../../sql-reference/statements/grant.md#access-management).
-
## Клауза GRANTEES {#grantees-clause}
Определяет пользователей или роли, которым разрешено получать [привилегии](../../../sql-reference/statements/grant.md#privileges) от этого пользователя при условии, что этому пользователю также выданы все необходимые привилегии с [GRANT OPTION](../../../sql-reference/statements/grant.md#granting-privilege-syntax). Параметры клаузы `GRANTEES`:
@@ -42,8 +41,6 @@ ALTER USER [IF EXISTS] name1 [RENAME TO new_name |, name2 [,...]]
Вы можете исключить любого пользователя или роль с помощью выражения `EXCEPT`. Например, `ALTER USER user1 GRANTEES ANY EXCEPT user2`. Это означает, что если у `user1` есть какие‑то привилегии, выданные с `GRANT OPTION`, то он сможет выдавать эти привилегии кому угодно, кроме `user2`.
-
-
## Примеры {#examples}
Сделайте назначенные роли ролями по умолчанию:
@@ -104,7 +101,6 @@ ALTER USER user1 IDENTIFIED WITH plaintext_password by '1', bcrypt_password by '
ALTER USER user1 RESET AUTHENTICATION METHODS TO NEW
```
-
## Оператор VALID UNTIL {#valid-until-clause}
Позволяет задать дату окончания срока действия и, при необходимости, время для метода аутентификации. Принимает строку в качестве параметра. Рекомендуется использовать формат `YYYY-MM-DD [hh:mm:ss] [timezone]` для значения даты и времени. По умолчанию этот параметр равен `'infinity'`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/view.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/view.md
index 1d5b148dd76..e84e0dc5db7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/view.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/alter/view.md
@@ -7,8 +7,6 @@ title: 'Оператор ALTER TABLE ... MODIFY QUERY'
doc_type: 'reference'
---
-
-
# Оператор ALTER TABLE ... MODIFY QUERY {#alter-table-modify-query-statement}
Вы можете изменить запрос `SELECT`, который был указан при создании [материализованного представления](/sql-reference/statements/create/view#materialized-view), с помощью оператора `ALTER TABLE ... MODIFY QUERY` без прерывания процесса ингестии.
@@ -92,7 +90,6 @@ ALTER TABLE mv MODIFY QUERY
GROUP BY ts, event_type, browser;
```
-
INSERT INTO events
SELECT Date '2020-01-03' + interval number * 900 second,
['imp', 'click'][number%2+1],
@@ -172,7 +169,6 @@ browser
Возможности приложения сильно ограничены, так как вы можете изменять только раздел `SELECT`, не добавляя новые столбцы.
```
-
```sql
CREATE TABLE src_table (`a` UInt32) ENGINE = MergeTree ORDER BY a;
CREATE MATERIALIZED VIEW mv (`a` UInt32) ENGINE = MergeTree ORDER BY a AS SELECT a FROM src_table;
@@ -204,7 +200,6 @@ SELECT * FROM mv;
└───┘
```
-
## Оператор ALTER TABLE ... MODIFY REFRESH {#alter-table--modify-refresh-statement}
Оператор `ALTER TABLE ... MODIFY REFRESH` изменяет параметры обновления для [обновляемого материализованного представления](../create/view.md#refreshable-materialized-view). См. [Изменение параметров обновления](../create/view.md#changing-refresh-parameters).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/check-grant.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/check-grant.md
index c98d498f4e7..354c9001238 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/check-grant.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/check-grant.md
@@ -9,8 +9,6 @@ doc_type: 'reference'
Запрос `CHECK GRANT` используется для проверки, была ли текущему пользователю или роли предоставлена определённая привилегия.
-
-
## Синтаксис {#syntax}
Основной синтаксис запроса следующий:
@@ -21,7 +19,6 @@ CHECK GRANT privilege[(column_name [,...])] [,...] ON {db.table[*]|db[*].*|*.*|t
* `privilege` — тип права доступа.
-
## Примеры {#examples}
Если пользователю ранее была предоставлена привилегия, значение поля `check_grant` в ответе будет равно `1`. В противном случае значение `check_grant` будет равно `0`.
@@ -50,6 +47,5 @@ CHECK GRANT SELECT(col2) ON table_2;
└────────┘
```
-
## Подстановочные символы {#wildcard}
При указании привилегий можно использовать звездочку (`*`) вместо имени таблицы или базы данных. Правила использования подстановочных символов описаны в разделе [WILDCARD GRANTS](../../sql-reference/statements/grant.md#wildcard-grants).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/check-table.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/check-table.md
index 8fd534bff82..6490e289278 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/check-table.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/check-table.md
@@ -17,8 +17,6 @@ doc_type: 'reference'
Этот запрос не улучшит производительность системы, и вам не следует выполнять его, если вы не уверены в своих действиях.
:::
-
-
## Синтаксис {#syntax}
Основной синтаксис запроса выглядит следующим образом:
@@ -55,7 +53,6 @@ doc_type: 'reference'
Движки из семейства `*Log` не обеспечивают автоматическое восстановление данных при сбое. Используйте запрос `CHECK TABLE`, чтобы своевременно отслеживать потерю данных.
-
## Примеры {#examples}
По умолчанию запрос `CHECK TABLE` показывает общий результат проверки таблицы:
@@ -152,7 +149,6 @@ FORMAT PrettyCompactMonoBlock
SETTINGS check_query_single_value_result = 0
```
-
```text
┌─база_данных─┬─таблица──┬─путь_части───┬─пройдено─┬─сообщение─┐
│ default │ t2 │ all_1_95_3 │ 1 │ │
@@ -168,7 +164,6 @@ SETTINGS check_query_single_value_result = 0
└──────────┴──────────┴─────────────┴───────────┴─────────┘
```
-
## Если данные повреждены {#if-the-data-is-corrupted}
Если таблица повреждена, вы можете скопировать неповреждённые данные в другую таблицу. Для этого:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/role.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/role.md
index 56d84c85c85..2591dc6419b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/role.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/role.md
@@ -17,7 +17,6 @@ CREATE ROLE [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER clus
[SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [CONST|READONLY|WRITABLE|CHANGEABLE_IN_READONLY] | PROFILE 'profile_name'] [,...]
```
-
## Управление ролями {#managing-roles}
Пользователю может быть назначено несколько ролей. Пользователи могут применять назначенные им роли в произвольных комбинациях с помощью оператора [SET ROLE](../../../sql-reference/statements/set-role.md). Итоговый набор привилегий представляет собой объединение всех привилегий всех применённых ролей. Если пользователю были выданы привилегии непосредственно на его учётную запись, они также объединяются с привилегиями, предоставленными ролями.
@@ -28,8 +27,6 @@ CREATE ROLE [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER clus
Чтобы удалить роль, используйте оператор [DROP ROLE](/sql-reference/statements/drop#drop-role). Удалённая роль автоматически отзывается у всех пользователей и ролей, которым она была назначена.
-
-
## Примеры {#examples}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/row-policy.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/row-policy.md
index a0245855eca..aec613fb73f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/row-policy.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/row-policy.md
@@ -24,13 +24,10 @@ CREATE [ROW] POLICY [IF NOT EXISTS | OR REPLACE] policy_name1 [ON CLUSTER cluste
[TO {role1 [, role2 ...] | ALL | ALL EXCEPT role1 [, role2 ...]}]
```
-
## Предложение USING {#using-clause}
Позволяет задать условие для фильтрации строк. Пользователь увидит строку, если при вычислении условия для этой строки получается ненулевое значение.
-
-
## Клауза TO {#to-clause}
В секции `TO` вы можете указать список пользователей и ролей, для которых должна действовать эта политика. Например, `CREATE ROW POLICY ... TO accountant, john@localhost`.
@@ -49,8 +46,6 @@ CREATE [ROW] POLICY [IF NOT EXISTS | OR REPLACE] policy_name1 [ON CLUSTER cluste
`CREATE ROW POLICY pol2 ON mydb.table1 USING 1 TO ALL EXCEPT mira, peter`
:::
-
-
## Оператор AS {#as-clause}
Допускается одновременное включение нескольких политик для одной и той же таблицы и одного и того же пользователя. Поэтому нужен способ комбинировать условия из нескольких политик.
@@ -96,13 +91,10 @@ CREATE ROW POLICY pol2 ON mydb.table1 USING c=2 AS RESTRICTIVE TO peter, antonio
разрешить пользователю `peter` видеть строки таблицы table1 только при одновременном выполнении условий `b=1` И `c=2`, тогда как
для всех остальных таблиц в mydb для этого пользователя будет применяться только политика `b=1`.
-
## Предложение ON CLUSTER {#on-cluster-clause}
Позволяет создавать политики доступа к строкам на кластере, см. [Distributed DDL](../../../sql-reference/distributed-ddl.md).
-
-
## Примеры {#examples}
`CREATE ROW POLICY filter1 ON mydb.mytable USING a<1000 TO accountant, john@localhost`
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/table.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/table.md
index 64e15a71bdb..a20af493e44 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/table.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/table.md
@@ -16,7 +16,6 @@ import TabItem from '@theme/TabItem';
По умолчанию таблицы создаются только на текущем сервере. Распределенные DDL-запросы реализованы с помощью предложения `ON CLUSTER`, которое [описано отдельно](../../../sql-reference/distributed-ddl.md).
-
## Синтаксические формы {#syntax-forms}
### С явной схемой {#with-explicit-schema}
@@ -100,7 +99,6 @@ SELECT x, toTypeName(x) FROM t1;
└───┴───────────────┘
```
-
## Модификаторы NULL и NOT NULL {#null-or-not-null-modifiers}
Модификаторы `NULL` и `NOT NULL` после типа данных в определении столбца соответственно разрешают или запрещают делать его [Nullable](/sql-reference/data-types/nullable).
@@ -109,8 +107,6 @@ SELECT x, toTypeName(x) FROM t1;
См. также настройку [data_type_default_nullable](../../../operations/settings/settings.md#data_type_default_nullable).
-
-
## Значения по умолчанию {#default_values}
Описание столбца может задавать выражение значения по умолчанию в виде `DEFAULT expr`, `MATERIALIZED expr` или `ALIAS expr`. Пример: `URLDomain String DEFAULT domain(URL)`.
@@ -217,7 +213,6 @@ FROM test
FORMAT Vertical;
```
-
Строка 1:
──────
id: 1
@@ -263,7 +258,6 @@ SELECT * FROM test SETTINGS asterisk_include_alias_columns=1;
└────┴────────────┴──────────┘
````
-
## Первичный ключ {#primary-key}
Вы можете задать [первичный ключ](../../../engines/table-engines/mergetree-family/mergetree.md#primary-keys-and-indexes-in-queries) при создании таблицы. Первичный ключ можно указать двумя способами:
@@ -294,7 +288,6 @@ PRIMARY KEY(expr1[, expr2,...]);
Нельзя совмещать оба подхода в одном запросе.
:::
-
## Ограничения {#constraints}
Наряду с описаниями столбцов можно задать ограничения:
@@ -339,13 +332,10 @@ ORDER BY (name_len, name);
`ASSUME CONSTRAINT` **не обеспечивает выполнение ограничения**, он лишь информирует оптимизатор, что ограничение соблюдается. Если ограничение на самом деле не выполняется, результаты запросов могут быть некорректными. Поэтому следует использовать `ASSUME CONSTRAINT` только в том случае, если вы уверены, что ограничение действительно выполняется.
-
## Выражение TTL {#ttl-expression}
Определяет срок хранения значений. Может быть задано только для таблиц семейства MergeTree. Для подробного описания см. раздел [TTL для столбцов и таблиц](../../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-ttl).
-
-
## Кодеки сжатия столбцов {#column_compression_codec}
По умолчанию ClickHouse использует сжатие `lz4` в самостоятельной (self-managed) установке и `zstd` в ClickHouse Cloud.
@@ -427,7 +417,6 @@ ClickHouse поддерживает кодеки как общего, так и
`DEFLATE_QPL` — [алгоритм сжатия Deflate](https://github.com/intel/qpl), реализованный с помощью Intel® Query Processing Library. Применяются некоторые ограничения:
-
- DEFLATE_QPL отключен по умолчанию и может использоваться только после включения параметра конфигурации [enable_deflate_qpl_codec](../../../operations/settings/settings.md#enable_deflate_qpl_codec).
- DEFLATE_QPL требует сборку ClickHouse, скомпилированную с использованием инструкций SSE 4.2 (по умолчанию это так). Подробнее см. в разделе [Сборка ClickHouse с DEFLATE_QPL](/development/building_and_benchmarking_deflate_qpl).
- DEFLATE_QPL работает наилучшим образом, если в системе есть устройство разгрузки Intel® IAA (In-Memory Analytics Accelerator). Подробнее см. [Accelerator Configuration](https://intel.github.io/qpl/documentation/get_started_docs/installation.html#accelerator-configuration) и [Benchmark with DEFLATE_QPL](/development/building_and_benchmarking_deflate_qpl).
@@ -455,8 +444,6 @@ ClickHouse поддерживает кодеки как общего, так и
#### FPC {#fpc}
-
-
`FPC(level, float_size)` — последовательно предсказывает следующее значение с плавающей запятой в последовательности, выбирая лучший из двух предикторов, затем выполняет XOR фактического значения с предсказанным и сжимает результат, обрезая ведущие нули. Аналогично алгоритму Gorilla, это эффективно при хранении последовательности значений с плавающей запятой, которые изменяются медленно. Для 64-битных значений (`double`) FPC работает быстрее, чем Gorilla, для 32-битных значений производительность может отличаться. Возможные значения `level`: 1–28, значение по умолчанию — 12. Возможные значения `float_size`: 4, 8, значение по умолчанию — `sizeof(type)`, если тип — `Float`. Во всех остальных случаях — 4. Подробное описание алгоритма см. в статье [High Throughput Compression of Double-Precision Floating-Point Data](https://userweb.cs.txstate.edu/~burtscher/papers/dcc07a.pdf).
#### T64 {#t64}
@@ -522,7 +509,6 @@ CREATE TABLE mytable
ENGINE = MergeTree ORDER BY x;
```
-
## Временные таблицы {#temporary-tables}
:::note
@@ -553,7 +539,6 @@ CREATE [OR REPLACE] TEMPORARY TABLE [IF NOT EXISTS] table_name
Вместо временных таблиц можно использовать таблицы с движком [ENGINE = Memory](../../../engines/table-engines/special/memory.md).
-
## REPLACE TABLE {#replace-table}
Оператор `REPLACE` позволяет [атомарно](/concepts/glossary#atomicity) обновлять таблицу.
@@ -720,7 +705,6 @@ WHERE CounterID <12345;
-
## Предложение COMMENT {#comment-clause}
При создании таблицы вы можете добавить к ней комментарий.
@@ -753,7 +737,6 @@ SELECT name, comment FROM system.tables WHERE name = 't1';
└──────┴──────────────────────┘
```
-
## Похожие материалы {#related-content}
- Блог: [Оптимизация ClickHouse с помощью схем и кодеков](https://clickhouse.com/blog/optimize-clickhouse-codecs-compression-schema)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/user.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/user.md
index ffbc32f1811..180a840b58c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/user.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/user.md
@@ -26,7 +26,6 @@ CREATE USER [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER clus
Предложение `ON CLUSTER` позволяет создавать пользователей на кластере, см. [Распределённый DDL](../../../sql-reference/distributed-ddl.md).
-
## Идентификация {#identification}
Существует несколько способов идентификации пользователя:
@@ -73,7 +72,6 @@ CREATE USER [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER clus
* Содержать как минимум 1 специальный символ
:::
-
## Примеры {#examples}
1. Следующее имя пользователя — `name1`, и для него не требуется пароль — что, очевидно, практически не обеспечивает безопасность:
@@ -162,15 +160,11 @@ CREATE USER [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER clus
CREATE USER user1 IDENTIFIED WITH plaintext_password by '1', bcrypt_password by '2', plaintext_password by '3''
```
-
-
Примечания:
1. Более старые версии ClickHouse могут не поддерживать синтаксис с несколькими методами аутентификации. Поэтому, если на сервере ClickHouse есть пользователи с такими настройками и сервер понижен до версии, которая этого не поддерживает, эти пользователи станут недоступны, а некоторые операции, связанные с пользователями, перестанут работать. Чтобы выполнить понижение версии корректно, необходимо перед понижением настроить всех пользователей так, чтобы у каждого был только один метод аутентификации. Либо, если сервер был понижен без соблюдения предусмотренной процедуры, проблемных пользователей следует удалить.
2. `no_password` не может сосуществовать с другими методами аутентификации по соображениям безопасности. Поэтому вы можете указать
`no_password` только если это единственный метод аутентификации в запросе.
-
-
## Хост пользователя {#user-host}
Хост пользователя — это хост, с которого может быть установлено соединение с сервером ClickHouse. Хост может быть указан в секции запроса `HOST` следующими способами:
@@ -192,8 +186,6 @@ CREATE USER [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER clus
ClickHouse рассматривает `user_name@'address'` как имя пользователя целиком. Таким образом, технически вы можете создать несколько пользователей с одинаковым `user_name` и разными конструкциями после `@`. Однако мы не рекомендуем делать это.
:::
-
-
## Оператор VALID UNTIL {#valid-until-clause}
Позволяет задать дату окончания срока действия и, при необходимости, время для метода аутентификации. В качестве параметра принимает строку. Рекомендуется использовать формат `YYYY-MM-DD [hh:mm:ss] [timezone]` для даты и времени. По умолчанию этот параметр имеет значение `'infinity'`.
@@ -207,8 +199,6 @@ ClickHouse рассматривает `user_name@'address'` как имя пол
- ```CREATE USER name1 VALID UNTIL '2025-01-01 12:00:00 `Asia/Tokyo`'```
- `CREATE USER name1 IDENTIFIED WITH plaintext_password BY 'no_expiration', bcrypt_password BY 'expiration_set' VALID UNTIL '2025-01-01''`
-
-
## Клауза GRANTEES {#grantees-clause}
Указывает пользователей или роли, которым разрешено получать [привилегии](../../../sql-reference/statements/grant.md#privileges) от этого пользователя при условии, что этому пользователю также выданы все требуемые привилегии с [GRANT OPTION](../../../sql-reference/statements/grant.md#granting-privilege-syntax). Варианты клаузы `GRANTEES`:
@@ -220,8 +210,6 @@ ClickHouse рассматривает `user_name@'address'` как имя пол
Вы можете исключить любого пользователя или роль с помощью выражения `EXCEPT`. Например, `CREATE USER user1 GRANTEES ANY EXCEPT user2`. Это означает, что если у `user1` есть некоторые привилегии, выданные с `GRANT OPTION`, он сможет выдавать эти привилегии кому угодно, кроме `user2`.
-
-
## Примеры {#examples-1}
Создайте учетную запись пользователя `mira` с паролем `qwerty`:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/view.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/view.md
index 918fabf1fb8..98b04b975ce 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/view.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/view.md
@@ -11,13 +11,10 @@ import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import DeprecatedBadge from '@theme/badges/DeprecatedBadge';
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# CREATE VIEW {#create-view}
Создает новое представление. Представления бывают [обычными](#normal-view), [материализованными](#materialized-view), [обновляемыми материализованными](#refreshable-materialized-view) и [оконными](/sql-reference/statements/create/view#window-view).
-
-
## Обычный вид {#normal-view}
Синтаксис:
@@ -49,7 +46,6 @@ SELECT a, b, c FROM view
SELECT a, b, c FROM (SELECT ...)
```
-
## Параметризованное представление {#parameterized-view}
Параметризованные представления похожи на обычные представления, но могут создаваться с параметрами, которые не подставляются (не разрешаются) сразу. Эти представления можно использовать с табличными функциями, где имя представления выступает в роли имени функции, а значения параметров передаются как её аргументы.
@@ -64,7 +60,6 @@ CREATE VIEW view AS SELECT * FROM TABLE WHERE Column1={column1:datatype1} and Co
SELECT * FROM view(column1=value1, column2=value2 ...)
```
-
## Материализованное представление {#materialized-view}
```sql
@@ -119,7 +114,6 @@ AS SELECT ...
Чтобы удалить представление, используйте [DROP VIEW](../../../sql-reference/statements/drop.md#drop-view). Хотя `DROP TABLE` также работает для представлений (VIEW).
-
## SQL-безопасность {#sql_security}
`DEFINER` и `SQL SECURITY` позволяют указать, под каким пользователем ClickHouse будет выполняться базовый запрос представления.
@@ -166,7 +160,6 @@ SQL SECURITY INVOKER
AS SELECT ...
```
-
## Live View {#live-view}
@@ -175,8 +168,6 @@ AS SELECT ...
Для вашего удобства старая документация доступна [здесь](https://pastila.nl/?00f32652/fdf07272a7b54bda7e13b919264e449f.md)
-
-
## Обновляемое материализованное представление {#refreshable-materialized-view}
```sql
@@ -247,7 +238,6 @@ REFRESH EVERY 1 DAY OFFSET 2 HOUR RANDOMIZE FOR 1 HOUR -- ежедневно в
В режиме `APPEND` координацию можно отключить с помощью `SETTINGS all_replicas = 1`. Тогда реплики выполняют обновления независимо друг от друга и ReplicatedMergeTree не требуется.
-
В режиме, отличном от `APPEND`, поддерживается только координированное обновление. Для некоординированного используйте базу данных `Atomic` и запрос `CREATE ... ON CLUSTER`, чтобы создать обновляемые материализованные представления на всех репликах.
Координация осуществляется через Keeper. Путь znode определяется серверным параметром [default_replica_path](../../../operations/server-configuration-parameters/settings.md#default_replica_path).
@@ -320,7 +310,6 @@ ALTER TABLE [db.]имя_таблицы MODIFY REFRESH EVERY|AFTER ... [RANDOMIZE
### Другие операции {#other-operations}
-
Состояние всех обновляемых материализованных представлений доступно в таблице [`system.view_refreshes`](../../../operations/system-tables/view_refreshes.md). В частности, она содержит прогресс обновления (если оно выполняется), время последнего и следующего обновления, сообщение об исключении, если обновление завершилось с ошибкой.
Чтобы вручную остановить, запустить, инициировать или отменить обновление, используйте [`SYSTEM STOP|START|REFRESH|WAIT|CANCEL VIEW`](../system.md#refreshable-materialized-views).
@@ -331,8 +320,6 @@ ALTER TABLE [db.]имя_таблицы MODIFY REFRESH EVERY|AFTER ... [RANDOMIZE
Интересный факт: запрос обновления может читать из обновляемого представления, видя версию данных до обновления. Это означает, что вы можете реализовать игру «Жизнь» Конвея: https://pastila.nl/?00021a4b/d6156ff819c83d490ad2dcec05676865#O0LGWTO7maUQIA4AcGUtlA==
:::
-
-
## Оконное представление {#window-view}
@@ -394,7 +381,6 @@ CREATE WINDOW VIEW test.wv TO test.dst WATERMARK=ASCENDING ALLOWED_LATENESS=INTE
Обратите внимание, что элементы, выдаваемые при позднем срабатывании, следует рассматривать как обновлённые результаты предыдущего вычисления. Вместо срабатывания в конце окон представление окна будет срабатывать сразу при поступлении запоздалого события. В результате для одного и того же окна может быть получено несколько выходных результатов. Пользователям необходимо учитывать эти дублирующиеся результаты или удалять дубликаты.
-
Вы можете изменить `SELECT`-запрос, указанный в оконном представлении, с помощью оператора `ALTER TABLE ... MODIFY QUERY`. Структура данных, формируемая новым `SELECT`-запросом, должна совпадать со структурой исходного `SELECT`-запроса как при использовании предложения `TO [db.]name`, так и без него. Обратите внимание, что данные в текущем окне будут потеряны, поскольку промежуточное состояние не может быть повторно использовано.
### Мониторинг новых окон {#monitoring-new-windows}
@@ -465,14 +451,11 @@ Window View полезен в следующих сценариях:
* **Мониторинг**: Агрегировать и вычислять метрики логов по времени, выводя результаты в целевую таблицу. Панель мониторинга может использовать целевую таблицу в качестве источника данных.
* **Аналитика**: Автоматически агрегировать и предварительно обрабатывать данные во временном окне. Это может быть полезно при анализе больших объемов логов. Предварительная обработка устраняет повторные вычисления в нескольких запросах и снижает задержку их выполнения.
-
## Связанные материалы {#related-content}
- Блог: [Работа с временными рядами в ClickHouse](https://clickhouse.com/blog/working-with-time-series-data-and-functions-ClickHouse)
- Блог: [Построение системы наблюдаемости с помощью ClickHouse — часть 2. Трейсы](https://clickhouse.com/blog/storing-traces-and-spans-open-telemetry-in-clickhouse)
-
-
## Временные представления {#temporary-views}
ClickHouse поддерживает **временные представления** со следующими характеристиками (по возможности аналогичными временным таблицам):
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/delete.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/delete.md
index 3f4b5f5ad0a..7b6571bc3dc 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/delete.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/delete.md
@@ -16,7 +16,6 @@ DELETE FROM [db.]table [ON CLUSTER cluster] [IN PARTITION partition_expr] WHERE
Это называется "облегчённым `DELETE`", чтобы противопоставить его команде [ALTER TABLE ... DELETE](/sql-reference/statements/alter/delete), которая является тяжеловесным процессом.
-
## Примеры {#examples}
```sql
@@ -24,7 +23,6 @@ DELETE FROM [db.]table [ON CLUSTER cluster] [IN PARTITION partition_expr] WHERE
DELETE FROM hits WHERE Title LIKE '%hello%';
```
-
## Облегчённый `DELETE` не удаляет данные немедленно {#lightweight-delete-does-not-delete-data-immediately}
Облегчённый `DELETE` реализован как [мутация](/sql-reference/statements/alter#mutations), которая помечает строки как удалённые, но не удаляет их физически сразу.
@@ -35,24 +33,18 @@ DELETE FROM hits WHERE Title LIKE '%hello%';
Если вам необходимо гарантировать удаление данных из хранилища в предсказуемые сроки, рассмотрите использование настройки таблицы [`min_age_to_force_merge_seconds`](/operations/settings/merge-tree-settings#min_age_to_force_merge_seconds). Либо вы можете использовать команду [ALTER TABLE ... DELETE](/sql-reference/statements/alter/delete). Обратите внимание, что удаление данных с помощью `ALTER TABLE ... DELETE` может потреблять значительные ресурсы, так как все затронутые части пересоздаются.
-
-
## Удаление больших объёмов данных {#deleting-large-amounts-of-data}
Массовое удаление данных может негативно сказаться на производительности ClickHouse. Если вы хотите удалить все строки из таблицы, рассмотрите возможность использования команды [`TRUNCATE TABLE`](/sql-reference/statements/truncate).
Если вы ожидаете частые операции удаления, рассмотрите возможность использования [пользовательского ключа партиционирования](/engines/table-engines/mergetree-family/custom-partitioning-key). В этом случае вы можете воспользоваться командой [`ALTER TABLE ... DROP PARTITION`](/sql-reference/statements/alter/partition#drop-partitionpart), чтобы быстро удалить все строки, относящиеся к этой партиции.
-
-
## Ограничения легковесного `DELETE` {#limitations-of-lightweight-delete}
### Легковесные `DELETE` с проекциями {#lightweight-deletes-with-projections}
По умолчанию `DELETE` не работает для таблиц с проекциями. Это связано с тем, что строки в проекции могут быть затронуты операцией `DELETE`. Однако существует [настройка MergeTree](/operations/settings/merge-tree-settings) `lightweight_mutation_projection_mode`, которая позволяет изменить это поведение.
-
-
## Особенности производительности при использовании легковесного `DELETE` {#performance-considerations-when-using-lightweight-delete}
**Удаление больших объемов данных с помощью легковесного оператора `DELETE` может негативно сказаться на производительности запросов `SELECT`.**
@@ -64,8 +56,6 @@ DELETE FROM hits WHERE Title LIKE '%hello%';
- В затронутой таблице очень большое количество кусков данных (data parts).
- Большой объем данных хранится в компактных частях. В компактной части (Compact part) все столбцы хранятся в одном файле.
-
-
## Права на удаление {#delete-permissions}
Для выполнения `DELETE` требуется привилегия `ALTER DELETE`. Чтобы разрешить выполнение операторов `DELETE` для определённой таблицы и пользователя, выполните следующую команду:
@@ -74,7 +64,6 @@ DELETE FROM hits WHERE Title LIKE '%hello%';
GRANT ALTER DELETE ON db.table TO username;
```
-
## Как легковесные операции DELETE работают внутри ClickHouse {#how-lightweight-deletes-work-internally-in-clickhouse}
1. **К затронутым строкам применяется «маска»**
@@ -103,8 +92,6 @@ GRANT ALTER DELETE ON db.table TO username;
Из описанных выше шагов видно, что легковесный `DELETE`, использующий технику маскирования, повышает производительность по сравнению с традиционным `ALTER TABLE ... DELETE`, поскольку не перезаписывает файлы всех столбцов для затронутых частей.
-
-
## Связанные материалы {#related-content}
- Блог: [Обновление и удаление данных в ClickHouse](https://clickhouse.com/blog/handling-updates-and-deletes-in-clickhouse)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/explain.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/explain.md
index 3335442d03f..8dd4be00400 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/explain.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/explain.md
@@ -58,7 +58,6 @@ Union
ReadFromStorage (SystemNumbers)
```
-
## Типы EXPLAIN {#explain-types}
- `AST` — абстрактное синтаксическое дерево.
@@ -101,7 +100,6 @@ EXPLAIN AST ALTER TABLE t1 DELETE WHERE date = today();
ExpressionList
```
-
### EXPLAIN SYNTAX {#explain-syntax}
Показывает абстрактное синтаксическое дерево (AST) запроса после синтаксического анализа.
@@ -146,7 +144,6 @@ ALL INNER JOIN system.numbers AS __table2 ON __table1.number = __table2.number
ALL INNER JOIN system.numbers AS __table3 ON __table2.number = __table3.number
```
-
### EXPLAIN QUERY TREE {#explain-query-tree}
Настройки:
@@ -176,21 +173,21 @@ QUERY id: 0
TABLE id: 3, table_name: default.test_table
```
-
### EXPLAIN PLAN {#explain-plan}
-Выводит шаги плана выполнения запроса.
+Выводит шаги плана запроса.
-Параметры:
+Настройки:
-* `header` — Выводит заголовок результата для шага. По умолчанию: 0.
-* `description` — Выводит описание шага. По умолчанию: 1.
-* `indexes` — Показывает используемые индексы, количество отфильтрованных частей и количество отфильтрованных гранул для каждого применённого индекса. По умолчанию: 0. Поддерживается для таблиц [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md). Начиная с ClickHouse >= v25.9, этот запрос выдаёт осмысленный результат только при использовании с `SETTINGS use_query_condition_cache = 0, use_skip_indexes_on_data_read = 0`.
-* `projections` — Показывает все проанализированные проекции и их влияние на фильтрацию на уровне частей на основе условий первичного ключа проекции. Для каждой проекции этот раздел включает статистику, такую как количество частей, строк, меток и диапазонов, которые были проанализированы с использованием первичного ключа проекции. Он также показывает, сколько частей с данными было пропущено благодаря этой фильтрации без чтения самой проекции. По полю `description` можно определить, была ли проекция фактически использована для чтения или только проанализирована для фильтрации. По умолчанию: 0. Поддерживается для таблиц [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md).
-* `actions` — Выводит подробную информацию о действиях шага. По умолчанию: 0.
-* `json` — Выводит шаги плана запроса как строку в формате [JSON](/interfaces/formats/JSON). По умолчанию: 0. Рекомендуется использовать формат [TabSeparatedRaw (TSVRaw)](/interfaces/formats/TabSeparatedRaw), чтобы избежать лишнего экранирования.
-* `input_headers` — Выводит входные заголовки для шага. По умолчанию: 0. В основном полезно только для разработчиков для отладки проблем, связанных с несоответствием входных и выходных заголовков.
-* `column_structure` — Дополнительно выводит структуру столбцов в заголовках, помимо их имени и типа. По умолчанию: 0. В основном полезно только для разработчиков для отладки проблем, связанных с несоответствием входных и выходных заголовков.
+* `header` — Печатает заголовок вывода для шага. По умолчанию: 0.
+* `description` — Печатает описание шага. По умолчанию: 1.
+* `indexes` — Показывает используемые индексы, количество отфильтрованных частей и количество отфильтрованных гранул для каждого применённого индекса. По умолчанию: 0. Поддерживается для таблиц [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md). Начиная с ClickHouse >= v25.9, эта команда даёт содержательный вывод только при использовании вместе с `SETTINGS use_query_condition_cache = 0, use_skip_indexes_on_data_read = 0`.
+* `projections` — Показывает все проанализированные проекции и их влияние на фильтрацию на уровне частей на основе условий по первичному ключу проекции. Для каждой проекции этот раздел включает статистику, такую как количество частей, строк, меток и диапазонов, которые были обработаны с использованием её первичного ключа. Также показывает, сколько частей данных было пропущено благодаря этой фильтрации, без чтения из самой проекции. То, была ли проекция фактически использована для чтения или только проанализирована для фильтрации, можно определить по полю `description`. По умолчанию: 0. Поддерживается для таблиц [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md).
+* `actions` — Печатает подробную информацию о действиях шага. По умолчанию: 0.
+* `json` — Печатает шаги плана запроса как строку в формате [JSON](/interfaces/formats/JSON). По умолчанию: 0. Рекомендуется использовать формат [TabSeparatedRaw (TSVRaw)](/interfaces/formats/TabSeparatedRaw), чтобы избежать лишнего экранирования.
+* `input_headers` - Печатает входные заголовки для шага. По умолчанию: 0. В основном полезно только разработчикам для отладки проблем, связанных с несоответствием входных и выходных заголовков.
+* `column_structure` - Дополнительно печатает структуру столбцов в заголовках, помимо их имени и типа. По умолчанию: 0. В основном полезно только разработчикам для отладки проблем, связанных с несоответствием входных и выходных заголовков.
+* `distributed` — Показывает планы запросов, выполняемые на удалённых узлах для distributed таблиц или параллельных реплик. По умолчанию: 0.
Когда `json=1`, имена шагов будут содержать дополнительный суффикс с уникальным идентификатором шага.
@@ -211,10 +208,10 @@ Union
```
:::note
-Оценка стоимости шагов и всего запроса не поддерживается.
+Оценка стоимости шагов и запросов не поддерживается.
:::
-Когда `json = 1`, план запроса представлен в формате JSON. Каждый узел — это словарь, который всегда содержит ключи `Node Type` и `Plans`. `Node Type` — это строка с именем шага. `Plans` — это массив с описаниями дочерних шагов. В зависимости от типа узла и настроек могут быть добавлены другие необязательные ключи.
+Когда `json = 1`, план запроса представляется в формате JSON. Каждый узел представляет собой словарь, который всегда содержит ключи `Node Type` и `Plans`. `Node Type` — строка с именем шага. `Plans` — массив с описаниями дочерних шагов. В зависимости от типа узла и настроек могут быть добавлены дополнительные необязательные ключи.
Пример:
@@ -264,7 +261,7 @@ EXPLAIN json = 1, description = 0 SELECT 1 UNION ALL SELECT 2 FORMAT TSVRaw;
}
```
-При `header` = 1 к шагу добавляется ключ `Header` в виде массива столбцов.
+При значении `header` = 1 ключ `Header` добавляется к шагу в виде массива столбцов.
Пример:
@@ -401,8 +398,7 @@ EXPLAIN json = 1, description = 0, header = 1 SELECT 1, 2 + dummy;
]
```
-
-При `actions` = 1 добавленные ключи зависят от типа шага.
+Если `actions` = 1, добавляемые ключи зависят от типа шага.
Пример:
@@ -461,6 +457,50 @@ EXPLAIN json = 1, actions = 1, description = 0 SELECT 1 FORMAT TSVRaw;
]
```
+При `distributed` = 1 вывод включает не только локальный план запроса, но и планы запросов, которые будут выполняться на удалённых узлах. Это полезно для анализа и отладки распределённых запросов.
+
+Пример с distributed таблицей:
+
+```sql
+EXPLAIN distributed=1 SELECT * FROM remote('127.0.0.{1,2}', numbers(2)) WHERE number = 1;
+```
+
+```sql
+Union
+ Expression ((Project names + (Projection + (Change column names to column identifiers + (Project names + Projection)))))
+ Filter ((WHERE + Change column names to column identifiers))
+ ReadFromSystemNumbers
+ Expression ((Project names + (Projection + Change column names to column identifiers)))
+ ReadFromRemote (Чтение с удалённой реплики)
+ Expression ((Project names + Projection))
+ Filter ((WHERE + Change column names to column identifiers))
+ ReadFromSystemNumbers
+```
+
+Пример с параллельными репликами:
+
+```sql
+SET enable_parallel_replicas = 2, max_parallel_replicas = 2, cluster_for_parallel_replicas = 'default';
+
+EXPLAIN distributed=1 SELECT sum(number) FROM test_table GROUP BY number % 4;
+```
+
+```sql
+Expression ((Названия проектов + Projection))
+ MergingAggregated
+ Union
+ Aggregating
+ Expression ((Перед GROUP BY + Изменить имена столбцов на идентификаторы столбцов))
+ ReadFromMergeTree (default.test_table)
+ ReadFromRemoteParallelReplicas
+ BlocksMarshalling
+ Aggregating
+ Expression ((Перед GROUP BY + Изменить имена столбцов на идентификаторы столбцов))
+ ReadFromMergeTree (default.test_table)
+```
+
+В обоих примерах план запроса показывает полный процесс выполнения, включая локальные и удалённые этапы.
+
### EXPLAIN PIPELINE {#explain-pipeline}
@@ -494,7 +534,6 @@ ExpressionTransform
NumbersRange × 2 0 → 1
```
-
### EXPLAIN ESTIMATE {#explain-estimate}
Показывает приблизительное количество строк, меток и частей, которые нужно прочитать из таблиц при обработке запроса. Работает с таблицами семейства [MergeTree](/engines/table-engines/mergetree-family/mergetree).
@@ -523,7 +562,6 @@ EXPLAIN ESTIMATE SELECT * FROM ttt;
└──────────┴───────┴───────┴──────┴───────┘
```
-
### EXPLAIN TABLE OVERRIDE {#explain-table-override}
Показывает результат применения переопределения таблицы к схеме таблицы, доступной через табличную функцию.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/grant.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/grant.md
index b2c7ef69302..979ec48eb66 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/grant.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/grant.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Команда GRANT {#grant-statement}
- Предоставляет [привилегии](#privileges) учетным записям пользователей ClickHouse или ролям.
@@ -30,7 +29,6 @@ GRANT [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.ta
Предложение `WITH GRANT OPTION` предоставляет `user` или `role` право выполнять запрос `GRANT`. Пользователи могут предоставлять привилегии того же уровня и уже по охвату, чем те, которыми они обладают.
Предложение `WITH REPLACE OPTION` заменяет старые привилегии новыми для `user` или `role`; если оно не указано, привилегии добавляются.
-
## Синтаксис назначения роли {#assigning-role-syntax}
```sql
@@ -43,7 +41,6 @@ GRANT [ON CLUSTER cluster_name] role [,...] TO {user | another_role | CURRENT_US
Предложение `WITH ADMIN OPTION` предоставляет привилегию [ADMIN OPTION](#admin-option) для `user` или `role`.
Предложение `WITH REPLACE OPTION` заменяет старые роли новыми для `user` или `role`; если оно не указано, новые роли добавляются к существующим.
-
## Синтаксис оператора GRANT CURRENT GRANTS {#grant-current-grants-syntax}
```sql
@@ -57,7 +54,6 @@ GRANT CURRENT GRANTS{(privilege[(column_name [,...])] [,...] ON {db.table|db.*|*
Использование оператора `CURRENT GRANTS` позволяет выдать все указанные привилегии заданному пользователю или роли.
Если ни одна привилегия не была указана, заданный пользователь или роль получит все доступные привилегии текущего пользователя (`CURRENT_USER`).
-
## Использование {#usage}
Чтобы использовать `GRANT`, ваша учетная запись должна иметь привилегию `GRANT OPTION`. Вы можете выдавать привилегии только в рамках привилегий вашей учетной записи.
@@ -87,7 +83,6 @@ GRANT SELECT(x,y) ON db.table TO john WITH GRANT OPTION
Вы можете выдать несколько привилегий нескольким учётным записям в одном запросе. Запрос `GRANT SELECT, INSERT ON *.* TO john, robin` позволяет учётным записям `john` и `robin` выполнять запросы `INSERT` и `SELECT` ко всем таблицам во всех базах данных на сервере.
-
## Права с использованием подстановочных символов {#wildcard-grants}
При указании привилегий вы можете использовать звёздочку (`*`) вместо имени таблицы или базы данных. Например, запрос `GRANT SELECT ON db.* TO john` позволяет пользователю `john` выполнять запрос `SELECT` для всех таблиц в базе данных `db`.
@@ -139,7 +134,6 @@ GRANT SELECT ON *suffix TO john -- некорректно
GRANT SELECT(foo) ON db.table* TO john -- некорректно
```
-
## Привилегии {#privileges}
Привилегия — это право, предоставляемое пользователю на выполнение определённых видов запросов.
@@ -399,7 +393,6 @@ GRANT SELECT(x,y) ON db.table TO john
Эта привилегия позволяет `john` выполнять любые запросы `SELECT`, которые обращаются к данным из столбцов `x` и/или `y` таблицы `db.table`, например `SELECT x FROM db.table`. `john` не может выполнять `SELECT z FROM db.table`. Запрос `SELECT * FROM db.table` также недоступен. При выполнении этого запроса ClickHouse не возвращает никаких данных, даже `x` и `y`. Единственное исключение — если таблица содержит только столбцы `x` и `y`, в таком случае ClickHouse возвращает все данные.
-
### INSERT {#insert}
Позволяет выполнять запросы [INSERT](../../sql-reference/statements/insert-into.md).
@@ -418,7 +411,6 @@ GRANT INSERT(x,y) ON db.table TO john
Предоставленная привилегия позволяет пользователю `john` вставлять данные в столбцы `x` и/или `y` таблицы `db.table`.
-
### ALTER {#alter}
Позволяет выполнять запросы [ALTER](../../sql-reference/statements/alter/index.md) в соответствии со следующей иерархией привилегий:
@@ -510,7 +502,6 @@ GRANT CLUSTER ON *.* TO
```
-
### DROP {#drop}
Позволяет выполнять запросы [DROP](../../sql-reference/statements/drop.md) и [DETACH](../../sql-reference/statements/detach.md) в соответствии со следующей иерархией прав доступа:
@@ -737,7 +728,6 @@ GRANT CURRENT GRANTS(READ ON S3) TO alice
* **Частичный отзыв прав не допускается:** вы не можете отозвать только часть ранее выданного шаблона фильтра. Необходимо отозвать весь `GRANT` и при необходимости выдать его заново с новыми шаблонами.
* **Выдача прав с использованием только `wildcard` не допускается:** вы не можете использовать `GRANT READ ON *('regexp')` или аналогичные шаблоны, состоящие только из `wildcard`. Должен быть указан конкретный источник.
-
### dictGet {#dictget}
- `dictGet`. Алиасы: `dictHas`, `dictGetHierarchy`, `dictIsIn`
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/insert-into.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/insert-into.md
index f3bacec6ed6..fbb586f3c71 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/insert-into.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/insert-into.md
@@ -7,8 +7,6 @@ title: 'Оператор INSERT INTO'
doc_type: 'reference'
---
-
-
# Оператор INSERT INTO {#insert-into-statement}
Вставляет данные в таблицу.
@@ -105,13 +103,10 @@ INSERT INTO table SETTINGS ... FORMAT format_name набор_данных
:::
-
## Ограничения {#constraints}
Если у таблицы есть [ограничения](../../sql-reference/statements/create/table.md#constraints), их выражения проверяются для каждой строки вставляемых данных. Если какое-либо из этих ограничений не удовлетворено, сервер выбросит исключение с именем ограничения и его выражением, а выполнение запроса будет прекращено.
-
-
## Вставка результатов запроса SELECT {#inserting-the-results-of-select}
**Синтаксис**
@@ -138,7 +133,6 @@ INSERT INTO x WITH y AS (SELECT * FROM numbers(10)) SELECT * FROM y;
WITH y AS (SELECT * FROM numbers(10)) INSERT INTO x SELECT * FROM y;
```
-
## Вставка данных из файла {#inserting-data-from-a-file}
**Синтаксис**
@@ -197,7 +191,6 @@ INSERT INTO infile_globs FROM INFILE 'input_?.csv' FORMAT CSV;
:::
-
## Вставка с использованием табличной функции {#inserting-using-a-table-function}
Данные можно вставлять в таблицы, на которые ссылаются [табличные функции](../../sql-reference/table-functions/index.md).
@@ -227,7 +220,6 @@ SELECT * FROM simple_table;
└─────┴───────────────────────┘
```
-
## Вставка в ClickHouse Cloud {#inserting-into-clickhouse-cloud}
По умолчанию сервисы ClickHouse Cloud предоставляют несколько реплик для обеспечения высокой доступности. При подключении к сервису устанавливается соединение с одной из этих реплик.
@@ -242,15 +234,12 @@ SELECT .... SETTINGS select_sequential_consistency = 1;
Обратите внимание, что использование `select_sequential_consistency` увеличит нагрузку на ClickHouse Keeper (который используется в ClickHouse Cloud) и может привести к снижению производительности в зависимости от нагрузки на сервис. Мы не рекомендуем включать эту настройку без необходимости. Рекомендуемый подход — выполнять операции чтения и записи в рамках одного сеанса или использовать клиентский драйвер, который работает по нативному протоколу (и, соответственно, поддерживает «липкие» подключения).
-
## Вставка в реплицируемую конфигурацию {#inserting-into-a-replicated-setup}
В реплицируемой конфигурации данные становятся видимыми на других репликах после того, как они были реплицированы. Репликация данных (загрузка на другие реплики) начинается сразу после выполнения `INSERT`. Это отличается от ClickHouse Cloud, где данные немедленно записываются в общее хранилище, а реплики подписываются на изменения метаданных.
Обратите внимание, что в реплицируемых конфигурациях операции `INSERT` иногда могут занимать заметное время (порядка одной секунды), так как требуется фиксация в ClickHouse Keeper для достижения распределённого консенсуса. Использование S3 в качестве хранилища также добавляет дополнительную задержку.
-
-
## Особенности производительности {#performance-considerations}
`INSERT` сортирует входные данные по первичному ключу и разбивает их на партиции по ключу партиционирования. Если вы вставляете данные сразу в несколько партиций, это может значительно снизить производительность запроса `INSERT`. Чтобы этого избежать:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/parallel_with.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/parallel_with.md
index 0723e5b1c90..cbda61d11d2 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/parallel_with.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/parallel_with.md
@@ -7,14 +7,10 @@ title: 'Предложение PARALLEL WITH'
doc_type: 'reference'
---
-
-
# Предложение PARALLEL WITH {#parallel-with-clause}
Позволяет выполнять несколько операторов параллельно.
-
-
## Синтаксис {#syntax}
```sql
@@ -25,7 +21,6 @@ doc_type: 'reference'
Параллельное выполнение операторов во многих случаях может быть быстрее, чем их последовательный запуск. Например, `statement1 PARALLEL WITH statement2 PARALLEL WITH statement3` скорее всего будет выполнено быстрее, чем `statement1; statement2; statement3`.
-
## Примеры {#examples}
Создаёт две таблицы одновременно:
@@ -44,13 +39,10 @@ PARALLEL WITH
DROP TABLE table2;
```
-
## Настройки {#settings}
Параметр [max_threads](../../operations/settings/settings.md#max_threads) определяет, сколько потоков будет создано.
-
-
## Сравнение с UNION {#comparison-with-union}
Конструкция `PARALLEL WITH` немного похожа на [UNION](select/union.md), который также выполняет свои операнды параллельно. Однако есть некоторые отличия:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/revoke.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/revoke.md
index 0036a315417..71987faf2e6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/revoke.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/revoke.md
@@ -7,14 +7,10 @@ title: 'Оператор REVOKE'
doc_type: 'reference'
---
-
-
# Оператор REVOKE {#revoke-statement}
Отзывает привилегии у пользователей или ролей.
-
-
## Синтаксис {#syntax}
**Отмена привилегий для пользователей**
@@ -29,7 +25,6 @@ REVOKE [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.t
OTMENITЬ [ON CLUSTER cluster_name] [ADMIN OPTION FOR] role [,...] FROM {user | role | CURRENT_USER} [,...] | ALL | ALL EXCEPT {user_name | role_name | CURRENT_USER} [,...]
```
-
## Описание {#description}
Чтобы отозвать какую‑либо привилегию, вы можете использовать привилегию более широкого уровня, чем та, которую планируете отозвать. Например, если у пользователя есть привилегия `SELECT (x,y)`, администратор может выполнить запрос `REVOKE SELECT(x,y) ...`, или `REVOKE SELECT * ...`, или даже `REVOKE ALL PRIVILEGES ...`, чтобы отозвать эту привилегию.
@@ -38,8 +33,6 @@ OTMENITЬ [ON CLUSTER cluster_name] [ADMIN OPTION FOR] role [,...] FROM {user |
Вы можете отозвать часть привилегии. Например, если у пользователя есть привилегия `SELECT *.*`, вы можете отозвать у него привилегию на чтение данных из некоторой таблицы или базы данных.
-
-
## Примеры {#examples}
Предоставьте учётной записи пользователя `john` привилегию SELECT для всех баз данных, кроме базы данных `accounts`:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/apply_modifier.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/apply_modifier.md
index 2fc449d0a76..7db0ef78642 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/apply_modifier.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/apply_modifier.md
@@ -7,21 +7,16 @@ keywords: ['APPLY', 'modifier']
doc_type: 'reference'
---
-
-
# Модификатор APPLY {#apply}
> Позволяет выполнить функцию для каждой строки, возвращаемой внешним табличным выражением запроса.
-
-
## Синтаксис {#syntax}
```sql
SELECT APPLY( ) FROM [db.]table_name
```
-
## Пример {#example}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/array-join.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/array-join.md
index 2d6302b1f83..8c15aab6216 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/array-join.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/array-join.md
@@ -6,8 +6,6 @@ title: 'Оператор ARRAY JOIN'
doc_type: 'reference'
---
-
-
# Оператор ARRAY JOIN {#array-join-clause}
Для таблиц, содержащих столбец-массив, часто требуется получить новую таблицу, в которой для каждого отдельного элемента массива исходного столбца создаётся отдельная строка, а значения остальных столбцов дублируются. Это базовый случай работы оператора `ARRAY JOIN`.
@@ -29,7 +27,6 @@ FROM
* `ARRAY JOIN` — по умолчанию пустые массивы не включаются в результат `JOIN`.
* `LEFT ARRAY JOIN` — результат `JOIN` содержит строки с пустыми массивами. Значение для пустого массива устанавливается в значение по умолчанию для типа элемента массива (обычно 0, пустая строка или NULL).
-
## Базовые примеры ARRAY JOIN {#basic-array-join-examples}
### ARRAY JOIN и LEFT ARRAY JOIN {#array-join-left-array-join-examples}
@@ -151,7 +148,6 @@ ORDER BY Reaches DESC
LIMIT 10
```
-
```text
┌──GoalID─┬─Reaches─┬─Visits─┐
│ 53225 │ 3214 │ 1097 │
@@ -167,7 +163,6 @@ LIMIT 10
└─────────┴─────────┴────────┘
```
-
## Использование псевдонимов {#using-aliases}
Для массива можно задать псевдоним в предложении `ARRAY JOIN`. В этом случае к элементу массива можно обратиться по этому псевдониму, но сам массив по‑прежнему доступен по исходному имени. Пример:
@@ -254,7 +249,6 @@ FROM arrays_test ARRAY JOIN arr AS a, [['a','b'],['c']] AS b
SETTINGS enable_unaligned_array_join = 1;
```
-
```response
┌─s───────┬─arr─────┬─a─┬─b─────────┐
│ Привет │ [1,2] │ 1 │ ['a','b'] │
@@ -267,7 +261,6 @@ SETTINGS enable_unaligned_array_join = 1;
└─────────┴─────────┴───┴───────────┘
```
-
## ARRAY JOIN с вложенной структурой данных {#array-join-with-nested-data-structure}
`ARRAY JOIN` также работает с [вложенными структурами данных](../../../sql-reference/data-types/nested-data-structures/index.md):
@@ -371,7 +364,6 @@ FROM nested_test
ARRAY JOIN nest AS n, arrayEnumerate(`nest.x`) AS num;
```
-
```response
┌─s─────┬─n.x─┬─n.y─┬─nest.x──┬─nest.y─────┬─num─┐
│ Hello │ 1 │ 10 │ [1,2] │ [10,20] │ 1 │
@@ -382,7 +374,6 @@ ARRAY JOIN nest AS n, arrayEnumerate(`nest.x`) AS num;
└───────┴─────┴─────┴─────────┴────────────┴─────┘
```
-
## Подробности реализации {#implementation-details}
Порядок выполнения запроса оптимизируется при использовании `ARRAY JOIN`. Хотя `ARRAY JOIN` всегда должен указываться в запросе перед секцией [WHERE](../../../sql-reference/statements/select/where.md)/[PREWHERE](../../../sql-reference/statements/select/prewhere.md), технически они могут выполняться в любом порядке, если только результат `ARRAY JOIN` не используется для фильтрации. Порядок обработки контролируется оптимизатором запросов.
@@ -393,8 +384,6 @@ ARRAY JOIN nest AS n, arrayEnumerate(`nest.x`) AS num;
`arrayJoin` всегда выполняется и не поддерживает вычисление функций с коротким замыканием. Это связано с тем, что это особая функция, которая обрабатывается отдельно от всех прочих функций при анализе и выполнении запроса и требует дополнительной логики, несовместимой с коротким замыканием при вычислении. Причина в том, что количество строк в результате зависит от результата `arrayJoin`, и реализация отложенного (lazy) выполнения `arrayJoin` была бы слишком сложной и ресурсоёмкой.
-
-
## Связанные материалы {#related-content}
- Блог: [Работа с временными рядами в ClickHouse](https://clickhouse.com/blog/working-with-time-series-data-and-functions-ClickHouse)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/distinct.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/distinct.md
index 372d8d19d47..4d0c570bb79 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/distinct.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/distinct.md
@@ -6,8 +6,6 @@ title: 'Оператор DISTINCT'
doc_type: 'reference'
---
-
-
# Оператор DISTINCT {#distinct-clause}
Если указан `SELECT DISTINCT`, в результате запроса останутся только уникальные строки. Таким образом, для каждого набора полностью совпадающих строк в результате останется только одна строка.
@@ -56,7 +54,6 @@ SELECT DISTINCT ON (a,b) * FROM t1;
└───┴───┴───┘
```
-
## DISTINCT и ORDER BY {#distinct-and-order-by}
ClickHouse поддерживает использование конструкций `DISTINCT` и `ORDER BY` для разных столбцов в одном запросе. Конструкция `DISTINCT` выполняется раньше, чем `ORDER BY`.
@@ -104,13 +101,10 @@ SELECT DISTINCT a FROM t1 ORDER BY b DESC;
При написании запросов учитывайте эту особенность реализации.
-
## Обработка NULL {#null-processing}
`DISTINCT` работает с [NULL](/sql-reference/syntax#null) так, как будто `NULL` является обычным конкретным значением и при этом `NULL == NULL`. Другими словами, в результатах `DISTINCT` каждая комбинация с `NULL` появляется только один раз. Это отличается от обработки `NULL` в большинстве других контекстов.
-
-
## Альтернативы {#alternatives}
Тот же результат можно получить, применяя [GROUP BY](/sql-reference/statements/select/group-by) к тому же набору значений, который указан в предложении `SELECT`, без использования агрегатных функций. Но есть несколько отличий по сравнению с подходом, основанным на `GROUP BY`:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/except_modifier.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/except_modifier.md
index cf6cef55f97..04e5edad0e2 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/except_modifier.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/except_modifier.md
@@ -7,21 +7,16 @@ keywords: ['EXCEPT', 'modifier']
doc_type: 'reference'
---
-
-
# Модификатор EXCEPT {#except}
> Указывает имена одного или нескольких столбцов, которые следует исключить из результата. Все столбцы с такими именами исключаются из вывода.
-
-
## Синтаксис {#syntax}
```sql
SELECT EXCEPT ( col_name1 [, col_name2, col_name3, ...] ) FROM [db.]table_name
```
-
## Примеры {#examples}
```sql title="Query"
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/format.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/format.md
index 962651ab5bc..0d0124def0f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/format.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/format.md
@@ -6,22 +6,16 @@ title: 'Клауза FORMAT'
doc_type: 'reference'
---
-
-
# Оператор FORMAT {#format-clause}
ClickHouse поддерживает широкий спектр [форматов сериализации](../../../interfaces/formats.md), которые, среди прочего, могут использоваться для результатов запросов. Существует несколько способов выбрать формат для вывода результата `SELECT`, один из них — указать `FORMAT format` в конце запроса, чтобы получить данные в нужном формате.
Определённый формат может использоваться для удобства, интеграции с другими системами или повышения производительности.
-
-
## Формат по умолчанию {#default-format}
Если предложение `FORMAT` не указано, используется формат по умолчанию, который зависит как от настроек, так и от интерфейса, используемого для доступа к серверу ClickHouse. Для [HTTP-интерфейса](../../../interfaces/http.md) и [клиента командной строки](../../../interfaces/cli.md) в пакетном режиме форматом по умолчанию является `TabSeparated`. Для клиента командной строки в интерактивном режиме форматом по умолчанию является `PrettyCompact` (он выводит компактные, удобочитаемые таблицы).
-
-
## Подробности реализации {#implementation-details}
При использовании клиентского приложения командной строки данные всегда передаются по сети во внутреннем эффективном формате (`Native`). Клиент самостоятельно интерпретирует оператор `FORMAT` в запросе и сам форматирует данные (тем самым разгружая сеть и сервер от дополнительной нагрузки).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/from.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/from.md
index 5ff87e15dcd..d692742042b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/from.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/from.md
@@ -6,8 +6,6 @@ title: 'Предложение FROM'
doc_type: 'reference'
---
-
-
# Секция FROM {#from-clause}
Секция `FROM` задаёт источник, из которого читаются данные:
@@ -29,7 +27,6 @@ FROM table
SELECT *
```
-
## Модификатор FINAL {#final-modifier}
Когда указан `FINAL`, ClickHouse полностью объединяет данные перед возвратом результата. При этом также выполняются все преобразования данных, которые происходят во время слияний для данного движка таблицы.
@@ -78,7 +75,6 @@ SET final = 1;
SELECT x, y FROM mytable WHERE x > 1;
```
-
## Подробности реализации {#implementation-details}
Если предложение `FROM` опущено, данные будут прочитаны из таблицы `system.one`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/group-by.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/group-by.md
index e9023c78a3c..0e0d7abf207 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/group-by.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/group-by.md
@@ -6,8 +6,6 @@ title: 'Оператор GROUP BY'
doc_type: 'reference'
---
-
-
# Оператор GROUP BY {#group-by-clause}
Оператор `GROUP BY` переводит запрос `SELECT` в режим агрегации, который работает следующим образом:
@@ -22,8 +20,6 @@ doc_type: 'reference'
Существует дополнительный способ выполнения агрегации над таблицей. Если в запросе столбцы таблицы встречаются только внутри агрегатных функций, оператор `GROUP BY` можно опустить, и будет подразумеваться агрегация по пустому набору ключей. Такие запросы всегда возвращают ровно одну строку.
:::
-
-
## Обработка NULL {#null-processing}
При группировке ClickHouse интерпретирует [NULL](/sql-reference/syntax#null) как значение, и `NULL == NULL`. Это отличается от обработки `NULL` в большинстве других контекстов.
@@ -56,7 +52,6 @@ doc_type: 'reference'
Если указать в `GROUP BY` несколько ключей, в результате вы получите все комбинации выборки, как если бы `NULL` рассматривался как конкретное значение.
-
## Модификатор ROLLUP {#rollup-modifier}
Модификатор `ROLLUP` используется для вычисления промежуточных итогов для ключевых выражений в соответствии с их порядком в списке `GROUP BY`. Строки с промежуточными итогами добавляются после результирующей таблицы.
@@ -130,7 +125,6 @@ SELECT year, month, day, count(*) FROM t GROUP BY year, month, day WITH ROLLUP;
* Параметр [group_by_use_nulls](/operations/settings/settings.md#group_by_use_nulls) для обеспечения совместимости со стандартом SQL.
-
## Модификатор CUBE {#cube-modifier}
Модификатор `CUBE` используется для вычисления промежуточных итогов для каждой комбинации ключевых выражений в списке `GROUP BY`. Строки с промежуточными итогами добавляются после результирующей таблицы.
@@ -175,7 +169,6 @@ SELECT year, month, day, count(*) FROM t GROUP BY CUBE(year, month, day);
Столбцы, не включённые в `GROUP BY`, заполняются нулями.
-
```text
┌─year─┬─month─┬─day─┬─count()─┐
│ 2020 │ 10 │ 15 │ 1 │
@@ -229,7 +222,6 @@ SELECT year, month, day, count(*) FROM t GROUP BY year, month, day WITH CUBE;
* Настройка [group_by_use_nulls](/operations/settings/settings.md#group_by_use_nulls) для совместимости со стандартом SQL.
-
## Модификатор WITH TOTALS {#with-totals-modifier}
Если указан модификатор `WITH TOTALS`, будет вычислена дополнительная строка. В этой строке ключевые столбцы будут содержать значения по умолчанию (нули или пустые строки), а столбцы с агрегирующими функциями — значения, вычисленные по всем строкам (итоговые значения).
@@ -266,8 +258,6 @@ SELECT year, month, day, count(*) FROM t GROUP BY year, month, day WITH CUBE;
Вы можете использовать `WITH TOTALS` во вложенных подзапросах, включая подзапросы в предложении [JOIN](/sql-reference/statements/select/join.md) (в этом случае соответствующие итоговые значения объединяются).
-
-
## GROUP BY ALL {#group-by-all}
`GROUP BY ALL` эквивалентен перечислению в предложении SELECT всех выражений, которые не являются агрегатными функциями.
@@ -316,7 +306,6 @@ FROM t
GROUP BY substring(a, 4, 2), substring(a, 1, 2)
```
-
## Примеры {#examples}
Пример:
@@ -344,7 +333,6 @@ GROUP BY domain
Для каждого различного значения ключа оператор `GROUP BY` вычисляет набор значений агрегатных функций.
-
## Модификатор GROUPING SETS {#grouping-sets-modifier}
Это самый общий модификатор.
@@ -382,7 +370,6 @@ GROUPING SETS
* настройку [group_by_use_nulls](/operations/settings/settings.md#group_by_use_nulls) для обеспечения совместимости со стандартом SQL.
-
## Подробности реализации {#implementation-details}
Агрегация — одна из важнейших функций колоночной СУБД, и, следовательно, её реализация является одной из наиболее оптимизированных частей ClickHouse. По умолчанию агрегация выполняется в памяти с использованием хеш-таблицы. Для неё существует более 40 специализаций, которые выбираются автоматически в зависимости от типов данных «ключа группировки».
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md
index 768c4c0caca..c9bbb092f21 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md
@@ -7,8 +7,6 @@ keywords: ['INNER JOIN', 'LEFT JOIN', 'LEFT OUTER JOIN', 'RIGHT JOIN', 'RIGHT OU
doc_type: 'справочник'
---
-
-
# Оператор JOIN {#join-clause}
Оператор `JOIN` формирует новую таблицу, объединяя столбцы из одной или нескольких таблиц по общим для них значениям. Это распространённая операция в базах данных с поддержкой SQL, которая соответствует операции соединения в [реляционной алгебре](https://en.wikipedia.org/wiki/Relational_algebra#Joins_and_join-like_operators). Особый случай соединения таблицы с самой собой часто называют «self-join».
@@ -24,7 +22,6 @@ FROM
Выражения из предложения `ON` и столбцы из предложения `USING` называются «ключами соединения». Если не указано иное, оператор `JOIN` формирует [декартово произведение](https://en.wikipedia.org/wiki/Cartesian_product) строк с совпадающими «ключами соединения», что может приводить к получению результата с гораздо большим количеством строк, чем в исходных таблицах.
-
## Поддерживаемые типы JOIN {#supported-types-of-join}
Поддерживаются все стандартные типы [SQL JOIN](https://en.wikipedia.org/wiki/Join_(SQL)):
@@ -55,8 +52,6 @@ FROM
Когда [join_algorithm](../../../operations/settings/settings.md#join_algorithm) установлен в значение `partial_merge`, `RIGHT JOIN` и `FULL JOIN` поддерживаются только со строгостью `ALL` (`SEMI`, `ANTI`, `ANY` и `ASOF` не поддерживаются).
:::
-
-
## Настройки {#settings}
Тип соединения по умолчанию можно переопределить с помощью настройки [`join_default_strictness`](../../../operations/settings/settings.md#join_default_strictness).
@@ -74,8 +69,6 @@ FROM
Используйте настройку `cross_to_inner_join_rewrite`, чтобы задать поведение на случай, если ClickHouse не может переписать `CROSS JOIN` в `INNER JOIN`. Значение по умолчанию — `1`, при котором соединение продолжает выполняться, но будет работать медленнее. Установите `cross_to_inner_join_rewrite` в `0`, если вы хотите, чтобы генерировалась ошибка, и в `2` — чтобы не выполнять операции `CROSS JOIN`, а вместо этого принудительно переписывать все соединения через запятую/`CROSS JOIN`. Если при значении `2` переписать не удаётся, вы получите сообщение об ошибке: «Please, try to simplify `WHERE` section».
-
-
## Условия в секции ON {#on-section-conditions}
Секция `ON` может содержать несколько условий, объединённых операторами `AND` и `OR`. Условия, определяющие ключи соединения, должны:
@@ -167,7 +160,6 @@ SELECT a, b, val FROM t1 INNER JOIN t2 ON t1.a = t2.key OR t1.b = t2.key;
:::note
-
По умолчанию условия с операторами неравенства поддерживаются, если в них используются столбцы из одной и той же таблицы.
Например, `t1.a = t2.key AND t1.b > 0 AND t2.b > t2.c`, поскольку `t1.b > 0` использует столбцы только из `t1`, а `t2.b > t2.c` использует столбцы только из `t2`.
Однако вы можете включить экспериментальную поддержку условий вида `t1.a = t2.key AND t1.b > t2.key`; подробности см. в разделе ниже.
@@ -188,7 +180,6 @@ SELECT a, b, val FROM t1 INNER JOIN t2 ON t1.a = t2.key OR t1.b = t2.key AND t2.
└───┴────┴─────┘
```
-
## JOIN с условиями неравенства для столбцов из разных таблиц {#join-with-inequality-conditions-for-columns-from-different-tables}
ClickHouse в настоящее время поддерживает `ALL/ANY/SEMI/ANTI INNER/LEFT/RIGHT/FULL JOIN` с условиями неравенства в дополнение к условиям равенства. Условия неравенства поддерживаются только для алгоритмов соединения `hash` и `grace_hash`. Условия неравенства не поддерживаются при `join_use_nulls`.
@@ -239,7 +230,6 @@ key2 a2 1 1 1 0 0 \N
key4 f 2 3 4 0 0 \N
```
-
## Значения NULL в ключах JOIN {#null-values-in-join-keys}
`NULL` не равно ни одному значению, включая само себя. Это означает, что если ключ `JOIN` содержит значение `NULL` в одной таблице, оно не будет соответствовать значению `NULL` в другой таблице.
@@ -294,7 +284,6 @@ SELECT A.name, B.score FROM A LEFT JOIN B ON isNotDistinctFrom(A.id, B.id)
└─────────┴───────┘
```
-
## Использование ASOF JOIN {#asof-join-usage}
`ASOF JOIN` полезен, когда нужно соединить записи, для которых нет точного совпадения.
@@ -349,7 +338,6 @@ USING (столбец_равенства1, ... столбец_равенства
Он **не** поддерживается в табличном движке [Join](../../../engines/table-engines/special/join.md).
:::
-
## Использование PASTE JOIN {#paste-join-usage}
Результат `PASTE JOIN` — таблица, содержащая все столбцы из левого подзапроса, за которыми следуют все столбцы из правого подзапроса.
@@ -408,7 +396,6 @@ SETTINGS max_block_size = 2;
└───┴──────┘
```
-
## Распределённый JOIN {#distributed-join}
Существует два способа выполнить JOIN с участием распределённых таблиц:
@@ -418,8 +405,6 @@ SETTINGS max_block_size = 2;
Будьте осторожны при использовании `GLOBAL`. Дополнительную информацию см. в разделе [Распределённые подзапросы](/sql-reference/operators/in#distributed-subqueries).
-
-
## Неявное преобразование типов {#implicit-type-conversion}
Запросы `INNER JOIN`, `LEFT JOIN`, `RIGHT JOIN` и `FULL JOIN` поддерживают неявное преобразование типов для «ключей соединения». Однако запрос не может быть выполнен, если ключи соединения из левой и правой таблиц не могут быть приведены к одному типу (например, не существует типа данных, который может содержать все значения как из `UInt64`, так и из `Int64`, или из `String` и `Int32`).
@@ -462,7 +447,6 @@ SELECT a, b, toTypeName(a), toTypeName(b) FROM t_1 FULL JOIN t_2 USING (a, b);
└────┴──────┴───────────────┴─────────────────┘
```
-
## Рекомендации по использованию {#usage-recommendations}
### Обработка пустых или NULL-ячеек {#processing-of-empty-or-null-cells}
@@ -510,8 +494,6 @@ SELECT a, b, toTypeName(a), toTypeName(b) FROM t_1 FULL JOIN t_2 USING (a, b);
Когда достигается любой из этих лимитов, ClickHouse действует в соответствии с настройкой [join_overflow_mode](/operations/settings/settings#join_overflow_mode).
-
-
## Примеры {#examples}
Пример:
@@ -555,7 +537,6 @@ LIMIT 10
└───────────┴────────┴────────┘
```
-
## Связанные материалы {#related-content}
- Блог: [ClickHouse: молниеносно быстрая СУБД с полной поддержкой операторов SQL JOIN — часть 1](https://clickhouse.com/blog/clickhouse-fully-supports-joins)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md
index d1d5f9c82c1..5c758b1bcf6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/limit.md
@@ -42,7 +42,6 @@ LIMIT n, m
В обоих вариантах `n` и `m` должны быть неотрицательными целыми числами.
-
## Отрицательные ограничения {#negative-limits}
Выбирайте строки с *конца* набора результатов, используя отрицательные значения:
@@ -81,7 +80,6 @@ LIMIT 10 OFFSET 0.5 -- 10 строк, начиная с половины
LIMIT 10 OFFSET -20 -- 10 строк после пропуска последних 20 строк
```
-
## LIMIT ... WITH TIES {#limit--with-ties-modifier}
Модификатор `WITH TIES` включает дополнительные строки, имеющие те же значения `ORDER BY`, что и последняя строка в установленном лимите.
@@ -129,7 +127,6 @@ SELECT * FROM (
Этот модификатор можно комбинировать с модификатором [`ORDER BY ... WITH FILL`](/sql-reference/statements/select/order-by#order-by-expr-with-fill-modifier).
-
## Особенности {#considerations}
**Недетерминированные результаты:** Без предложения [`ORDER BY`](../../../sql-reference/statements/select/order-by.md) возвращаемые строки могут быть произвольными и отличаться от выполнения к выполнению одного и того же запроса.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/order-by.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/order-by.md
index f21502612a1..e52a067bd23 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/order-by.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/order-by.md
@@ -6,8 +6,6 @@ title: 'Оператор ORDER BY'
doc_type: 'reference'
---
-
-
# Оператор ORDER BY {#order-by-clause}
Оператор `ORDER BY` содержит:
@@ -27,8 +25,6 @@ doc_type: 'reference'
Строки с одинаковыми значениями сортировочных выражений возвращаются в произвольном и недетерминированном порядке.
Если оператор `ORDER BY` опущен в операторе `SELECT`, порядок строк также является произвольным и недетерминированным.
-
-
## Сортировка специальных значений {#sorting-of-special-values}
Существует два варианта порядка сортировки значений `NaN` и `NULL`:
@@ -74,7 +70,6 @@ doc_type: 'reference'
При сортировке чисел с плавающей запятой значения NaN отделяются от остальных. Независимо от порядка сортировки значения NaN всегда оказываются в конце. Другими словами, при сортировке по возрастанию они ведут себя так, как будто больше всех остальных чисел, а при сортировке по убыванию — так, как будто меньше всех остальных.
-
## Поддержка collation {#collation-support}
Для сортировки по значениям типа [String](../../../sql-reference/data-types/string.md) вы можете указать collation (правила сравнения). Пример: `ORDER BY SearchPhrase COLLATE 'tr'` — сортировка по ключевому слову по возрастанию с использованием турецкого алфавита, без учета регистра, при условии, что строки закодированы в UTF-8. `COLLATE` может быть указан или не указан для каждого выражения в ORDER BY независимо. Если указано `ASC` или `DESC`, то `COLLATE` указывается после него. При использовании `COLLATE` сортировка всегда выполняется без учета регистра.
@@ -83,8 +78,6 @@ Collation поддерживается для типов [LowCardinality](../../
Мы рекомендуем использовать `COLLATE` только для окончательной сортировки небольшого количества строк, так как сортировка с `COLLATE` менее эффективна, чем обычная сортировка по байтам.
-
-
## Примеры сравнения строк {#collation-examples}
Пример только со значениями [String](../../../sql-reference/data-types/string.md):
@@ -229,7 +222,6 @@ SELECT * FROM collate_test ORDER BY s ASC COLLATE 'en';
Пример с типом [Tuple](../../../sql-reference/data-types/tuple.md):
-
```response
┌─x─┬─s───────┐
│ 1 │ (1,'Z') │
@@ -262,7 +254,6 @@ SELECT * FROM collate_test ORDER BY s ASC COLLATE 'en';
└───┴─────────┘
```
-
## Детали реализации {#implementation-details}
ОЗУ расходуется меньше, если помимо `ORDER BY` указано достаточно маленькое значение [LIMIT](../../../sql-reference/statements/select/limit.md). В противном случае объём используемой памяти пропорционален объёму данных для сортировки. При распределённой обработке запросов, если [GROUP BY](/sql-reference/statements/select/group-by) опущен, сортировка частично выполняется на удалённых серверах, а результаты объединяются на сервере, инициировавшем запрос. Это означает, что при распределённой сортировке объём данных для сортировки может превышать объём памяти одного сервера.
@@ -273,8 +264,6 @@ SELECT * FROM collate_test ORDER BY s ASC COLLATE 'en';
Внешняя сортировка работает значительно менее эффективно, чем сортировка в ОЗУ.
-
-
## Оптимизация чтения данных {#optimization-of-data-reading}
Если выражение `ORDER BY` имеет префикс, который совпадает с ключом сортировки таблицы, вы можете оптимизировать запрос с помощью настройки [optimize_read_in_order](../../../operations/settings/settings.md#optimize_read_in_order).
@@ -295,8 +284,6 @@ SELECT * FROM collate_test ORDER BY s ASC COLLATE 'en';
В таблицах с движком `MaterializedView` оптимизация работает с представлениями вида `SELECT ... FROM merge_tree_table ORDER BY pk`. Однако она не поддерживается в запросах вида `SELECT ... FROM view ORDER BY pk`, если запрос представления не содержит оператора `ORDER BY`.
-
-
## Модификатор ORDER BY Expr WITH FILL {#order-by-expr-with-fill-modifier}
Этот модификатор также может быть использован совместно с [модификатором LIMIT ... WITH TIES](/sql-reference/statements/select/limit#limit--with-ties-modifier).
@@ -385,7 +372,6 @@ ORDER BY
Результат:
-
```text
┌───d1───────┬───d2───────┬─source───┐
│ 1970-01-11 │ 1970-01-02 │ оригинал │
@@ -448,7 +434,6 @@ ORDER BY
d2 WITH FILL;
```
-
Результат:
```response
@@ -615,7 +600,6 @@ SELECT n, source, inter FROM (
Результат:
-
```text
┌───n─┬─source───┬─inter─┐
│ 0 │ │ 0 │
@@ -634,7 +618,6 @@ SELECT n, source, inter FROM (
└─────┴──────────┴───────┘
```
-
## Заполнение, сгруппированное по сортировочному префиксу {#filling-grouped-by-sorting-prefix}
Иногда полезно заполнять строки, которые имеют одинаковые значения в определённых столбцах, независимо друг от друга — хороший пример — заполнение пропущенных значений во временных рядах.
@@ -687,7 +670,6 @@ INTERPOLATE ( value AS 9999 )
Здесь столбец `value` был заполнен значением `9999`, чтобы заполненные строки были более заметны.
Это поведение управляется параметром `use_with_fill_by_sorting_prefix` (включен по умолчанию).
-
## Связанные материалы {#related-content}
- Блог: [Работа с временными рядами в ClickHouse](https://clickhouse.com/blog/working-with-time-series-data-and-functions-ClickHouse)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/prewhere.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/prewhere.md
index eea6cc1366b..6aff1479961 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/prewhere.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/prewhere.md
@@ -6,16 +6,12 @@ title: 'Предложение PREWHERE'
doc_type: 'reference'
---
-
-
# Оператор PREWHERE {#prewhere-clause}
Prewhere — это оптимизация, позволяющая применять фильтрацию более эффективно. Она включена по умолчанию, даже если оператор `PREWHERE` явно не указан. Оптимизация работает за счёт автоматического переноса части условия [WHERE](../../../sql-reference/statements/select/where.md) на этап PREWHERE. Роль оператора `PREWHERE` состоит только в управлении этой оптимизацией, если вы считаете, что можете настроить её лучше, чем это делается по умолчанию.
С оптимизацией PREWHERE сначала считываются только те столбцы, которые необходимы для вычисления выражения PREWHERE. Затем считываются остальные столбцы, которые нужны для выполнения оставшейся части запроса, но только для тех блоков, где выражение PREWHERE равно `true` хотя бы для некоторых строк. Если есть много блоков, где выражение PREWHERE равно `false` для всех строк, и PREWHERE требует меньше столбцов, чем другие части запроса, это часто позволяет считать с диска значительно меньше данных при выполнении запроса.
-
-
## Ручное управление PREWHERE {#controlling-prewhere-manually}
Эта конструкция имеет то же значение, что и предложение `WHERE`. Разница заключается в том, какие данные читаются из таблицы. Ручное управление `PREWHERE` целесообразно, когда условия фильтрации используются лишь для небольшой части столбцов в запросе, но обеспечивают сильную фильтрацию данных. Это уменьшает объем читаемых данных.
@@ -30,14 +26,10 @@ Prewhere — это оптимизация, позволяющая примен
Часть запроса `PREWHERE` выполняется до `FINAL`, поэтому результаты запросов `FROM ... FINAL` могут быть искажены при использовании `PREWHERE` с полями, которых нет в секции `ORDER BY` таблицы.
:::
-
-
## Ограничения {#limitations}
`PREWHERE` можно использовать только с таблицами из семейства [*MergeTree](../../../engines/table-engines/mergetree-family/index.md).
-
-
## Пример {#example}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/qualify.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/qualify.md
index 387875cf15e..e160b40135d 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/qualify.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/qualify.md
@@ -6,22 +6,16 @@ title: 'Предложение QUALIFY'
doc_type: 'reference'
---
-
-
# Оператор QUALIFY {#qualify-clause}
Позволяет фильтровать результаты оконных функций. Аналогичен предложению [WHERE](../../../sql-reference/statements/select/where.md), но отличие в том, что `WHERE` применяется до вычисления оконных функций, тогда как `QUALIFY` — после.
В `QUALIFY` можно по псевдониму ссылаться на результаты оконных функций из предложения `SELECT`. Либо предложение `QUALIFY` может фильтровать по результатам дополнительных оконных функций, которые не возвращаются в результатах запроса.
-
-
## Ограничения {#limitations}
`QUALIFY` нельзя использовать, если в запросе нет оконных функций. Используйте вместо него `WHERE`.
-
-
## Примеры {#examples}
Пример:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/where.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/where.md
index 021d35ea25d..339832c8eb6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/where.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/where.md
@@ -7,8 +7,6 @@ doc_type: 'reference'
keywords: ['WHERE']
---
-
-
# Условие WHERE {#where-clause}
Условие `WHERE` позволяет отфильтровать данные, полученные из предложения [`FROM`](../../../sql-reference/statements/select/from.md) запроса `SELECT`.
@@ -26,8 +24,6 @@ PREWHERE — это оптимизация для более эффективн
Она включена по умолчанию, даже если конструкция `PREWHERE` явно не указана.
:::
-
-
## Проверка на `NULL` {#testing-for-null}
Если вам нужно проверить значение на [`NULL`](/sql-reference/syntax#null), используйте:
@@ -36,8 +32,6 @@ PREWHERE — это оптимизация для более эффективн
В противном случае выражение с `NULL` никогда не будет истинным.
-
-
## Фильтрация данных с помощью логических операторов {#filtering-data-with-logical-operators}
Вы можете использовать следующие [логические функции](/sql-reference/functions/logical-functions#and) в сочетании с предложением `WHERE` для объединения нескольких условий:
@@ -47,15 +41,11 @@ PREWHERE — это оптимизация для более эффективн
- [`or()`](/sql-reference/functions/logical-functions#or) или `NOT`
- [`xor()`](/sql-reference/functions/logical-functions#xor)
-
-
## Использование столбцов UInt8 в качестве условия {#using-uint8-columns-as-a-condition}
В ClickHouse столбцы `UInt8` могут напрямую использоваться в булевых условиях, где `0` — это `false`, а любое ненулевое значение (обычно `1`) — `true`.
Пример этого приведён в разделе [ниже](#example-uint8-column-as-condition).
-
-
## Использование операторов сравнения {#using-comparison-operators}
Можно использовать следующие [операторы сравнения](/sql-reference/operators#comparison-operators):
@@ -76,8 +66,6 @@ PREWHERE — это оптимизация для более эффективн
| `a BETWEEN b AND c` | `a >= b AND a <= c` | Проверка вхождения в диапазон (включительно) | `price BETWEEN 100 AND 500` |
| `a NOT BETWEEN b AND c` | `a < b OR a > c` | Проверка выхода за пределы диапазона | `price NOT BETWEEN 100 AND 500` |
-
-
## Сопоставление по шаблону и условные выражения {#pattern-matching-and-conditional-expressions}
Помимо операторов сравнения, в предложении `WHERE` можно использовать сопоставление по шаблону и условные выражения.
@@ -92,8 +80,6 @@ PREWHERE — это оптимизация для более эффективн
См. раздел ["Сопоставление по шаблону и условные выражения"](#examples-pattern-matching-and-conditional-expressions) с примерами использования.
-
-
## Выражение с литералами, столбцами или подзапросами {#expressions-with-literals-columns-subqueries}
Выражение после оператора `WHERE` также может включать [литералы](/sql-reference/syntax#literals), столбцы или подзапросы — вложенные операторы `SELECT`, которые возвращают значения, используемые в условиях.
@@ -119,7 +105,6 @@ WHERE category = 'Electronics'
AND id IN (SELECT product_id FROM bestsellers)
```
-
-- Все три условия с логическими операторами
WHERE (price > 100 OR category IN (SELECT category FROM featured))
AND in_stock = true
@@ -240,7 +225,6 @@ WHERE (category = 'Электроника' OR category = 'Мебель')
AND price < 400;
```
-
```response
┌─id─┬─name────┬─price─┬─category────┬─in_stock─┐
1. │ 2 │ Mouse │ 25.5 │ Электроника │ true │
@@ -366,7 +350,6 @@ WHERE category = 'Электроника' AND in_stock = true;
#### Примеры LIKE {#like-examples}
-
```sql
-- Найти продукты с буквой 'o' в названии
SELECT * FROM products WHERE name LIKE '%o%';
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md
index a79f48c09e3..a285e6f1e8e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md
@@ -17,8 +17,6 @@ doc_type: 'reference'
Кроме того, у пользователя должна быть привилегия [`displaySecretsInShowAndSelect`](grant.md/#displaysecretsinshowandselect).
:::
-
-
## SHOW CREATE TABLE | DICTIONARY | VIEW | DATABASE {#show-create-table--dictionary--view--database}
Эти операторы возвращают один столбец типа String,
@@ -36,7 +34,6 @@ SHOW [CREATE] TABLE | TEMPORARY TABLE | DICTIONARY | VIEW | DATABASE [db.]table|
и не может быть использован для создания таблицы.
:::
-
## SHOW DATABASES {#show-databases}
Эта команда выводит список всех баз данных.
@@ -111,7 +108,6 @@ SHOW DATABASES LIMIT 2
* [`CREATE DATABASE`](/sql-reference/statements/create/database)
-
## SHOW TABLES {#show-tables}
Оператор `SHOW TABLES` отображает список таблиц.
@@ -190,7 +186,6 @@ SHOW TABLES FROM system LIMIT 2
* [`CREATE TABLE`](/sql-reference/statements/create/table)
* [`SHOW CREATE TABLE`](#show-create-table--dictionary--view--database)
-
## SHOW COLUMNS {#show_columns}
Оператор `SHOW COLUMNS` отображает список столбцов.
@@ -243,7 +238,6 @@ SHOW COLUMNS FROM 'orders' LIKE 'delivery_%'
* [`system.columns`](../../operations/system-tables/columns.md)
-
## SHOW DICTIONARIES {#show-dictionaries}
Оператор `SHOW DICTIONARIES` отображает список [словарей](../../sql-reference/dictionaries/index.md).
@@ -277,7 +271,6 @@ SHOW DICTIONARIES FROM db LIKE '%reg%' LIMIT 2
└──────────────┘
```
-
## SHOW INDEX {#show-index}
Отображает список первичных и индексов пропуска данных таблицы.
@@ -325,7 +318,6 @@ SHOW [EXTENDED] {INDEX | INDEXES | INDICES | KEYS } {FROM | IN}
[{FROM |
SHOW INDEX FROM 'tbl'
```
-
```text title="Response"
┌─table─┬─non_unique─┬─key_name─┬─seq_in_index─┬─column_name─┬─collation─┬─cardinality─┬─sub_part─┬─packed─┬─null─┬─index_type───┬─comment─┬─index_comment─┬─visible─┬─expression─┐
│ tbl │ 1 │ blf_idx │ 1 │ 1 │ ᴺᵁᴸᴸ │ 0 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ BLOOM_FILTER │ │ │ YES │ d, b │
@@ -342,7 +334,6 @@ SHOW INDEX FROM 'tbl'
* [`system.tables`](../../operations/system-tables/tables.md)
* [`system.data_skipping_indices`](../../operations/system-tables/data_skipping_indices.md)
-
## SHOW PROCESSLIST {#show-processlist}
Выводит содержимое таблицы [`system.processes`](/operations/system-tables/processes), в которой хранится список запросов, обрабатываемых в данный момент, за исключением запросов `SHOW PROCESSLIST`.
@@ -364,7 +355,6 @@ $ watch -n1 "clickhouse-client --query='SHOW PROCESSLIST'"
:::
-
## SHOW GRANTS {#show-grants}
Оператор `SHOW GRANTS` отображает привилегии, предоставленные пользователю.
@@ -381,7 +371,6 @@ SHOW GRANTS [FOR user1 [, user2 ...]] [WITH IMPLICIT] [FINAL]
Модификатор `FINAL` объединяет все привилегии, выданные пользователю и его ролям (с учетом наследования).
-
## SHOW CREATE USER {#show-create-user}
Оператор `SHOW CREATE USER` выводит параметры, которые были заданы при [создании пользователя](../../sql-reference/statements/create/user.md).
@@ -392,7 +381,6 @@ SHOW GRANTS [FOR user1 [, user2 ...]] [WITH IMPLICIT] [FINAL]
SHOW CREATE USER [имя1 [, имя2 ...] | CURRENT_USER]
```
-
## SHOW CREATE ROLE {#show-create-role}
Оператор `SHOW CREATE ROLE` выводит параметры, использованные при [создании роли](../../sql-reference/statements/create/role.md).
@@ -403,7 +391,6 @@ SHOW CREATE USER [имя1 [, имя2 ...] | CURRENT_USER]
SHOW CREATE ROLE имя1 [, имя2 ...]
```
-
## SHOW CREATE ROW POLICY {#show-create-row-policy}
Оператор `SHOW CREATE ROW POLICY` выводит параметры, которые были использованы при [создании политики строк](../../sql-reference/statements/create/row-policy.md).
@@ -414,7 +401,6 @@ SHOW CREATE ROLE имя1 [, имя2 ...]
SHOW CREATE [ROW] POLICY name ON [database1.]table1 [, [database2.]table2 ...]
```
-
## SHOW CREATE QUOTA {#show-create-quota}
Оператор `SHOW CREATE QUOTA` отображает параметры, использованные при [создании квоты](../../sql-reference/statements/create/quota.md).
@@ -425,7 +411,6 @@ SHOW CREATE [ROW] POLICY name ON [database1.]table1 [, [database2.]table2 ...]
SHOW CREATE QUOTA [name1 [, name2 ...] | CURRENT]
```
-
## SHOW CREATE SETTINGS PROFILE {#show-create-settings-profile}
Оператор `SHOW CREATE SETTINGS PROFILE` выводит параметры, которые были использованы при [создании профиля настроек](../../sql-reference/statements/create/settings-profile.md).
@@ -436,7 +421,6 @@ SHOW CREATE QUOTA [name1 [, name2 ...] | CURRENT]
SHOW CREATE [SETTINGS] PROFILE имя1 [, имя2 ...]
```
-
## SHOW USERS {#show-users}
Оператор `SHOW USERS` возвращает список имен [учетных записей пользователей](../../guides/sre/user-management/index.md#user-account-management).
@@ -448,7 +432,6 @@ SHOW CREATE [SETTINGS] PROFILE имя1 [, имя2 ...]
SHOW USERS
```
-
## SHOW ROLES {#show-roles}
Оператор `SHOW ROLES` возвращает список [ролей](../../guides/sre/user-management/index.md#role-management).
@@ -457,8 +440,6 @@ SHOW USERS
### Синтаксис {#syntax-14}
-
-
```sql title="Syntax"
SHOW [CURRENT|ENABLED] ROLES
```
@@ -474,7 +455,6 @@ SHOW [CURRENT|ENABLED] ROLES
SHOW [SETTINGS] PROFILES
```
-
## SHOW POLICIES {#show-policies}
Оператор `SHOW POLICIES` возвращает список [политик строк](../../guides/sre/user-management/index.md#row-policy-management) для указанной таблицы.
@@ -486,7 +466,6 @@ SHOW [SETTINGS] PROFILES
SHOW [ROW] POLICIES [ON [db.]table]
```
-
## SHOW QUOTAS {#show-quotas}
Оператор `SHOW QUOTAS` возвращает список [квот](../../guides/sre/user-management/index.md#quotas-management).
@@ -498,7 +477,6 @@ SHOW [ROW] POLICIES [ON [db.]table]
SHOW QUOTAS
```
-
## SHOW QUOTA {#show-quota}
Оператор `SHOW QUOTA` возвращает информацию об использовании [квот](../../operations/quotas.md) для всех пользователей или только для текущего пользователя.
@@ -506,8 +484,6 @@ SHOW QUOTAS
### Синтаксис {#syntax-18}
-
-
```sql title="Syntax"
SHOW [CURRENT] QUOTA
```
@@ -522,7 +498,6 @@ SHOW [CURRENT] QUOTA
SHOW ACCESS
```
-
## SHOW CLUSTER(S) {#show-clusters}
Оператор `SHOW CLUSTER(S)` возвращает список кластеров.
@@ -581,7 +556,6 @@ host_address: 127.0.0.1
port: 9000
```
-
## SHOW SETTINGS {#show-settings}
Оператор `SHOW SETTINGS` возвращает список системных настроек и их значений.
@@ -639,7 +613,6 @@ SHOW CHANGED SETTINGS ILIKE '%MEMORY%'
└──────────────────┴────────┴─────────────┘
```
-
## SHOW SETTING {#show-setting}
Оператор `SHOW SETTING` выводит значение указанной настройки.
@@ -654,7 +627,6 @@ SHOW SETTING <имя>
* таблица [`system.settings`](../../operations/system-tables/settings.md)
-
## Просмотр кэшей файловой системы {#show-filesystem-caches}
### Примеры {#examples-7}
@@ -673,7 +645,6 @@ SHOW FILESYSTEM CACHES
* таблица [`system.settings`](../../operations/system-tables/settings.md)
-
## SHOW ENGINES {#show-engines}
Оператор `SHOW ENGINES` выводит содержимое таблицы [`system.table_engines`](../../operations/system-tables/table_engines.md),
@@ -689,7 +660,6 @@ SHOW ENGINES [INTO OUTFILE имя_файла] [FORMAT формат]
* таблица [system.table_engines](../../operations/system-tables/table_engines.md)
-
## SHOW FUNCTIONS {#show-functions}
Оператор `SHOW FUNCTIONS` выводит содержимое таблицы [`system.functions`](../../operations/system-tables/functions.md).
@@ -706,7 +676,6 @@ SHOW FUNCTIONS [LIKE | ILIKE '']
* Таблица [`system.functions`](../../operations/system-tables/functions.md)
-
## SHOW MERGES {#show-merges}
Оператор `SHOW MERGES` возвращает список слияний.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md
index 065863b123b..905add3e354 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md
@@ -290,8 +290,9 @@ SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` SLEEP ENTRY 0 1
#### PROFILE {#instrument-add-profile}
-Измеряет время, проходящее между `ENTRY` и `EXIT` функции.
-Результат профилирования сохраняется в таблице [`system.trace_log`](../../operations/system-tables/trace_log.md).
+Измеряет время, прошедшее между `ENTRY` и `EXIT` функции.
+Результаты профилирования сохраняются в [`system.trace_log`](../../operations/system-tables/trace_log.md) и могут быть преобразованы
+в [Chrome Event Trace Format](../../operations/system-tables/trace_log.md#chrome-event-trace-format).
```sql
SYSTEM INSTRUMENT ADD `QueryMetricLog::startQuery` PROFILE
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/update.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/update.md
index ab330407162..0c0e7413156 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/update.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/update.md
@@ -28,7 +28,6 @@ UPDATE [db.]table [ON CLUSTER cluster] SET column1 = expr1 [, ...] [IN PARTITION
`filter_expr` должен иметь тип `UInt8`. Этот запрос обновляет значения указанных столбцов, устанавливая их равными значениям соответствующих выражений в строках, для которых `filter_expr` принимает ненулевое значение.
Значения приводятся к типу столбца с помощью оператора `CAST`. Обновление столбцов, используемых при вычислении первичного ключа или ключа партиционирования, не поддерживается.
-
## Примеры {#examples}
```sql
@@ -37,15 +36,12 @@ UPDATE hits SET Title = 'Новый заголовок' WHERE EventDate = today(
UPDATE wikistat SET hits = hits + 1, time = now() WHERE path = 'ClickHouse';
```
-
## Облегчённые обновления не обновляют данные немедленно {#lightweight-update-does-not-update-data-immediately}
Облегчённый `UPDATE` реализован с использованием **патч‑частей** (patch parts) — специального типа частей данных, которые содержат только обновлённые столбцы и строки.
Облегчённый `UPDATE` создаёт патч‑части, но не изменяет исходные данные физически в хранилище немедленно.
Процесс обновления аналогичен запросу `INSERT ... SELECT ...`, но запрос `UPDATE` возвращается только после завершения создания патч‑частей.
-
-
Обновлённые значения:
- **Сразу видны** в запросах `SELECT` благодаря применению патчей
- **Физически материализуются** только во время последующих слияний и мутаций
@@ -56,14 +52,10 @@ UPDATE wikistat SET hits = hits + 1, time = now() WHERE path = 'ClickHouse';
Чтобы использовать лёгкие обновления, необходимо включить материализацию столбцов `_block_number` и `_block_offset` с помощью настроек таблицы [`enable_block_number_column`](/operations/settings/merge-tree-settings#enable_block_number_column) и [`enable_block_offset_column`](/operations/settings/merge-tree-settings#enable_block_offset_column).
-
-
## Легковесные операции удаления {#lightweight-delete}
Запрос [легковесного `DELETE`](/sql-reference/statements/delete) может быть выполнен как легковесный `UPDATE` вместо мутации `ALTER UPDATE`. Поведение легковесного `DELETE` определяется настройкой [`lightweight_delete_mode`](/operations/settings/settings#lightweight_delete_mode).
-
-
## Особенности производительности {#performance-considerations}
**Преимущества легковесных обновлений:**
@@ -78,15 +70,11 @@ UPDATE wikistat SET hits = hits + 1, time = now() WHERE path = 'ClickHouse';
- Слишком частые небольшие обновления могут привести к ошибке «too many parts» («слишком много частей»). Рекомендуется объединять несколько обновлений в один запрос, например, поместив идентификаторы для обновления в один оператор `IN` в условии `WHERE`
- Легковесные обновления предназначены для обновления небольшого количества строк (до примерно 10% таблицы). Если необходимо обновить больший объём, рекомендуется использовать мутацию [`ALTER TABLE ... UPDATE`](/sql-reference/statements/alter/update)
-
-
## Одновременные операции {#concurrent-operations}
Легковесные обновления не дожидаются завершения уже выполняющихся слияний и мутаций, в отличие от тяжёлых мутаций.
Согласованность одновременных легковесных обновлений контролируется настройками [`update_sequential_consistency`](/operations/settings/settings#update_sequential_consistency) и [`update_parallel_mode`](/operations/settings/settings#update_parallel_mode).
-
-
## Права на выполнение UPDATE {#update-permissions}
`UPDATE` требует привилегии `ALTER UPDATE`. Чтобы разрешить выполнение операторов `UPDATE` для конкретной таблицы определённому пользователю, выполните:
@@ -95,7 +83,6 @@ UPDATE wikistat SET hits = hits + 1, time = now() WHERE path = 'ClickHouse';
GRANT ALTER UPDATE ON db.table TO username;
```
-
## Подробности реализации {#details-of-the-implementation}
Patch parts аналогичны обычным партам, но содержат только обновлённые столбцы и несколько системных столбцов:
@@ -131,8 +118,6 @@ Patch parts могут сливаться друг с другом, чтобы
Режим join медленнее и требует больше памяти, чем режим merge, но используется реже.
-
-
## Связанные материалы {#related-content}
- [`ALTER UPDATE`](/sql-reference/statements/alter/update) — «тяжёлые» операции `UPDATE`
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/azureBlobStorage.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/azureBlobStorage.md
index a2ecdad2989..ee5db533ab6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/azureBlobStorage.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/azureBlobStorage.md
@@ -12,20 +12,16 @@ doc_type: 'reference'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Табличная функция azureBlobStorage {#azureblobstorage-table-function}
Предоставляет табличный интерфейс для чтения и записи файлов в [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs). Эта табличная функция аналогична [функции s3](../../sql-reference/table-functions/s3.md).
-
-
## Синтаксис {#syntax}
```sql
azureBlobStorage(- connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression, structure, partition_strategy, partition_columns_in_data_file, extra_credentials(client_id=, tenant_id=)])
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -42,14 +38,10 @@ azureBlobStorage(- connection_string|storage_account_url, container_name, blobpa
| `partition_columns_in_data_file` | Необязательный параметр. Используется только со стратегией партиционирования `HIVE`. Указывает ClickHouse, следует ли ожидать, что столбцы партиции будут записаны в файл данных. Значение по умолчанию — `false`. |
| `extra_credentials` | Используйте `client_id` и `tenant_id` для аутентификации. Если указаны `extra_credentials`, они имеют приоритет над `account_name` и `account_key`.
-
-
## Возвращаемое значение {#returned_value}
Таблица заданной структуры для чтения данных из указанного файла или записи их в него.
-
-
## Примеры {#examples}
Аналогично движку таблиц [AzureBlobStorage](/engines/table-engines/integrations/azureBlobStorage), пользователи могут использовать эмулятор Azurite для локальной разработки с использованием Azure Storage. Дополнительные сведения см. [здесь](https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=docker-hub%2Cblob-storage). Ниже предполагается, что Azurite доступен по имени хоста `azurite1`.
@@ -89,7 +81,6 @@ SELECT count(*) FROM azureBlobStorage('DefaultEndpointsProtocol=https;AccountNam
└─────────┘
```
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к файлу. Тип: `LowCardinality(String)`.
@@ -97,8 +88,6 @@ SELECT count(*) FROM azureBlobStorage('DefaultEndpointsProtocol=https;AccountNam
- `_size` — Размер файла в байтах. Тип: `Nullable(UInt64)`. Если размер файла неизвестен, значение — `NULL`.
- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
-
-
## Запись с партиционированием {#partitioned-write}
### Стратегия партиционирования {#partition-strategy}
@@ -124,7 +113,6 @@ select _path, * from azureBlobStorage(azure_conf2, storage_account_url = 'http:/
└─────────────────────────────────────────────────────────────────────────────────┴────┴──────┴─────────┘
```
-
## настройка use_hive_partitioning {#hive-style-partitioning}
Это указание для ClickHouse при разборе файлов, партиционированных в стиле Hive, во время чтения. Оно не влияет на запись. Для симметричного чтения и записи используйте аргумент `partition_strategy`.
@@ -139,7 +127,6 @@ select _path, * from azureBlobStorage(azure_conf2, storage_account_url = 'http:/
SELECT * FROM azureBlobStorage(config, storage_account_url='...', container='...', blob_path='http://data/path/date=*/country=*/code=*/*.parquet') WHERE _date > '2020-01-01' AND _country = 'Netherlands' AND _code = 42;
```
-
## Использование Shared Access Signatures (SAS) {#using-shared-access-signatures-sas-sas-tokens}
Shared Access Signature (SAS) — это URI, который предоставляет ограниченный доступ к контейнеру или файлу в Azure Storage. Используйте его, чтобы предоставить ограниченный по времени доступ к ресурсам учетной записи хранения без передачи ключа учетной записи хранения. Подробнее [здесь](https://learn.microsoft.com/en-us/rest/api/storageservices/delegate-access-with-shared-access-signature).
@@ -172,6 +159,5 @@ FROM azureBlobStorage('https://clickhousedocstest.blob.core.windows.net/?sp=r&st
Получена 1 строка. Прошло: 0,153 сек.
```
-
## См. также {#related}
- [Движок таблицы AzureBlobStorage](engines/table-engines/integrations/azureBlobStorage.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/azureBlobStorageCluster.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/azureBlobStorageCluster.md
index 44bcf1f40a6..61ff92f8875 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/azureBlobStorageCluster.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/azureBlobStorageCluster.md
@@ -7,22 +7,17 @@ title: 'azureBlobStorageCluster'
doc_type: 'reference'
---
-
-
# Табличная функция azureBlobStorageCluster {#azureblobstoragecluster-table-function}
Позволяет обрабатывать файлы из [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs) параллельно на множестве узлов в указанном кластере. На узле-инициаторе создаётся подключение ко всем узлам кластера, раскрываются звёздочки в пути к файлу S3, и каждый файл динамически распределяется между узлами. Рабочий узел запрашивает у инициатора следующую задачу и обрабатывает её. Это повторяется до тех пор, пока все задачи не будут завершены.
Эта табличная функция аналогична [функции s3Cluster](../../sql-reference/table-functions/s3Cluster.md).
-
-
## Синтаксис {#syntax}
```sql
azureBlobStorageCluster(cluster_name, connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression, structure])
```
-
## Аргументы {#arguments}
| Argument | Description |
@@ -37,14 +32,10 @@ azureBlobStorageCluster(cluster_name, connection_string|storage_account_url, con
| `compression` | Поддерживаемые значения: `none`, `gzip/gz`, `brotli/br`, `xz/LZMA`, `zstd/zst`. По умолчанию тип сжатия определяется автоматически по расширению файла (то же, что установка значения `auto`). |
| `structure` | Структура таблицы. Формат: `'column1_name column1_type, column2_name column2_type, ...'`. |
-
-
## Возвращаемое значение {#returned_value}
Таблица с указанной структурой для чтения данных из указанного файла или записи данных в него.
-
-
## Примеры {#examples}
Аналогично табличному движку [AzureBlobStorage](/engines/table-engines/integrations/azureBlobStorage) пользователи могут использовать эмулятор Azurite для локальной разработки с использованием Azure Storage. Дополнительные сведения см. [здесь](https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=docker-hub%2Cblob-storage). Ниже мы предполагаем, что Azurite доступен по имени хоста `azurite1`.
@@ -58,13 +49,10 @@ SELECT count(*) FROM azureBlobStorageCluster(
'auto', 'key UInt64')
```
-
## Использование подписей общего доступа (Shared Access Signatures, SAS) {#using-shared-access-signatures-sas-sas-tokens}
См. примеры в разделе [azureBlobStorage](/sql-reference/table-functions/azureBlobStorage#using-shared-access-signatures-sas-sas-tokens).
-
-
## См. также {#related}
- [Движок AzureBlobStorage](../../engines/table-engines/integrations/azureBlobStorage.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/cluster.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/cluster.md
index 9ab09eeb1be..0362eb25b16 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/cluster.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/cluster.md
@@ -8,8 +8,6 @@ title: 'clusterAllReplicas'
doc_type: 'reference'
---
-
-
# Табличная функция clusterAllReplicas {#clusterallreplicas-table-function}
Позволяет обращаться ко всем шардам кластера (настроенным в разделе `remote_servers`) без создания таблицы [Distributed](../../engines/table-engines/special/distributed.md). Запрашивается только одна реплика каждого шарда.
@@ -20,12 +18,8 @@ doc_type: 'reference'
Все доступные кластеры перечислены в таблице [system.clusters](../../operations/system-tables/clusters.md).
:::
-
-
## Синтаксис {#syntax}
-
-
```sql
cluster(['cluster_name', db.table, sharding_key])
cluster(['cluster_name', db, table, sharding_key])
@@ -41,13 +35,10 @@ clusterAllReplicas(['cluster_name', db, table, sharding_key])
| `db.table` или `db`, `table` | Имя базы данных и таблицы. |
| `sharding_key` | Ключ шардинга. Необязательный параметр. Должен быть указан, если кластер содержит более одного шарда. |
-
## Возвращаемое значение {#returned_value}
Набор данных, полученный из кластеров.
-
-
## Использование макросов {#using_macros}
`cluster_name` может содержать макросы — подстановки в фигурных скобках. Значение подстановки берётся из раздела [macros](../../operations/server-configuration-parameters/settings.md#macros) файла конфигурации сервера.
@@ -58,7 +49,6 @@ clusterAllReplicas(['cluster_name', db, table, sharding_key])
SELECT * FROM cluster('{cluster}', default.example_table);
```
-
## Использование и рекомендации {#usage_recommendations}
Использование табличных функций `cluster` и `clusterAllReplicas` менее эффективно, чем создание таблицы `Distributed`, потому что в этом случае соединение с сервером заново устанавливается для каждого запроса. При обработке большого количества запросов всегда заранее создавайте таблицу `Distributed` и не используйте табличные функции `cluster` и `clusterAllReplicas`.
@@ -71,8 +61,6 @@ SELECT * FROM cluster('{cluster}', default.example_table);
Параметры подключения, такие как `host`, `port`, `user`, `password`, `compression`, `secure`, берутся из секции конфигурации ``. Подробности см. в описании [движка Distributed](../../engines/table-engines/special/distributed.md).
-
-
## См. также {#related}
- [skip_unavailable_shards](../../operations/settings/settings.md#skip_unavailable_shards)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/deltalake.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/deltalake.md
index bf2ab363f8e..defbbed8c17 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/deltalake.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/deltalake.md
@@ -8,14 +8,10 @@ title: 'deltaLake'
doc_type: 'reference'
---
-
-
# Табличная функция deltaLake {#deltalake-table-function}
Предоставляет табличный интерфейс только для чтения к таблицам [Delta Lake](https://github.com/delta-io/delta) в Amazon S3, Azure Blob Storage или локально смонтированной файловой системе.
-
-
## Синтаксис {#syntax}
`deltaLake` — это псевдоним `deltaLakeS3` и поддерживается для обеспечения совместимости.
@@ -30,20 +26,15 @@ deltaLakeAzure(connection_string|storage_account_url, container_name, blobpath,
deltaLakeLocal(path, [,format])
```
-
## Аргументы {#arguments}
Описание аргументов совпадает с описанием аргументов табличных функций `s3`, `azureBlobStorage`, `HDFS` и `file` соответственно.
`format` обозначает формат файлов данных в таблице Delta Lake.
-
-
## Возвращаемое значение {#returned_value}
Таблица с указанной структурой для чтения данных из указанной таблицы Delta Lake.
-
-
## Примеры {#examples}
Выборка строк из таблицы в S3 `https://clickhouse-public-datasets.s3.amazonaws.com/delta_lake/hits/`:
@@ -64,7 +55,6 @@ LIMIT 2
└───────────────────────────────────────────────────────────────────────┴───────────┘
```
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к файлу. Тип: `LowCardinality(String)`.
@@ -73,8 +63,6 @@ LIMIT 2
- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
- `_etag` — ETag файла. Тип: `LowCardinality(String)`. Если ETag неизвестен, значение — `NULL`.
-
-
## Связанные разделы {#related}
- [Движок DeltaLake](engines/table-engines/integrations/deltalake.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/deltalakeCluster.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/deltalakeCluster.md
index f359c17be11..8e1d08b5b19 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/deltalakeCluster.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/deltalakeCluster.md
@@ -7,16 +7,12 @@ title: 'deltaLakeCluster'
doc_type: 'reference'
---
-
-
# Табличная функция deltaLakeCluster {#deltalakecluster-table-function}
Это расширение табличной функции [deltaLake](sql-reference/table-functions/deltalake.md).
Позволяет параллельно обрабатывать файлы из таблиц [Delta Lake](https://github.com/delta-io/delta) в Amazon S3 одновременно с нескольких узлов заданного кластера. На инициаторе создаётся подключение ко всем узлам в кластере, и каждый файл динамически распределяется между ними. Рабочий узел запрашивает у инициатора следующую задачу и обрабатывает её. Это повторяется до тех пор, пока все задачи не будут выполнены.
-
-
## Синтаксис {#syntax}
```sql
@@ -32,21 +28,16 @@ deltaLakeAzureCluster(cluster_name, named_collection[, option=value [,..]])
`deltaLakeS3Cluster` — это псевдоним `deltaLakeCluster`, оба используются с S3.
-
## Аргументы {#arguments}
- `cluster_name` — имя кластера, которое используется для формирования набора адресов и параметров подключения к удалённым и локальным серверам.
- Описание всех остальных аргументов аналогично описанию аргументов в эквивалентной табличной функции [deltaLake](sql-reference/table-functions/deltalake.md).
-
-
## Возвращаемое значение {#returned_value}
Таблица с указанной структурой для чтения данных с кластера из указанной таблицы Delta Lake в S3.
-
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — путь к файлу. Тип: `LowCardinality(String)`.
@@ -55,8 +46,6 @@ deltaLakeAzureCluster(cluster_name, named_collection[, option=value [,..]])
- `_time` — время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
- `_etag` — ETag файла. Тип: `LowCardinality(String)`. Если ETag неизвестен, значение — `NULL`.
-
-
## См. также {#related}
- [движок Delta Lake](engines/table-engines/integrations/deltalake.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md
index 94f21c2e11a..c9d76662d95 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md
@@ -8,33 +8,24 @@ title: 'dictionary'
doc_type: 'reference'
---
-
-
# Табличная функция dictionary {#dictionary-table-function}
Отображает данные словаря [dictionary](../../sql-reference/dictionaries/index.md) в виде таблицы ClickHouse. Работает так же, как движок [Dictionary](../../engines/table-engines/special/dictionary.md).
-
-
## Синтаксис {#syntax}
```sql
dictionary('dict')
```
-
## Аргументы {#arguments}
- `dict` — Имя словаря. [String](../../sql-reference/data-types/string.md).
-
-
## Возвращаемое значение {#returned_value}
Таблица ClickHouse.
-
-
## Примеры {#examples}
Исходная таблица `dictionary_source_table`:
@@ -68,7 +59,6 @@ SELECT * FROM dictionary('new_dictionary');
└────┴───────┘
```
-
## См. также {#related}
- [Движок Dictionary](/engines/table-engines/special/dictionary)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/executable.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/executable.md
index f131d64c189..32be302b685 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/executable.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/executable.md
@@ -8,8 +8,6 @@ title: 'executable'
doc_type: 'reference'
---
-
-
# табличная функция `executable` для UDF {#executable-table-function-for-udfs}
Табличная функция `executable` создаёт таблицу на основе вывода пользовательской функции (UDF), которую вы определяете в скрипте, выводящем строки в **stdout**. Исполняемый скрипт хранится в директории `users_scripts` и может читать данные из любого источника. Убедитесь, что на вашем сервере ClickHouse установлены все необходимые пакеты для запуска исполняемого скрипта. Например, если это скрипт на Python, убедитесь, что на сервере установлены необходимые пакеты Python.
@@ -20,8 +18,6 @@ doc_type: 'reference'
Ключевое преимущество по сравнению с обычными UDF-функциями у табличной функции `executable` и движка таблицы `Executable` заключается в том, что обычные UDF-функции не могут изменять количество строк. Например, если на вход подаётся 100 строк, то результат также должен содержать 100 строк. При использовании табличной функции `executable` или движка таблицы `Executable` ваш скрипт может выполнять любые необходимые преобразования данных, включая сложные агрегации.
:::
-
-
## Синтаксис {#syntax}
Табличная функция `executable` принимает три обязательных параметра и необязательный список входных запросов:
@@ -90,7 +86,6 @@ SELECT * FROM executable('generate_random.py', TabSeparated, 'id UInt32, random
└────┴────────────┘
```
-
## Настройки {#settings}
- `send_chunk_header` — управляет тем, нужно ли отправлять количество строк перед отправкой блока данных на обработку. Значение по умолчанию — `false`.
@@ -100,8 +95,6 @@ SELECT * FROM executable('generate_random.py', TabSeparated, 'id UInt32, random
- `command_read_timeout` — таймаут чтения данных из stdout команды в миллисекундах. Значение по умолчанию — 10000.
- `command_write_timeout` — таймаут записи данных в stdin команды в миллисекундах. Значение по умолчанию — 10000.
-
-
## Передача результатов запроса в скрипт {#passing-query-results-to-a-script}
Обязательно ознакомьтесь с примером в табличном движке `Executable` о том, [как передать результаты запроса в скрипт](../../engines/table-engines/special/executable.md#passing-query-results-to-a-script). Ниже показано, как выполнить тот же скрипт из этого примера с помощью табличной функции `executable`:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/file.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/file.md
index 7be0a0e1fd9..8cff0510381 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/file.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/file.md
@@ -10,22 +10,18 @@ doc_type: 'reference'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Табличная функция file {#file-table-function}
Табличный движок, который предоставляет табличный интерфейс для выполнения SELECT из файлов и INSERT в файлы, аналогично табличной функции [s3](/sql-reference/table-functions/url.md). Используйте `file()` при работе с локальными файлами и `s3()` при работе с бакетами в объектном хранилище, например S3, GCS или MinIO.
Функция `file` может использоваться в запросах `SELECT` и `INSERT` для чтения из файлов или записи в файлы.
-
-
## Синтаксис {#syntax}
```sql
file([путь_к_архиву ::] путь [,формат] [,структура] [,сжатие])
```
-
## Аргументы {#arguments}
| Параметр | Описание |
@@ -36,14 +32,10 @@ file([путь_к_архиву ::] путь [,формат] [,структура
| `structure` | Структура таблицы. Формат: `'column1_name column1_type, column2_name column2_type, ...'`. |
| `compression` | Тип существующего сжатия при использовании в запросе `SELECT` или требуемый тип сжатия при использовании в запросе `INSERT`. Поддерживаемые типы сжатия: `gz`, `br`, `xz`, `zst`, `lz4` и `bz2`. |
-
-
## Возвращаемое значение {#returned_value}
Таблица для чтения данных из файла или записи в файл.
-
-
## Примеры записи в файл {#examples-for-writing-to-a-file}
### Запись в файл в формате TSV {#write-to-a-tsv-file}
@@ -56,7 +48,6 @@ VALUES (1, 2, 3), (3, 2, 1), (1, 3, 2)
В результате данные будут записаны в файл `test.tsv`:
-
```bash
# cat /var/lib/clickhouse/user_files/test.tsv {#cat-varlibclickhouseuser_filestesttsv}
1 2 3
@@ -77,18 +68,14 @@ VALUES (1, 2, 3), (3, 2, 1), (1, 3, 2)
В результате данные записываются в три файла: `test_1.tsv`, `test_2.tsv` и `test_3.tsv`.
-
```bash
# cat /var/lib/clickhouse/user_files/test_1.tsv {#cat-varlibclickhouseuser_filestest_1tsv}
3 2 1
```
-
# cat /var/lib/clickhouse/user_files/test_2.tsv {#cat-varlibclickhouseuser_filestest_2tsv}
1 3 2
-
-
# cat /var/lib/clickhouse/user_files/test_3.tsv {#cat-varlibclickhouseuser_filestest_3tsv}
1 2 3
@@ -96,7 +83,6 @@ VALUES (1, 2, 3), (3, 2, 1), (1, 3, 2)
```
```
-
## Примеры чтения из файла {#examples-for-reading-from-a-file}
### SELECT из CSV-файла {#select-from-a-csv-file}
@@ -154,7 +140,6 @@ file('test.csv', 'CSV', 'column1 UInt32, column2 UInt32, column3 UInt32');
SELECT * FROM file('user_files/archives/archive{1..2}.zip :: table.csv');
```
-
## Глоб-шаблоны в пути {#globs-in-path}
В путях можно использовать глоб-шаблоны. Файлы должны соответствовать всему шаблону пути, а не только суффиксу или префиксу. Есть одно исключение: если путь указывает на существующий каталог и не использует глоб-шаблоны, к пути неявно добавляется `*`, чтобы были выбраны все файлы в каталоге.
@@ -167,8 +152,6 @@ SELECT * FROM file('user_files/archives/archive{1..2}.zip :: table.csv');
Конструкции с `{}` аналогичны табличным функциям [remote](remote.md) и [hdfs](hdfs.md).
-
-
## Примеры {#examples}
**Пример**
@@ -228,7 +211,6 @@ SELECT count(*) FROM file('big_dir/**', 'CSV', 'name String, value UInt32');
SELECT count(*) FROM file('big_dir/**/file002', 'CSV', 'name String, value UInt32');
```
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — путь к файлу. Тип: `LowCardinality(String)`.
@@ -236,8 +218,6 @@ SELECT count(*) FROM file('big_dir/**/file002', 'CSV', 'name String, value UInt3
- `_size` — размер файла в байтах. Тип: `Nullable(UInt64)`. Если размер файла неизвестен, значение равно `NULL`.
- `_time` — время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение равно `NULL`.
-
-
## настройка use_hive_partitioning {#hive-style-partitioning}
Когда настройка `use_hive_partitioning` имеет значение 1, ClickHouse будет обнаруживать секционирование в стиле Hive в пути (`/name=value/`) и позволит использовать столбцы секций как виртуальные столбцы в запросе. Эти виртуальные столбцы будут иметь те же имена, что и в секционированном пути, но с префиксом `_`.
@@ -250,7 +230,6 @@ SELECT count(*) FROM file('big_dir/**/file002', 'CSV', 'name String, value UInt3
SELECT * FROM file('data/path/date=*/country=*/code=*/*.parquet') WHERE _date > '2020-01-01' AND _country = 'Netherlands' AND _code = 42;
```
-
## Настройки {#settings}
| Настройка | Описание |
@@ -261,8 +240,6 @@ SELECT * FROM file('data/path/date=*/country=*/code=*/*.parquet') WHERE _date >
| [engine_file_skip_empty_files](operations/settings/settings.md#engine_file_skip_empty_files) | позволяет пропускать пустые файлы при чтении. По умолчанию отключено. |
| [storage_file_read_method](/operations/settings/settings#engine_file_empty_if_not_exists) | метод чтения данных из файла хранилища, один из: `read`, `pread`, `mmap` (только для `clickhouse-local`). Значение по умолчанию: `pread` для `clickhouse-server`, `mmap` для `clickhouse-local`. |
-
-
## См. также {#related}
- [Виртуальные столбцы](engines/table-engines/index.md#table_engines-virtual_columns)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fileCluster.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fileCluster.md
index bf14bd4d328..a67989753ff 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fileCluster.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fileCluster.md
@@ -7,8 +7,6 @@ title: 'fileCluster'
doc_type: 'reference'
---
-
-
# Табличная функция fileCluster {#filecluster-table-function}
Позволяет одновременно обрабатывать файлы, соответствующие заданному пути, на нескольких узлах кластера. Инициатор устанавливает соединения с рабочими узлами, разворачивает glob-шаблоны в пути к файлам и делегирует задачи чтения файлов рабочим узлам. Каждый рабочий узел запрашивает у инициатора следующий файл для обработки и повторяет это до тех пор, пока все задачи не будут выполнены (все файлы не будут прочитаны).
@@ -18,15 +16,12 @@ doc_type: 'reference'
Если эти файлы различаются между узлами, возвращаемое значение нельзя заранее предсказать, так как оно зависит от порядка, в котором рабочие узлы запрашивают задачи у инициатора.
:::
-
-
## Синтаксис {#syntax}
```sql
fileCluster(cluster_name, path[, format, structure, compression_method])
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -37,8 +32,6 @@ fileCluster(cluster_name, path[, format, structure, compression_method])
| `structure` | Структура таблицы в формате `'UserID UInt64, Name String'`. Определяет имена и типы столбцов. Тип: [String](../../sql-reference/data-types/string.md). |
| `compression_method` | Метод сжатия. Поддерживаемые типы сжатия: `gz`, `br`, `xz`, `zst`, `lz4` и `bz2`. |
-
-
## Возвращаемое значение {#returned_value}
Таблица указанного формата и структуры с данными из файлов, путь к которым соответствует указанному.
@@ -88,13 +81,10 @@ SELECT * FROM fileCluster('my_cluster', 'file{1,2}.csv', 'CSV', 'i UInt32, s Str
└────┴────────┘
```
-
## Глоб-шаблоны в пути {#globs-in-path}
Все шаблоны, поддерживаемые табличной функцией [File](../../sql-reference/table-functions/file.md#globs-in-path), также поддерживаются функцией FileCluster.
-
-
## Смотрите также {#related}
- [Табличная функция `file`](../../sql-reference/table-functions/file.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/format.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/format.md
index 272f201afec..9b808352bb2 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/format.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/format.md
@@ -7,35 +7,26 @@ title: 'format'
doc_type: 'reference'
---
-
-
# Табличная функция format {#format-table-function}
Разбирает данные из аргументов в соответствии с указанным входным форматом. Если аргумент структуры не указан, структура определяется по данным.
-
-
## Синтаксис {#syntax}
```sql
format(format_name, [structure], data)
```
-
## Аргументы {#arguments}
- `format_name` — [формат](/sql-reference/formats) данных.
- `structure` — структура таблицы. Необязательный параметр. Формат: `column1_name column1_type, column2_name column2_type, ...`.
- `data` — строковый литерал или константное выражение, которое возвращает строку с данными в заданном формате.
-
-
## Возвращаемое значение {#returned_value}
Таблица с данными, полученными при разборе аргумента `data` в соответствии с указанным форматом и заданной или определённой структурой.
-
-
## Примеры {#examples}
Без аргумента `structure`:
@@ -109,7 +100,6 @@ $$)
└───────┴─────┘
```
-
## См. также {#related}
- [Форматы](../../interfaces/formats.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fuzzJSON.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fuzzJSON.md
index 77b6d457565..87d474d333e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fuzzJSON.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fuzzJSON.md
@@ -7,21 +7,16 @@ title: 'fuzzJSON'
doc_type: 'reference'
---
-
-
# Табличная функция fuzzJSON {#fuzzjson-table-function}
Вносит случайные искажения в строку JSON.
-
-
## Синтаксис {#syntax}
```sql
fuzzJSON({ named_collection [, option=value [,..]] | json_str[, random_seed] })
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -41,14 +36,10 @@ fuzzJSON({ named_collection [, option=value [,..]] | json_str[, random_seed] })
| `min_key_length` (UInt64) | Минимальная длина ключа. Должна быть не менее 1. |
| `max_key_length` (UInt64) | Максимальная длина ключа. Должна быть больше или равна `min_key_length`, если задана. |
-
-
## Возвращаемое значение {#returned_value}
Объект таблицы с одним столбцом, содержащим модифицированные JSON-строки.
-
-
## Пример использования {#usage-example}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fuzzQuery.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fuzzQuery.md
index bd28e4db2c0..56b1ce8fecb 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fuzzQuery.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/fuzzQuery.md
@@ -7,21 +7,16 @@ title: 'fuzzQuery'
doc_type: 'reference'
---
-
-
# Табличная функция fuzzQuery {#fuzzquery-table-function}
Модифицирует указанную строку запроса, внося в неё случайные изменения.
-
-
## Синтаксис {#syntax}
```sql
fuzzQuery(query[, max_query_length[, random_seed]])
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -30,14 +25,10 @@ fuzzQuery(query[, max_query_length[, random_seed]])
| `max_query_length`| (UInt64) — максимальная длина запроса в процессе фаззинга. |
| `random_seed` | (UInt64) — начальное значение генератора случайных чисел для стабильных результатов. |
-
-
## Возвращаемое значение {#returned_value}
Объект таблицы с одним столбцом, содержащим изменённые строки запросов.
-
-
## Пример использования {#usage-example}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/gcs.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/gcs.md
index c5aba32672d..eb6e956f315 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/gcs.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/gcs.md
@@ -8,8 +8,6 @@ title: 'gcs'
doc_type: 'reference'
---
-
-
# Табличная функция gcs {#gcs-table-function}
Предоставляет табличный интерфейс для выполнения `SELECT` и `INSERT` данных из [Google Cloud Storage](https://cloud.google.com/storage/). Требуется роль IAM [`Storage Object User`](https://cloud.google.com/storage/docs/access-control/iam-roles).
@@ -18,8 +16,6 @@ doc_type: 'reference'
Если в вашем кластере несколько реплик, вы можете использовать [функцию s3Cluster](../../sql-reference/table-functions/s3Cluster.md) (которая работает с GCS) для параллельной вставки данных.
-
-
## Синтаксис {#syntax}
```sql
@@ -32,7 +28,6 @@ gcs(named_collection[, option=value [,..]])
Дополнительные сведения об endpoint и HMAC см. в [документации по совместимости Google](https://cloud.google.com/storage/docs/interoperability).
:::
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -65,13 +60,10 @@ and not ~~[https://storage.cloud.google.com](https://storage.cloud.google.com)~~
| `no_sign_request` | Отключён по умолчанию. |
| `expiration_window_seconds` | Значение по умолчанию — 120. |
-
## Возвращаемое значение {#returned_value}
Таблица с указанной структурой для чтения данных из указанного файла или записи данных в него.
-
-
## Примеры {#examples}
Выбор первых двух строк таблицы из файла в GCS `https://storage.googleapis.com/my-test-bucket-768/data.csv`:
@@ -104,7 +96,6 @@ LIMIT 2;
└─────────┴─────────┴─────────┘
```
-
## Использование {#usage}
Предположим, что у нас есть несколько файлов со следующими URI в GCS:
@@ -198,7 +189,6 @@ SELECT count(*)
FROM gcs(creds, url='https://s3-object-url.csv')
```
-
## Партиционированная запись {#partitioned-write}
Если при вставке данных в таблицу `GCS` указано выражение `PARTITION BY`, для каждого значения партиции создаётся отдельный файл. Разделение данных на отдельные файлы помогает повысить эффективность операций чтения.
@@ -225,7 +215,6 @@ INSERT INTO TABLE FUNCTION
В результате данные записываются в три файла в разных бакетах: `my_bucket_1/file.csv`, `my_bucket_10/file.csv` и `my_bucket_20/file.csv`.
-
## См. также {#related}
- [Табличная функция S3](s3.md)
- [Движок таблицы S3](../../engines/table-engines/integrations/s3.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/generate.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/generate.md
index 7821d6fea3d..5de40a2f299 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/generate.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/generate.md
@@ -7,23 +7,18 @@ title: 'generateRandom'
doc_type: 'reference'
---
-
-
# Табличная функция generateRandom {#generaterandom-table-function}
Генерирует случайные данные с заданной схемой.
Позволяет заполнять тестовые таблицы этими данными.
Поддерживаются не все типы данных.
-
-
## Синтаксис {#syntax}
```sql
generateRandom(['name TypeName[, name TypeName]...', [, 'random_seed'[, 'max_string_length'[, 'max_array_length']]]])
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -34,14 +29,10 @@ generateRandom(['name TypeName[, name TypeName]...', [, 'random_seed'[, 'max_str
| `max_string_length` | Максимальная длина для всех сгенерированных строк. По умолчанию `10`. |
| `max_array_length` | Максимальное количество элементов для всех сгенерированных массивов или map-ов. По умолчанию `10`. |
-
-
## Возвращаемое значение {#returned_value}
Объект таблицы с запрошенной схемой.
-
-
## Пример использования {#usage-example}
```sql
@@ -89,7 +80,6 @@ SELECT * FROM generateRandom(generateRandomStructure(4, 101), 101) LIMIT 3;
SELECT * FROM generateRandom() LIMIT 3;
```
-
```text
┌───c1─┬─────────c2─┬─────────────────────c3─┬──────────────────────c4─┬─c5───────┐
│ -128 │ 317300854 │ 2030-08-16 08:22:20.65 │ 1994-08-16 12:08:56.745 │ R0qgiC46 │
@@ -104,7 +94,6 @@ SELECT * FROM generateRandom() LIMIT 3;
SELECT * FROM generateRandom(11) LIMIT 3;
```
-
```text
┌───────────────────────────────────────c1─┬─────────────────────────────────────────────────────────────────────────────c2─┬─────────────────────────────────────────────────────────────────────────────c3─┬─────────c4─┬─────────────────────────────────────────────────────────────────────────────c5─┬──────────────────────c6─┬─c7──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─c8──────────────────────────────────────┬─────────c9─┐
│ -77422512305044606600216318673365695785 │ 636812099959807642229.503817849012019401335326013846687285151335352272727523 │ -34944452809785978175157829109276115789694605299387223845886143311647505037529 │ 544473976 │ 111220388331710079615337037674887514156741572807049614590010583571763691328563 │ 22016.22623506465 │ {'2052-01-31 20:25:33':4306400876908509081044405485378623663,'1993-04-16 15:58:49':164367354809499452887861212674772770279,'2101-08-19 03:07:18':-60676948945963385477105077735447194811,'2039-12-22 22:31:39':-59227773536703059515222628111999932330} │ a7b2:8f58:4d07:6707:4189:80cf:92f5:902d │ 1950-07-14 │
@@ -117,6 +106,5 @@ SELECT * FROM generateRandom(11) LIMIT 3;
`generateRandom(generateRandomStructure(), [random seed], max_string_length, max_array_length)` с достаточно большим значением `max_array_length` может сгенерировать очень большой результат из-за потенциально большой глубины вложенности (до 16) составных типов (`Array`, `Tuple`, `Map`, `Nested`).
:::
-
## Связанные материалы {#related-content}
- Блог: [Генерация случайных данных в ClickHouse](https://clickhouse.com/blog/generating-random-test-distribution-data-for-clickhouse)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hdfs.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hdfs.md
index 685f2e74011..f08f621d927 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hdfs.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hdfs.md
@@ -11,20 +11,16 @@ doc_type: 'reference'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Табличная функция hdfs {#hdfs-table-function}
Создает таблицу из файлов в HDFS. Эта табличная функция аналогична табличным функциям [url](../../sql-reference/table-functions/url.md) и [file](../../sql-reference/table-functions/file.md).
-
-
## Синтаксис {#syntax}
```sql
hdfs(URI, format, structure)
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -33,8 +29,6 @@ hdfs(URI, format, structure)
| `format` | [Формат](/sql-reference/formats) файла. |
| `structure`| Структура таблицы. В формате `'column1_name column1_type, column2_name column2_type, ...'`. |
-
-
## Возвращаемое значение {#returned_value}
Таблица заданной структуры для чтения или записи данных в указанный файл.
@@ -56,7 +50,6 @@ LIMIT 2
└─────────┴─────────┴─────────┘
```
-
## Глоб-шаблоны в пути {#globs_in_path}
В путях можно использовать глоб-шаблоны. Файлы должны соответствовать всему шаблону пути, а не только суффиксу или префиксу.
@@ -111,7 +104,6 @@ SELECT count(*)
FROM hdfs('hdfs://hdfs1:9000/big_dir/file{0..9}{0..9}{0..9}', 'CSV', 'name String, value UInt32')
```
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к файлу. Тип: `LowCardinality(String)`.
@@ -119,8 +111,6 @@ FROM hdfs('hdfs://hdfs1:9000/big_dir/file{0..9}{0..9}{0..9}', 'CSV', 'name Strin
- `_size` — Размер файла в байтах. Тип: `Nullable(UInt64)`. Если размер неизвестен, значение — `NULL`.
- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
-
-
## параметр use_hive_partitioning {#hive-style-partitioning}
Когда параметр `use_hive_partitioning` установлен в значение 1, ClickHouse будет обнаруживать секционирование в стиле Hive в пути (`/name=value/`) и позволит использовать столбцы секций как виртуальные столбцы в запросе. Эти виртуальные столбцы будут иметь те же имена, что и в секционированном пути, но с префиксом `_`.
@@ -133,15 +123,12 @@ FROM hdfs('hdfs://hdfs1:9000/big_dir/file{0..9}{0..9}{0..9}', 'CSV', 'name Strin
SELECT * FROM HDFS('hdfs://hdfs1:9000/data/path/date=*/country=*/code=*/*.parquet') WHERE _date > '2020-01-01' AND _country = 'Netherlands' AND _code = 42;
```
-
## Настройки хранилища {#storage-settings}
- [hdfs_truncate_on_insert](operations/settings/settings.md#hdfs_truncate_on_insert) — позволяет усекать файл перед вставкой данных в него. По умолчанию отключено.
- [hdfs_create_new_file_on_insert](operations/settings/settings.md#hdfs_create_new_file_on_insert) — позволяет создавать новый файл при каждой вставке, если формат имеет суффикс. По умолчанию отключено.
- [hdfs_skip_empty_files](operations/settings/settings.md#hdfs_skip_empty_files) — позволяет пропускать пустые файлы при чтении. По умолчанию отключено.
-
-
## См. также {#related}
- [Виртуальные столбцы](../../engines/table-engines/index.md#table_engines-virtual_columns)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hdfsCluster.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hdfsCluster.md
index 621c90d2e5f..c7fbcbd4554 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hdfsCluster.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hdfsCluster.md
@@ -7,21 +7,16 @@ title: 'hdfsCluster'
doc_type: 'reference'
---
-
-
# Табличная функция hdfsCluster {#hdfscluster-table-function}
Позволяет обрабатывать файлы из HDFS параллельно с множества узлов в указанном кластере. На инициирующем узле создаётся соединение со всеми узлами кластера, раскрываются символы `*` в пути к файлам HDFS, и каждый файл динамически распределяется по узлам. Рабочий узел запрашивает у инициирующего узла следующую задачу и обрабатывает её. Это повторяется до тех пор, пока все задачи не будут выполнены.
-
-
## Синтаксис {#syntax}
```sql
hdfsCluster(cluster_name, URI, format, structure)
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -31,14 +26,10 @@ hdfsCluster(cluster_name, URI, format, structure)
| `format` | [Формат](/sql-reference/formats) файла. |
| `structure` | Структура таблицы. Формат: `'column1_name column1_type, column2_name column2_type, ...'`. |
-
-
## Возвращаемое значение {#returned_value}
Таблица с указанной структурой, предназначенная для чтения данных из указанного файла.
-
-
## Примеры {#examples}
1. Предположим, что у нас есть кластер ClickHouse с именем `cluster_simple` и несколько файлов со следующими URI в HDFS:
@@ -68,7 +59,6 @@ FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/*', 'TS
Если в списке файлов встречаются числовые диапазоны с ведущими нулями, используйте фигурные скобки для каждой цифры по отдельности или символ `?`.
:::
-
## См. также {#related}
- [Движок HDFS](../../engines/table-engines/integrations/hdfs.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hudi.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hudi.md
index 6d3de0a21a7..ae9b2c76711 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hudi.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hudi.md
@@ -7,21 +7,16 @@ title: 'hudi'
doc_type: 'reference'
---
-
-
# Табличная функция hudi {#hudi-table-function}
Предоставляет интерфейс только для чтения, аналогичный таблице, для работы с таблицами Apache [Hudi](https://hudi.apache.org/) в Amazon S3.
-
-
## Синтаксис {#syntax}
```sql
hudi(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,compression])
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -32,14 +27,10 @@ hudi(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,co
| `structure` | Структура таблицы. Формат: `'column1_name column1_type, column2_name column2_type, ...'`. |
| `compression` | Параметр является необязательным. Поддерживаемые значения: `none`, `gzip/gz`, `brotli/br`, `xz/LZMA`, `zstd/zst`. По умолчанию тип сжатия автоматически определяется по расширению файла. |
-
-
## Возвращаемое значение {#returned_value}
Таблица с заданной структурой для чтения данных из указанной таблицы Hudi в S3.
-
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к файлу. Тип: `LowCardinality(String)`.
@@ -48,8 +39,6 @@ hudi(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,co
- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
- `_etag` — ETag файла. Тип: `LowCardinality(String)`. Если ETag неизвестен, значение — `NULL`.
-
-
## Связанные материалы {#related}
- [Движок Hudi](/engines/table-engines/integrations/hudi.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hudiCluster.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hudiCluster.md
index 2592f321ee2..6c2ace52975 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hudiCluster.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/hudiCluster.md
@@ -7,23 +7,18 @@ title: 'Табличная функция hudiCluster'
doc_type: 'reference'
---
-
-
# Табличная функция hudiCluster {#hudicluster-table-function}
Это расширение табличной функции [hudi](sql-reference/table-functions/hudi.md).
Позволяет параллельно обрабатывать файлы из таблиц Apache [Hudi](https://hudi.apache.org/) в Amazon S3 на многих узлах заданного кластера. На инициирующем узле создаётся соединение со всеми узлами кластера, и каждый файл динамически распределяется между ними. Рабочий узел запрашивает у инициирующего узла следующую задачу для обработки и выполняет её. Это повторяется до тех пор, пока все задачи не будут завершены.
-
-
## Синтаксис {#syntax}
```sql
hudiCluster(cluster_name, url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,compression])
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -35,14 +30,10 @@ hudiCluster(cluster_name, url [,aws_access_key_id, aws_secret_access_key] [,form
| `structure` | Структура таблицы. Формат: `'column1_name column1_type, column2_name column2_type, ...'`. |
| `compression` | Параметр является необязательным. Поддерживаемые значения: `none`, `gzip/gz`, `brotli/br`, `xz/LZMA`, `zstd/zst`. По умолчанию тип сжатия автоматически определяется по расширению файла. |
-
-
## Возвращаемое значение {#returned_value}
Таблица с указанной структурой для чтения данных кластера из заданной таблицы Hudi в S3.
-
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к файлу. Тип: `LowCardinality(String)`.
@@ -51,8 +42,6 @@ hudiCluster(cluster_name, url [,aws_access_key_id, aws_secret_access_key] [,form
- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
- `_etag` — ETag файла. Тип: `LowCardinality(String)`. Если ETag неизвестен, значение — `NULL`.
-
-
## Смотрите также {#related}
- [Движок Hudi](engines/table-engines/integrations/hudi.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md
index 19fefe71613..4c528c0e2d9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md
@@ -1,5 +1,5 @@
---
-description: 'Предоставляет табличный интерфейс только для чтения к таблицам Apache Iceberg, размещённым в Amazon S3, Azure, HDFS или хранящимся локально.'
+description: 'Предоставляет табличный интерфейс в режиме только для чтения к таблицам Apache Iceberg, размещённым в Amazon S3, Azure, HDFS или локально.'
sidebar_label: 'iceberg'
sidebar_position: 90
slug: /sql-reference/table-functions/iceberg
@@ -7,13 +7,9 @@ title: 'iceberg'
doc_type: 'reference'
---
-
-
# Табличная функция iceberg {#iceberg-table-function}
-Предоставляет табличный интерфейс только для чтения к таблицам Apache [Iceberg](https://iceberg.apache.org/) в Amazon S3, Azure, HDFS или локальном хранилище.
-
-
+Предоставляет табличный интерфейс только для чтения к таблицам Apache [Iceberg](https://iceberg.apache.org/), размещённым в Amazon S3, Azure, HDFS или в локальном хранилище.
## Синтаксис {#syntax}
@@ -34,7 +30,7 @@ icebergLocal(named_collection[, option=value [,..]])
## Аргументы {#arguments}
-Описание аргументов аналогично описанию аргументов в табличных функциях `s3`, `azureBlobStorage`, `HDFS` и `file` соответственно.
+Описание аргументов совпадает с описанием аргументов табличных функций `s3`, `azureBlobStorage`, `HDFS` и `file` соответственно.
`format` обозначает формат файлов с данными в таблице Iceberg.
### Возвращаемое значение {#returned-value}
@@ -48,7 +44,7 @@ SELECT * FROM icebergS3('http://test.s3.amazonaws.com/clickhouse-bucket/test_tab
```
:::important
-ClickHouse в настоящее время поддерживает чтение формата Iceberg версий v1 и v2 с помощью табличных функций `icebergS3`, `icebergAzure`, `icebergHDFS` и `icebergLocal`, а также табличных движков `IcebergS3`, `icebergAzure`, `IcebergHDFS` и `IcebergLocal`.
+На данный момент ClickHouse поддерживает чтение версий v1 и v2 формата Iceberg с помощью табличных функций `icebergS3`, `icebergAzure`, `icebergHDFS` и `icebergLocal`, а также табличных движков `IcebergS3`, `icebergAzure`, `IcebergHDFS` и `IcebergLocal`.
:::
@@ -76,105 +72,143 @@ DESCRIBE icebergS3(iceberg_conf, filename = 'test_table')
```
-## Эволюция схемы {#schema-evolution}
+## Использование каталога данных {#iceberg-writes-catalogs}
-На данный момент с помощью ClickHouse вы можете читать таблицы Iceberg, схема которых изменялась со временем. Мы поддерживаем чтение таблиц, в которых столбцы добавлялись и удалялись, а их порядок изменялся. Вы также можете изменить столбец с обязательным значением на столбец, в котором допускается значение NULL. Дополнительно мы поддерживаем допустимое приведение типов для простых типов, а именно:
+Таблицы Iceberg также можно использовать с различными каталогами данных, такими как [REST Catalog](https://iceberg.apache.org/rest-catalog-spec/), [AWS Glue Data Catalog](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/aws-glue-data-catalog.html) и [Unity Catalog](https://www.unitycatalog.io/).
-* int -> long
-* float -> double
-* decimal(P, S) -> decimal(P', S), где P' > P.
+:::important
+При использовании каталога большинству пользователей следует использовать движок базы данных `DataLakeCatalog`, который подключает ClickHouse к вашему каталогу для обнаружения ваших таблиц. Вы можете использовать этот движок базы данных вместо ручного создания отдельных таблиц с движком таблиц `IcebergS3`.
+:::
-В настоящее время невозможно изменять вложенные структуры или типы элементов внутри массивов и структур map.
+Чтобы использовать такие каталоги, создайте таблицу с движком `IcebergS3` и укажите необходимые настройки.
+Например, использование REST Catalog с хранилищем MinIO:
+```sql
+CREATE TABLE `database_name.table_name`
+ENGINE = IcebergS3(
+ 'http://minio:9000/warehouse-rest/table_name/',
+ 'minio_access_key',
+ 'minio_secret_key'
+)
+SETTINGS
+ storage_catalog_type="rest",
+ storage_warehouse="demo",
+ object_storage_endpoint="http://minio:9000/warehouse-rest",
+ storage_region="us-east-1",
+ storage_catalog_url="http://rest:8181/v1"
+```
-## Отсечение партиций {#partition-pruning}
+Либо с использованием AWS Glue Data Catalog и S3:
-ClickHouse поддерживает отсечение партиций при выполнении запросов SELECT к таблицам Iceberg, что помогает оптимизировать производительность запросов за счёт пропуска нерелевантных файлов данных. Чтобы включить отсечение партиций, установите `use_iceberg_partition_pruning = 1`. Для получения дополнительной информации об отсечении партиций в Iceberg см. https://iceberg.apache.org/spec/#partitioning
+```sql
+CREATE TABLE `my_database.my_table`
+ENGINE = IcebergS3(
+ 's3://my-data-bucket/warehouse/my_database/my_table/',
+ 'aws_access_key',
+ 'aws_secret_key'
+)
+SETTINGS
+ storage_catalog_type = 'glue',
+ storage_warehouse = 'my_database',
+ object_storage_endpoint = 's3://my-data-bucket/',
+ storage_region = 'us-east-1',
+ storage_catalog_url = 'https://glue.us-east-1.amazonaws.com/iceberg/v1'
+```
+## Эволюция схемы {#schema-evolution}
-## Time Travel {#time-travel}
+На данный момент в ClickHouse можно читать таблицы Iceberg, схема которых со временем изменялась. Поддерживается чтение таблиц, в которых были добавлены и удалены столбцы, а также изменён их порядок. Можно также изменить столбец с обязательным значением на столбец, где допускается значение NULL. Кроме того, поддерживается допустимое приведение простых типов, а именно:
+
+* int -> long
+* float -> double
+* decimal(P, S) -> decimal(P', S), где P' > P.
-ClickHouse поддерживает механизм Time Travel для таблиц Iceberg, позволяющий выполнять запросы к историческим данным на указанную метку времени или по идентификатору снимка (snapshot).
+Пока невозможно изменять вложенные структуры или типы элементов внутри массивов и map.
+## Отсечение партиций {#partition-pruning}
+
+ClickHouse поддерживает отсечение партиций при выполнении запросов SELECT к таблицам Iceberg, что помогает оптимизировать производительность запросов за счёт пропуска не относящихся к делу файлов данных. Чтобы включить отсечение партиций, установите `use_iceberg_partition_pruning = 1`. Для получения дополнительной информации об отсечении партиций в Iceberg см. https://iceberg.apache.org/spec/#partitioning
+
+## Time Travel {#time-travel}
+ClickHouse поддерживает механизм time travel для таблиц Iceberg, позволяющий выполнять запросы к историческим данным по заданной метке времени или идентификатору снимка.
## Обработка таблиц с удалёнными строками {#deleted-rows}
-В настоящее время поддерживаются только таблицы Iceberg, использующие [position deletes](https://iceberg.apache.org/spec/#position-delete-files).
+В настоящее время поддерживаются только таблицы Iceberg, использующие [position deletes](https://iceberg.apache.org/spec/#position-delete-files).
Следующие методы удаления **не поддерживаются**:
-* [Equality deletes](https://iceberg.apache.org/spec/#equality-delete-files)
-* [Deletion vectors](https://iceberg.apache.org/spec/#deletion-vectors) (добавлены в v3)
+- [Equality deletes](https://iceberg.apache.org/spec/#equality-delete-files)
+- [Deletion vectors](https://iceberg.apache.org/spec/#deletion-vectors) (появились в версии 3)
-### Базовое использование {#basic-usage}
+### Основы использования {#basic-usage}
```sql
-SELECT * FROM example_table ORDER BY 1
-SETTINGS iceberg_timestamp_ms = 1714636800000
+ SELECT * FROM example_table ORDER BY 1
+ SETTINGS iceberg_timestamp_ms = 1714636800000
```
```sql
-SELECT * FROM example_table ORDER BY 1
-SETTINGS iceberg_snapshot_id = 3547395809148285433
+ SELECT * FROM example_table ORDER BY 1
+ SETTINGS iceberg_snapshot_id = 3547395809148285433
```
-Note: Нельзя указывать параметры `iceberg_timestamp_ms` и `iceberg_snapshot_id` в одном и том же запросе.
+Примечание: Нельзя указывать параметры `iceberg_timestamp_ms` и `iceberg_snapshot_id` одновременно в одном запросе.
+
### Важные замечания {#important-considerations}
* **Снимки (snapshots)** обычно создаются, когда:
-
* В таблицу записываются новые данные
+* Выполняется операция компактации (compaction) данных
-* Выполняется операция по уплотнению данных (compaction)
-
-* **Изменения схемы обычно не создают новых снимков** — это приводит к важным особенностям поведения при использовании time travel для таблиц, в которых происходила эволюция схемы.
+* **Изменения схемы обычно не создают снимки** — это приводит к важным особенностям поведения при использовании time travel для таблиц, схему которых со временем изменяли.
### Примеры сценариев {#example-scenarios}
-Все сценарии приведены в Spark, так как ClickHouse пока не поддерживает запись в таблицы Iceberg.
+Во всех сценариях используется Spark, так как ClickHouse пока не поддерживает запись в таблицы Iceberg.
-#### Сценарий 1: изменения схемы без новых снимков {#scenario-1}
+#### Сценарий 1: изменение схемы без создания новых снимков {#scenario-1}
Рассмотрим следующую последовательность операций:
```sql
--- Создание таблицы с двумя столбцами
- CREATE TABLE IF NOT EXISTS spark_catalog.db.time_travel_example (
- order_number bigint,
- product_code string
- )
- USING iceberg
- OPTIONS ('format-version'='2')
-
-- - Вставка данных в таблицу
- INSERT INTO spark_catalog.db.time_travel_example VALUES
- (1, 'Mars')
+ -- Создать таблицу с двумя столбцами
+ CREATE TABLE IF NOT EXISTS spark_catalog.db.time_travel_example (
+ order_number bigint,
+ product_code string
+ )
+ USING iceberg
+ OPTIONS ('format-version'='2')
- ts1 = now() // Фрагмент псевдокода
+-- Вставить данные в таблицу
+ INSERT INTO spark_catalog.db.time_travel_example VALUES
+ (1, 'Mars')
-- - Изменение таблицы для добавления нового столбца
- ALTER TABLE spark_catalog.db.time_travel_example ADD COLUMN (price double)
+ ts1 = now() // Фрагмент псевдокода
- ts2 = now()
+-- Изменить таблицу, добавив новый столбец
+ ALTER TABLE spark_catalog.db.time_travel_example ADD COLUMN (price double)
+
+ ts2 = now()
-- - Вставка данных в таблицу
- INSERT INTO spark_catalog.db.time_travel_example VALUES (2, 'Venus', 100)
+-- Вставить данные в таблицу
+ INSERT INTO spark_catalog.db.time_travel_example VALUES (2, 'Venus', 100)
- ts3 = now()
+ ts3 = now()
-- - Запрос таблицы для каждой временной метки
- SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts1;
+-- Выполнить запрос к таблице для каждой временной метки
+ SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts1;
+------------+------------+
|order_number|product_code|
+------------+------------+
| 1| Mars|
+------------+------------+
- SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts2;
+ SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts2;
+------------+------------+
|order_number|product_code|
@@ -182,7 +216,7 @@ Note: Нельзя указывать параметры `iceberg_timestamp_ms`
| 1| Mars|
+------------+------------+
- SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts3;
+ SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts3;
+------------+------------+-----+
|order_number|product_code|price|
@@ -192,17 +226,18 @@ Note: Нельзя указывать параметры `iceberg_timestamp_ms`
+------------+------------+-----+
```
-Результаты запроса на разных временных метках:
+Результаты запроса в разные моменты времени:
+
+* На ts1 и ts2: отображаются только исходные два столбца
+* На ts3: отображаются все три столбца; для цены первой строки указано значение NULL
-* В моменты ts1 и ts2: отображаются только исходные два столбца
-* В момент ts3: отображаются все три столбца, при этом для цены в первой строке указано значение NULL
#### Сценарий 2: различия между исторической и текущей схемой {#scenario-2}
-Запрос time travel, выполненный в текущий момент, может показать схему, отличающуюся от схемы текущей таблицы:
+Запрос time travel, выполненный в текущий момент времени, может показать схему, отличающуюся от текущей схемы таблицы:
```sql
--- Создать таблицу
+-- Создание таблицы
CREATE TABLE IF NOT EXISTS spark_catalog.db.time_travel_example_2 (
order_number bigint,
product_code string
@@ -210,15 +245,15 @@ Note: Нельзя указывать параметры `iceberg_timestamp_ms`
USING iceberg
OPTIONS ('format-version'='2')
--- Вставить начальные данные в таблицу
+-- Вставка начальных данных в таблицу
INSERT INTO spark_catalog.db.time_travel_example_2 VALUES (2, 'Venus');
--- Изменить таблицу, добавив новый столбец
+-- Изменение таблицы для добавления нового столбца
ALTER TABLE spark_catalog.db.time_travel_example_2 ADD COLUMN (price double);
ts = now();
--- Запросить таблицу в текущий момент времени, используя синтаксис временной метки
+-- Запрос таблицы на текущий момент с использованием синтаксиса временной метки
SELECT * FROM spark_catalog.db.time_travel_example_2 TIMESTAMP AS OF ts;
@@ -228,7 +263,7 @@ Note: Нельзя указывать параметры `iceberg_timestamp_ms`
| 2| Venus|
+------------+------------+
--- Запросить таблицу в текущий момент времени
+-- Запрос таблицы на текущий момент
SELECT * FROM spark_catalog.db.time_travel_example_2;
+------------+------------+-----+
|order_number|product_code|price|
@@ -237,12 +272,12 @@ Note: Нельзя указывать параметры `iceberg_timestamp_ms`
+------------+------------+-----+
```
-Это происходит потому, что `ALTER TABLE` не создаёт новый снимок, но для текущей таблицы Spark использует значение `schema_id` из последнего файла метаданных, а не из снимка.
+Это происходит потому, что `ALTER TABLE` не создаёт новый snapshot, а при работе с текущей таблицей Spark берёт значение `schema_id` из последнего файла метаданных, а не из snapshot.
-#### Сценарий 3: различия между исторической и текущей схемами {#scenario-3}
+#### Сценарий 3: различия между исторической и текущей схемой {#scenario-3}
-Второй момент заключается в том, что при использовании механизма time travel вы не можете получить состояние таблицы на момент до записи в неё каких-либо данных:
+Второе ограничение состоит в том, что при использовании механизма time travel нельзя получить состояние таблицы до того, как в неё были записаны какие‑либо данные:
```sql
-- Создание таблицы
@@ -256,90 +291,85 @@ Note: Нельзя указывать параметры `iceberg_timestamp_ms`
ts = now();
-- Запрос таблицы на определённую временную метку
- SELECT * FROM spark_catalog.db.time_travel_example_3 TIMESTAMP AS OF ts; -- Завершается ошибкой: Cannot find a snapshot older than ts.
+ SELECT * FROM spark_catalog.db.time_travel_example_3 TIMESTAMP AS OF ts; -- Завершается с ошибкой: Cannot find a snapshot older than ts.
```
-В ClickHouse поведение аналогично Spark. Вы можете мысленно заменить запросы SELECT в Spark на запросы SELECT в ClickHouse — и всё будет работать так же.
+В ClickHouse поведение такое же, как в Spark. Вы можете мысленно заменить запросы SELECT в Spark на запросы SELECT в ClickHouse — и всё будет работать так же.
## Определение файла метаданных {#metadata-file-resolution}
-При использовании табличной функции `iceberg` в ClickHouse система должна найти корректный файл metadata.json, который описывает структуру таблицы Iceberg. Ниже описано, как работает этот процесс определения:
+При использовании табличной функции `iceberg` в ClickHouse системе необходимо найти нужный файл metadata.json, который описывает структуру таблицы Iceberg. Ниже описано, как работает процесс его определения:
### Поиск кандидатов (в порядке приоритета) {#candidate-search}
1. **Явное указание пути**:
- *Если вы задаёте `iceberg_metadata_file_path`, система будет использовать этот точный путь, объединяя его с путём к директории таблицы Iceberg.*
+*Если вы задаёте `iceberg_metadata_file_path`, система будет использовать именно этот путь, добавляя его к пути каталога таблицы Iceberg.
-* При наличии этого параметра все остальные параметры выбора игнорируются.
+* При наличии этого параметра все остальные параметры разрешения пути игнорируются.
-2. **Соответствие UUID таблицы**:
- *Если указан `iceberg_metadata_table_uuid`, система будет:*
- *Просматривать только файлы `.metadata.json` в директории `metadata`*
- *Фильтровать файлы, содержащие поле `table-uuid`, совпадающее с указанным вами UUID (без учёта регистра)*
+2. **Сопоставление UUID таблицы**:
+*Если указан `iceberg_metadata_table_uuid`, система будет:
+ *Смотреть только файлы `.metadata.json` в каталоге `metadata`
+ *Отбирать файлы, содержащие поле `table-uuid` со значением, совпадающим с указанным UUID (без учёта регистра)
3. **Поиск по умолчанию**:
- *Если ни один из вышеперечисленных параметров не задан, все файлы `.metadata.json` в директории `metadata` становятся кандидатами.*
+*Если ни один из вышеперечисленных параметров не задан, все файлы `.metadata.json` в каталоге `metadata` рассматриваются как кандидаты
### Выбор самого нового файла {#most-recent-file}
-После определения файлов-кандидатов по приведённым выше правилам система выбирает самый новый:
+После определения кандидатов на основе приведённых выше правил система выбирает, какой файл является самым новым:
-* Если включён `iceberg_recent_metadata_file_by_last_updated_ms_field`:
+* Если `iceberg_recent_metadata_file_by_last_updated_ms_field` включён:
-* Выбирается файл с максимальным значением `last-updated-ms`
+* Выбирается файл с наибольшим значением `last-updated-ms`
* В противном случае:
* Выбирается файл с наибольшим номером версии
-* (Версия представлена как `V` в именах файлов формата `V.metadata.json` или `V-uuid.metadata.json`)
+* (Версия обозначается как `V` в именах файлов формата `V.metadata.json` или `V-uuid.metadata.json`)
-**Примечание**: Все упомянутые параметры являются параметрами табличной функции (а не глобальными или параметрами уровня запроса) и должны указываться так, как показано ниже:
+**Примечание**: Все упомянутые настройки являются настройками табличной функции (а не глобальными или на уровне запроса) и должны указываться как показано ниже:
```sql
SELECT * FROM iceberg('s3://bucket/path/to/iceberg_table',
SETTINGS iceberg_metadata_table_uuid = 'a90eed4c-f74b-4e5b-b630-096fb9d09021');
```
-**Примечание**: Хотя Iceberg Catalogs обычно отвечают за разрешение метаданных, табличная функция `iceberg` в ClickHouse напрямую интерпретирует файлы, хранящиеся в S3, как таблицы Iceberg, поэтому важно понимать эти правила разрешения метаданных.
+**Примечание**: Хотя каталоги Iceberg обычно отвечают за разрешение метаданных, табличная функция `iceberg` в ClickHouse напрямую интерпретирует файлы, хранящиеся в S3, как таблицы Iceberg, поэтому важно понимать эти правила разрешения метаданных.
-## Кэш метаданных {#metadata-cache}
-
-Движок таблицы и табличная функция `Iceberg` поддерживают кэш метаданных, в котором хранится информация о файлах манифеста, списке манифестов и JSON-файле метаданных. Кэш хранится в памяти. Эта возможность управляется настройкой `use_iceberg_metadata_files_cache`, которая по умолчанию включена.
-
+## Metadata cache {#metadata-cache}
+Движок таблиц `Iceberg` и табличная функция `Iceberg` поддерживают кэш метаданных, в котором хранится информация о файлах manifest, списках manifest и JSON-файлах с метаданными. Кэш хранится в памяти. Этот функционал управляется настройкой `use_iceberg_metadata_files_cache`, которая по умолчанию включена.
## Псевдонимы {#aliases}
-Табличная функция `iceberg` теперь является алиасом функции `icebergS3`.
-
-
+Табличная функция `iceberg` теперь является псевдонимом для `icebergS3`.
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к файлу. Тип: `LowCardinality(String)`.
- `_file` — Имя файла. Тип: `LowCardinality(String)`.
-- `_size` — Размер файла в байтах. Тип: `Nullable(UInt64)`. Если размер файла неизвестен, значение равно `NULL`.
-- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение равно `NULL`.
-- `_etag` — ETag файла. Тип: `LowCardinality(String)`. Если ETag неизвестен, значение равно `NULL`.
-
-
+- `_size` — Размер файла в байтах. Тип: `Nullable(UInt64)`. Если размер файла неизвестен, значение — `NULL`.
+- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
+- `_etag` — ETag файла. Тип: `LowCardinality(String)`. Если ETag неизвестен, значение — `NULL`.
## Запись в таблицы Iceberg {#writes-into-iceberg-table}
-Начиная с версии 25.7, ClickHouse поддерживает изменение пользовательских таблиц Iceberg.
+Начиная с версии 25.7, ClickHouse поддерживает модификацию пользовательских таблиц Iceberg.
-В настоящее время это экспериментальная функциональность, поэтому её сначала необходимо включить:
+В настоящее время это экспериментальная функция, поэтому сначала её нужно включить:
```sql
SET allow_experimental_insert_into_iceberg = 1;
```
+
### Создание таблицы {#create-iceberg-table}
-Чтобы создать собственную пустую таблицу Iceberg, используйте те же команды, что и для чтения, но явно задайте схему.
+Чтобы создать собственную пустую таблицу Iceberg, используйте те же команды, что и для чтения, но явно укажите схему.
Операции записи поддерживают все форматы данных из спецификации Iceberg, такие как Parquet, Avro и ORC.
### Пример {#example-iceberg-writes-create}
@@ -354,11 +384,12 @@ ENGINE = IcebergLocal('/home/scanhex12/iceberg_example/')
```
Примечание: чтобы создать файл подсказки версии, включите настройку `iceberg_use_version_hint`.
-Если вы хотите сжать файл metadata.json, укажите имя кодека в настройке `iceberg_metadata_compression_method`.
+Если нужно сжать файл metadata.json, укажите имя кодека в настройке `iceberg_metadata_compression_method`.
+
### INSERT {#writes-inserts}
-После создания новой таблицы вы можете вставлять данные, используя обычный синтаксис ClickHouse.
+После создания новой таблицы вы можете добавить данные, используя стандартный синтаксис ClickHouse.
### Пример {#example-iceberg-writes-insert}
@@ -380,13 +411,14 @@ x: Ivanov
y: 993
```
-### УДАЛЕНИЕ {#iceberg-writes-delete}
-В ClickHouse также поддерживается удаление строк в формате merge-on-read.
-Этот запрос создаст новый снимок с файлами позиционного удаления.
+### DELETE {#iceberg-writes-delete}
+
+Удаление избыточных строк в формате merge-on-read также поддерживается в ClickHouse.
+Этот запрос создаст новый снимок (snapshot) с файлами position delete.
-ПРИМЕЧАНИЕ: если в будущем вы захотите читать свои таблицы с помощью других движков Iceberg (таких как Spark), вам нужно отключить настройки `output_format_parquet_use_custom_encoder` и `output_format_parquet_parallel_encoding`.
-Это связано с тем, что Spark читает эти файлы по идентификаторам полей Parquet (field-ids), в то время как ClickHouse в настоящее время не поддерживает запись идентификаторов полей при включённых этих флагах.
+ПРИМЕЧАНИЕ: Если вы хотите в дальнейшем читать свои таблицы с использованием других движков Iceberg (таких как Spark), необходимо отключить настройки `output_format_parquet_use_custom_encoder` и `output_format_parquet_parallel_encoding`.
+Это связано с тем, что Spark читает эти файлы по идентификаторам полей Parquet (field-id), в то время как ClickHouse в настоящее время не поддерживает запись этих идентификаторов при включённых флагах.
Мы планируем исправить это поведение в будущем.
### Пример {#example-iceberg-writes-delete}
@@ -399,14 +431,15 @@ FROM iceberg_writes_example
FORMAT VERTICAL;
Строка 1:
-─────────
+──────
x: Ivanov
y: 993
```
+
### Эволюция схемы {#iceberg-writes-schema-evolution}
-ClickHouse позволяет добавлять, удалять или изменять столбцы с простыми типами (не tuple, не array, не map).
+ClickHouse позволяет добавлять, удалять или изменять столбцы с простыми типами данных (не типа `Tuple`, `Array` или `Map`).
### Пример {#example-iceberg-writes-evolution}
@@ -440,40 +473,37 @@ SELECT *
FROM iceberg_writes_example
FORMAT VERTICAL;
-Строка 1:
+Row 1:
──────
-x: Иванов
+x: Ivanov
y: 993
z: ᴺᵁᴸᴸ
-```
-
-ALTER TABLE iceberg_writes_example DROP COLUMN z;
-SHOW CREATE TABLE iceberg_writes_example;
-┌─statement─────────────────────────────────────────────────┐
-
-1. │ CREATE TABLE default.iceberg_writes_example ↴│
+ALTER TABLE iceberg_writes_example DROP COLUMN z;
+SHOW CREATE TABLE iceberg_writes_example;
+ ┌─statement─────────────────────────────────────────────────┐
+1. │ CREATE TABLE default.iceberg_writes_example ↴│
│↳( ↴│
│↳ `x` Nullable(String), ↴│
│↳ `y` Nullable(Int64) ↴│
│↳) ↴│
- │↳ENGINE = IcebergLocal('/home/scanhex12/iceberg_example/') │
+ │↳ENGINE = IcebergLocal('/home/scanhex12/iceberg_example/') │
└───────────────────────────────────────────────────────────┘
SELECT *
-FROM iceberg_writes_example
+FROM iceberg_writes_example
FORMAT VERTICAL;
-Строка 1:
+Row 1:
──────
x: Ivanov
y: 993
+```
-````
-### Уплотнение {#iceberg-writes-compaction}
+### Компакция {#iceberg-writes-compaction}
-ClickHouse поддерживает уплотнение таблиц Iceberg. В настоящее время можно объединять файлы позиционного удаления с файлами данных при обновлении метаданных. Идентификаторы и временные метки предыдущих снимков остаются неизменными, поэтому функция путешествия во времени продолжает работать с теми же значениями.
+ClickHouse поддерживает компактацию таблиц Iceberg. В данный момент он может объединять файлы position delete с файлами данных с одновременным обновлением метаданных. Идентификаторы и метки времени предыдущих snapshot остаются без изменений, поэтому возможность time-travel по-прежнему доступна с теми же значениями.
Как использовать:
@@ -490,21 +520,10 @@ Row 1:
──────
x: Ivanov
y: 993
-````
-
-
-## Таблица с каталогами {#iceberg-writes-catalogs}
-
-Все описанные выше возможности записи также доступны с REST- и Glue‑каталогами.
-Чтобы использовать их, создайте таблицу с табличным движком `IcebergS3` и укажите необходимые настройки:
-
-```sql
-CREATE TABLE `database_name.table_name` ENGINE = IcebergS3('http://minio:9000/warehouse-rest/table_name/', 'minio_access_key', 'minio_secret_key')
-SETTINGS storage_catalog_type="rest", storage_warehouse="demo", object_storage_endpoint="http://minio:9000/warehouse-rest", storage_region="us-east-1", storage_catalog_url="http://rest:8181/v1",
```
## См. также {#see-also}
-* [Движок таблиц Iceberg](/engines/table-engines/integrations/iceberg.md)
-* [Табличная функция `icebergCluster`](/sql-reference/table-functions/icebergCluster.md)
+* [Движок Iceberg](/engines/table-engines/integrations/iceberg.md)
+* [Табличная функция icebergCluster](/sql-reference/table-functions/icebergCluster.md)
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/icebergCluster.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/icebergCluster.md
index 285e53ea490..d06c67d7335 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/icebergCluster.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/icebergCluster.md
@@ -8,16 +8,12 @@ title: 'icebergCluster'
doc_type: 'reference'
---
-
-
# Табличная функция icebergCluster {#icebergcluster-table-function}
Это расширение табличной функции [iceberg](/sql-reference/table-functions/iceberg.md).
Позволяет параллельно обрабатывать файлы Apache [Iceberg](https://iceberg.apache.org/) на многих узлах в заданном кластере. На узле-инициаторе создаётся соединение со всеми узлами кластера, и каждый файл динамически распределяется между ними. Рабочий узел запрашивает у инициатора следующую задачу для обработки и выполняет её. Это повторяется до тех пор, пока все задачи не будут завершены.
-
-
## Синтаксис {#syntax}
```sql
@@ -31,7 +27,6 @@ icebergHDFSCluster(cluster_name, path_to_table, [,format] [,compression_method])
icebergHDFSCluster(cluster_name, named_collection[, option=value [,..]])
```
-
## Аргументы {#arguments}
* `cluster_name` — имя кластера, которое используется для построения набора адресов и параметров подключения к удалённым и локальным серверам.
@@ -47,7 +42,6 @@ icebergHDFSCluster(cluster_name, named_collection[, option=value [,..]])
SELECT * FROM icebergS3Cluster('cluster_simple', 'http://test.s3.amazonaws.com/clickhouse-bucket/test_table', 'test', 'test')
```
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — путь к файлу. Тип: `LowCardinality(String)`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/loop.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/loop.md
index caf840bb200..32522dffef0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/loop.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/loop.md
@@ -5,12 +5,8 @@ title: 'loop'
doc_type: 'reference'
---
-
-
# Табличная функция loop {#loop-table-function}
-
-
## Синтаксис {#syntax}
```sql
@@ -20,7 +16,6 @@ SELECT ... FROM loop(table);
SELECT ... FROM loop(other_table_function(...));
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -29,14 +24,10 @@ SELECT ... FROM loop(other_table_function(...));
| `table` | имя таблицы. |
| `other_table_function(...)` | другая табличная функция. Пример: `SELECT * FROM loop(numbers(10));` здесь `other_table_function(...)` — это `numbers(10)`. |
-
-
## Возвращаемые значения {#returned_values}
Бесконечный цикл, возвращающий результаты запроса.
-
-
## Примеры {#examples}
Получение данных из ClickHouse:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/merge.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/merge.md
index 6a9f05b1e62..2c3b007fd6a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/merge.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/merge.md
@@ -7,20 +7,14 @@ title: 'merge'
doc_type: 'reference'
---
-
-
# Табличная функция merge {#merge-table-function}
Создаёт временную таблицу [Merge](../../engines/table-engines/special/merge.md).
Схема таблицы выводится из базовых таблиц путём объединения их столбцов и вывода общих типов.
Доступны те же виртуальные столбцы, что и для движка таблиц [Merge](../../engines/table-engines/special/merge.md).
-
-
## Синтаксис {#syntax}
-
-
```sql
merge(['db_name',] 'tables_regexp')
```
@@ -32,7 +26,6 @@ merge(['db_name',] 'tables_regexp')
| `db_name` | Возможные значения (необязательный параметр, по умолчанию — `currentDatabase()`): - имя базы данных, - константное выражение, которое возвращает строку с именем базы данных, например `currentDatabase()`, - `REGEXP(expression)`, где `expression` — регулярное выражение для сопоставления имен БД. |
| `tables_regexp` | Регулярное выражение для сопоставления имен таблиц в указанной БД или нескольких БД. |
-
## См. также {#related}
- [Merge](../../engines/table-engines/special/merge.md) — движок таблиц
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mergeTreeIndex.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mergeTreeIndex.md
index 67b3d9caed5..07d31fb88ef 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mergeTreeIndex.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mergeTreeIndex.md
@@ -8,21 +8,16 @@ title: 'mergeTreeIndex'
doc_type: 'reference'
---
-
-
# Табличная функция mergeTreeIndex {#mergetreeindex-table-function}
Предоставляет доступ к содержимому файлов индексов и меток таблиц MergeTree. Может использоваться для интроспекции.
-
-
## Синтаксис {#syntax}
```sql
mergeTreeIndex(database, table [, with_marks = true] [, with_minmax = true])
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -32,8 +27,6 @@ mergeTreeIndex(database, table [, with_marks = true] [, with_minmax = true])
| `with_marks` | Включать ли в результат столбцы с метками. |
| `with_minmax` | Включать ли в результат индекс min-max. |
-
-
## Возвращаемое значение {#returned_value}
Объект-таблица со столбцами, содержащими значения первичного индекса и индекса min-max (если включён) исходной таблицы, столбцы со значениями меток (если включены) для всех возможных файлов в частях данных исходной таблицы и виртуальные столбцы:
@@ -44,8 +37,6 @@ mergeTreeIndex(database, table [, with_marks = true] [, with_minmax = true])
Столбец меток может содержать значение `(NULL, NULL)`, если столбец отсутствует в части данных или метки для одного из его подпотоков не записаны (например, в компактных частях).
-
-
## Пример использования {#usage-example}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mergeTreeProjection.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mergeTreeProjection.md
index f292217a8cd..760da8987a7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mergeTreeProjection.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mergeTreeProjection.md
@@ -8,21 +8,16 @@ title: 'mergeTreeProjection'
doc_type: 'reference'
---
-
-
# Табличная функция mergeTreeProjection {#mergetreeprojection-table-function}
Представляет содержимое некоторой проекции в таблицах MergeTree. Может использоваться для интроспекции.
-
-
## Синтаксис {#syntax}
```sql
mergeTreeProjection(база_данных, таблица, проекция)
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -31,14 +26,10 @@ mergeTreeProjection(база_данных, таблица, проекция)
| `table` | Имя таблицы, из которой считывается проекция. |
| `projection` | Проекция, из которой выполняется чтение. |
-
-
## Возвращаемое значение {#returned_value}
Объект таблицы с набором столбцов, определённых указанной проекцией.
-
-
## Пример использования {#usage-example}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md
index bf8efdbe87f..b87d4b97e83 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md
@@ -7,21 +7,16 @@ title: 'mongodb'
doc_type: 'reference'
---
-
-
# Табличная функция MongoDB {#mongodb-table-function}
Позволяет выполнять `SELECT`-запросы к данным, хранящимся на удалённом сервере MongoDB.
-
-
## Синтаксис {#syntax}
```sql
mongodb(хост:порт, база_данных, коллекция, пользователь, пароль, структура[, опции[, oid_столбцы]])
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -57,13 +52,10 @@ mongodb(uri, collection, structure[, oid_columns])
| `structure` | Схема таблицы ClickHouse, возвращаемой этой функцией. |
| `oid_columns` | Список столбцов, разделённых запятыми, которые в предложении WHERE должны интерпретироваться как `oid`. По умолчанию — `_id`. |
-
## Возвращаемое значение {#returned_value}
Объект таблицы с теми же столбцами, что и исходная таблица MongoDB.
-
-
## Примеры {#examples}
Предположим, у нас есть коллекция `my_collection` в базе данных MongoDB `test`, и мы вставляем в неё пару документов:
@@ -106,7 +98,6 @@ SELECT * FROM mongodb(
)
```
-
## См. также {#related}
- [Движок таблицы `MongoDB`](engines/table-engines/integrations/mongodb.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md
index 5cb94914db1..ea94a1e3f55 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md
@@ -8,21 +8,16 @@ title: 'mysql'
doc_type: 'reference'
---
-
-
# Табличная функция `mysql` {#mysql-table-function}
Позволяет выполнять запросы `SELECT` и `INSERT` к данным, хранящимся на удалённом сервере MySQL.
-
-
## Синтаксис {#syntax}
```sql
mysql({host:port, database, table, user, password[, replace_query, on_duplicate_clause] | named_collection[, option=value [,..]]})
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -53,7 +48,6 @@ SELECT name FROM mysql(`mysql{1|2|3}:3306`, 'mysql_database', 'mysql_table', 'us
SELECT name FROM mysql(`mysql1:3306|mysql2:3306|mysql3:3306`, 'mysql_database', 'mysql_table', 'user', 'password');
```
-
## Возвращаемое значение {#returned_value}
Объект таблицы с теми же столбцами, что и исходная таблица MySQL.
@@ -66,8 +60,6 @@ SELECT name FROM mysql(`mysql1:3306|mysql2:3306|mysql3:3306`, 'mysql_database',
В запросе `INSERT` чтобы отличить табличную функцию `mysql(...)` от имени таблицы со списком имён столбцов, необходимо использовать ключевые слова `FUNCTION` или `TABLE FUNCTION`. См. примеры ниже.
:::
-
-
## Примеры {#examples}
Таблица в MySQL:
@@ -151,7 +143,6 @@ SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password')
WHERE id > (SELECT max(id) FROM mysql_copy);
```
-
## См. также {#related}
- [Движок таблицы MySQL](../../engines/table-engines/integrations/mysql.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/null.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/null.md
index c48e5bf52da..b191953ef42 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/null.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/null.md
@@ -7,33 +7,24 @@ title: 'null'
doc_type: 'reference'
---
-
-
# Функция таблицы null {#null-table-function}
Создает временную таблицу указанной структуры с движком таблицы [Null](../../engines/table-engines/special/null.md). В соответствии со свойствами движка `Null` данные таблицы игнорируются, а сама таблица немедленно удаляется после выполнения запроса. Функция используется для удобства при написании тестов и проведении демонстраций.
-
-
## Синтаксис {#syntax}
```sql
null('structure')
```
-
## Аргумент {#argument}
- `structure` — список столбцов и их типов, строка типа [String](../../sql-reference/data-types/string.md).
-
-
## Возвращаемое значение {#returned_value}
Временная таблица движка `Null` с указанной структурой.
-
-
## Пример {#example}
Запрос с использованием функции `null`:
@@ -50,7 +41,6 @@ INSERT INTO t SELECT * FROM numbers_mt(1000000000);
DROP TABLE IF EXISTS t;
```
-
## Связанные разделы {#related}
- [Движок таблицы Null](../../engines/table-engines/special/null.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md
index 94698d52ea8..a84a5466a2a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md
@@ -7,14 +7,10 @@ title: 'odbc'
doc_type: 'reference'
---
-
-
# Табличная функция ODBC {#odbc-table-function}
Возвращает таблицу, подключённую через [ODBC](https://en.wikipedia.org/wiki/Open_Database_Connectivity).
-
-
## Синтаксис {#syntax}
```sql
@@ -23,7 +19,6 @@ odbc(источник_данных, внешняя_таблица)
odbc(именованная_коллекция)
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -38,8 +33,6 @@ odbc(именованная_коллекция)
Поля со значениями `NULL` из внешней таблицы преобразуются в значения по умолчанию для базового типа данных. Например, если поле удалённой таблицы MySQL имеет тип `INT NULL`, оно преобразуется в 0 (значение по умолчанию для типа данных ClickHouse `Int32`).
-
-
## Пример использования {#usage-example}
**Получение данных из локального экземпляра MySQL через ODBC**
@@ -117,7 +110,6 @@ SELECT * FROM odbc('DSN=mysqlconn', 'test', 'test')
└────────┴──────────────┴───────┴────────────────┘
```
-
## См. также {#see-also}
- [Словари ODBC](/sql-reference/dictionaries#dbms)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/paimon.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/paimon.md
index e5b43d21f69..d78bcf1520a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/paimon.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/paimon.md
@@ -9,15 +9,12 @@ doc_type: 'reference'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
-
# Табличная функция paimon {#paimon-table-function}
Предоставляет интерфейс только для чтения к таблицам Apache [Paimon](https://paimon.apache.org/), хранящимся в Amazon S3, Azure, HDFS или локально, аналогичный работе с обычной таблицей.
-
-
## Синтаксис {#syntax}
```sql
@@ -32,7 +29,6 @@ paimonHDFS(path_to_table, [,format] [,compression_method])
paimonLocal(path_to_table, [,format] [,compression_method])
```
-
## Аргументы {#arguments}
Описание аргументов совпадает с описанием аргументов в табличных функциях `s3`, `azureBlobStorage`, `HDFS` и `file` соответственно.
@@ -42,8 +38,6 @@ paimonLocal(path_to_table, [,format] [,compression_method])
Таблица с заданной структурой для чтения данных из указанной таблицы Paimon.
-
-
## Определение именованной коллекции {#defining-a-named-collection}
Ниже приведён пример настройки именованной коллекции для хранения URL-адреса и учётных данных:
@@ -67,13 +61,10 @@ SELECT * FROM paimonS3(paimon_conf, filename = 'test_table')
DESCRIBE paimonS3(paimon_conf, filename = 'test_table')
```
-
## Псевдонимы {#aliases}
Табличная функция `paimon` теперь является псевдонимом для `paimonS3`.
-
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — путь к файлу. Тип: `LowCardinality(String)`.
@@ -82,8 +73,6 @@ DESCRIBE paimonS3(paimon_conf, filename = 'test_table')
- `_time` — время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение равно `NULL`.
- `_etag` — ETag файла. Тип: `LowCardinality(String)`. Если ETag неизвестен, значение равно `NULL`.
-
-
## Поддерживаемые типы данных {#data-types-supported}
| Тип данных Paimon | Тип данных ClickHouse
@@ -106,8 +95,6 @@ DESCRIBE paimonS3(paimon_conf, filename = 'test_table')
|ARRAY |Array |
|MAP |Map |
-
-
## Поддерживаемые партиции {#partition-supported}
Типы данных, поддерживаемые в ключах партиций Paimon:
* `CHAR`
@@ -125,8 +112,6 @@ DESCRIBE paimonS3(paimon_conf, filename = 'test_table')
* `FLOAT`
* `DOUBLE`
-
-
## См. также {#see-also}
* [Табличная функция Paimon Cluster](/sql-reference/table-functions/paimonCluster.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/paimonCluster.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/paimonCluster.md
index cddef529a9f..95d55299420 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/paimonCluster.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/paimonCluster.md
@@ -9,7 +9,6 @@ doc_type: 'reference'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
-
# Табличная функция paimonCluster {#paimoncluster-table-function}
@@ -18,8 +17,6 @@ import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
Позволяет обрабатывать файлы из Apache [Paimon](https://paimon.apache.org/) параллельно на множестве узлов заданного кластера. На инициаторе создаётся подключение ко всем узлам кластера, и каждый файл динамически распределяется между ними. Рабочий узел запрашивает у инициатора следующую задачу для обработки и выполняет её. Это повторяется до тех пор, пока все задачи не будут выполнены.
-
-
## Синтаксис {#syntax}
```sql
@@ -30,7 +27,6 @@ paimonAzureCluster(cluster_name, connection_string|storage_account_url, containe
paimonHDFSCluster(cluster_name, path_to_table, [,format] [,compression_method])
```
-
## Аргументы {#arguments}
- `cluster_name` — имя кластера, которое используется для построения набора адресов и параметров подключения к удалённым и локальным серверам.
@@ -40,8 +36,6 @@ paimonHDFSCluster(cluster_name, path_to_table, [,format] [,compression_method])
Таблица с указанной структурой для чтения данных из кластера из указанной таблицы Paimon.
-
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — путь к файлу. Тип: `LowCardinality(String)`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md
index 7b385ba275b..d2b7c5605e4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md
@@ -7,21 +7,16 @@ title: 'postgresql'
doc_type: 'reference'
---
-
-
# Табличная функция PostgreSQL {#postgresql-table-function}
Позволяет выполнять запросы `SELECT` и `INSERT` к данным, которые хранятся на удалённом сервере PostgreSQL.
-
-
## Синтаксис {#syntax}
```sql
postgresql({host:port, database, table, user, password[, schema, [, on_conflict]] | named_collection[, option=value [,..]]})
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -36,8 +31,6 @@ postgresql({host:port, database, table, user, password[, schema, [, on_conflict]
Аргументы также могут быть переданы с использованием [именованных коллекций](operations/named-collections.md). В этом случае `host` и `port` должны быть указаны отдельно. Такой подход рекомендуется для продакшен-среды.
-
-
## Возвращаемое значение {#returned_value}
Объект таблицы с теми же столбцами, что и исходная таблица PostgreSQL.
@@ -46,8 +39,6 @@ postgresql({host:port, database, table, user, password[, schema, [, on_conflict]
В запросе `INSERT`, чтобы отличить табличную функцию `postgresql(...)` от имени таблицы со списком имён столбцов, необходимо использовать ключевые слова `FUNCTION` или `TABLE FUNCTION`. См. примеры ниже.
:::
-
-
## Детали реализации {#implementation-details}
Запросы `SELECT` на стороне PostgreSQL выполняются в виде `COPY (SELECT ...) TO STDOUT` внутри транзакции PostgreSQL только для чтения с фиксацией (commit) после каждого запроса `SELECT`.
@@ -78,7 +69,6 @@ SELECT name FROM postgresql(`postgres1:5431|postgres2:5432`, 'postgres_database'
Поддерживаются приоритеты реплик для источника словаря PostgreSQL. Чем больше число в отображении, тем ниже приоритет. Наивысший приоритет — `0`.
-
## Примеры {#examples}
Таблица в PostgreSQL:
@@ -157,7 +147,6 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32)
ENGINE PostgreSQL('localhost:5432', 'clickhouse', 'nice.table', 'postgrsql_user', 'password', 'nice.schema');
```
-
## Связанные материалы {#related}
- [Движок таблиц PostgreSQL](../../engines/table-engines/integrations/postgresql.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/prometheusQuery.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/prometheusQuery.md
index afcb9bf2c8d..db5d60b78e7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/prometheusQuery.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/prometheusQuery.md
@@ -7,14 +7,10 @@ title: 'prometheusQuery'
doc_type: 'reference'
---
-
-
# Табличная функция prometheusQuery {#prometheusquery-table-function}
Выполняет запрос Prometheus по данным таблицы TimeSeries.
-
-
## Синтаксис {#syntax}
```sql
@@ -23,7 +19,6 @@ prometheusQuery(db_name.time_series_table, 'promql_query', evaluation_time)
prometheusQuery('time_series_table', 'promql_query', evaluation_time)
```
-
## Аргументы {#arguments}
- `db_name` — имя базы данных, в которой находится таблица TimeSeries.
@@ -31,8 +26,6 @@ prometheusQuery('time_series_table', 'promql_query', evaluation_time)
- `promql_query` — запрос, написанный в [синтаксисе PromQL](https://prometheus.io/docs/prometheus/latest/querying/basics/).
- `evaluation_time` — метка времени вычисления. Чтобы вычислить запрос на текущий момент времени, используйте `now()` в качестве значения `evaluation_time`.
-
-
## Возвращаемое значение {#returned_value}
Функция может возвращать различные наборы столбцов в зависимости от типа результата запроса, переданного в параметр `promql_query`:
@@ -44,8 +37,6 @@ prometheusQuery('time_series_table', 'promql_query', evaluation_time)
| scalar | scalar ValueType | prometheusQuery(mytable, '1h30m') |
| string | string String | prometheusQuery(mytable, '"abc"') |
-
-
## Пример {#example}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/prometheusQueryRange.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/prometheusQueryRange.md
index 9e38ba647e9..e41673b0d44 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/prometheusQueryRange.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/prometheusQueryRange.md
@@ -7,14 +7,10 @@ title: 'prometheusQueryRange'
doc_type: 'reference'
---
-
-
# Табличная функция prometheusQuery {#prometheusquery-table-function}
Вычисляет запрос Prometheus, используя данные из таблицы TimeSeries в заданном интервале времени оценки.
-
-
## Синтаксис {#syntax}
```sql
@@ -23,7 +19,6 @@ prometheusQueryRange(db_name.time_series_table, 'promql_query', start_time, end_
prometheusQueryRange('time_series_table', 'promql_query', start_time, end_time, step)
```
-
## Аргументы {#arguments}
- `db_name` - имя базы данных, в которой находится таблица TimeSeries.
@@ -33,8 +28,6 @@ prometheusQueryRange('time_series_table', 'promql_query', start_time, end_time,
- `end_time` - время окончания диапазона вычисления.
- `step` - шаг, используемый для перебора времени вычисления от `start_time` до `end_time` (включительно).
-
-
## Возвращаемое значение {#returned_value}
Функция может возвращать различные столбцы в зависимости от типа результата запроса, переданного в параметре `promql_query`:
@@ -46,8 +39,6 @@ prometheusQueryRange('time_series_table', 'promql_query', start_time, end_time,
| scalar | scalar ValueType | prometheusQuery(mytable, '1h30m') |
| string | string String | prometheusQuery(mytable, '"abc"') |
-
-
## Пример {#example}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md
index b73acd275be..384cf36cd2c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md
@@ -7,21 +7,16 @@ title: 'redis'
doc_type: 'reference'
---
-
-
# Табличная функция redis {#redis-table-function}
Эта табличная функция предназначена для интеграции ClickHouse с [Redis](https://redis.io/).
-
-
## Синтаксис {#syntax}
```sql
redis(host:port, key, structure[, db_index[, password[, pool_size]]])
```
-
## Аргументы {#arguments}
| Argument | Description |
@@ -39,14 +34,10 @@ redis(host:port, key, structure[, db_index[, password[, pool_size]]])
[Именованные коллекции](/operations/named-collections.md) в настоящий момент не поддерживаются для табличной функции `redis`.
-
-
## Возвращаемое значение {#returned_value}
Объект-таблица, в котором ключ — это ключ Redis, а остальные столбцы вместе образуют значение Redis.
-
-
## Пример использования {#usage-example}
Чтение данных из Redis:
@@ -68,7 +59,6 @@ INSERT INTO TABLE FUNCTION redis(
'key String, v1 String, v2 UInt32') values ('1', '1', 1);
```
-
## См. также {#related}
- [Табличный движок `Redis`](/engines/table-engines/integrations/redis.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/remote.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/remote.md
index 00727edb8c4..821fc5ae1f4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/remote.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/remote.md
@@ -7,16 +7,12 @@ title: 'remote, remoteSecure'
doc_type: 'reference'
---
-
-
# Табличные функции remote, remoteSecure {#remote-remotesecure-table-function}
Табличная функция `remote` позволяет получать доступ к удалённым серверам «на лету», то есть без создания таблицы [Distributed](../../engines/table-engines/special/distributed.md). Табличная функция `remoteSecure` аналогична `remote`, но использует защищённое соединение.
Обе функции могут использоваться в запросах `SELECT` и `INSERT`.
-
-
## Синтаксис {#syntax}
```sql
@@ -28,7 +24,6 @@ remoteSecure(addresses_expr, [db.table, user [, password], sharding_key])
remoteSecure(named_collection[, option=value [,..]])
```
-
## Параметры {#parameters}
| Аргумент | Описание |
@@ -42,14 +37,10 @@ remoteSecure(named_collection[, option=value [,..]])
Аргументы также могут передаваться с помощью [именованных коллекций](operations/named-collections.md).
-
-
## Возвращаемое значение {#returned-value}
Таблица, расположенная на удалённом сервере.
-
-
## Использование {#usage}
Поскольку табличные функции `remote` и `remoteSecure` заново устанавливают соединение для каждого запроса, рекомендуется вместо них использовать таблицу `Distributed`. Кроме того, если заданы имена хостов, они разрешаются, и ошибки разрешения имён не учитываются при работе с различными репликами. При обработке большого числа запросов всегда создавайте таблицу `Distributed` заранее и не используйте табличную функцию `remote`.
@@ -81,7 +72,6 @@ localhost
example01-01-1,example01-02-1
```
-
## Примеры {#examples}
### Выборка данных с удалённого сервера: {#selecting-data-from-a-remote-server}
@@ -171,7 +161,6 @@ remoteSecure('remote.clickhouse.cloud:9440', 'imdb.actors', 'USER', 'PASSWORD')
SELECT * from imdb.actors
```
-
## Глоббинг {#globs-in-addresses}
Шаблоны в фигурных скобках `{ }` используются для генерации набора шардов и для указания реплик. Если фигурных скобок несколько пар, генерируется декартово произведение соответствующих наборов.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/s3.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/s3.md
index c769af4799d..e8028e150f5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/s3.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/s3.md
@@ -13,7 +13,6 @@ doc_type: 'reference'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Табличная функция s3 {#s3-table-function}
Предоставляет табличный интерфейс для чтения и записи файлов в [Amazon S3](https://aws.amazon.com/s3/) и [Google Cloud Storage](https://cloud.google.com/storage/). Эта табличная функция аналогична [функции hdfs](../../sql-reference/table-functions/hdfs.md), но поддерживает возможности, специфичные для S3.
@@ -22,8 +21,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
При использовании табличной функции `s3` с [`INSERT INTO...SELECT`](../../sql-reference/statements/insert-into#inserting-the-results-of-select) данные читаются и вставляются в потоковом режиме. В памяти находятся только несколько блоков данных, пока блоки непрерывно читаются из S3 и отправляются в целевую таблицу.
-
-
## Синтаксис {#syntax}
```sql
@@ -74,13 +71,10 @@ URL для GCS имеет следующий формат, так как endpoin
| `no_sign_request` | по умолчанию отключен. |
| `expiration_window_seconds` | значение по умолчанию — 120. |
-
## Возвращаемое значение {#returned_value}
Таблица заданной структуры, предназначенная для чтения или записи данных в указанный файл.
-
-
## Примеры {#examples}
Выбор первых 5 строк таблицы из файла в S3 `https://datasets-documentation.s3.eu-west-3.amazonaws.com/aapl_stock.csv`:
@@ -135,7 +129,6 @@ FROM s3(
:::
-
## Использование {#usage}
Предположим, что у нас есть несколько файлов со следующими URI в S3:
@@ -218,7 +211,6 @@ SELECT * FROM s3('https://clickhouse-public-datasets.s3.amazonaws.com/my-test-bu
SELECT * FROM s3('https://clickhouse-public-datasets.s3.amazonaws.com/my-test-bucket-768/**/test-data.csv.gz', 'CSV', 'name String, value UInt32', 'gzip');
```
-
Примечание. В файле конфигурации сервера можно указать пользовательские сопоставления URL-адресов. Пример:
```sql
@@ -254,7 +246,6 @@ SELECT count(*)
FROM s3(creds, url='https://s3-object-url.csv')
```
-
## Партиционированная запись {#partitioned-write}
### Стратегия разбиения {#partition-strategy}
@@ -301,7 +292,6 @@ INSERT INTO TABLE FUNCTION
В результате данные записываются в три файла в разных бакетах: `my_bucket_1/file.csv`, `my_bucket_10/file.csv` и `my_bucket_20/file.csv`.
-
## Доступ к публичным бакетам {#accessing-public-buckets}
ClickHouse пытается получить учетные данные из множества разных источников.
@@ -318,7 +308,6 @@ FROM s3(
LIMIT 5;
```
-
## Использование учетных данных S3 (ClickHouse Cloud) {#using-s3-credentials-clickhouse-cloud}
Для непубличных бакетов пользователи могут передать `aws_access_key_id` и `aws_secret_access_key` функции. Например:
@@ -339,7 +328,6 @@ SELECT count() FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.co
Дополнительные примеры можно найти [здесь](/cloud/data-sources/secure-s3#access-your-s3-bucket-with-the-clickhouseaccess-role)
-
## Работа с архивами {#working-with-archives}
Предположим, что у нас есть несколько архивных файлов со следующими URI в S3:
@@ -365,13 +353,10 @@ TAR
Архивы ZIP и TAR можно читать из любого поддерживаемого хранилища, а архивы 7Z — только с локальной файловой системы, на которой установлен ClickHouse.
:::
-
## Вставка данных {#inserting-data}
Обратите внимание, что строки можно вставлять только в новые файлы. Операции слияния или разбиения файлов не выполняются. После того как файл записан, последующие вставки в него завершатся с ошибкой. Подробнее см. [здесь](/integrations/s3#inserting-data).
-
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к файлу. Тип: `LowCardinality(String)`. В случае архива показывает путь в формате: `"{path_to_archive}::{path_to_file_inside_archive}"`.
@@ -379,8 +364,6 @@ TAR
- `_size` — Размер файла в байтах. Тип: `Nullable(UInt64)`. Если размер файла неизвестен, значение — `NULL`. В случае архива показывает несжатый размер файла внутри архива.
- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
-
-
## настройка use_hive_partitioning {#hive-style-partitioning}
Эта настройка подсказывает ClickHouse, что при чтении нужно разбирать файлы с секционированием в стиле Hive. На операцию записи она не влияет. Для симметричных операций чтения и записи используйте аргумент `partition_strategy`.
@@ -393,7 +376,6 @@ TAR
SELECT * FROM s3('s3://data/path/date=*/country=*/code=*/*.parquet') WHERE date > '2020-01-01' AND country = 'Netherlands' AND code = 42;
```
-
## Доступ к бакетам с оплатой по запросам (requester pays) {#accessing-requester-pays-buckets}
Чтобы получить доступ к бакету с оплатой по запросам (requester pays), во всех запросах нужно передавать заголовок `x-amz-request-payer = requester`. Это можно сделать, передав параметр `headers('x-amz-request-payer' = 'requester')` в функцию s3. Например:
@@ -412,15 +394,12 @@ FROM s3('https://coiled-datasets-rp.s3.us-east-1.amazonaws.com/1trc/measurements
Пиковое использование памяти: 192.27 КиБ.
```
-
## Настройки хранения {#storage-settings}
- [s3_truncate_on_insert](operations/settings/settings.md#s3_truncate_on_insert) - позволяет усечь файл перед вставкой в него. По умолчанию отключено.
- [s3_create_new_file_on_insert](operations/settings/settings.md#s3_create_new_file_on_insert) - позволяет создавать новый файл при каждой вставке, если формат имеет суффикс. По умолчанию отключено.
- [s3_skip_empty_files](operations/settings/settings.md#s3_skip_empty_files) - позволяет пропускать пустые файлы при чтении. По умолчанию включено.
-
-
## Вложенные схемы Avro {#nested-avro-schemas}
При чтении файлов Avro, содержащих **вложенные записи**, которые различаются между файлами (например, в некоторых файлах есть дополнительное поле внутри вложенного объекта), ClickHouse может вернуть ошибку вида:
@@ -449,7 +428,6 @@ FROM s3('https://bucket-name/*.avro', 'Avro')
SETTINGS schema_inference_mode='union';
```
-
## Связанные материалы {#related}
- [Движок S3](../../engines/table-engines/integrations/s3.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/s3Cluster.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/s3Cluster.md
index 2139ba153c3..8c937d200b0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/s3Cluster.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/s3Cluster.md
@@ -9,16 +9,12 @@ title: 's3Cluster'
doc_type: 'reference'
---
-
-
# Табличная функция s3Cluster {#s3cluster-table-function}
Это расширение табличной функции [s3](sql-reference/table-functions/s3.md).
Позволяет обрабатывать файлы из [Amazon S3](https://aws.amazon.com/s3/) и [Google Cloud Storage](https://cloud.google.com/storage/) параллельно на нескольких узлах заданного кластера. На узле-инициаторе она устанавливает соединение со всеми узлами кластера, раскрывает шаблоны с использованием символа `*` в путях к файлам S3 и динамически распределяет каждый файл. На рабочем узле она запрашивает у инициатора следующую задачу для обработки и обрабатывает её. Это повторяется до тех пор, пока все задачи не будут выполнены.
-
-
## Синтаксис {#syntax}
```sql
@@ -26,7 +22,6 @@ s3Cluster(cluster_name, url[, NOSIGN | access_key_id, secret_access_key,[session
s3Cluster(cluster_name, named_collection[, option=value [,..]])
```
-
## Аргументы {#arguments}
| Argument | Description |
@@ -51,14 +46,10 @@ s3Cluster(cluster_name, named_collection[, option=value [,..]])
| `no_sign_request` | По умолчанию отключён. |
| `expiration_window_seconds` | Значение по умолчанию — 120. |
-
-
## Возвращаемое значение {#returned_value}
Таблица заданной структуры, используемая для чтения или записи данных в указанный файл.
-
-
## Примеры {#examples}
Выберите данные из всех файлов в каталогах `/root/data/clickhouse` и `/root/data/database/`, используя все узлы кластера `cluster_simple`:
@@ -93,19 +84,14 @@ SELECT count(*) FROM s3Cluster(
)
```
-
## Доступ к приватным и публичным бакетам {#accessing-private-and-public-buckets}
Пользователи могут использовать те же подходы, что и описанные для функции S3 [здесь](/sql-reference/table-functions/s3#accessing-public-buckets).
-
-
## Оптимизация производительности {#optimizing-performance}
Подробнее об оптимизации производительности функции s3 читайте в [нашем подробном руководстве](/integrations/s3/performance).
-
-
## Связанные разделы {#related}
- [Движок S3](../../engines/table-engines/integrations/s3.md)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/sqlite.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/sqlite.md
index 37a23f0dc8a..9ef87619974 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/sqlite.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/sqlite.md
@@ -7,34 +7,25 @@ title: 'sqlite'
doc_type: 'reference'
---
-
-
# Табличная функция SQLite {#sqlite-table-function}
Позволяет выполнять запросы к данным, хранящимся в базе данных [SQLite](../../engines/database-engines/sqlite.md).
-
-
## Синтаксис {#syntax}
```sql
sqlite('db_path', 'table_name')
```
-
## Аргументы {#arguments}
- `db_path` — Путь к файлу базы данных SQLite. [String](../../sql-reference/data-types/string.md).
- `table_name` — Имя таблицы в базе данных SQLite. [String](../../sql-reference/data-types/string.md).
-
-
## Возвращаемое значение {#returned_value}
- Объект таблицы с теми же столбцами, что и в исходной таблице `SQLite`.
-
-
## Пример {#example}
Запрос:
@@ -53,7 +44,6 @@ SELECT * FROM sqlite('sqlite.db', 'table1') ORDER BY col2;
└───────┴──────┘
```
-
## См. также {#related}
- [SQLite](../../engines/table-engines/integrations/sqlite.md) — движок таблиц
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/timeSeriesSelector.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/timeSeriesSelector.md
index 6eb366d36c5..4a6ae6504f5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/timeSeriesSelector.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/timeSeriesSelector.md
@@ -7,15 +7,11 @@ title: 'timeSeriesSelector'
doc_type: 'reference'
---
-
-
# Табличная функция timeSeriesSelector {#timeseriesselector-table-function}
Считывает временные ряды из таблицы TimeSeries, отфильтрованные селектором и ограниченные временными метками указанного интервала.
Эта функция аналогична [range selectors](https://prometheus.io/docs/prometheus/latest/querying/basics/#range-vector-selectors), но также используется для реализации [instant selectors](https://prometheus.io/docs/prometheus/latest/querying/basics/#instant-vector-selectors).
-
-
## Синтаксис {#syntax}
```sql
@@ -24,7 +20,6 @@ timeSeriesSelector(db_name.time_series_table, 'instant_query', min_time, max_tim
timeSeriesSelector('time_series_table', 'instant_query', min_time, max_time)
```
-
## Аргументы {#arguments}
- `db_name` — имя базы данных, в которой находится таблица TimeSeries.
@@ -33,8 +28,6 @@ timeSeriesSelector('time_series_table', 'instant_query', min_time, max_time)
- `min_time` — начальная метка времени (включительно).
- `max_time` — конечная метка времени (включительно).
-
-
## Возвращаемое значение {#returned_value}
Функция возвращает три столбца:
@@ -44,8 +37,6 @@ timeSeriesSelector('time_series_table', 'instant_query', min_time, max_time)
Порядок возвращаемых данных не гарантируется.
-
-
## Пример {#example}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/url.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/url.md
index b9260cb2235..2eb2349b61e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/url.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/url.md
@@ -10,22 +10,18 @@ doc_type: 'reference'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Табличная функция url {#url-table-function}
Функция `url` создаёт таблицу на основе `URL` с заданными `format` и `structure`.
Функция `url` может использоваться в запросах `SELECT` и `INSERT` к данным в таблицах [URL](../../engines/table-engines/special/url.md).
-
-
## Синтаксис {#syntax}
```sql
url(URL [,format] [,structure] [,headers])
```
-
## Параметры {#parameters}
| Параметр | Описание |
@@ -35,14 +31,10 @@ url(URL [,format] [,structure] [,headers])
| `structure` | Структура таблицы в формате `'UserID UInt64, Name String'`. Определяет имена и типы столбцов. Тип: [String](../../sql-reference/data-types/string.md). |
| `headers` | Заголовки в формате `'headers('key1'='value1', 'key2'='value2')'`. Позволяет задать заголовки для HTTP-запроса. |
-
-
## Возвращаемое значение {#returned_value}
Таблица с указанным форматом и структурой, содержащая данные из заданного `URL`-адреса.
-
-
## Примеры {#examples}
Получение первых трёх строк таблицы, содержащей столбцы типов `String` и [UInt32](../../sql-reference/data-types/int-uint.md), с HTTP-сервера, который отвечает в формате [CSV](/interfaces/formats/CSV).
@@ -59,14 +51,11 @@ INSERT INTO FUNCTION url('http://127.0.0.1:8123/?query=INSERT+INTO+test_table+FO
SELECT * FROM test_table;
```
-
## Глоб-шаблоны в URL {#globs-in-url}
Шаблоны в фигурных скобках `{ }` используются для формирования набора шардов или указания резервных адресов. Поддерживаемые типы шаблонов и примеры см. в описании функции [remote](remote.md#globs-in-addresses).
Символ `|` внутри шаблонов используется для указания резервных адресов. Они перебираются в том же порядке, в котором перечислены в шаблоне. Количество сгенерированных адресов ограничивается настройкой [glob_expansion_max_elements](../../operations/settings/settings.md#glob_expansion_max_elements).
-
-
## Виртуальные столбцы {#virtual-columns}
- `_path` — Путь к `URL`. Тип: `LowCardinality(String)`.
@@ -75,8 +64,6 @@ SELECT * FROM test_table;
- `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
- `_headers` — Заголовки HTTP-ответа. Тип: `Map(LowCardinality(String), LowCardinality(String))`.
-
-
## настройка use_hive_partitioning {#hive-style-partitioning}
Когда настройка `use_hive_partitioning` установлена в 1, ClickHouse будет распознавать секционирование в стиле Hive в пути (`/name=value/`) и позволит использовать столбцы секций как виртуальные столбцы в запросе. Эти виртуальные столбцы будут иметь те же имена, что и в пути секционирования, но с префиксом `_`.
@@ -89,20 +76,15 @@ SELECT * FROM test_table;
SELECT * FROM url('http://data/path/date=*/country=*/code=*/*.parquet') WHERE _date > '2020-01-01' AND _country = 'Netherlands' AND _code = 42;
```
-
## Настройки хранения {#storage-settings}
- [engine_url_skip_empty_files](/operations/settings/settings.md#engine_url_skip_empty_files) — позволяет пропускать пустые файлы при чтении. По умолчанию отключено.
- [enable_url_encoding](/operations/settings/settings.md#enable_url_encoding) — позволяет включать или отключать декодирование/кодирование пути в URI. По умолчанию включено.
-
-
## Разрешения {#permissions}
Функция `url` требует прав `CREATE TEMPORARY TABLE`. Поэтому она не будет работать для пользователей с настройкой [`readonly`](/operations/settings/permissions-for-queries#readonly) = 1. Требуется как минимум `readonly` = 2.
-
-
## См. также {#related}
- [Виртуальные столбцы](/engines/table-engines/index.md#table_engines-virtual_columns)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/urlCluster.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/urlCluster.md
index 1af09b3da36..077b58ec0be 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/urlCluster.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/urlCluster.md
@@ -7,21 +7,16 @@ title: 'urlCluster'
doc_type: 'reference'
---
-
-
# Функция таблицы urlCluster {#urlcluster-table-function}
Позволяет обрабатывать файлы из URL параллельно с нескольких узлов в указанном кластере. На узле-инициаторе она устанавливает соединение со всеми узлами кластера, раскрывает символ «звёздочка» в пути URL к файлам и динамически распределяет каждый файл. На рабочем узле она запрашивает у инициатора следующую задачу и обрабатывает её. Это повторяется до тех пор, пока все задачи не будут выполнены.
-
-
## Синтаксис {#syntax}
```sql
urlCluster(cluster_name, URL, format, structure)
```
-
## Аргументы {#arguments}
| Аргумент | Описание |
@@ -31,14 +26,10 @@ urlCluster(cluster_name, URL, format, structure)
| `format` | [Формат](/sql-reference/formats) данных. Тип: [String](../../sql-reference/data-types/string.md). |
| `structure` | Структура таблицы в формате `'UserID UInt64, Name String'`. Определяет имена и типы столбцов. Тип: [String](../../sql-reference/data-types/string.md). |
-
-
## Возвращаемое значение {#returned_value}
Таблица заданного формата и структуры с данными из указанного `URL`.
-
-
## Примеры {#examples}
Получение первых трёх строк таблицы со столбцами типов `String` и [UInt32](../../sql-reference/data-types/int-uint.md) от HTTP-сервера, который отвечает в формате [CSV](/interfaces/formats/CSV).
@@ -65,14 +56,11 @@ if __name__ == "__main__":
SELECT * FROM urlCluster('cluster_simple','http://127.0.0.1:12345', CSV, 'column1 String, column2 UInt32')
```
-
## Шаблоны (globs) в URL {#globs-in-url}
Шаблоны в фигурных скобках `{ }` используются для генерации набора шардов или указания резервных (failover) адресов. Поддерживаемые типы шаблонов и примеры см. в описании функции [remote](remote.md#globs-in-addresses).
Символ `|` внутри шаблонов используется для указания резервных адресов. Они перебираются в том же порядке, в котором перечислены в шаблоне. Количество сгенерированных адресов ограничивается параметром [glob_expansion_max_elements](../../operations/settings/settings.md#glob_expansion_max_elements).
-
-
## См. также {#related}
- [Движок HDFS](/engines/table-engines/integrations/hdfs)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/values.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/values.md
index 8349aee01fa..76f495e4ec3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/values.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/values.md
@@ -8,8 +8,6 @@ title: 'values'
doc_type: 'reference'
---
-
-
# Табличная функция Values {#values-table-function}
Табличная функция `Values` позволяет создать временное хранилище и заполнить
@@ -19,8 +17,6 @@ doc_type: 'reference'
Values — регистронезависимая функция. То есть `VALUES` и `values` одинаково допустимы.
:::
-
-
## Синтаксис {#syntax}
Базовый синтаксис табличной функции `VALUES` выглядит следующим образом:
@@ -40,7 +36,6 @@ VALUES(
)
```
-
## Аргументы {#arguments}
- `column1_name Type1, ...` (необязательный аргумент). [String](/sql-reference/data-types/string),
@@ -55,14 +50,10 @@ VALUES(
для подробностей.
:::
-
-
## Возвращаемое значение {#returned-value}
- Возвращает временную таблицу, содержащую указанные значения.
-
-
## Примеры {#examples}
```sql title="Query"
@@ -200,7 +191,6 @@ FROM VALUES(
└──────────┘
```
-
## См. также {#see-also}
- [Формат Values](/interfaces/formats/Values)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/view.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/view.md
index 25b9a63ea62..4f528a32c2a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/view.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/view.md
@@ -7,33 +7,24 @@ title: 'view'
doc_type: 'reference'
---
-
-
# Табличная функция view {#view-table-function}
Преобразует подзапрос в таблицу. Функция реализует представления (см. [CREATE VIEW](/sql-reference/statements/create/view)). Результирующая таблица не хранит данные, а содержит только указанный запрос `SELECT`. При чтении из таблицы ClickHouse выполняет этот запрос и удаляет из результата все ненужные столбцы.
-
-
## Синтаксис {#syntax}
```sql
view(подзапрос)
```
-
## Аргументы {#arguments}
- `subquery` — запрос типа `SELECT`.
-
-
## Возвращаемое значение {#returned_value}
- Таблица.
-
-
## Примеры {#examples}
Входная таблица:
@@ -74,7 +65,6 @@ SELECT * FROM remote(`127.0.0.1`, view(SELECT a, b, c FROM table_name));
SELECT * FROM cluster(`cluster_name`, view(SELECT a, b, c FROM table_name));
```
-
## См. также {#related}
- [Табличный движок View](/engines/table-engines/special/view/)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/ytsaurus.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/ytsaurus.md
index e8d262dffdc..c67d8d5fa5a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/ytsaurus.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/ytsaurus.md
@@ -9,15 +9,12 @@ doc_type: 'reference'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
-
# Табличная функция ytsaurus {#ytsaurus-table-function}
Табличная функция ytsaurus позволяет считывать данные из кластера YTsaurus.
-
-
## Синтаксис {#syntax}
```sql
@@ -31,7 +28,6 @@ ytsaurus(http_proxy_url, cypress_path, oauth_token, format)
Введите команду `set allow_experimental_ytsaurus_table_function = 1`.
:::
-
## Аргументы {#arguments}
- `http_proxy_url` — URL HTTP-прокси YTsaurus.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/transactions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/transactions.md
index 91befe1f7fe..f4aaf8c1dcc 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/transactions.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/transactions.md
@@ -8,11 +8,8 @@ doc_type: 'guide'
import ExperimentalBadge from '@theme/badges/ExperimentalBadge';
import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
-
# Поддержка транзакционности (ACID) {#transactional-acid-support}
-
-
## Случай 1: INSERT в один раздел одной таблицы семейства MergeTree* {#case-1-insert-into-one-partition-of-one-table-of-the-mergetree-family}
Операция является транзакционной (ACID), если вставляемые строки упакованы и вставляются одним блоком (см. примечания):
@@ -22,35 +19,25 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
- Durable (долговечность): успешный INSERT записывается в файловую систему до ответа клиенту, на одну реплику или несколько реплик (управляется настройкой `insert_quorum`), и ClickHouse может попросить ОС синхронизировать данные файловой системы с носителем (управляется настройкой `fsync_after_insert`).
- INSERT в несколько таблиц одним оператором возможен, если задействованы материализованные представления (INSERT от клиента выполняется в таблицу, у которой есть связанные материализованные представления).
-
-
## Случай 2: INSERT в несколько партиций одной таблицы семейства MergeTree* {#case-2-insert-into-multiple-partitions-of-one-table-of-the-mergetree-family}
Аналогично случаю 1 выше, с таким уточнением:
- Если таблица имеет много партиций и INSERT затрагивает многие из них, то вставка в каждую партицию является самостоятельной транзакцией
-
-
## Случай 3: INSERT в одну распределённую таблицу семейства MergeTree* {#case-3-insert-into-one-distributed-table-of-the-mergetree-family}
Аналогичен случаю 1 выше, но с одной особенностью:
- операция INSERT в таблицу движка Distributed не является транзакционной в целом, тогда как вставка в каждый шард — транзакционная
-
-
## Случай 4: Использование таблицы Buffer {#case-4-using-a-buffer-table}
- вставка в таблицы Buffer не обладает свойствами атомарности, изолированности, согласованности и долговечности
-
-
## Случай 5: Использование async_insert {#case-5-using-async_insert}
То же, что и в случае 1 выше, со следующим уточнением:
- атомарность обеспечивается даже если `async_insert` включён и `wait_for_async_insert` установлен в 1 (значение по умолчанию), но если `wait_for_async_insert` установлен в 0, то атомарность не гарантируется.
-
-
## Примечания {#notes}
- строки, вставленные клиентом в некотором формате данных, упаковываются в один блок, когда:
- формат вставки построчный (например, CSV, TSV, Values, JSONEachRow и т. д.), а данные содержат меньше, чем `max_insert_block_size` строк (~1 000 000 по умолчанию) или меньше, чем `min_chunk_bytes_for_parallel_parsing` байт (10 МБ по умолчанию), если используется параллельный разбор (он включён по умолчанию)
@@ -63,8 +50,6 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge';
- «согласованность» в терминах ACID не охватывает семантику распределённых систем, см. https://jepsen.io/consistency; она управляется другими настройками (select_sequential_consistency)
- это объяснение не охватывает новую функциональность транзакций, которая позволяет использовать полнофункциональные транзакции над несколькими таблицами, материализованными представлениями, для нескольких SELECT и т. д. (см. следующий раздел о Transactions, Commit и Rollback)
-
-
## Транзакции, фиксация (commit) и откат (rollback) {#transactions-commit-and-rollback}
@@ -204,7 +189,6 @@ ENGINE = MergeTree
ORDER BY n
```
-
```response
Ok.
```
@@ -322,7 +306,6 @@ is_readonly: 1
state: RUNNING
```
-
## Подробности {#more-details}
Ознакомьтесь с этой [мета‑задачей](https://github.com/ClickHouse/ClickHouse/issues/48794), чтобы найти гораздо более обширные тесты и быть в курсе прогресса.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md
index e32dac15bc6..2d66489b83c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md
@@ -7,15 +7,11 @@ title: 'Оконные функции'
doc_type: 'reference'
---
-
-
# Оконные функции {#window-functions}
Оконные функции позволяют выполнять вычисления над набором строк, связанных с текущей строкой.
Часть таких вычислений аналогична тем, что можно выполнить с агрегатной функцией, но оконная функция не приводит к объединению строк в единый результирующий набор — отдельные строки по‑прежнему возвращаются.
-
-
## Стандартные оконные функции {#standard-window-functions}
ClickHouse поддерживает стандартную грамматику для определения окон и оконных функций. В таблице ниже указано, поддерживается ли та или иная возможность.
@@ -36,8 +32,6 @@ ClickHouse поддерживает стандартную грамматику
| `lag/lead(value, offset)` | ✅ Вы также можете использовать один из следующих обходных решений: 1) `any(value) over (.... rows between preceding and preceding)`, или `following` для `lead` 2) `lagInFrame/leadInFrame`, которые являются аналогами, но учитывают оконный фрейм. Чтобы получить поведение, идентичное `lag/lead`, используйте `rows between unbounded preceding and unbounded following` |
| ntile(buckets) | ✅ Задайте окно следующим образом: (partition by x order by y rows between unbounded preceding and unbounded following). |
-
-
## Оконные функции ClickHouse {#clickhouse-specific-window-functions}
Также доступна следующая оконная функция ClickHouse:
@@ -51,7 +45,6 @@ ClickHouse поддерживает стандартную грамматику
- `0` для первой строки,
- ${\text{metric}_i - \text{metric}_{i-1} \over \text{timestamp}_i - \text{timestamp}_{i-1}} * \text{interval}$ для $i$-й строки.
-
## Синтаксис {#syntax}
```text
@@ -97,7 +90,6 @@ WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]
* [`lagInFrame(x)`](./lagInFrame.md) - Возвращает значение, вычисленное для строки, которая находится на заданное количество строк раньше текущей строки в упорядоченном фрейме.
* [`leadInFrame(x)`](./leadInFrame.md) - Возвращает значение, вычисленное для строки, которая находится на заданное количество строк позже текущей строки в упорядоченном фрейме.
-
## Примеры {#examples}
Рассмотрим несколько примеров использования оконных функций.
@@ -196,7 +188,6 @@ SELECT
FROM salaries;
```
-
```text
┌─игрок───────────┬─зарплата─┬─команда───────────────────┬─максКоманды─┬───разница─┐
│ Charles Juarez │ 190000 │ New Coreystad Archdukes │ 190000 │ 0 │
@@ -280,7 +271,6 @@ ORDER BY
└──────────┴───────┴───────┴──────────────┘
```
-
```sql
-- краткая форма — без выражения границ, без ORDER BY,
-- эквивалент `ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING`
@@ -355,7 +345,6 @@ ORDER BY
└──────────┴───────┴───────┴────────────────────┴──────────────┘
```
-
```sql
-- фрейм ограничен началом партиции и текущей строкой, но порядок сортировки обратный
SELECT
@@ -451,7 +440,6 @@ ORDER BY
value ASC;
```
-
┌─part_key─┬─value─┬─order─┬─frame_values─┬─rn_1─┬─rn_2─┬─rn_3─┬─rn_4─┐
│ 1 │ 1 │ 1 │ [5,4,3,2,1] │ 5 │ 5 │ 5 │ 2 │
│ 1 │ 2 │ 2 │ [5,4,3,2] │ 4 │ 4 │ 4 │ 2 │
@@ -520,7 +508,6 @@ ORDER BY
value ASC;
```
-
┌─frame_values_1─┬─second_value─┐
│ [1] │ ᴺᵁᴸᴸ │
│ [1,2] │ 2 │
@@ -532,7 +519,6 @@ ORDER BY
```
```
-
## Примеры из реальной практики {#real-world-examples}
Ниже приведены примеры, демонстрирующие решения распространённых практических задач.
@@ -646,7 +632,6 @@ CREATE TABLE sensors
ENGINE = Memory;
```
-
insert into sensors values('cpu_temp', '2020-01-01 00:00:00', 87),
('cpu_temp', '2020-01-01 00:00:01', 77),
('cpu_temp', '2020-01-01 00:00:02', 93),
@@ -725,7 +710,6 @@ CREATE TABLE sensors
ENGINE = Memory;
```
-
insert into sensors values('ambient_temp', '2020-01-01 00:00:00', 16),
('ambient_temp', '2020-01-01 12:00:00', 16),
('ambient_temp', '2020-01-02 11:00:00', 9),
@@ -769,7 +753,6 @@ ORDER BY
└──────────────┴─────────────────────┴───────┴─────────────────────────┘
````
-
## Ссылки {#references}
### GitHub Issues {#github-issues}
@@ -804,8 +787,6 @@ https://dev.mysql.com/doc/refman/8.0/en/window-functions-usage.html
https://dev.mysql.com/doc/refman/8.0/en/window-functions-frames.html
-
-
## Связанные материалы {#related-content}
- Блог: [Работа с данными временных рядов в ClickHouse](https://clickhouse.com/blog/working-with-time-series-data-and-functions-ClickHouse)
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/debugging-insights.md b/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/debugging-insights.md
index e4dd3b86b7c..2fb6c0ccebd 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/debugging-insights.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/debugging-insights.md
@@ -19,14 +19,10 @@ title: 'Уроки — рекомендации по отладке'
description: 'Найдите решения наиболее распространённых проблем ClickHouse, включая медленные запросы, ошибки, связанные с памятью, а также проблемы с подключением и конфигурацией.'
---
-
-
# Операции ClickHouse: практические советы по отладке от сообщества {#clickhouse-operations-community-debugging-insights}
*Это руководство является частью подборки материалов, подготовленной на основе встреч сообщества. Для дополнительных практических решений и рекомендаций вы можете [подобрать материалы под конкретную проблему](./community-wisdom.md).*
*Столкнулись с высокими операционными затратами? Ознакомьтесь с руководством сообщества по [оптимизации затрат](./cost-optimization.md).*
-
-
## Основные системные таблицы {#essential-system-tables}
Эти системные таблицы являются важнейшими для отладки в продакшене:
@@ -86,7 +82,6 @@ GROUP BY database, table
ORDER BY count() DESC;
```
-
## Распространённые проблемы в продакшене {#common-production-issues}
### Проблемы с дисковым пространством {#disk-space-problems}
@@ -126,7 +121,6 @@ WHERE is_done = 0;
Сначала тестируйте изменения схемы на небольших наборах данных.
-
## Память и производительность {#memory-and-performance}
### Внешняя агрегация {#external-aggregation}
@@ -170,7 +164,6 @@ SETTINGS max_bytes_before_external_group_by = 1000000000; -- порог 1 ГБ
* [Пользовательский ключ партиционирования](/engines/table-engines/mergetree-family/custom-partitioning-key)
-
## Краткая справка {#quick-reference}
| Проблема | Обнаружение | Решение |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/materialized-views.md b/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/materialized-views.md
index 4da87bf5f42..746d9dee251 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/materialized-views.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/materialized-views.md
@@ -21,24 +21,18 @@ title: 'Уроки — материализованные представлен
description: 'Практические примеры использования материализованных представлений, типичные проблемы и их решения'
---
-
-
# Материализованные представления: как они могут обернуться обоюдоострым мечом {#materialized-views-the-double-edged-sword}
*Это руководство — часть серии материалов, подготовленных по результатам митапов сообщества. Для получения дополнительных практических решений и рекомендаций вы можете [просматривать материалы по конкретным проблемам](./community-wisdom.md).*
*Слишком много частей тормозят вашу базу данных? Ознакомьтесь с руководством сообщества [Too Many Parts](./too-many-parts.md).*
*Узнайте больше о [материализованных представлениях](/materialized-views).*
-
-
## Антипаттерн хранения с 10-кратным ростом {#storage-antipattern}
**Реальная проблема в продакшене:** *«У нас было материализованное представление. Таблица сырых логов занимала около 20 ГБ, но представление для этой таблицы разрослось до 190 ГБ, то есть почти в 10 раз больше исходной таблицы. Это произошло потому, что мы создавали по одной строке на каждый атрибут, а в каждом логе может быть до 10 атрибутов.»*
**Правило:** Если ваш `GROUP BY` создаёт больше строк, чем сокращает, вы строите дорогой индекс, а не материализованное представление.
-
-
## Проверка состояния материализованного представления в продакшене {#mv-health-validation}
Этот запрос помогает предсказать, будет ли материализованное представление сжимать данные или раздувать их объём до того, как вы его создадите. Запустите его для вашей реальной таблицы и столбцов, чтобы избежать сценария «разрастания до 190 ГБ».
@@ -62,7 +56,6 @@ WHERE your_filter_conditions;
-- Если aggregation_ratio < 10%, вы получите хорошую степень сжатия
```
-
## Когда материализованные представления становятся проблемой {#mv-problems}
**Предупреждающие признаки, за которыми стоит следить:**
@@ -73,7 +66,5 @@ WHERE your_filter_conditions;
Вы можете сравнить производительность вставки до и после добавления материализованных представлений с помощью `system.query_log`, отслеживая тенденции по длительности выполнения запросов.
-
-
## Источники видео {#video-sources}
- [ClickHouse at CommonRoom - Kirill Sapchuk](https://www.youtube.com/watch?v=liTgGiTuhJE) — источник кейса о «чрезмерном энтузиазме вокруг материализованных представлений» и «раздувании объёма данных с 20 GB до 190 GB»
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/performance-optimization.md b/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/performance-optimization.md
index 5eca382f291..4a99c89671b 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/performance-optimization.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/performance-optimization.md
@@ -21,15 +21,11 @@ title: 'Уроки по оптимизации производительнос
description: 'Примеры стратегий оптимизации производительности из реальной практики'
---
-
-
# Оптимизация производительности: стратегии, проверенные сообществом {#performance-optimization}
*Это руководство — часть подборки материалов, основанных на результатах встреч сообщества. Для получения дополнительных практических решений и идей вы можете [просматривать материалы по конкретным проблемам](./community-wisdom.md).*
*Столкнулись с проблемами материализованных представлений? Ознакомьтесь с руководством сообщества по [Materialized Views](./materialized-views.md).*
*Если вы сталкиваетесь с медленными запросами и вам нужно больше примеров, у нас также есть руководство по [оптимизации запросов](/optimize/query-optimization).*
-
-
## Располагаете столбцы по кардинальности (от низкой к высокой) {#cardinality-ordering}
Первичный индекс ClickHouse работает лучше всего, когда в ключе сначала идут столбцы с низкой кардинальностью — это позволяет эффективно пропускать большие блоки данных. Столбцы с высокой кардинальностью, расположенные дальше в ключе, обеспечивают более детальную сортировку внутри этих блоков. Начинайте со столбцов с небольшим числом уникальных значений (например, status, category, country) и заканчивайте столбцами с большим числом уникальных значений (например, user_id, timestamp, session_id).
@@ -37,8 +33,6 @@ description: 'Примеры стратегий оптимизации прои
- [Выбор первичного ключа](/best-practices/choosing-a-primary-key)
- [Первичные индексы](/primary-indexes)
-
-
## Важна временная гранулярность {#time-granularity}
При использовании меток времени в предложении ORDER BY учитывайте компромисс между кардинальностью и точностью. Метки времени с микросекундной точностью создают очень высокую кардинальность (почти одно уникальное значение на каждую строку), что снижает эффективность разреженного первичного индекса ClickHouse. Округлённые метки времени создают меньшую кардинальность, что позволяет эффективнее пропускать данные при чтении за счёт индекса, но при этом вы теряете точность для временных запросов.
@@ -68,7 +62,6 @@ FROM github.github_events
WHERE created_at >= '2024-01-01';
```
-
## Сосредоточьтесь на отдельных запросах, а не на средних значениях {#focus-on-individual-queries-not-averages}
При отладке производительности ClickHouse не полагайтесь на среднее время выполнения запросов или общесистемные метрики. Вместо этого выясняйте, почему конкретные запросы выполняются медленно. Система может демонстрировать хорошую среднюю производительность, в то время как отдельные запросы страдают от нехватки памяти, неэффективной фильтрации или операций с высокой кардинальностью.
@@ -77,8 +70,6 @@ WHERE created_at >= '2024-01-01';
Когда запрос выполняется медленно, не ограничивайтесь анализом средних значений. Спросите себя: «Почему ИМЕННО этот запрос был медленным?» и изучите фактический характер использования ресурсов.
-
-
## Работа с памятью и сканированием строк {#memory-and-row-scanning}
Sentry — это ориентированная на разработчиков платформа отслеживания ошибок, ежедневно обрабатывающая миллиарды событий от более чем 4 млн разработчиков. Их ключевое наблюдение: *«Именно кардинальность ключа группировки в этой ситуации определяет потребление памяти»* — агрегации с высокой кардинальностью уничтожают производительность из‑за исчерпания памяти, а не из‑за объёма сканируемых строк.
@@ -95,7 +86,6 @@ WHERE cityHash64(user_id) % 10 = 0 -- Всегда одни и те же 10% п
Это гарантирует, что одни и те же пользователи появляются в каждом запросе, обеспечивая сопоставимые результаты для разных периодов времени. Ключевая идея: `cityHash64()` выдаёт стабильные хэш-значения для одного и того же ввода, поэтому `user_id = 12345` всегда будет хэшироваться в одно и то же значение, гарантируя, что этот пользователь либо всегда будет присутствовать в вашей 10% выборке, либо никогда — без мерцания результатов между запросами.
-
## Оптимизация битовых масок в Sentry {#bit-mask-optimization}
При агрегации по высококардинальным столбцам (например, URL) каждое уникальное значение создаёт отдельное состояние агрегации в памяти, что может привести к её исчерпанию. Решение Sentry: вместо группировки по фактическим строкам URL выполнять группировку по логическим выражениям, которые сворачиваются в битовые маски.
@@ -139,7 +129,6 @@ LIMIT 20
От инженерной команды Sentry: «Эти ресурсоёмкие запросы выполняются более чем в 10 раз быстрее, а использование памяти в 100 раз ниже (и, что ещё важнее, ограничено). Наши крупнейшие клиенты больше не сталкиваются с ошибками при поиске реплеев, и теперь мы можем поддерживать клиентов любого размера, не исчерпывая память».
-
## Видеоматериалы {#video-sources}
- [Lost in the Haystack - Optimizing High Cardinality Aggregations](https://www.youtube.com/watch?v=paK84-EUJCA) - практический опыт Sentry по оптимизации использования памяти в продакшене
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/too-many-parts.md b/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/too-many-parts.md
index 87d4abfd56e..2a549a3abc7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/too-many-parts.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/tips-and-tricks/too-many-parts.md
@@ -21,14 +21,10 @@ title: 'Уроки — проблема «Too many parts»'
description: 'Решения и предотвращение проблемы «Too many parts»'
---
-
-
# Проблема слишком большого количества частей {#the-too-many-parts-problem}
*Это руководство является частью сборника выводов, полученных на встречах сообщества. Для получения большего количества практических решений и инсайтов вы можете [подобрать материалы по конкретным проблемам](./community-wisdom.md).*
*Нужны дополнительные советы по оптимизации производительности? Ознакомьтесь с руководством с инсайтами от сообщества по теме [Performance Optimization](./performance-optimization.md).*
-
-
## Понимание проблемы {#understanding-the-problem}
ClickHouse выдает ошибку «Too many parts», чтобы предотвратить серьезную деградацию производительности. Мелкие части данных вызывают несколько проблем: низкую производительность запросов из‑за чтения и слияния большего числа файлов во время выполнения запросов, повышенное потребление памяти, поскольку каждая часть требует метаданных в памяти, снижение эффективности сжатия, так как меньшие блоки данных сжимаются менее эффективно, более высокие накладные расходы на операции ввода‑вывода (I/O) из‑за большего количества файловых дескрипторов и операций позиционирования в файлах, а также более медленные фоновые слияния, поскольку планировщик слияний получает больше работы.
@@ -38,8 +34,6 @@ ClickHouse выдает ошибку «Too many parts», чтобы предот
- [Части](/parts)
- [Системная таблица parts](/operations/system-tables/parts)
-
-
## Раннее выявление проблемы {#recognize-parts-problem}
Этот запрос отслеживает фрагментацию таблиц, анализируя количество и размеры частей во всех активных таблицах. Он выявляет таблицы с чрезмерным количеством или слишком мелкими частями, которым может потребоваться оптимизация слияния. Используйте его регулярно, чтобы обнаруживать проблемы фрагментации до того, как они начнут влиять на производительность запросов.
@@ -76,7 +70,6 @@ ORDER BY total_parts DESC
LIMIT 20;
```
-
## Видеоматериалы {#video-sources}
- [Fast, Concurrent, and Consistent Asynchronous INSERTS in ClickHouse](https://www.youtube.com/watch?v=AsMPEfN5QtM) — сотрудник команды ClickHouse объясняет асинхронные INSERT и проблему слишком большого числа частей
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/tools-and-utilities/static-files-disk-uploader.md b/i18n/ru/docusaurus-plugin-content-docs/current/tools-and-utilities/static-files-disk-uploader.md
index e72ba69a945..dc7bd6de7ab 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/tools-and-utilities/static-files-disk-uploader.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/tools-and-utilities/static-files-disk-uploader.md
@@ -6,23 +6,18 @@ description: 'Описание утилиты clickhouse-static-files-disk-uploa
doc_type: 'guide'
---
-
-
# clickhouse-static-files-disk-uploader {#clickhouse-static-files-disk-uploader}
Формирует каталог данных, содержащий метаданные для указанной таблицы ClickHouse. Эти метаданные можно использовать для создания таблицы ClickHouse на другом сервере с набором данных только для чтения, размещённым на диске `web`.
Не используйте этот инструмент для миграции данных. Вместо этого используйте [команды `BACKUP` и `RESTORE`](/operations/backup).
-
-
## Использование {#usage}
```bash
$ clickhouse static-files-disk-uploader [args]
```
-
## Команды {#commands}
|Команда|Описание|
@@ -34,8 +29,6 @@ $ clickhouse static-files-disk-uploader [args]
|`--url [url]`|URL веб-сервера для режима `test`|
|`--output-dir [dir]`|Каталог для вывода файлов в режиме `non-test`|
-
-
## Получение пути к метаданным для указанной таблицы {#retrieve-metadata-path-for-the-specified-table}
При использовании `clickhouse-static-files-disk-uploader` требуется получить путь к метаданным нужной таблицы.
@@ -60,7 +53,6 @@ SELECT data_paths
└───────────────────────────────────────────────────────┘
```
-
## Выгрузите каталог метаданных таблицы в локальную файловую систему {#output-table-metadata-directory-to-the-local-filesystem}
Используя целевой каталог вывода `output` и заданный путь к метаданным, выполните следующую команду:
@@ -75,7 +67,6 @@ $ clickhouse static-files-disk-uploader --output-dir output --metadata-path ./st
Путь к данным: "/Users/john/store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee", целевой путь: "output"
```
-
## Выгрузка каталога метаданных таблицы на внешний URL {#output-table-metadata-directory-to-an-external-url}
Этот шаг аналогичен выгрузке каталога данных в локальную файловую систему, но с добавлением флага `--test-mode`. Вместо указания выходного каталога необходимо указать целевой URL с помощью флага `--url`.
@@ -86,7 +77,6 @@ $ clickhouse static-files-disk-uploader --output-dir output --metadata-path ./st
$ clickhouse static-files-disk-uploader --test-mode --url http://nginx:80/test1 --metadata-path ./store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee/
```
-
## Использование каталога метаданных таблицы для создания таблицы ClickHouse {#using-the-table-metadata-directory-to-create-a-clickhouse-table}
Получив каталог метаданных таблицы, вы можете использовать его для создания таблицы ClickHouse на другом сервере.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/tutorial.md b/i18n/ru/docusaurus-plugin-content-docs/current/tutorial.md
index 8f6bd24e1b3..f7e45f17f64 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/tutorial.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/tutorial.md
@@ -9,12 +9,8 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Расширенное руководство {#advanced-tutorial}
-
-
## Overview {#overview}
Узнайте, как выполнять приём и запросы данных в ClickHouse на примере набора данных о такси Нью-Йорка.
@@ -25,7 +21,6 @@ doc_type: 'guide'
-
## Создание новой таблицы {#create-a-new-table}
Набор данных о такси Нью‑Йорка содержит сведения о миллионах поездок, включая такие столбцы, как сумма чаевых, платные дороги, тип оплаты и многое другое. Создайте таблицу для хранения этих данных.
@@ -89,8 +84,6 @@ doc_type: 'guide'
ORDER BY pickup_datetime;
```
-
-
## Добавьте набор данных {#add-the-dataset}
Теперь, когда вы создали таблицу, добавьте данные о поездках на такси в Нью‑Йорке из CSV‑файлов в S3.
@@ -159,8 +152,6 @@ doc_type: 'guide'
Этот запрос должен вернуть 1 999 657 строк.
-
-
## Анализ данных {#analyze-the-data}
Выполните несколько запросов для анализа данных. Изучите приведённые примеры или попробуйте свой собственный SQL-запрос.
@@ -267,8 +258,6 @@ doc_type: 'guide'
Ожидаемый результат
-
-
7. Выберите поездки до аэропортов Ла-Гуардия или JFK:
```sql
SELECT
@@ -382,8 +369,6 @@ doc_type: 'guide'
-
-
## Создание словаря {#create-a-dictionary}
Словарь — это отображение пар «ключ-значение», хранящихся в памяти. Подробности см. в разделе [Dictionaries](/sql-reference/dictionaries/index.md).
@@ -467,7 +452,6 @@ LAYOUT(HASHED_ARRAY())
ORDER BY total DESC
```
-
Этот запрос подсчитывает количество поездок на такси по районам, которые заканчиваются либо в аэропорту LaGuardia, либо в аэропорту JFK. Результат выглядит следующим образом: обратите внимание, что есть довольно много поездок, для которых район посадки неизвестен:
```response
@@ -484,7 +468,6 @@ LAYOUT(HASHED_ARRAY())
7 строк в наборе. Затрачено: 0.019 сек. Обработано 2.00 млн строк, 4.00 МБ (105.70 млн строк/сек., 211.40 МБ/сек.)
```
-
## Выполнение соединения {#perform-a-join}
Напишите несколько запросов, которые соединяют `taxi_zone_dictionary` с таблицей `trips`.
@@ -537,7 +520,6 @@ LAYOUT(HASHED_ARRAY())
-
## Дальнейшие шаги {#next-steps}
Узнайте больше о ClickHouse из следующих разделов документации:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/AIChat/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/AIChat/index.md
index ace0c429197..d74bbb1d414 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/AIChat/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/AIChat/index.md
@@ -21,20 +21,16 @@ import img_history from '@site/static/images/use-cases/AI_ML/AIChat/5_history.pn
import img_result_actions from '@site/static/images/use-cases/AI_ML/AIChat/6_result_actions.png';
import img_new_tab from '@site/static/images/use-cases/AI_ML/AIChat/7_open_in_editor.png';
-
# Использование AI Chat в ClickHouse Cloud {#using-ai-chat-in-clickhouse-cloud}
> В этом руководстве описывается, как включить и использовать функцию AI Chat в консоли ClickHouse Cloud.
-
## Предварительные требования {#prerequisites}
1. У вас должен быть доступ к организации ClickHouse Cloud с включёнными функциями ИИ (если они недоступны, обратитесь к администратору вашей организации или в службу поддержки).
-
-
## Откройте панель AI Chat {#open-panel}
1. Перейдите к сервису ClickHouse Cloud.
@@ -43,8 +39,6 @@ import img_new_tab from '@site/static/images/use-cases/AI_ML/AIChat/7_open_in_ed
-
-
## Примите условия использования данных (первый запуск) {#consent}
1. При первом запуске отобразится диалоговое окно с описанием обработки данных и сторонних субпроцессоров LLM.
@@ -52,8 +46,6 @@ import img_new_tab from '@site/static/images/use-cases/AI_ML/AIChat/7_open_in_ed
-
-
## Выберите режим чата {#modes}
AI Chat в настоящее время поддерживает:
@@ -65,30 +57,22 @@ AI Chat в настоящее время поддерживает:
-
-
## Создание и отправка сообщения {#compose}
1. Введите ваш вопрос (например: «Создайте материализованное представление для агрегации ежедневных событий по пользователю»).
2. Нажмите Enter, чтобы отправить (используйте Shift + Enter для перехода на новую строку).
3. Пока модель обрабатывает запрос, вы можете нажать «Stop», чтобы прервать обработку.
-
-
## Шаги «размышления» в режиме «Агент» {#thinking-steps}
В режиме «Агент» могут отображаться разворачиваемые промежуточные шаги «размышления» или планирования. Они показывают, как именно помощник формирует свой ответ. При необходимости сворачивайте или разворачивайте их.
-
-
## Создание нового чата {#new-chats}
Нажмите кнопку «New Chat», чтобы очистить контекст и начать новый сеанс.
-
-
## Просмотр истории чатов {#history}
1. В нижней части окна отображаются ваши недавние чаты.
@@ -97,8 +81,6 @@ AI Chat в настоящее время поддерживает:
-
-
## Работа с сгенерированным SQL {#sql-actions}
Когда ассистент возвращает SQL-запрос:
@@ -111,8 +93,6 @@ AI Chat в настоящее время поддерживает:
-
-
## Остановка или прерывание ответа {#interrupt}
Если ответ занимает слишком много времени или отклоняется от темы:
@@ -120,8 +100,6 @@ AI Chat в настоящее время поддерживает:
1. Нажмите кнопку «Stop» (она отображается во время обработки).
2. Сообщение будет помечено как прерванное; затем вы сможете уточнить запрос и отправить его снова.
-
-
## Сочетания клавиш {#shortcuts}
| Действие | Сочетание клавиш |
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/01_remote_mcp.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/01_remote_mcp.md
index 444d23d3b15..627998afd72 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/01_remote_mcp.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/01_remote_mcp.md
@@ -22,14 +22,12 @@ import img5 from '@site/static/images/use-cases/AI_ML/MCP/5connected_mcp_claude.
import img6 from '@site/static/images/use-cases/AI_ML/MCP/6slash_mcp_claude.png';
import img7 from '@site/static/images/use-cases/AI_ML/MCP/7usage_mcp.png';
-
# Включение удалённого MCP‑сервера ClickHouse Cloud {#enabling-the-clickhouse-cloud-remote-mcp-server}
> В этом руководстве описано, как включить и использовать удалённый MCP‑сервер ClickHouse Cloud. В качестве примера мы будем использовать Claude Code в роли MCP‑клиента, но можно использовать любой LLM‑клиент с поддержкой MCP.
-
## Включение удалённого MCP-сервера для вашего сервиса ClickHouse Cloud {#enable-remote-mcp-server}
1. Подключитесь к сервису ClickHouse Cloud, нажмите кнопку `Connect` и включите удалённый MCP-сервер для этого сервиса
@@ -44,7 +42,6 @@ import img7 from '@site/static/images/use-cases/AI_ML/MCP/7usage_mcp.png';
https://mcp.clickhouse.cloud/mcp
```
-
## Добавление сервера ClickHouse MCP в Claude Code {#add-clickhouse-mcp-server-claude-code}
1. В рабочем каталоге выполните следующую команду, чтобы добавить конфигурацию MCP-сервера ClickHouse Cloud в Claude Code. В этом примере мы назвали MCP-сервер в конфигурации Claude Code `clickhouse_cloud`.
@@ -71,7 +68,6 @@ claude mcp add --transport http clickhouse_cloud https://mcp.clickhouse.cloud/mc
[user@host ~/Documents/repos/mcp_test] $ claude
```
-
## Аутентификация в ClickHouse Cloud через OAuth {#authenticate-via-oauth}
1. При первом сеансе Claude Code откроет окно браузера. В противном случае вы можете инициировать подключение, выполнив команду `/mcp` в Claude Code и выбрав MCP-сервер `clickhouse_cloud`.
@@ -82,8 +78,6 @@ claude mcp add --transport http clickhouse_cloud https://mcp.clickhouse.cloud/mc
-
-
## Использование удалённого сервера MCP ClickHouse Cloud в Claude Code {#use-rempte-mcp-from-claude-code}
1. В Claude Code убедитесь, что удалённый сервер MCP подключён
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/02_claude-desktop.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/02_claude-desktop.md
index 723911803e7..888b837a394 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/02_claude-desktop.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/02_claude-desktop.md
@@ -18,7 +18,6 @@ import FindMCPServers from '@site/static/images/use-cases/AI_ML/MCP/find-mcp-ser
import MCPPermission from '@site/static/images/use-cases/AI_ML/MCP/mcp-permission.png';
import ClaudeConversation from '@site/static/images/use-cases/AI_ML/MCP/claude-conversation.png';
-
# Использование MCP-сервера ClickHouse с Claude Desktop {#using-clickhouse-mcp-server-with-claude-desktop}
> В этом руководстве описывается, как настроить Claude Desktop с MCP-сервером ClickHouse с помощью uv
@@ -37,20 +36,15 @@ import ClaudeConversation from '@site/static/images/use-cases/AI_ML/MCP/claude-c
-
## Установка uv {#install-uv}
Вам необходимо установить [uv](https://docs.astral.sh/uv/), чтобы выполнять инструкции из этого руководства.
Если вы не хотите использовать uv, вам потребуется обновить конфигурацию сервера MCP, чтобы использовать другой менеджер пакетов.
-
-
## Загрузите Claude Desktop {#download-claude-desktop}
Вам также потребуется установить приложение Claude Desktop, которое можно загрузить с [веб‑сайта Claude Desktop](https://claude.ai/desktop).
-
-
## Настройка сервера ClickHouse MCP {#configure-clickhouse-mcp-server}
После установки Claude Desktop можно переходить к настройке [сервера ClickHouse MCP](https://github.com/ClickHouse/mcp-clickhouse).
@@ -113,7 +107,6 @@ MCP mcp-clickhouse: spawn uv ENOENT
Если это произойдёт, вам нужно будет обновить `command`, указав полный путь к `uv`. Например, если вы установили его через Cargo, путь будет таким: `/Users/<username>/.cargo/bin/uv`
:::
-
## Использование MCP-сервера ClickHouse {#using-clickhouse-mcp-server}
После перезапуска Claude Desktop найдите MCP-сервер ClickHouse, нажав на значок `Search and tools`:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/03_librechat.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/03_librechat.md
index a8fd56522db..6cbd4f2295e 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/03_librechat.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/03_librechat.md
@@ -15,7 +15,6 @@ import Link from '@docusaurus/Link';
import Image from '@theme/IdealImage';
import LibreInterface from '@site/static/images/use-cases/AI_ML/MCP/librechat.png';
-
# Использование MCP-сервера ClickHouse с LibreChat {#using-clickhouse-mcp-server-with-librechat}
> В данном руководстве описывается настройка LibreChat с MCP-сервером ClickHouse с использованием Docker
@@ -23,7 +22,6 @@ import LibreInterface from '@site/static/images/use-cases/AI_ML/MCP/librechat.pn
-
## Установите Docker {#install-docker}
Вам потребуется Docker для запуска LibreChat и MCP-сервера. Чтобы установить Docker:
@@ -34,8 +32,6 @@ import LibreInterface from '@site/static/images/use-cases/AI_ML/MCP/librechat.pn
Для получения дополнительной информации см. [документацию по Docker](https://docs.docker.com/get-docker/).
-
-
## Клонируйте репозиторий LibreChat {#clone-librechat-repo}
Откройте консоль (Command Prompt, терминал или PowerShell) и клонируйте
@@ -46,7 +42,6 @@ git clone https://github.com/danny-avila/LibreChat.git
cd LibreChat
```
-
## Создайте и отредактируйте файл .env {#create-and-edit-env-file}
Скопируйте пример конфигурационного файла из `.env.example` в `.env`:
@@ -59,7 +54,6 @@ cp .env.example .env
многих популярных провайдеров LLM, включая OpenAI, Anthropic, AWS Bedrock и др.,
например:
-
```text title=".venv"
#============#
# Anthropic # {#anthropic}
@@ -78,7 +72,6 @@ ANTHROPIC_API_KEY=user_provided
не изменяйте файл .env и переходите к следующим шагам.
:::
-
## Создайте файл librechat.yaml {#create-librechat-yaml-file}
Выполните следующую команду, чтобы создать новый файл `librechat.yaml`:
@@ -89,7 +82,6 @@ cp librechat.example.yaml librechat.yaml
Это создаёт основной [конфигурационный файл](https://www.librechat.ai/docs/configuration/librechat_yaml) для LibreChat.
-
## Добавление сервера ClickHouse MCP в Docker Compose {#add-clickhouse-mcp-server-to-docker-compose}
Теперь мы добавим сервер ClickHouse MCP в файл Docker Compose LibreChat,
@@ -142,7 +134,6 @@ services:
/>
-
## Настройка сервера MCP в librechat.yaml {#configure-mcp-server-in-librechat-yaml}
Откройте `librechat.yaml` и разместите следующую конфигурацию в конце файла:
@@ -168,7 +159,6 @@ socialLogins: ['github', 'google', 'discord', 'openid', 'facebook', 'apple', 'sa
socialLogins: []
```
-
## Добавление локальной LLM‑модели с помощью Ollama (необязательно) {#add-local-llm-using-ollama}
### Установка Ollama {#install-ollama}
@@ -208,7 +198,6 @@ custom:
modelDisplayLabel: "Ollama"
```
-
## Запустите все сервисы {#start-all-services}
Из корневого каталога проекта LibreChat выполните следующую команду, чтобы запустить сервисы:
@@ -219,7 +208,6 @@ docker compose up
Дождитесь, пока все сервисы будут полностью запущены.
-
## Откройте LibreChat в браузере {#open-librechat-in-browser}
После запуска всех сервисов откройте браузер и перейдите по адресу `http://localhost:3080/`
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/04_anythingllm.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/04_anythingllm.md
index c69cbb7fe55..6ed6cc94053 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/04_anythingllm.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/04_anythingllm.md
@@ -18,7 +18,6 @@ import Conversation from '@site/static/images/use-cases/AI_ML/MCP/allm_conversat
import MCPServers from '@site/static/images/use-cases/AI_ML/MCP/allm_mcp-servers.png';
import ToolIcon from '@site/static/images/use-cases/AI_ML/MCP/alm_tool-icon.png';
-
# Использование сервера MCP ClickHouse с AnythingLLM {#using-clickhouse-mcp-server-with-anythingllm}
> В этом руководстве описано, как настроить [AnythingLLM](https://anythingllm.com/) с сервером MCP ClickHouse с использованием Docker
@@ -26,7 +25,6 @@ import ToolIcon from '@site/static/images/use-cases/AI_ML/MCP/alm_tool-icon.png'
-
## Установите Docker {#install-docker}
Вам понадобится Docker, чтобы запустить LibreChat и MCP-сервер. Чтобы установить Docker:
@@ -37,8 +35,6 @@ import ToolIcon from '@site/static/images/use-cases/AI_ML/MCP/alm_tool-icon.png'
Для получения дополнительной информации см. [документацию Docker](https://docs.docker.com/get-docker/).
-
-
## Загрузка Docker-образа AnythingLLM {#pull-anythingllm-docker-image}
Выполните следующую команду, чтобы загрузить Docker-образ AnythingLLM на локальную машину:
@@ -47,7 +43,6 @@ import ToolIcon from '@site/static/images/use-cases/AI_ML/MCP/alm_tool-icon.png'
docker pull anythingllm/anythingllm
```
-
## Настройка расположения хранилища {#setup-storage-location}
Создайте каталог для хранилища и инициализируйте файл окружения:
@@ -58,7 +53,6 @@ mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env"
```
-
## Настройка файла конфигурации сервера MCP {#configure-mcp-server-config-file}
Создайте каталог `plugins`:
@@ -96,7 +90,6 @@ mkdir -p "$STORAGE_LOCATION/plugins"
[host, имя пользователя и пароль](https://clickhouse.com/docs/getting-started/quick-start/cloud#connect-with-your-app)
собственного сервиса ClickHouse Cloud.
-
## Запустите Docker-контейнер AnythingLLM {#start-anythingllm-docker-container}
Запустите Docker-контейнер AnythingLLM следующей командой:
@@ -113,7 +106,6 @@ mintplexlabs/anythingllm
После запуска откройте в браузере адрес `http://localhost:3001`.
Выберите модель, которую хотите использовать, и укажите свой API-ключ.
-
## Дождитесь запуска MCP Servers {#wait-for-mcp-servers-to-start-up}
Нажмите значок инструмента в левой нижней части интерфейса:
@@ -125,8 +117,6 @@ mintplexlabs/anythingllm
-
-
## Чат с ClickHouse MCP Server в AnythingLLM {#chat-with-clickhouse-mcp-server-with-anythingllm}
Теперь мы готовы начать чат.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/05_open-webui.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/05_open-webui.md
index 34c9d1fe79f..12cde81d5cc 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/05_open-webui.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/05_open-webui.md
@@ -25,7 +25,6 @@ import AddConnection from '@site/static/images/use-cases/AI_ML/MCP/7_add_connect
import OpenAIModels from '@site/static/images/use-cases/AI_ML/MCP/8_openai_models_more.png';
import Conversation from '@site/static/images/use-cases/AI_ML/MCP/9_conversation.png';
-
# Использование MCP-сервера ClickHouse с Open WebUI {#using-clickhouse-mcp-server-with-open-webui}
> В данном руководстве описывается настройка [Open WebUI](https://github.com/open-webui/open-webui) с MCP-сервером ClickHouse
@@ -33,14 +32,11 @@ import Conversation from '@site/static/images/use-cases/AI_ML/MCP/9_conversation
-
## Установите uv {#install-uv}
Вам нужно установить [uv](https://docs.astral.sh/uv/), чтобы выполнить инструкции из этого руководства.
Если вы не хотите использовать uv, вам потребуется обновить конфигурацию MCP Server, чтобы использовать другой менеджер пакетов.
-
-
## Запуск Open WebUI {#launch-open-webui}
Чтобы запустить Open WebUI, выполните следующую команду:
@@ -51,7 +47,6 @@ uv run --with open-webui open-webui serve
Перейдите по адресу [http://localhost:8080/](http://localhost:8080/), чтобы открыть веб-интерфейс.
-
## Настройка сервера ClickHouse MCP {#configure-clickhouse-mcp-server}
Чтобы настроить сервер ClickHouse MCP, нам нужно будет представить интерфейс сервера MCP в виде конечных точек OpenAPI.
@@ -93,7 +88,6 @@ uvx mcpo --port 8000 -- uv run --with mcp-clickhouse --python 3.10 mcp-clickhous
-
## Настройка OpenAI {#configure-openai}
По умолчанию Open WebUI работает с моделями Ollama, но мы также можем добавить конечные точки API, совместимые с OpenAI.
@@ -109,8 +103,6 @@ uvx mcpo --port 8000 -- uv run --with mcp-clickhouse --python 3.10 mcp-clickhous
-
-
## Общение с ClickHouse MCP Server через Open WebUI {#chat-to-clickhouse-mcp-server}
Теперь можно начать диалог, и Open WebUI при необходимости обратится к MCP Server:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/06_ollama.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/06_ollama.md
index 6b977d7edee..d51f10b9716 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/06_ollama.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/06_ollama.md
@@ -14,14 +14,12 @@ import {CardHorizontal} from '@clickhouse/click-ui/bundled'
import Link from '@docusaurus/Link';
import Image from '@theme/IdealImage';
-
# Использование сервера ClickHouse MCP совместно с Ollama {#using-clickhouse-mcp-server-with-ollama}
> В этом руководстве объясняется, как использовать сервер ClickHouse MCP совместно с Ollama.
-
## Установите Ollama {#install-ollama}
Ollama — это библиотека для запуска больших языковых моделей (LLM) на вашем компьютере.
@@ -93,7 +91,6 @@ ollama show qwen3
Из этого вывода видно, что у модели qwen3 по умолчанию чуть больше 8 миллиардов параметров.
-
## Установите MCPHost {#install-mcphost}
На момент написания этой инструкции (июль 2025 года) нет встроенной поддержки использования Ollama с MCP Servers.
@@ -108,7 +105,6 @@ go install github.com/mark3labs/mcphost@latest
Исполняемый файл будет установлен в `~/go/bin`, поэтому нужно убедиться, что этот каталог входит в переменную окружения `PATH`.
-
## Настройка сервера ClickHouse MCP {#configure-clickhouse-mcp-server}
Мы можем настраивать серверы MCP с помощью MCPHost в файлах YAML или JSON.
@@ -157,7 +153,6 @@ export CLICKHOUSE_PASSWORD=""
Теоретически вы должны иметь возможность указать эти переменные под ключом `environment` в конфигурационном файле MCP, но на практике это не работает.
:::
-
## Running MCPHost {#running-mcphost}
После того как вы настроили сервер ClickHouse MCP, вы можете запустить MCPHost, выполнив следующую команду:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/07_janai.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/07_janai.md
index 7fd81a723bd..b9bec682cbd 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/07_janai.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/07_janai.md
@@ -26,14 +26,12 @@ import ToolsCalled from '@site/static/images/use-cases/AI_ML/MCP/8_janai_tools_c
import ToolsCalledExpanded from '@site/static/images/use-cases/AI_ML/MCP/9_janai_tools_called_expanded.png';
import Result from '@site/static/images/use-cases/AI_ML/MCP/10_janai_result.png';
-
# Использование MCP-сервера ClickHouse с Jan.ai {#using-clickhouse-mcp-server-with-janai}
> В этом руководстве описывается использование MCP-сервера ClickHouse с [Jan.ai](https://jan.ai/docs).
-
## Установка Jan.ai {#install-janai}
Jan.ai — это открытое приложение, являющееся альтернативой ChatGPT и работающее на 100 % офлайн.
@@ -41,8 +39,6 @@ Jan.ai — это открытое приложение, являющееся а
Это нативное приложение, поэтому после загрузки вы можете просто запустить его.
-
-
## Добавить LLM в Jan.ai {#add-llm-to-janai}
Мы можем включить модели через меню настроек.
@@ -51,8 +47,6 @@ Jan.ai — это открытое приложение, являющееся а
-
-
## Включение MCP Servers {#enable-mcp-servers}
На момент написания этой инструкции MCP Servers являются экспериментальной функцией в Jan.ai.
@@ -62,8 +56,6 @@ Jan.ai — это открытое приложение, являющееся а
После переключения этого переключателя в левом меню появится пункт `MCP Servers`.
-
-
## Настройка ClickHouse MCP Server {#configure-clickhouse-mcp-server}
Если нажать на меню `MCP Servers`, откроется список MCP-серверов, к которым можно подключиться:
@@ -84,8 +76,6 @@ Jan.ai — это открытое приложение, являющееся а
-
-
## Общение с ClickHouse MCP Server через Jan.ai {#chat-to-clickhouse-mcp-server}
Пришло время обсудить данные, хранящиеся в ClickHouse!
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/agno.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/agno.md
index 6715c954b5d..f40315060da 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/agno.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/agno.md
@@ -10,8 +10,6 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Как создать агента ИИ с помощью Agno и ClickHouse MCP Server {#how-to-build-an-ai-agent-with-agno-and-the-clickhouse-mcp-server}
В этом руководстве вы узнаете, как создать агента ИИ на базе [Agno](https://github.com/agno-agi/agno), способного взаимодействовать с
@@ -21,8 +19,6 @@ doc_type: 'guide'
Этот пример доступен в виде ноутбука в [репозитории с примерами](https://github.com/ClickHouse/examples/blob/main/ai/mcp/agno/agno.ipynb).
:::
-
-
## Предварительные требования {#prerequisites}
- В вашей системе должен быть установлен Python.
@@ -33,7 +29,6 @@ doc_type: 'guide'
-
## Установка библиотек {#install-libraries}
Установите библиотеку Agno с помощью следующих команд:
@@ -44,7 +39,6 @@ pip install -q agno
pip install -q ipywidgets
```
-
## Настройка учетных данных {#setup-credentials}
Далее необходимо указать свой API-ключ Anthropic:
@@ -75,7 +69,6 @@ env = {
}
```
-
## Инициализация MCP-сервера и агента Agno {#initialize-mcp-and-agent}
Теперь настройте ClickHouse MCP-сервер для подключения к ClickHouse SQL playground
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/chainlit.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/chainlit.md
index c274526eed6..eaeb757f3a6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/chainlit.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/chainlit.md
@@ -10,8 +10,6 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Как создать AI-агента с помощью Chainlit и ClickHouse MCP Server {#how-to-build-an-ai-agent-with-chainlit-and-the-clickhouse-mcp-server}
В этом руководстве показано, как объединить мощный фреймворк чат-интерфейсов Chainlit
@@ -20,14 +18,10 @@ doc_type: 'guide'
с минимальным количеством кода, а сервер ClickHouse MCP обеспечивает бесшовную интеграцию
с высокопроизводительной колоночной базой данных ClickHouse.
-
-
## Предварительные требования {#prerequisites}
- Вам потребуется ключ API Anthropic
- У вас должен быть установлен [`uv`](https://docs.astral.sh/uv/getting-started/installation/)
-
-
## Базовое приложение Chainlit {#basic-chainlit-app}
Вы можете увидеть пример простого чат-приложения, запустив следующую команду:
@@ -38,7 +32,6 @@ uv run --with anthropic --with chainlit chainlit run chat_basic.py -w -h
Затем откройте в браузере `http://localhost:8000`
-
## Добавление ClickHouse MCP Server {#adding-clickhouse-mcp-server}
Дело становится интереснее, если мы добавим ClickHouse MCP Server.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/claude-agent-sdk.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/claude-agent-sdk.md
index 1a04de70a2f..0edd539e102 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/claude-agent-sdk.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/claude-agent-sdk.md
@@ -10,8 +10,6 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Как создать AI-агента с помощью Claude Agent SDK и ClickHouse MCP Server {#how-to-build-an-ai-agent-with-claude-agent-sdk-and-the-clickhouse-mcp-server}
В этом руководстве вы узнаете, как создать AI-агента на базе [Claude Agent SDK](https://docs.claude.com/en/api/agent-sdk/overview), который может взаимодействовать с
@@ -21,8 +19,6 @@ doc_type: 'guide'
Этот пример доступен в виде блокнота в [репозитории с примерами](https://github.com/ClickHouse/examples/blob/main/ai/mcp/claude-agent/claude-agent.ipynb).
:::
-
-
## Предварительные требования {#prerequisites}
- В вашей системе должен быть установлен Python.
@@ -33,7 +29,6 @@ doc_type: 'guide'
-
## Установка библиотек {#install-libraries}
Установите библиотеку Claude Agent SDK, выполнив следующие команды:
@@ -44,7 +39,6 @@ pip install -q claude-agent-sdk
pip install -q ipywidgets
```
-
## Настройка учетных данных {#setup-credentials}
Далее вам нужно будет указать свой ключ API Anthropic:
@@ -70,7 +64,6 @@ env = {
}
```
-
## Инициализация MCP-сервера и агента Claude Agent SDK {#initialize-mcp-and-agent}
Теперь настройте ClickHouse MCP-сервер для подключения к ClickHouse SQL playground
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/copilotkit.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/copilotkit.md
index 0938accc952..c5300001a9f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/copilotkit.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/copilotkit.md
@@ -10,8 +10,6 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Как создать AI-агента с помощью CopilotKit и ClickHouse MCP Server {#how-to-build-an-ai-agent-with-copilotkit-and-the-clickhouse-mcp-server}
Это пример того, как создать агентское приложение, используя данные, хранящиеся в
@@ -25,15 +23,11 @@ ClickHouse. В нем используется [ClickHouse MCP Server](https://g
Код этого примера доступен в [репозитории с примерами](https://github.com/ClickHouse/examples/edit/main/ai/mcp/copilotkit).
:::
-
-
## Предварительные требования {#prerequisites}
- `Node.js >= 20.14.0`
- `uv >= 0.1.0`
-
-
## Установка зависимостей {#install-dependencies}
Клонируйте проект локально: `git clone https://github.com/ClickHouse/examples` и
@@ -42,8 +36,6 @@ ClickHouse. В нем используется [ClickHouse MCP Server](https://g
Можете пропустить этот раздел и просто запустить скрипт `./install.sh` для установки зависимостей. Если
вы хотите установить зависимости вручную, следуйте инструкциям ниже.
-
-
## Ручная установка зависимостей {#install-dependencies-manually}
1. Установите зависимости:
@@ -67,13 +59,10 @@ uv sync
uv add fastmcp
```
-
## Настройка приложения {#configure-the-application}
Скопируйте файл `env.example` в `.env` и отредактируйте его, указав значение `ANTHROPIC_API_KEY`.
-
-
## Используйте свою LLM {#use-your-own-llm}
Если вы предпочитаете использовать другого провайдера LLM вместо Anthropic, вы можете изменить
@@ -81,8 +70,6 @@ uv add fastmcp
[Здесь](https://docs.copilotkit.ai/guides/bring-your-own-llm) приведён список поддерживаемых
провайдеров.
-
-
## Использование собственного кластера ClickHouse {#use-your-own-clickhouse-cluster}
По умолчанию пример настроен на подключение к
@@ -95,8 +82,6 @@ uv add fastmcp
- `CLICKHOUSE_PASSWORD`
- `CLICKHOUSE_SECURE`
-
-
# Запуск приложения {#run-the-application}
Выполните `npm run dev`, чтобы запустить сервер разработки.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/llamaindex.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/llamaindex.md
index e483fc84299..1310fc706eb 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/llamaindex.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/llamaindex.md
@@ -10,8 +10,6 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Как создать AI-агента LlamaIndex с использованием ClickHouse MCP Server {#how-to-build-a-llamaindex-ai-agent-using-clickhouse-mcp-server}
В этом руководстве вы узнаете, как создать AI-агента [LlamaIndex](https://docs.llamaindex.ai), который
@@ -21,8 +19,6 @@ doc_type: 'guide'
Этот пример доступен в виде ноутбука в [репозитории примеров](https://github.com/ClickHouse/examples/blob/main/ai/mcp/llamaindex/llamaindex.ipynb).
:::
-
-
## Предварительные требования {#prerequisites}
- В вашей системе должен быть установлен Python.
@@ -33,7 +29,6 @@ doc_type: 'guide'
-
## Установите библиотеки {#install-libraries}
Установите необходимые библиотеки, выполнив следующие команды:
@@ -43,7 +38,6 @@ pip install -q --upgrade pip
pip install -q llama-index clickhouse-connect llama-index-llms-anthropic llama-index-tools-mcp
```
-
## Настройка учётных данных {#setup-credentials}
Далее вам нужно указать свой ключ API Anthropic:
@@ -62,7 +56,6 @@ os.environ["ANTHROPIC_API_KEY"] = getpass.getpass("Введите API-ключ A
вы можете найти инструкции по настройке учетных данных в [документации LlamaIndex «LLMs»](https://docs.llamaindex.ai/en/stable/examples/)
:::
-
## Инициализируйте MCP Server {#initialize-mcp-and-agent}
Теперь настройте ClickHouse MCP Server для работы с ClickHouse SQL Playground.
@@ -93,7 +86,6 @@ mcp_tool_spec = McpToolSpec(
)
```
-
tools = await mcp_tool_spec.to_tool_list_async()
````
@@ -112,7 +104,6 @@ agent_worker = FunctionCallingAgentWorker.from_tools(
agent = AgentRunner(agent_worker)
````
-
## Инициализация LLM {#initialize-llm}
Инициализируйте модель Claude Sonnet 4.0 следующим кодом:
@@ -122,7 +113,6 @@ from llama_index.llms.anthropic import Anthropic
llm = Anthropic(model="claude-sonnet-4-0")
```
-
## Запуск агента {#run-agent}
Теперь можно задать агенту вопрос:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/openai-agents.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/openai-agents.md
index 8ff8788eda8..f7b7a44a3d7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/openai-agents.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/openai-agents.md
@@ -10,8 +10,6 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Как создать агента OpenAI с использованием ClickHouse MCP Server {#how-to-build-an-openai-agent-using-clickhouse-mcp-server}
В этом руководстве вы узнаете, как создать агента [OpenAI](https://github.com/openai/openai-agents-python), который
@@ -21,8 +19,6 @@ doc_type: 'guide'
Этот пример доступен в виде ноутбука в [репозитории с примерами](https://github.com/ClickHouse/examples/blob/main/ai/mcp/openai-agents/openai-agents.ipynb).
:::
-
-
## Предварительные требования {#prerequisites}
- В вашей системе должен быть установлен Python.
@@ -33,7 +29,6 @@ doc_type: 'guide'
-
## Установка библиотек {#install-libraries}
Установите необходимую библиотеку, выполнив следующие команды:
@@ -43,7 +38,6 @@ pip install -q --upgrade pip
pip install -q openai-agents
```
-
## Настройка учетных данных {#setup-credentials}
Далее вам нужно будет указать свой ключ API OpenAI:
@@ -57,7 +51,6 @@ os.environ["OPENAI_API_KEY"] = getpass.getpass("Введите API-ключ Open
Введите API-ключ OpenAI: ········
```
-
## Инициализация MCP Server и агента OpenAI {#initialize-mcp-and-agent}
Теперь настройте ClickHouse MCP Server так, чтобы он указывал на ClickHouse SQL playground,
@@ -156,7 +149,6 @@ async with MCPServerStdio(
simple_render_chunk(chunk)
```
-
```response title="Ответ"
Выполняется: Какой самый крупный проект на GitHub на данный момент в 2025 году?
🔧 Tool: list_databases({})
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/pydantic-ai.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/pydantic-ai.md
index 4097dce484b..e43d1c0862d 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/pydantic-ai.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/pydantic-ai.md
@@ -10,8 +10,6 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Как создать агента PydanticAI с использованием сервера ClickHouse MCP {#how-to-build-a-pydanticai-agent-using-clickhouse-mcp-server}
В этом руководстве вы узнаете, как создать агента [PydanticAI](https://ai.pydantic.dev/mcp/client/#__tabbed_1_1),
@@ -21,8 +19,6 @@ doc_type: 'guide'
Этот пример доступен в виде ноутбука в [репозитории примеров](https://github.com/ClickHouse/examples/blob/main/ai/mcp/pydanticai/pydantic.ipynb).
:::
-
-
## Предварительные требования {#prerequisites}
- В вашей системе должен быть установлен Python.
@@ -33,7 +29,6 @@ doc_type: 'guide'
-
## Установка библиотек {#install-libraries}
Установите необходимые библиотеки, выполнив следующие команды:
@@ -44,7 +39,6 @@ pip install -q "pydantic-ai-slim[mcp]"
pip install -q "pydantic-ai-slim[anthropic]" # замените на соответствующий пакет при использовании другого провайдера LLM
```
-
## Настройка учетных данных {#setup-credentials}
Далее необходимо указать ключ API Anthropic:
@@ -75,7 +69,6 @@ env = {
}
```
-
## Инициализация MCP Server и агента PydanticAI {#initialize-mcp}
Теперь настройте ClickHouse MCP Server так, чтобы он использовал песочницу ClickHouse SQL:
@@ -98,7 +91,6 @@ server = MCPServerStdio(
agent = Agent('anthropic:claude-sonnet-4-0', mcp_servers=[server])
```
-
## Задайте вопрос агенту {#ask-agent}
Наконец, вы можете задать вопрос агенту:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/slackbot.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/slackbot.md
index 991773a937e..c718620d0e7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/slackbot.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/slackbot.md
@@ -10,8 +10,6 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Как создать агента SlackBot с помощью ClickHouse MCP Server {#how-to-build-a-slackbot-agent-using-clickhouse-mcp-server}
В этом руководстве вы узнаете, как создать агента [SlackBot](https://slack.com/intl/en-gb/help/articles/202026038-An-introduction-to-Slackbot).
@@ -22,8 +20,6 @@ doc_type: 'guide'
Код этого примера доступен в [репозитории с примерами](https://github.com/ClickHouse/examples/blob/main/ai/mcp/slackbot/README.md).
:::
-
-
## Предварительные требования {#prerequisites}
- Необходимо установить [`uv`](https://docs.astral.sh/uv/getting-started/installation/)
@@ -32,23 +28,18 @@ doc_type: 'guide'
-
## Создайте приложение Slack {#create-a-slack-app}
1. Перейдите на [slack.com/apps](https://slack.com/apps) и нажмите `Create New App`.
2. Выберите вариант `From scratch` и задайте имя приложению.
3. Выберите рабочее пространство Slack.
-
-
## Установите приложение в рабочее пространство {#install-the-app-to-your-workspace}
Далее добавьте созданное на предыдущем шаге приложение в рабочее пространство.
Следуйте инструкциям из раздела ["Добавление приложений в рабочее пространство Slack"](https://slack.com/intl/en-gb/help/articles/202035138-Add-apps-to-your-Slack-workspace)
в документации Slack.
-
-
## Настройка параметров приложения Slack {#configure-slack-app-settings}
- Перейдите в `App Home`
@@ -74,8 +65,6 @@ doc_type: 'guide'
- `message:im`
- Сохраните изменения.
-
-
## Добавьте переменные окружения (`.env`) {#add-env-vars}
Создайте файл `.env` в корне проекта со следующими переменными окружения, чтобы ваше приложение могло подключаться к [SQL-песочнице ClickHouse](https://sql.clickhouse.com/).
@@ -94,7 +83,6 @@ CLICKHOUSE_SECURE=true
Вы можете настроить переменные ClickHouse для использования собственного сервера ClickHouse
или облачного экземпляра, если хотите.
-
## Использование бота {#using-the-bot}
1. **Запустите бота:**
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/streamlit.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/streamlit.md
index 2a9573a5966..c02788b31d6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/streamlit.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/MCP/ai_agent_libraries/streamlit.md
@@ -10,8 +10,6 @@ show_related_blogs: true
doc_type: 'guide'
---
-
-
# Как создать агента ИИ на базе ClickHouse с помощью Streamlit {#how-to-build-a-clickhouse-backed-ai-agent-with-streamlit}
В этом руководстве вы узнаете, как создать веб-агента ИИ с использованием [Streamlit](https://streamlit.io/), способного взаимодействовать с [SQL-песочницей ClickHouse](https://sql.clickhouse.com/) через [MCP-сервер ClickHouse](https://github.com/ClickHouse/mcp-clickhouse) и [Agno](https://github.com/agno-agi/agno).
@@ -21,8 +19,6 @@ doc_type: 'guide'
Исходный код этого примера вы можете найти в [репозитории examples](https://github.com/ClickHouse/examples/tree/main/ai/mcp/streamlit).
:::
-
-
## Предварительные требования {#prerequisites}
- В вашей системе должен быть установлен Python.
@@ -33,7 +29,6 @@ doc_type: 'guide'
-
## Установка библиотек {#install-libraries}
Установите необходимые библиотеки, выполнив следующие команды:
@@ -42,7 +37,6 @@ doc_type: 'guide'
pip install streamlit agno ipywidgets
```
-
## Создайте файл с утилитами {#create-utilities}
Создайте файл `utils.py` с двумя вспомогательными функциями. Первая — это
@@ -70,7 +64,6 @@ def apply_styles():
""", unsafe_allow_html=True)
```
-
## Настройка учётных данных {#setup-credentials}
Установите ключ API Anthropic в переменную окружения:
@@ -84,7 +77,6 @@ export ANTHROPIC_API_KEY="ваш_ключ_api"
вы можете найти инструкции по настройке учетных данных в документации [Agno «Integrations»](https://docs.agentops.ai/v2/integrations/ag2)
:::
-
## Импорт необходимых библиотек {#import-libraries}
Начните с создания основного файла приложения Streamlit (например, `app.py`) и добавьте импорты:
@@ -109,7 +101,6 @@ import threading
from queue import Queue
```
-
## Определите функцию потоковой передачи агента {#define-agent-function}
Добавьте основную функцию агента, которая подключается к [SQL-песочнице ClickHouse](https://sql.clickhouse.com/) и осуществляет потоковую передачу ответов:
@@ -160,7 +151,6 @@ async def stream_clickhouse_agent(message):
yield chunk.content
```
-
## Добавьте синхронные функции-обёртки {#add-wrapper-functions}
Добавьте вспомогательные функции для обработки асинхронного стриминга в Streamlit:
@@ -183,7 +173,6 @@ async def _agent_stream_to_queue(message, queue):
queue.put(chunk)
```
-
## Создайте интерфейс Streamlit {#create-interface}
Добавьте компоненты пользовательского интерфейса Streamlit и функции чата:
@@ -213,7 +202,6 @@ if prompt := st.chat_input("Чем могу помочь?"):
st.session_state.messages.append({"role": "assistant", "content": response})
```
-
## Запуск приложения {#run-application}
Чтобы запустить веб-приложение AI-агента ClickHouse, выполните
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/data-exploration/jupyter-notebook.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/data-exploration/jupyter-notebook.md
index 59f5ccc2939..516c92d2a1f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/data-exploration/jupyter-notebook.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/AI_ML/data-exploration/jupyter-notebook.md
@@ -18,7 +18,6 @@ import image_7 from '@site/static/images/use-cases/AI_ML/jupyter/7.png';
import image_8 from '@site/static/images/use-cases/AI_ML/jupyter/8.png';
import image_9 from '@site/static/images/use-cases/AI_ML/jupyter/9.png';
-
# Исследование данных с помощью Jupyter Notebook и chDB {#exploring-data-with-jupyter-notebooks-and-chdb}
В этом руководстве вы узнаете, как исследовать данные в ClickHouse Cloud в Jupyter Notebook с помощью [chDB](/chdb) — быстрого встроенного SQL OLAP-движка на базе ClickHouse.
@@ -112,7 +111,6 @@ result = chdb.query("SELECT 'Привет, ClickHouse!' as message")
print(result)
```
-
## Исследование данных {#exploring-the-data}
После того как набор данных UK price paid настроен, а chDB запущен в Jupyter Notebook, мы можем приступить к исследованию наших данных.
@@ -237,7 +235,6 @@ df_2 = chdb.query(query, "DataFrame")
df_2.head()
```
-
Чтение из нескольких источников за один шаг
Также можно читать данные из нескольких источников за один шаг. Для этого вы можете использовать приведённый ниже запрос с `JOIN`:
@@ -323,7 +320,6 @@ plt.show()
После 2012 года рост существенно ускорился, резко поднявшись примерно с £400 000 до более чем £1 000 000 к 2019 году.
В отличие от объёма продаж, цены испытали минимальное влияние кризиса 2008 года и сохранили восходящую тенденцию. Вот это да!
-
## Итоги {#summary}
В этом руководстве показано, как chDB обеспечивает удобное исследование данных в Jupyter-ноутбуках за счет подключения ClickHouse Cloud к локальным источникам данных.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/glue_catalog.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/glue_catalog.md
index e07cdf79ce9..dd6be1bbe4d 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/glue_catalog.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/glue_catalog.md
@@ -24,7 +24,6 @@ Glue поддерживает множество различных формат
интеграции доступны только таблицы Iceberg.
:::
-
## Настройка Glue в AWS {#configuring}
Чтобы подключиться к каталогу Glue, необходимо определить регион вашего
@@ -49,7 +48,6 @@ SETTINGS
aws_secret_access_key = ''
```
-
## Выполнение запросов к каталогу данных Glue с помощью ClickHouse {#query-glue-catalog}
Теперь, когда подключение установлено, можно приступать к выполнению запросов к Glue:
@@ -88,7 +86,6 @@ SELECT count(*) FROM `iceberg-benchmark.hitsiceberg`;
SHOW CREATE TABLE `iceberg-benchmark.hitsiceberg`;
```
-
```sql title="Response"
┌─statement───────────────────────────────────────────────┐
1.│ CREATE TABLE glue.`iceberg-benchmark.hitsiceberg` │
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/lakekeeper_catalog.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/lakekeeper_catalog.md
index 6b0c0901ae2..3d555b7b629 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/lakekeeper_catalog.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/lakekeeper_catalog.md
@@ -33,7 +33,6 @@ Lakekeeper — это реализация REST-каталога с открыт
`SET allow_experimental_database_iceberg = 1;`
:::
-
## Локальная среда разработки {#local-development-setup}
Для локальной разработки и тестирования вы можете использовать контейнеризованную среду Lakekeeper. Такой подход оптимален для обучения, прототипирования и использования в средах разработки.
@@ -231,7 +230,6 @@ docker-compose logs -f
Настройка Lakekeeper требует предварительной загрузки примерных данных в таблицы Iceberg. Убедитесь, что в среде уже созданы и заполнены таблицы, прежде чем пытаться выполнять к ним запросы из ClickHouse. Доступность таблиц зависит от конкретной конфигурации docker-compose и скриптов загрузки примерных данных.
:::
-
### Подключение к локальному каталогу Lakekeeper {#connecting-to-local-lakekeeper-catalog}
Подключитесь к контейнеру ClickHouse:
@@ -250,7 +248,6 @@ ENGINE = DataLakeCatalog('http://lakekeeper:8181/catalog', 'minio', 'ClickHouse_
SETTINGS catalog_type = 'rest', storage_endpoint = 'http://minio:9002/warehouse-rest', warehouse = 'demo'
```
-
## Выполнение запросов к таблицам каталога Lakekeeper с помощью ClickHouse {#querying-lakekeeper-catalog-tables-using-clickhouse}
Теперь, когда соединение установлено, вы можете начинать выполнять запросы по каталогу Lakekeeper. Например:
@@ -334,7 +331,6 @@ SHOW CREATE TABLE `default.taxis`;
└───────────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## Загрузка данных из вашего Data Lake в ClickHouse {#loading-data-from-your-data-lake-into-clickhouse}
Если вам нужно загрузить данные из каталога Lakekeeper в ClickHouse, начните с создания локальной таблицы в ClickHouse:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/nessie_catalog.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/nessie_catalog.md
index 73a355a41b3..b400465ee63 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/nessie_catalog.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/nessie_catalog.md
@@ -34,7 +34,6 @@ Nessie — это транзакционный каталог с открыты
`SET allow_experimental_database_iceberg = 1;`
:::
-
## Локальная среда разработки {#local-development-setup}
Для локальной разработки и тестирования вы можете использовать контейнеризованную среду Nessie. Такой подход идеально подходит для обучения, прототипирования и разработки.
@@ -148,7 +147,6 @@ docker-compose logs -f
Конфигурация Nessie использует хранилище версий в памяти и требует, чтобы сначала в таблицы Iceberg были загружены примеры данных. Перед выполнением запросов к этим таблицам через ClickHouse убедитесь, что в среде они уже созданы и заполнены.
:::
-
### Подключение к локальному каталогу Nessie {#connecting-to-local-nessie-catalog}
Подключитесь к контейнеру ClickHouse:
@@ -167,7 +165,6 @@ ENGINE = DataLakeCatalog('http://nessie:19120/iceberg', 'admin', 'password')
SETTINGS catalog_type = 'rest', storage_endpoint = 'http://minio:9002/my-bucket', warehouse = 'warehouse'
```
-
## Запросы к таблицам каталога Nessie с помощью ClickHouse {#querying-nessie-catalog-tables-using-clickhouse}
Теперь, когда подключение установлено, вы можете выполнять запросы через каталог Nessie. Например:
@@ -251,7 +248,6 @@ SHOW CREATE TABLE `default.taxis`;
└───────────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## Загрузка данных из вашего хранилища Data Lake в ClickHouse {#loading-data-from-your-data-lake-into-clickhouse}
Если вам нужно загрузить данные из каталога Nessie в ClickHouse, сначала создайте локальную таблицу ClickHouse:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/onelake_catalog.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/onelake_catalog.md
index d64fa50c538..c8204861fef 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/onelake_catalog.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/onelake_catalog.md
@@ -23,7 +23,6 @@ Microsoft OneLake поддерживает несколько форматов
`SET allow_database_iceberg = 1;`
:::
-
## Сбор необходимых параметров OneLake {#gathering-requirements}
Прежде чем выполнять запросы к вашей таблице в Microsoft Fabric, вам нужно собрать следующую информацию:
@@ -43,7 +42,6 @@ Microsoft OneLake поддерживает несколько форматов
SET allow_database_iceberg=1
```
-
### Подключение к OneLake {#connect-onelake}
```sql
@@ -59,7 +57,6 @@ onelake_client_id = '',
onelake_client_secret = ''
```
-
## Выполнение запросов к OneLake с помощью ClickHouse {#querying-onelake-using-clickhouse}
Теперь, когда подключение настроено, вы можете выполнять запросы к OneLake:
@@ -120,7 +117,6 @@ source_file: green_tripdata_2017-05.parquet
Чтобы просмотреть DDL таблицы:
-
```sql
SHOW CREATE TABLE onelake_catalog.`year_2017.green_tripdata_2017`
@@ -155,7 +151,6 @@ Query id: 8bd5bd8e-83be-453e-9a88-32de12ba7f24
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## Загрузка данных из вашего озера данных (Data Lake) в ClickHouse {#loading-data-from-onelake-into-clickhouse}
Если вам нужно загрузить данные из OneLake в ClickHouse:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/rest_catalog.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/rest_catalog.md
index 6b33f7746da..e923c3cb0f0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/rest_catalog.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/rest_catalog.md
@@ -32,7 +32,6 @@ REST Catalog — это стандартизированная специфик
`SET allow_experimental_database_iceberg = 1;`
:::
-
## Локальная среда разработки {#local-development-setup}
Для локальной разработки и тестирования вы можете использовать контейнеризованную установку REST-каталога. Такой подход подходит для обучения, прототипирования и использования в средах разработки.
@@ -89,7 +88,6 @@ docker-compose logs -f
Настройка REST-каталога требует, чтобы демонстрационные данные сначала были загружены в таблицы Iceberg. Убедитесь, что в среде Spark таблицы созданы и заполнены, прежде чем пытаться выполнять к ним запросы из ClickHouse. Доступность таблиц зависит от конкретной конфигурации docker-compose и скриптов загрузки демонстрационных данных.
:::
-
### Подключение к локальному REST-каталогу {#connecting-to-local-rest-catalog}
Подключитесь к своему контейнеру с ClickHouse:
@@ -111,7 +109,6 @@ SETTINGS
warehouse = 'demo'
```
-
## Выполнение запросов к таблицам REST‑каталога с помощью ClickHouse {#querying-rest-catalog-tables-using-clickhouse}
Теперь, когда соединение установлено, вы можете начинать выполнять запросы через REST‑каталог. Например:
@@ -195,7 +192,6 @@ SHOW CREATE TABLE `default.taxis`;
└───────────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## Загрузка данных из вашего озера данных (Data Lake) в ClickHouse {#loading-data-from-your-data-lake-into-clickhouse}
Если вам нужно загрузить данные из каталога REST в ClickHouse, сначала создайте локальную таблицу ClickHouse:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/unity_catalog.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/unity_catalog.md
index 080f699d2a1..b2e8156f310 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/unity_catalog.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/data_lake/unity_catalog.md
@@ -29,7 +29,6 @@ Databricks поддерживает несколько форматов данн
`SET allow_experimental_database_unity_catalog = 1;`
:::
-
## Настройка Unity в Databricks {#configuring-unity-in-databricks}
Чтобы разрешить ClickHouse взаимодействовать с каталогом Unity, необходимо убедиться, что Unity Catalog настроен на взаимодействие с внешним клиентом. Этого можно добиться, следуя руководству ["Enable external data access to Unity Catalog"](https://docs.databricks.com/aws/en/external-access/admin).
@@ -54,7 +53,6 @@ ENGINE = DataLakeCatalog('https://.cloud.databricks.com/api/2.1/un
SETTINGS warehouse = 'CATALOG_NAME', catalog_credential = '', catalog_type = 'unity'
```
-
### Чтение данных из Iceberg {#read-iceberg}
```sql
@@ -64,7 +62,6 @@ SETTINGS catalog_type = 'rest', catalog_credential = ':);
```
-
## Загрузка данных из озера данных в ClickHouse {#loading-data-from-your-data-lake-into-clickhouse}
Если вам нужно загрузить данные из Databricks в ClickHouse, начните с создания локальной таблицы ClickHouse:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/grafana.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/grafana.md
index e08ae6358d4..7ba5ed1bf85 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/grafana.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/grafana.md
@@ -19,7 +19,6 @@ import observability_23 from '@site/static/images/use-cases/observability/observ
import observability_24 from '@site/static/images/use-cases/observability/observability-24.png';
import Image from '@theme/IdealImage';
-
# Использование Grafana и ClickHouse для Observability {#using-grafana-and-clickhouse-for-observability}
Grafana является предпочтительным инструментом визуализации данных Observability в ClickHouse. Это достигается с помощью официального плагина ClickHouse для Grafana. Пользователи могут следовать инструкциям по установке, приведённым [здесь](/integrations/grafana).
@@ -55,7 +54,6 @@ SELECT Timestamp as timestamp, Body as body, SeverityText as level, TraceId as t
Конструктор запросов предоставляет простой способ изменения запроса, избавляя пользователей от необходимости писать SQL. Фильтрацию, включая поиск логов, содержащих ключевые слова, можно выполнять прямо в конструкторе запросов. Пользователи, которым нужно писать более сложные запросы, могут переключиться в SQL-редактор. Если возвращаются необходимые столбцы и `logs` выбрано в качестве типа запроса (Query Type), результаты будут отображаться как логи. Требуемые столбцы для отображения логов перечислены [здесь](https://grafana.com/developers/plugin-tools/tutorials/build-a-logs-data-source-plugin#logs-data-frame-format).
-
### Переход от логов к трассам {#logs-to-traces}
Если логи содержат идентификаторы трассировок (trace IDs), пользователи могут переходить к соответствующей трассе для конкретной строки лога.
@@ -85,7 +83,6 @@ WHERE ( Timestamp >= $__fromTime AND Timestamp <= $__toTime )
Пользователи, желающие писать более сложные запросы, могут переключиться на `SQL Editor`.
-
### Просмотр деталей трейса {#view-trace-details}
Как показано выше, идентификаторы трейсов (Trace ID) отображаются как ссылки, по которым можно перейти. При нажатии на идентификатор трейса пользователь может выбрать просмотр связанных спанов по ссылке `View Trace`. При этом выполняется следующий запрос (при условии использования столбцов OTel) для получения спанов в требуемой структуре и отображения результата в виде диаграммы водопада.
@@ -120,7 +117,6 @@ LIMIT 1000
-
### Переход от трейсов к логам {#traces-to-logs}
Если логи содержат идентификаторы трассировки (trace_id), пользователи могут переходить от трейса к связанным с ним логам. Чтобы просмотреть логи, нажмите на trace_id и выберите `View Logs`. Будет выполнен следующий запрос при условии использования стандартных столбцов OTel.
@@ -135,7 +131,6 @@ ORDER BY timestamp ASC LIMIT 1000
-
## Дашборды {#dashboards}
Пользователи могут создавать дашборды в Grafana, используя источник данных ClickHouse. Мы рекомендуем [документацию по источнику данных для Grafana и ClickHouse](https://github.com/grafana/clickhouse-datasource) для получения дополнительной информации, в частности разделы о [макросах](https://github.com/grafana/clickhouse-datasource?tab=readme-ov-file#macros) и [переменных](https://grafana.com/docs/grafana/latest/dashboards/variables/).
@@ -165,7 +160,6 @@ LIMIT 100000
-
### Многолинейные графики {#multi-line-charts}
Многолинейные графики будут автоматически построены для запроса, если соблюдаются следующие условия:
@@ -191,7 +185,6 @@ LIMIT 100000
-
### Визуализация геоданных {#visualizing-geo-data}
Ранее мы рассмотрели обогащение данных наблюдаемости геокоординатами с использованием IP-словарей. Предположим, у вас есть столбцы `latitude` и `longitude`; тогда данные наблюдаемости можно визуализировать с помощью функции `geohashEncode`. Она формирует геохэши, совместимые с диаграммой Geo Map в Grafana. Ниже приведены пример запроса и его визуализация:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/integrating-opentelemetry.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/integrating-opentelemetry.md
index 770fe86e6c7..2ad5ac0ba3f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/integrating-opentelemetry.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/integrating-opentelemetry.md
@@ -16,7 +16,6 @@ import observability_8 from '@site/static/images/use-cases/observability/observa
import observability_9 from '@site/static/images/use-cases/observability/observability-9.png';
import Image from '@theme/IdealImage';
-
# Интеграция OpenTelemetry для сбора данных {#integrating-opentelemetry-for-data-collection}
Любому решению в области наблюдаемости необходим механизм сбора и экспорта логов и трассировок. Для этой цели ClickHouse рекомендует [проект OpenTelemetry (OTel)](https://opentelemetry.io/).
@@ -111,7 +110,6 @@ OpenTelemetry состоит из ряда компонентов. Помимо
Мы рекомендуем использовать структурированное логирование и по возможности записывать логи в формате JSON (например, ndjson). Это упростит необходимую последующую обработку логов — либо до отправки в ClickHouse с помощью [Collector processors](https://opentelemetry.io/docs/collector/configuration/#processors), либо на этапе вставки с использованием материализованных представлений. Структурированные логи в конечном итоге сократят объем последующей обработки и снизят требуемое потребление CPU в вашем решении на базе ClickHouse.
-
### Пример {#example}
В качестве примера мы предоставляем наборы данных с логами в структурированном (JSON) и неструктурированном виде, каждый примерно по 10 млн строк, доступные по следующим ссылкам:
@@ -165,7 +163,6 @@ service:
При использовании структурированных логов сообщения на выходе будут иметь следующий вид:
-
```response
LogRecord #98
ObservedTimestamp: 2024-06-19 13:21:16.414259 +0000 UTC
@@ -205,7 +202,6 @@ Flags: 0
Пользователям, которым необходимо собирать локальные файлы логов или логи Kubernetes, мы рекомендуем ознакомиться с параметрами конфигурации, доступными для [filelog receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/filelogreceiver/README.md#configuration), а также с тем, как реализованы [отслеживание смещений (offsets)](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver#offset-tracking) и [обработка многострочных логов](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver#example---multiline-logs-parsing).
-
## Сбор логов Kubernetes {#collecting-kubernetes-logs}
Для сбора логов Kubernetes мы рекомендуем [руководство по Kubernetes в документации OpenTelemetry](https://opentelemetry.io/docs/kubernetes/). Для обогащения логов и метрик метаданными подов рекомендуется использовать [Kubernetes Attributes Processor](https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-attributes-processor). Это может приводить к появлению динамических метаданных, например меток, которые хранятся в столбце `ResourceAttributes`. В настоящее время ClickHouse использует тип `Map(String, String)` для этого столбца. Дополнительные сведения по обработке и оптимизации этого типа см. в разделах [Использование Map](/use-cases/observability/schema-design#using-maps) и [Извлечение из Map](/use-cases/observability/schema-design#extracting-from-maps).
@@ -278,7 +274,6 @@ $GOBIN/telemetrygen traces --otlp-insecure --traces 300
Полная схема сообщений трассировки представлена [здесь](https://opentelemetry.io/docs/concepts/signals/traces/). Настоятельно рекомендуем ознакомиться с этой схемой.
-
## Обработка — фильтрация, преобразование и обогащение {#processing---filtering-transforming-and-enriching}
Как было показано в предыдущем примере с установкой временной метки для события лога, пользователям, как правило, требуется фильтровать, преобразовывать и обогащать сообщения о событиях. Это можно сделать с помощью ряда возможностей в OpenTelemetry:
@@ -339,7 +334,6 @@ service:
./otelcol-contrib --config config-unstructured-logs-with-processor.yaml
```
-
## Экспорт в ClickHouse {#exporting-to-clickhouse}
Экспортеры отправляют данные в один или несколько бэкендов или целевых назначений. Экспортеры могут работать по pull- или push-модели. Чтобы отправлять события в ClickHouse, пользователям необходимо использовать push-экспортер [ClickHouse exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/clickhouseexporter/README.md).
@@ -402,7 +396,6 @@ service:
Обратите внимание на следующие важные настройки:
-
* **pipelines** - Конфигурация выше демонстрирует использование [pipelines](https://opentelemetry.io/docs/collector/configuration/#pipelines), состоящих из набора receivers, processors и exporters, с отдельным конвейером для логов (logs) и трассировок (traces).
* **endpoint** - Взаимодействие с ClickHouse настраивается с помощью параметра `endpoint`. Строка подключения `tcp://localhost:9000?dial_timeout=10s&compress=lz4&async_insert=1` обеспечивает обмен по протоколу TCP. Если пользователи предпочитают HTTP по причинам, связанным с маршрутизацией трафика, измените эту строку подключения, как описано [здесь](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/clickhouseexporter/README.md#configuration-options). Полные детали подключения, включая возможность указать имя пользователя и пароль в этой строке подключения, описаны [здесь](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/clickhouseexporter/README.md#configuration-options).
@@ -430,7 +423,6 @@ $GOBIN/telemetrygen traces --otlp-insecure --traces 300
После запуска убедитесь, что в журнале появились записи логов, выполнив простой запрос:
-
```sql
SELECT *
FROM otel_logs
@@ -491,7 +483,6 @@ Links.TraceState: []
Links.Attributes: []
```
-
## Базовая схема {#out-of-the-box-schema}
По умолчанию экспортер ClickHouse создаёт целевую таблицу для журналов, которая используется как для логов, так и для трейсов. Это можно отключить с помощью параметра `create_schema`. Кроме того, имена таблиц для логов и трейсов, по умолчанию `otel_logs` и `otel_traces`, можно изменить через указанные выше настройки.
@@ -540,7 +531,6 @@ SETTINGS ttl_only_drop_parts = 1
Несколько важных замечаний по этой схеме:
-
- По умолчанию таблица разбивается на партиции по дате с помощью `PARTITION BY toDate(Timestamp)`. Это делает удаление устаревших данных эффективным.
- `TTL` задаётся через `TTL toDateTime(Timestamp) + toIntervalDay(3)` и соответствует значению, заданному в конфигурации коллектора. [`ttl_only_drop_parts=1`](/operations/settings/merge-tree-settings#ttl_only_drop_parts) означает, что удаляются только целые части, когда все строки в них устарели. Это эффективнее, чем удаление строк внутри частей, которое приводит к дорогостоящей операции удаления. Мы рекомендуем всегда устанавливать этот параметр. См. раздел [Управление данными с помощью TTL](/observability/managing-data#data-management-with-ttl-time-to-live) для получения дополнительной информации.
- Таблица использует классический движок [`MergeTree`](/engines/table-engines/mergetree-family/mergetree). Он рекомендован для логов и трейсов и, как правило, не требует изменения.
@@ -593,7 +583,6 @@ SETTINGS ttl_only_drop_parts = 1
Мы рекомендуем пользователям отключить автоматическое создание схемы и создавать таблицы вручную. Это позволяет изменять первичные и вторичные ключи, а также даёт возможность добавлять дополнительные столбцы для оптимизации производительности запросов. Для получения дополнительной информации см. раздел [Schema design](/use-cases/observability/schema-design).
-
## Оптимизация вставок {#optimizing-inserts}
Чтобы обеспечить высокую производительность вставки при сохранении строгих гарантий согласованности, пользователям следует придерживаться простых правил при вставке данных Observability в ClickHouse через коллектор. При корректной конфигурации OTel collector соблюдение следующих правил не должно вызывать затруднений. Это также позволяет избежать [типичных проблем](https://clickhouse.com/blog/common-getting-started-issues-with-clickhouse), с которыми пользователи сталкиваются при первом использовании ClickHouse.
@@ -692,7 +681,6 @@ service:
exporters: [otlp]
```
-
[clickhouse-gateway-config.yaml](https://www.otelbin.io/#config=receivers%3A*N__otlp%3A*N____protocols%3A*N____grpc%3A*N____endpoint%3A_0.0.0.0%3A4317*N*Nprocessors%3A*N__batch%3A*N____timeout%3A_5s*N____send*_batch*_size%3A_10000*N*Nexporters%3A*N__clickhouse%3A*N____endpoint%3A_tcp%3A%2F%2Flocalhost%3A9000*Qdial*_timeout*E10s*Acompress*Elz4*N____ttl%3A_96h*N____traces*_table*_name%3A_otel*_traces*N____logs*_table*_name%3A_otel*_logs*N____create*_schema%3A_true*N____timeout%3A_10s*N____database%3A_default*N____sending*_queue%3A*N____queue*_size%3A_10000*N____retry*_on*_failure%3A*N____enabled%3A_true*N____initial*_interval%3A_5s*N____max*_interval%3A_30s*N____max*_elapsed*_time%3A_300s*N*Nservice%3A*N__pipelines%3A*N____logs%3A*N______receivers%3A_%5Botlp%5D*N______processors%3A_%5Bbatch%5D*N______exporters%3A_%5Bclickhouse%5D%7E\&distro=otelcol-contrib%7E\&distroVersion=v0.103.1%7E)
```yaml
@@ -740,7 +728,6 @@ service:
В качестве примера управления более крупными архитектурами на основе шлюзов и связанных с этим уроков мы рекомендуем этот [блог‑пост](https://clickhouse.com/blog/building-a-logging-platform-with-clickhouse-and-saving-millions-over-datadog).
-
### Добавление Kafka {#adding-kafka}
Читатели могут заметить, что приведённые выше архитектуры не используют Kafka в качестве очереди сообщений.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/introduction.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/introduction.md
index d8b3c15537a..0e22f4d34b7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/introduction.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/introduction.md
@@ -11,7 +11,6 @@ import observability_1 from '@site/static/images/use-cases/observability/observa
import observability_2 from '@site/static/images/use-cases/observability/observability-2.png';
import Image from '@theme/IdealImage';
-
# Использование ClickHouse для обеспечения наблюдаемости {#using-clickhouse-for-observability}
## Введение {#introduction}
@@ -86,7 +85,6 @@ import Image from '@theme/IdealImage';
Хотя ClickHouse может использоваться для хранения данных метрик, это направление в ClickHouse развито менее полно; ожидается поддержка таких возможностей, как формат данных Prometheus и язык запросов PromQL.
:::
-
### Распределённая трассировка {#distributed-tracing}
Распределённая трассировка — критически важная составляющая наблюдаемости. Распределённая трассировка, или просто трейс, отображает путь запроса через систему. Запрос может исходить от конечного пользователя или приложения и распространяться по системе, как правило приводя к последовательности действий между микросервисами. Записывая эту последовательность и позволяя коррелировать последующие события, трассировка даёт пользователю системы наблюдаемости или SRE возможность диагностировать проблемы в потоке обработки приложения независимо от того, насколько сложна архитектура или насколько активно используются serverless-компоненты.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/managing-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/managing-data.md
index fceda76cc06..793798f56c6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/managing-data.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/managing-data.md
@@ -10,7 +10,6 @@ doc_type: 'guide'
import observability_14 from '@site/static/images/use-cases/observability/observability-14.png';
import Image from '@theme/IdealImage';
-
# Управление данными {#managing-data}
Развертывания ClickHouse для задач наблюдаемости неизбежно связаны с большими объемами данных, которыми необходимо управлять. ClickHouse предлагает ряд возможностей для управления такими данными.
@@ -78,7 +77,6 @@ WHERE `table` = 'otel_logs'
У нас может быть дополнительная таблица `otel_logs_archive`, которую мы используем для хранения более старых данных. Данные могут быть эффективно перемещены в эту таблицу по разделам (это всего лишь изменение метаданных).
-
```sql
CREATE TABLE otel_logs_archive AS otel_logs
--перемещаем данные в архивную таблицу
@@ -145,7 +143,6 @@ ORDER BY c DESC
Эта возможность используется механизмом TTL при включении настройки [`ttl_only_drop_parts=1`](/operations/settings/merge-tree-settings#ttl_only_drop_parts). Дополнительную информацию см. в разделе [Управление данными с помощью TTL](#data-management-with-ttl-time-to-live).
:::
-
### Применения {#applications}
Выше показано, как данные могут эффективно перемещаться и обрабатываться на уровне партиций. На практике пользователи чаще всего будут использовать операции с партициями в сценариях наблюдаемости в двух случаях:
@@ -193,7 +190,6 @@ TTLs применяются не сразу, а по расписанию, ка
**Важно: мы рекомендуем использовать настройку [`ttl_only_drop_parts=1`](/operations/settings/merge-tree-settings#ttl_only_drop_parts) ** (применяется в схеме по умолчанию). Когда эта настройка включена, ClickHouse удаляет целую часть, если все строки в ней имеют истёкший TTL. Удаление целых частей вместо частичной очистки строк с истёкшим TTL (достигаемой с помощью ресурсоёмких мутаций при `ttl_only_drop_parts=0`) позволяет использовать меньшие значения `merge_with_ttl_timeout` и снижать влияние на производительность системы. Если данные разбиваются на партиции по той же единице, по которой у вас настроено истечение TTL, например по дням, части естественным образом будут содержать данные только из заданного интервала. Это гарантирует, что `ttl_only_drop_parts=1` может эффективно применяться.
-
### TTL на уровне столбца {#column-level-ttl}
В приведённом выше примере срок жизни задаётся на уровне таблицы. Пользователи также могут задавать срок жизни данных на уровне столбца. По мере устаревания данных это можно использовать для удаления столбцов, ценность которых для расследований не оправдывает ресурсных затрат на их хранение. Например, мы рекомендуем сохранять столбец `Body` на случай, если будут добавлены новые динамические метаданные, которые не были извлечены во время вставки, например новая метка Kubernetes. После некоторого периода, например одного месяца, может стать очевидно, что эти дополнительные метаданные не полезны — и, следовательно, нет смысла продолжать хранить столбец `Body`.
@@ -215,7 +211,6 @@ ORDER BY (ServiceName, Timestamp)
Указание TTL на уровне столбца требует от пользователей самостоятельного определения собственной схемы. Это нельзя настроить в OTel collector.
:::
-
## Повторное сжатие данных {#recompressing-data}
Хотя для наборов данных наблюдаемости мы обычно рекомендуем `ZSTD(1)`, пользователи могут экспериментировать с другими алгоритмами сжатия или более высокими уровнями сжатия, например `ZSTD(3)`. Помимо возможности указать это при создании схемы, сжатие можно настроить так, чтобы оно изменялось по истечении заданного периода времени. Это может быть целесообразно, если кодек или алгоритм сжатия обеспечивает более высокую степень сжатия, но ухудшает производительность запросов. Такой компромисс может быть приемлем для более старых данных, к которым обращаются реже, но не для свежих данных, которые используются чаще, в том числе при расследованиях инцидентов.
@@ -254,7 +249,6 @@ TTL Timestamp + INTERVAL 4 DAY RECOMPRESS CODEC(ZSTD(3))
Дополнительные сведения и примеры по настройке TTL см. [здесь](/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes). Примеры добавления и изменения TTL для таблиц и столбцов приведены [здесь](/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). О том, как TTL позволяет реализовывать иерархии хранилища, такие как архитектуры hot‑warm, см. раздел [Уровни хранилища](#storage-tiers).
-
## Уровни хранения {#storage-tiers}
В ClickHouse пользователи могут создавать уровни хранения на разных дисках, например «горячие»/недавние данные на SSD и более старые данные в S3. Такая архитектура позволяет использовать более дешевое хранилище для старых данных, для которых допустимы более высокие SLA по запросам из‑за их редкого использования при расследованиях.
@@ -351,7 +345,6 @@ LIMIT 5
Чтобы обеспечить запись этого значения для всех будущих данных, мы можем изменить наше материализованное представление с помощью синтаксиса `ALTER TABLE`, как показано ниже:
-
```sql
ALTER TABLE otel_logs_mv
MODIFY QUERY
@@ -378,7 +371,6 @@ FROM otel_logs
Для последующих строк значение в столбце `Size` будет заполняться в момент вставки.
-
### Создание новых таблиц {#create-new-tables}
В качестве альтернативы описанному выше процессу пользователи могут просто создать новую целевую таблицу с новой схемой. Любые материализованные представления затем можно изменить так, чтобы они использовали эту новую таблицу, с помощью вышеупомянутой команды `ALTER TABLE MODIFY QUERY`. При таком подходе пользователи могут версионировать свои таблицы, например `otel_logs_v3`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md
index 89c1a88be99..024939349d5 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md
@@ -13,7 +13,6 @@ import observability_12 from '@site/static/images/use-cases/observability/observ
import observability_13 from '@site/static/images/use-cases/observability/observability-13.png';
import Image from '@theme/IdealImage';
-
# Проектирование схемы для наблюдаемости {#designing-a-schema-for-observability}
Мы рекомендуем пользователям всегда создавать собственную схему для логов и трейсов по следующим причинам:
@@ -82,7 +81,6 @@ LIMIT 5
В целом мы рекомендуем выполнять разбор JSON в ClickHouse для структурированных логов. Мы уверены, что ClickHouse обеспечивает самое быстрое выполнение разбора JSON. Однако мы понимаем, что пользователи могут хотеть отправлять логи в другие системы и не реализовывать эту логику в SQL.
:::
-
```sql
SELECT path(JSONExtractString(Body, 'request_path')) AS path, count() AS c
FROM otel_logs
@@ -156,7 +154,6 @@ LIMIT 5
Пользователи также могут выполнять обработку с использованием процессоров и операторов OTel collector, как описано [здесь](/observability/integrating-opentelemetry#processing---filtering-transforming-and-enriching). В большинстве случаев пользователи увидят, что ClickHouse значительно эффективнее по использованию ресурсов и быстрее, чем процессоры OTel collector. Основной недостаток выполнения всей обработки событий с помощью SQL — это привязка вашего решения к ClickHouse. Например, пользователи могут захотеть отправлять обработанные логи из OTel collector в другие системы, например в S3.
:::
-
### Материализованные столбцы {#materialized-columns}
Материализованные столбцы являются самым простым способом извлечь структуру из других столбцов. Значения таких столбцов всегда вычисляются во время вставки и не могут быть указаны в запросах INSERT.
@@ -224,7 +221,6 @@ LIMIT 5
Материализованные столбцы по умолчанию не возвращаются в результате `SELECT *`. Это необходимо для сохранения свойства, что результат `SELECT *` всегда можно вставить обратно в таблицу с помощью команды INSERT. Такое поведение можно отключить, установив `asterisk_include_materialized_columns=1`, а также включить в Grafana (см. `Additional Settings -> Custom Settings` в конфигурации источника данных).
:::
-
## Материализованные представления {#materialized-views}
[Материализованные представления](/materialized-views) предоставляют более мощный способ применения SQL-фильтрации и преобразований к логам и трейсам.
@@ -268,7 +264,6 @@ CREATE TABLE otel_logs
Рассмотрим следующий запрос. Он преобразует строки в нужный нам формат, извлекая все столбцы из `LogAttributes` (предполагаем, что они заполняются коллектором с использованием оператора `json_parser`), а также устанавливая `SeverityText` и `SeverityNumber` (на основе некоторых простых условий и определения [этих столбцов](https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitytext)). В данном случае мы также выбираем только те столбцы, про которые знаем, что они будут заполнены, игнорируя такие столбцы, как `TraceId`, `SpanId` и `TraceFlags`.
-
```sql
SELECT
Body,
@@ -354,7 +349,6 @@ ORDER BY (ServiceName, Timestamp)
Обратите внимание, насколько сильно мы изменили нашу схему. На практике у пользователей, вероятно, также будут столбцы трассировок (Trace), которые они захотят сохранить, а также столбец `ResourceAttributes` (обычно он содержит метаданные Kubernetes). Grafana может использовать столбцы трассировок для связывания логов и трассировок — см. ["Using Grafana"](/observability/grafana).
:::
-
Ниже мы создаём материализованное представление `otel_logs_mv`, которое выполняет указанную выше выборку для таблицы `otel_logs` и отправляет результаты в `otel_logs_v2`.
```sql
@@ -417,7 +411,6 @@ SeverityNumber: 9
Эквивалентное материализованное представление, которое опирается на извлечение столбцов из колонки `Body` с помощью JSON-функций, показано ниже:
-
```sql
CREATE MATERIALIZED VIEW otel_logs_mv TO otel_logs_v2 AS
SELECT Body,
@@ -440,7 +433,6 @@ SELECT Body,
FROM otel_logs
```
-
### Осторожно с типами {#beware-types}
Вышеописанные материализованные представления опираются на неявное приведение типов — особенно при использовании map `LogAttributes`. ClickHouse часто прозрачно приводит извлечённое значение к типу целевой таблицы, сокращая необходимый синтаксис. Однако мы рекомендуем всегда тестировать представления, выполняя их оператор `SELECT` совместно с оператором [`INSERT INTO`](/sql-reference/statements/insert-into) в целевую таблицу с той же схемой. Это позволит убедиться, что типы обрабатываются корректно. Особое внимание следует уделить следующим случаям:
@@ -495,7 +487,6 @@ groupArrayDistinctArray(mapKeys(LogAttributes)): ['remote_user','run_time','requ
Мы не рекомендуем использовать точки в именах столбцов Map и в дальнейшем можем признать такое использование устаревшим. Используйте `_`.
:::
-
## Использование алиасов {#using-aliases}
Запросы к типам `Map` выполняются медленнее, чем к обычным столбцам — см. раздел ["Ускорение запросов"](#accelerating-queries). Кроме того, синтаксис таких запросов более сложен и может быть неудобен для пользователей. Чтобы решить последнюю проблему, мы рекомендуем использовать столбцы типа `ALIAS`.
@@ -573,7 +564,6 @@ LIMIT 5
По умолчанию `SELECT *` исключает столбцы типа ALIAS. Это поведение можно изменить, установив `asterisk_include_alias_columns=1`.
:::
-
## Оптимизация типов {#optimizing-types}
[Общие рекомендации ClickHouse](/data-modeling/schema-design#optimizing-types) по оптимизации типов также относятся к данному сценарию использования ClickHouse.
@@ -694,7 +684,6 @@ LIMIT 4;
Получено 4 строки. Прошло: 0.259 сек.
```
-
:::note
В приведённом выше запросе происходит много всего. Тем, кому интересно, рекомендуется прочитать это отличное [объяснение](https://clickhouse.com/blog/geolocating-ips-in-clickhouse-and-grafana#using-bit-functions-to-convert-ip-ranges-to-cidr-notation). Иначе просто считайте, что выше вычисляется CIDR для диапазона IP-адресов.
:::
@@ -775,7 +764,6 @@ SELECT dictGet('ip_trie', ('country_code', 'latitude', 'longitude'), CAST('85.24
Возвращаясь к нашему исходному набору логов, мы можем использовать описанное выше, чтобы агрегировать логи по странам. Далее предполагается, что мы используем схему, полученную из нашего ранее созданного материализованного представления, в которой есть извлечённый столбец `RemoteAddress`.
-
```sql
SELECT dictGet('ip_trie', 'country_code', tuple(RemoteAddress)) AS country,
formatReadableQuantity(count()) AS num_requests
@@ -833,7 +821,6 @@ ORDER BY (ServiceName, Timestamp)
Указанные выше страны и координаты предоставляют возможности визуализации, выходящие за рамки простой группировки и фильтрации по стране. В качестве примера см. раздел ["Визуализация геоданных"](/observability/grafana#visualizing-geo-data).
-
### Использование regex-словарей (разбор user agent) {#using-regex-dictionaries-user-agent-parsing}
Разбор [строк user agent](https://en.wikipedia.org/wiki/User_agent) — это классическая задача для регулярных выражений и распространённое требование для наборов данных, основанных на логах и трассировках. ClickHouse предоставляет эффективный разбор строк user agent с использованием Regular Expression Tree Dictionaries.
@@ -929,7 +916,6 @@ LAYOUT(regexp_tree);
После загрузки словарей мы можем задать пример значения заголовка User-Agent и протестировать новые возможности извлечения данных с их помощью:
-
```sql
WITH 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:127.0) Gecko/20100101 Firefox/127.0' AS user_agent
SELECT
@@ -1006,7 +992,6 @@ ORDER BY (ServiceName, Timestamp, Status)
После перезапуска коллектора и приёма структурированных логов на основе ранее описанных шагов мы можем выполнять запросы к только что извлечённым столбцам Device, Browser и Os.
-
```sql
SELECT Device, Browser, Os
FROM otel_logs_v2
@@ -1024,7 +1009,6 @@ Os: ('Other','0','0','0')
Обратите внимание на использование кортежей для этих столбцов user agent. Кортежи рекомендуются для сложных структур, иерархия которых известна заранее. Подстолбцы обеспечивают ту же производительность, что и обычные столбцы (в отличие от ключей `Map`), при этом поддерживают неоднородные типы данных.
:::
-
### Дополнительные материалы {#further-reading}
Дополнительные примеры и подробности о словарях вы найдете в следующих статьях:
@@ -1111,7 +1095,6 @@ FINAL
1 row in set. Elapsed: 0.039 sec.
```
-
Мы фактически сократили количество строк здесь с 10 млн (в `otel_logs`) до 113, сохранив результат нашего запроса. Важно, что если в таблицу `otel_logs` вставляются новые логи, новые значения будут отправлены в `bytes_per_hour` для соответствующего часа, где они будут автоматически асинхронно объединяться в фоновом режиме — за счёт хранения только одной строки в час `bytes_per_hour` таким образом всегда будет и небольшой, и актуальной.
Поскольку объединение строк выполняется асинхронно, при выполнении запроса пользователем может существовать более одной строки на час. Чтобы гарантировать, что все необъединённые строки будут объединены во время выполнения запроса, у нас есть два варианта:
@@ -1165,7 +1148,6 @@ LIMIT 5
Выигрыш может быть ещё больше на больших наборах данных с более сложными запросами. Примеры см. [здесь](https://github.com/ClickHouse/clickpy).
:::
-
#### Более сложный пример {#a-more-complex-example}
Приведённый выше пример агрегирует простое количество в час, используя [SummingMergeTree](/engines/table-engines/mergetree-family/summingmergetree). Статистика, выходящая за рамки простых сумм, требует другого движка целевой таблицы: [AggregatingMergeTree](/engines/table-engines/mergetree-family/aggregatingmergetree).
@@ -1244,7 +1226,6 @@ ORDER BY Hour DESC
Обратите внимание, что здесь мы используем `GROUP BY` вместо `FINAL`.
-
### Использование материализованных представлений (инкрементальных) для быстрых выборок {#using-materialized-views-incremental--for-fast-lookups}
Пользователям следует учитывать свои шаблоны доступа при выборе ключа сортировки ClickHouse — включать в него столбцы, которые часто используются в условиях фильтрации и агрегации. Это может быть ограничивающим фактором в сценариях наблюдаемости, где у пользователей более разнообразные шаблоны доступа, которые невозможно выразить одним набором столбцов. Лучше всего это иллюстрируется на примере, встроенном в стандартные схемы OTel. Рассмотрим схему по умолчанию для трассировок:
@@ -1316,7 +1297,6 @@ WHERE TraceId != ''
GROUP BY TraceId
```
-
Представление по сути гарантирует, что таблица `otel_traces_trace_id_ts` содержит минимальную и максимальную метку времени для каждого трейса. Эта таблица, упорядоченная по `TraceId`, позволяет эффективно извлекать эти метки времени. В свою очередь, эти диапазоны меток времени могут использоваться при выполнении запросов к основной таблице `otel_traces`. Конкретнее, при получении трейса по его идентификатору Grafana использует следующий запрос:
```sql
@@ -1350,7 +1330,6 @@ LIMIT 1000
Тот же подход можно применить для похожих паттернов доступа. Аналогичный пример по моделированию данных разбирается [здесь](/materialized-view/incremental-materialized-view#lookup-table).
-
### Использование проекций {#using-projections}
Проекции ClickHouse позволяют указать несколько предложений `ORDER BY` для таблицы.
@@ -1460,7 +1439,6 @@ FORMAT `Null`
В приведённом выше примере мы указываем в проекции столбцы, использованные в предыдущем запросе. Это означает, что только эти столбцы будут храниться на диске как часть проекции и будут упорядочены по Status. Если бы мы вместо этого использовали здесь `SELECT *`, сохранялись бы все столбцы. Хотя это позволило бы большему числу запросов (использующих любые подмножества столбцов) воспользоваться проекцией, потребовалось бы дополнительное дисковое пространство. Для измерения занимаемого дискового пространства и степени сжатия см. ["Measuring table size & compression"](#measuring-table-size--compression).
-
### Вторичные индексы / индексы пропуска данных {#secondarydata-skipping-indices}
Независимо от того, насколько хорошо настроен первичный ключ в ClickHouse, некоторые запросы неизбежно будут требовать полного сканирования таблицы. Хотя необходимость таких сканирований можно снизить с помощью материализованных представлений (и проекций для некоторых запросов), они требуют дополнительного обслуживания, а пользователи должны знать об их наличии, чтобы эффективно их использовать. В то время как традиционные реляционные базы данных решают эту задачу с помощью вторичных индексов, в колоночных базах данных, таких как ClickHouse, они неэффективны. Вместо этого ClickHouse использует индексы пропуска данных (skip indexes), которые могут существенно повысить производительность запросов, позволяя базе данных пропускать крупные блоки данных без подходящих значений.
@@ -1616,7 +1594,6 @@ WHERE Referer LIKE '%ultra%'
Фильтр Блума обычно будет быстрее только в том случае, если он меньше самого столбца. Если он больше, выигрыш в производительности, скорее всего, будет незначительным. Сравните размер фильтра с размером столбца, используя следующие запросы:
-
```sql
SELECT
name,
@@ -1654,7 +1631,6 @@ WHERE `table` = 'otel_logs_bloom'
Дополнительные сведения о вторичных пропускающих индексах можно найти [здесь](/optimize/skipping-indexes#skip-index-functions).
-
### Извлечение из типов Map {#extracting-from-maps}
Тип Map широко используется в схемах OTel. Для этого типа требуется, чтобы значения и ключи имели один и тот же тип — этого достаточно для метаданных, таких как метки Kubernetes. Имейте в виду, что при запросе подключа типа Map загружается весь родительский столбец. Если Map содержит много ключей, это может привести к существенному снижению производительности запроса, поскольку с диска нужно прочитать больше данных, чем если бы ключ существовал как отдельный столбец.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/config.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/config.md
index 1428c759603..3d1668cc3b8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/config.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/config.md
@@ -14,15 +14,14 @@ import hyperdx_26 from '@site/static/images/use-cases/observability/hyperdx-26.p
Для каждого компонента ClickStack доступны следующие параметры конфигурации:
-
## Изменение настроек {#modifying-settings}
### Docker {#docker}
-Если вы используете [All in One](/use-cases/observability/clickstack/deployment/all-in-one), [HyperDX Only](/use-cases/observability/clickstack/deployment/hyperdx-only) или [Local Mode](/use-cases/observability/clickstack/deployment/local-mode-only), просто передайте нужное значение через переменную окружения, например:
+Если вы используете [All in One](/use-cases/observability/clickstack/deployment/all-in-one), [HyperDX Only](/use-cases/observability/clickstack/deployment/hyperdx-only) или [Local Mode](/use-cases/observability/clickstack/deployment/local-mode-only), просто передайте нужную настройку через переменную окружения, например:
```shell
-docker run -e HYPERDX_LOG_LEVEL='debug' -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one
+docker run -e HYPERDX_LOG_LEVEL='debug' -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
```
@@ -43,7 +42,6 @@ services:
# ... прочие настройки
```
-
### Helm {#helm}
#### Настройка параметров (необязательно) {#customizing-values}
@@ -97,7 +95,6 @@ ingress:
value: abc
```
-
## HyperDX {#hyperdx}
### Настройки источника данных {#datasource-settings}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/dashboards.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/dashboards.md
index bcc1a60da34..66529e0f431 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/dashboards.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/dashboards.md
@@ -31,7 +31,6 @@ ClickStack поддерживает визуализацию событий и
Визуализации могут создаваться на основе трассировок, метрик, логов или любых пользовательски определённых широких схем событий.
-
## Создание визуализаций {#creating-visualizations}
Интерфейс **Chart Explorer** в HyperDX позволяет визуализировать метрики, трейсы и логи во времени, что упрощает создание быстрых визуализаций для анализа данных. Этот интерфейс также используется при создании дашбордов. В следующем разделе пошагово разбирается процесс создания визуализации с помощью Chart Explorer.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/all-in-one.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/all-in-one.md
index 55ff2ca2cdd..f84908f43a7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/all-in-one.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/all-in-one.md
@@ -23,7 +23,6 @@ import hyperdx_logs from '@site/static/images/use-cases/observability/hyperdx-lo
Этот вариант поддерживает аутентификацию, что позволяет сохранять дашборды, оповещения и сохранённые поисковые запросы между сеансами и пользователями.
-
### Подходит для {#suitable-for}
* демонстраций
@@ -40,35 +39,39 @@ import hyperdx_logs from '@site/static/images/use-cases/observability/hyperdx-lo
Следующая команда запустит коллектор OpenTelemetry (на портах 4317 и 4318) и интерфейс HyperDX (на порту 8080).
```shell
-docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one
+docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
```
-### Перейдите к интерфейсу HyperDX {#navigate-to-hyperdx-ui}
+:::note Обновление имени образа
+Образы ClickStack теперь публикуются как `clickhouse/clickstack-*` (ранее `docker.hyperdx.io/hyperdx/*`).
+:::
+
+### Переход к интерфейсу HyperDX {#navigate-to-hyperdx-ui}
Перейдите по адресу [http://localhost:8080](http://localhost:8080), чтобы получить доступ к интерфейсу HyperDX.
-Создайте пользователя, указав имя пользователя и пароль, который соответствует требованиям.
+Создайте пользователя, указав имя и пароль, соответствующие требованиям.
-После нажатия `Create` будут созданы источники данных для интегрированного экземпляра ClickHouse.
+При нажатии кнопки `Create` будут созданы источники данных для встроенного экземпляра ClickHouse.
-Пример использования альтернативного экземпляра ClickHouse смотрите в разделе «[Создание подключения ClickHouse Cloud](/use-cases/observability/clickstack/getting-started#create-a-cloud-connection)».
+Пример использования другого экземпляра ClickHouse приведён в разделе ["Создание подключения ClickHouse Cloud"](/use-cases/observability/clickstack/getting-started#create-a-cloud-connection).
### Приём данных {#ingest-data}
-Инструкции по приёму данных смотрите в разделе «[Приём данных](/use-cases/observability/clickstack/ingesting-data)».
+Информацию о приёме данных см. в разделе ["Приём данных"](/use-cases/observability/clickstack/ingesting-data).
## Сохранение данных и настроек {#persisting-data-and-settings}
-Чтобы сохранять данные и настройки при перезапусках контейнера, пользователи могут изменить приведённую выше команду docker, чтобы смонтировать каталоги `/data/db`, `/var/lib/clickhouse` и `/var/log/clickhouse-server`. Например:
+Чтобы сохранять данные и настройки между перезапусками контейнера, пользователи могут изменить приведённую выше команду docker, чтобы смонтировать каталоги по путям `/data/db`, `/var/lib/clickhouse` и `/var/log/clickhouse-server`. Например:
```shell
-# убедитесь, что каталоги существуют {#ensure-directories-exist}
+# убедитесь, что каталоги существуют
mkdir -p .volumes/db .volumes/ch_data .volumes/ch_logs
-# измените команду для монтирования путей {#modify-command-to-mount-paths}
+# измените команду для монтирования путей
docker run \
-p 8080:8080 \
-p 4317:4317 \
@@ -76,7 +79,7 @@ docker run \
-v "$(pwd)/.volumes/db:/data/db" \
-v "$(pwd)/.volumes/ch_data:/var/lib/clickhouse" \
-v "$(pwd)/.volumes/ch_logs:/var/log/clickhouse-server" \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one
+ clickhouse/clickstack-all-in-one:latest
```
@@ -89,18 +92,18 @@ docker run \
## Настройка портов {#customizing-ports-deploy}
-Если вам нужно изменить порты приложения (8080) или API (8000), на которых работает HyperDX Local, вам потребуется изменить команду `docker run`, чтобы пробросить нужные порты и задать несколько переменных окружения.
+Если вам нужно изменить порты приложения (8080) или API (8000), на которых запущен HyperDX Local, необходимо скорректировать команду `docker run`, чтобы пробросить нужные порты и задать несколько переменных окружения.
-Порты OpenTelemetry настраиваются простым изменением флагов проброса портов. Например, можно заменить `-p 4318:4318` на `-p 4999:4318`, чтобы изменить HTTP-порт OpenTelemetry на 4999.
+Порты OpenTelemetry можно настроить, просто изменив флаги проброса портов. Например, замените `-p 4318:4318` на `-p 4999:4318`, чтобы изменить HTTP-порт OpenTelemetry на 4999.
```shell
-docker run -p 8080:8080 -p 4317:4317 -p 4999:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one
+docker run -p 8080:8080 -p 4317:4317 -p 4999:4318 clickhouse/clickstack-all-in-one:latest
```
## Использование ClickHouse Cloud {#using-clickhouse-cloud}
-Этот дистрибутив можно использовать с ClickHouse Cloud. При этом локальный экземпляр ClickHouse всё равно будет развёрнут, но использоваться не будет, а OTel collector можно настроить на работу с экземпляром ClickHouse Cloud с помощью переменных окружения `CLICKHOUSE_ENDPOINT`, `CLICKHOUSE_USER` и `CLICKHOUSE_PASSWORD`.
+Этот дистрибутив можно использовать с ClickHouse Cloud. Хотя локальный экземпляр ClickHouse по-прежнему будет развёрнут (и будет игнорироваться), OTel collector можно настроить на использование экземпляра ClickHouse Cloud с помощью переменных окружения `CLICKHOUSE_ENDPOINT`, `CLICKHOUSE_USER` и `CLICKHOUSE_PASSWORD`.
Например:
@@ -109,22 +112,22 @@ export CLICKHOUSE_ENDPOINT=
export CLICKHOUSE_USER=
export CLICKHOUSE_PASSWORD=
-docker run -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one
+docker run -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
```
`CLICKHOUSE_ENDPOINT` должен указывать на HTTPS-эндпоинт ClickHouse Cloud, включая порт `8443`, например: `https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443`
-После подключения к интерфейсу HyperDX перейдите в [`Team Settings`](http://localhost:8080/team) и создайте подключение к вашему сервису ClickHouse Cloud, а затем настройте необходимые источники. Пример последовательности действий см. [здесь](/use-cases/observability/clickstack/getting-started#create-a-cloud-connection).
+После подключения к интерфейсу HyperDX перейдите в [`Team Settings`](http://localhost:8080/team) и создайте подключение к вашему сервису ClickHouse Cloud, а затем добавьте необходимые источники. Пример последовательности действий см. [здесь](/use-cases/observability/clickstack/getting-started#create-a-cloud-connection).
-## Настройка OTel collector {#configuring-collector}
+## Настройка коллектора OTel {#configuring-collector}
-Конфигурацию OTel collector при необходимости можно изменить — см. раздел ["Изменение конфигурации OTel collector"](/use-cases/observability/clickstack/ingesting-data/otel-collector#modifying-otel-collector-configuration).
+При необходимости конфигурацию коллектора OTel можно изменить — см. раздел [«Изменение конфигурации»](/use-cases/observability/clickstack/ingesting-data/otel-collector#modifying-otel-collector-configuration).
Например:
```shell
-docker run -e OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' -e BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one
+docker run -e OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' -e BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
```
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/docker-compose.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/docker-compose.md
index 9af92b671ce..c15d8007dd4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/docker-compose.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/docker-compose.md
@@ -33,7 +33,6 @@ Docker Compose открывает дополнительные порты для
Эти порты обеспечивают интеграцию с широким набором источников телеметрии и делают коллектор OpenTelemetry готовым к промышленной эксплуатации для различных сценариев ингестии.
-
### Подходит для {#suitable-for}
* Локального тестирования
@@ -117,7 +116,6 @@ HYPERDX_OPAMP_PORT=4320
HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE=default
```
-
### Настройка коллектора OTel {#configuring-collector}
Конфигурацию коллектора OTel можно изменить при необходимости — см. раздел ["Изменение конфигурации"](/use-cases/observability/clickstack/ingesting-data/otel-collector#modifying-otel-collector-configuration).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-cloud.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-cloud.md
index 34f91fdbdae..bc7843a2089 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-cloud.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-cloud.md
@@ -34,7 +34,6 @@ helm install my-clickstack clickstack/clickstack \
--set otel.opampServerUrl="http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"
```
-
### Дополнительные соображения по GKE {#other-gke-considerations}
```yaml
@@ -53,7 +52,6 @@ clickhouse:
- "10.0.0.0/8" # Резервный вариант для других конфигураций
```
-
## Amazon EKS {#amazon-eks}
Для развертывания в EKS рассмотрите следующие распространённые конфигурации:
@@ -79,7 +77,6 @@ hyperdx:
enabled: true
```
-
## Azure AKS {#azure-aks}
Для развертывания в AKS:
@@ -97,7 +94,6 @@ clickhouse:
- "10.0.0.0/8"
```
-
## Контрольный список для продакшн-развертывания в облаке {#production-cloud-deployment-checklist}
Перед развертыванием ClickStack в продакшене у любого провайдера облачных услуг:
@@ -127,7 +123,6 @@ hyperdx:
memory: 4Gi
```
-
### Высокая доступность {#high-availability}
```yaml
@@ -148,7 +143,6 @@ hyperdx:
topologyKey: kubernetes.io/hostname
```
-
### Персистентное хранилище {#persistent-storage}
Убедитесь, что для хранения данных настроены персистентные тома.
@@ -167,7 +161,6 @@ clickhouse:
* **EKS**: `gp3` или `io2`
* **AKS**: `managed-premium` или `managed-csi`
-
### Примечания по совместимости с браузерами {#browser-compatibility-notes}
Для развертываний, работающих только по HTTP (разработка/тестирование), некоторые браузеры могут показывать ошибки криптографического API из‑за требований к защищённому контексту. Для продуктивных развертываний всегда используйте HTTPS с корректными TLS‑сертификатами, настроенными через конфигурацию входного шлюза.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-configuration.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-configuration.md
index 3cc6acc72e2..376b9c091a0 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-configuration.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-configuration.md
@@ -34,14 +34,12 @@ hyperdx:
helm upgrade my-clickstack clickstack/clickstack -f values.yaml
```
-
### Метод 2: Обновление через `helm upgrade` с флагом `--set` {#api-key-set-flag}
```shell
helm upgrade my-clickstack clickstack/clickstack --set hyperdx.apiKey="ваш-api-ключ-здесь"
```
-
### Перезапустите поды, чтобы применить изменения {#restart-pods}
После обновления ключа API перезапустите поды, чтобы применить новую конфигурацию:
@@ -54,7 +52,6 @@ kubectl rollout restart deployment my-clickstack-clickstack-app my-clickstack-cl
Чарт автоматически создаёт секрет Kubernetes (`-app-secrets`) с вашим API-ключом. Дополнительная настройка секрета не требуется, если вы не планируете использовать внешний секрет.
:::
-
## Управление секретами {#secret-management}
Для работы с конфиденциальными данными, такими как API-ключи или учетные данные для доступа к базе данных, используйте секреты Kubernetes.
@@ -83,7 +80,6 @@ data:
kubectl apply -f secrets.yaml
```
-
### Создание пользовательского секрета {#creating-a-custom-secret}
Создайте вручную пользовательский секрет Kubernetes:
@@ -93,7 +89,6 @@ kubectl create secret generic hyperdx-secret \
--from-literal=API_KEY=my-secret-api-key
```
-
### Ссылка на Secret в values.yaml {#referencing-a-secret}
```yaml
@@ -105,7 +100,6 @@ hyperdx:
key: API_KEY
```
-
## Настройка входного шлюза {#ingress-setup}
Чтобы открыть доступ к интерфейсу и API HyperDX по доменному имени, включите конфигурацию входного шлюза в файле `values.yaml`.
@@ -124,7 +118,6 @@ hyperdx:
Значение `hyperdx.frontendUrl` должно совпадать с именем хоста входного шлюза и включать протокол (например, `https://hyperdx.yourdomain.com`). Это обеспечивает корректную работу всех сгенерированных ссылок, куки и перенаправлений.
:::
-
### Включение TLS (HTTPS) {#enabling-tls}
Чтобы защитить развертывание с помощью HTTPS:
@@ -149,7 +142,6 @@ hyperdx:
tlsSecretName: "hyperdx-tls"
```
-
### Пример конфигурации входного шлюза {#example-ingress-configuration}
Для наглядности ниже показан сгенерированный ресурс входного шлюза:
@@ -181,7 +173,6 @@ spec:
secretName: hyperdx-tls
```
-
### Частые проблемы с входным шлюзом {#common-ingress-pitfalls}
**Конфигурация пути и переписывания (rewrite):**
@@ -207,7 +198,6 @@ spec:
kubectl -n ingress-nginx get pods -l app.kubernetes.io/name=ingress-nginx -o jsonpath="{.items[0].spec.containers[0].image}"
```
-
## Входной шлюз для OTel collector {#otel-collector-ingress}
Если вам необходимо опубликовать конечные точки OTel collector (для трассировок, метрик и логов) через входной шлюз, используйте конфигурацию `additionalIngresses`. Это полезно для отправки телеметрических данных из‑вне кластера или при использовании пользовательского домена для collector.
@@ -244,7 +234,6 @@ hyperdx:
Если вам не нужно открывать OTel collector во внешний доступ, вы можете пропустить эту конфигурацию. Для большинства пользователей достаточно общей настройки входного шлюза.
:::
-
## Диагностика проблем с входным шлюзом {#troubleshooting-ingress}
**Проверьте ресурс входного шлюза:**
@@ -282,7 +271,6 @@ curl -I https://hyperdx.yourdomain.com/_next/static/chunks/main-xxxx.js
* После изменений очистите кэш браузера и кэш CDN/прокси, чтобы избежать использования устаревших версий ресурсов
-
## Настройка значений {#customizing-values}
Параметры можно настроить с помощью флагов `--set`:
@@ -322,7 +310,6 @@ hyperdx:
helm install my-clickstack clickstack/clickstack -f values.yaml
```
-
## Дальнейшие шаги {#next-steps}
- [Варианты развертывания](/docs/use-cases/observability/clickstack/deployment/helm-deployment-options) — внешние системы и минимальные развертывания
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-deployment-options.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-deployment-options.md
index 6c8747c4c75..12f3e87169c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-deployment-options.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm-deployment-options.md
@@ -56,7 +56,6 @@ hyperdx:
helm install my-clickstack clickstack/clickstack -f values-external-clickhouse.yaml
```
-
### Вариант 2: Внешний секрет (рекомендуется для production) {#external-clickhouse-secret}
Для production-развертываний, где вы хотите хранить учетные данные отдельно от конфигурации Helm:
@@ -174,7 +173,6 @@ hyperdx:
Подробный пример подключения к ClickHouse Cloud см. в разделе [«Создание подключения к ClickHouse Cloud»](/docs/use-cases/observability/clickstack/getting-started#create-a-cloud-connection).
-
## Внешний OTel collector {#external-otel-collector}
Если у вас уже есть инфраструктура OTel collector:
@@ -194,7 +192,6 @@ helm install my-clickstack clickstack/clickstack -f values-external-otel.yaml
См. раздел [Настройка входного шлюза](/docs/use-cases/observability/clickstack/deployment/helm-configuration#otel-collector-ingress) для инструкций по публикации конечных точек OTel collector через входной шлюз.
-
## Минимальное развертывание {#minimal-deployment}
Для организаций с уже существующей инфраструктурой достаточно развернуть только HyperDX:
@@ -233,7 +230,6 @@ hyperdx:
helm install my-clickstack clickstack/clickstack -f values-minimal.yaml
```
-
## Следующие шаги {#next-steps}
- [Руководство по настройке](/docs/use-cases/observability/clickstack/deployment/helm-configuration) — ключи API, секреты и настройка входного шлюза
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm.md
index 5004bdf87fa..a2e71580960 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/helm/helm.md
@@ -36,7 +36,6 @@ Helm-чарт для HyperDX можно найти [здесь](https://github.c
* Настройку TLS и Входного шлюза
* Управление секретами и настройку аутентификации
-
### Подходит для {#suitable-for}
* Пилотных проектов (proof of concept)
@@ -262,7 +261,6 @@ helm install my-clickstack clickstack/clickstack -f values.yaml
Для продакшн-развертываний с конфигурацией на основе секретов, внешними экземплярами OTel collector или минимальными конфигурациями см. [руководство «Варианты развертывания»](/docs/use-cases/observability/clickstack/deployment/helm-deployment-options).
:::
-
## Примечания для продакшена
По умолчанию этот chart также устанавливает ClickHouse и OTel collector. Однако для продакшена рекомендуется управлять ClickHouse и OTel collector отдельно.
@@ -283,7 +281,6 @@ helm install my-clickstack clickstack/clickstack \
* [Облачные развертывания](/docs/use-cases/observability/clickstack/deployment/helm-cloud) — облачные настройки и чек-лист для продакшна
:::
-
## Конфигурация задач {#task-configuration}
По умолчанию в чарте настроена одна задача в виде cronjob, отвечающая за проверку необходимости срабатывания алертов. Ниже приведены её параметры конфигурации:
@@ -308,7 +305,6 @@ helm upgrade my-clickstack clickstack/clickstack -f values.yaml
helm search repo clickstack
```
-
## Удаление ClickStack
Чтобы удалить развертывание:
@@ -319,23 +315,20 @@ helm uninstall my-clickstack
Это удалит все ресурсы, связанные с релизом, однако постоянные данные (если они есть) могут остаться.
-
## Устранение неполадок {#troubleshooting}
-### Проверка логов
+### Проверка логов {#customizing-values}
```shell
kubectl logs -l app.kubernetes.io/name=clickstack
```
-
-### Устранение неполадок при неудачной установке
+### Устранение неполадок при неудачной установке {#using-secrets}
```shell
helm install my-clickstack clickstack/clickstack --debug --dry-run
```
-
### Проверка развертывания
```shell
@@ -379,7 +372,6 @@ helm install my-clickstack clickstack/clickstack \
--set "otel.env[0].value=--feature-gates=clickhouse.json"
```
-
## См. также {#related-documentation}
### Руководства по развертыванию {#deployment-guides}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud.md
index c143a8dc679..8ac306dddd3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud.md
@@ -38,7 +38,6 @@ import JSONSupport from '@site/i18n/ru/docusaurus-plugin-content-docs/current/us
В этом режиме ингестия данных полностью остаётся на стороне пользователя. Вы можете выполнять приём данных в ClickHouse Cloud с помощью собственного развернутого коллектора OpenTelemetry, прямого приёма из клиентских библиотек, нативных табличных движков ClickHouse (таких как Kafka или S3), ETL-пайплайнов или ClickPipes — управляемого сервиса ингестии ClickHouse Cloud. Такой подход обеспечивает самый простой и высокопроизводительный способ эксплуатации ClickStack.
-
### Подходит для {#suitable-for}
Этот паттерн развертывания оптимален в следующих сценариях:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/hyperdx-only.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/hyperdx-only.md
index ae7aa0922ef..5aa15ef371d 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/hyperdx-only.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/hyperdx-only.md
@@ -23,7 +23,6 @@ HyperDX может использоваться независимо от ост
В этом режиме ингестия данных полностью остаётся на стороне пользователя. Вы можете осуществлять приём данных в ClickHouse, используя собственный развёрнутый OpenTelemetry collector, прямую ингестию из клиентских библиотек, родные для ClickHouse движки таблиц (такие как Kafka или S3), ETL‑конвейеры или управляемые сервисы ингестии, такие как ClickPipes. Такой подход обеспечивает максимальную гибкость и подходит командам, которые уже эксплуатируют ClickHouse и хотят добавить HyperDX поверх него для визуализации, поиска и оповещений.
-
### Подходит для {#suitable-for}
- Существующие пользователи ClickHouse
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/local-mode-only.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/local-mode-only.md
index 2e7fc58b51a..c66c9295967 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/local-mode-only.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/deployment/local-mode-only.md
@@ -23,7 +23,6 @@ import JSONSupport from '@site/i18n/ru/docusaurus-plugin-content-docs/current/us
**Однако в этой сборке HyperDX аутентификация пользователей отключена**
-
### Подходит для {#suitable-for}
* Демонстраций
@@ -37,31 +36,31 @@ import JSONSupport from '@site/i18n/ru/docusaurus-plugin-content-docs/current/us
### Развертывание с помощью Docker
- В локальном режиме интерфейс HyperDX разворачивается на порту 8080.
+ В локальном режиме интерфейс HyperDX запускается на порту 8080.
```shell
- docker run -p 8080:8080 docker.hyperdx.io/hyperdx/hyperdx-local
+ docker run -p 8080:8080 clickhouse/clickstack-local:latest
```
### Перейдите в интерфейс HyperDX
- Откройте [http://localhost:8080](http://localhost:8080), чтобы получить доступ к интерфейсу HyperDX.
+ Перейдите по адресу [http://localhost:8080](http://localhost:8080), чтобы получить доступ к интерфейсу HyperDX.
- **Вам не потребуется создавать пользователя, так как аутентификация в этом режиме развертывания отключена.**
+ **Вам не будет предложено создать пользователя, так как аутентификация не включена в этом режиме развертывания.**
- Подключитесь к своему внешнему кластеру ClickHouse, например ClickHouse Cloud.
+ Подключитесь к собственному внешнему кластеру ClickHouse, например ClickHouse Cloud.
- Создайте источник, оставьте все значения по умолчанию и заполните поле `Table` значением `otel_logs`. Все остальные параметры должны быть определены автоматически, после чего вы сможете нажать `Save New Source`.
+ Создайте источник, сохраните все значения по умолчанию и заполните поле `Table` значением `otel_logs`. Все остальные настройки должны определиться автоматически, после чего можно нажать `Save New Source`.
-
+
-Для образа, предназначенного только для локального режима, пользователям нужно задать параметр `BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true`, например:
+Для образа, предназначенного только для локального режима, пользователям нужно задать только параметр `BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true`, например:
```shell
-docker run -e BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true -p 8080:8080 docker.hyperdx.io/hyperdx/hyperdx-local
+docker run -e BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true -p 8080:8080 clickhouse/clickstack-local:latest
```
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/kubernetes.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/kubernetes.md
index b67dfdb71d9..af153e126fc 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/kubernetes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/kubernetes.md
@@ -23,7 +23,6 @@ import dashboard_kubernetes from '@site/static/images/use-cases/observability/hy
-
## Предварительные требования {#prerequisites}
Для выполнения этого руководства вам потребуется:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/local-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/local-data.md
index e7f278953d5..6c0a4f1b985 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/local-data.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/local-data.md
@@ -23,7 +23,8 @@ import hyperdx_23 from '@site/static/images/use-cases/observability/hyperdx-23.p
Этот пример набора данных также может использоваться с HyperDX в ClickHouse Cloud, с лишь незначительными изменениями конвейера, указанными в тексте. При использовании HyperDX в ClickHouse Cloud пользователям потребуется локально запущенный коллектор OpenTelemetry, как описано в [руководстве по началу работы для этой модели развертывания](/use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud).
:::
-
+
+
## Создание пользовательской конфигурации OpenTelemetry {#create-otel-configuration}
Создайте файл `custom-local-config.yaml` со следующим содержимым:
@@ -38,7 +39,7 @@ receivers:
- /host/private/var/log/*.log # Логи macOS с хоста
start_at: beginning
resource:
- service.name: "system-logs"
+ service.name: "system-logs" # Имя сервиса для системных логов
hostmetrics:
collection_interval: 1s
@@ -95,9 +96,9 @@ service:
Данная конфигурация собирает системные журналы и метрики для систем OSX и Linux и отправляет результаты в ClickStack. Конфигурация расширяет коллектор ClickStack, добавляя новые приёмники и конвейеры — при этом используются существующий экспортёр `clickhouse` и процессоры (`memory_limiter`, `batch`), уже настроенные в базовом коллекторе ClickStack.
:::note Временные метки при ингестии
-Данная конфигурация корректирует временные метки в процессе приёма данных, присваивая каждому событию обновлённое значение времени. Пользователям рекомендуется [предварительно обрабатывать или парсить временные метки](/use-cases/observability/clickstack/ingesting-data/otel-collector#processing-filtering-transforming-enriching) с помощью процессоров или операторов OTel в своих лог-файлах, чтобы сохранить точное время события.
+Данная конфигурация корректирует временные метки в процессе ингестии, присваивая каждому событию обновлённое значение времени. Пользователям следует [предварительно обрабатывать или парсить временные метки](/use-cases/observability/clickstack/ingesting-data/otel-collector#processing-filtering-transforming-enriching) с помощью процессоров или операторов OTel в своих лог-файлах, чтобы обеспечить сохранение точного времени события.
-При такой настройке, если приёмник или процессор файлов настроен на чтение с начала файла, всем существующим записям журнала будет присвоена одна и та же скорректированная временная метка — время обработки, а не исходное время события. Любые новые события, добавляемые в файл, получат временные метки, приблизительно соответствующие фактическому времени их создания.
+При такой настройке, если приёмник или процессор файлов настроен на чтение с начала файла, всем существующим записям журнала будет присвоена одинаковая скорректированная временная метка — время обработки, а не исходное время события. Любые новые события, добавляемые в файл, получат временные метки, приближённые к фактическому времени их генерации.
Чтобы избежать такого поведения, установите начальную позицию в значение `end` в конфигурации приёмника. Это обеспечит приём только новых записей с временными метками, соответствующими фактическому времени их поступления.
:::
@@ -116,16 +117,16 @@ docker run -d --name clickstack \
-v "$(pwd)/custom-local-config.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v /var/log:/host/var/log:ro \
-v /private/var/log:/host/private/var/log:ro \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
:::note Пользователь root
Мы запускаем коллектор от имени пользователя root для доступа ко всем системным журналам — это необходимо для сбора журналов из защищённых путей в системах на базе Linux. Однако такой подход не рекомендуется для production-окружения. В production-средах OpenTelemetry Collector следует развёртывать как локальный агент только с минимальными правами, необходимыми для доступа к целевым источникам журналов.
-Обратите внимание, что мы монтируем `/var/log` хоста в `/host/var/log` внутри контейнера, чтобы избежать конфликтов с собственными лог-файлами контейнера.
+Обратите внимание, что мы монтируем `/var/log` хоста в `/host/var/log` внутри контейнера во избежание конфликтов с собственными лог-файлами контейнера.
:::
-При использовании HyperDX в ClickHouse Cloud с автономным коллектором используйте эту команду:
+Если вы используете HyperDX в ClickHouse Cloud с отдельным коллектором, используйте эту команду:
```shell
docker run -d \
@@ -139,18 +140,18 @@ docker run -d \
-v "$(pwd)/custom-local-config.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v /var/log:/host/var/log:ro \
-v /private/var/log:/host/private/var/log:ro \
- docker.hyperdx.io/hyperdx/hyperdx-otel-collector
+ clickhouse/clickstack-otel-collector:latest
```
-Коллектор сразу начнет собирать локальные системные журналы и метрики.
+Коллектор немедленно начнет сбор локальных системных журналов и метрик.
## Переход к интерфейсу HyperDX {#navigate-to-the-hyperdx-ui}
Перейдите по адресу [http://localhost:8080](http://localhost:8080) для доступа к интерфейсу HyperDX при локальном развёртывании. При использовании HyperDX в ClickHouse Cloud выберите ваш сервис и пункт `HyperDX` в меню слева.
-## Изучение системных журналов {#explore-system-logs}
+## Изучение системных логов {#explore-system-logs}
-В интерфейсе поиска должны отобразиться локальные системные журналы. Разверните фильтры и выберите `system.log`:
+В интерфейсе поиска должны отобразиться локальные системные логи. Разверните фильтры и выберите `system.log`:
@@ -160,17 +161,18 @@ docker run -d \
Перейдите в Chart Explorer через левое меню. Выберите источник `Metrics` и тип агрегации `Maximum`.
-В меню `Select a Metric` введите `memory`, а затем выберите `system.memory.utilization (Gauge)`.
+В меню `Select a Metric` введите `memory`, затем выберите `system.memory.utilization (Gauge)`.
Нажмите кнопку запуска, чтобы визуализировать использование памяти за период времени.
-
+
+
+Обратите внимание, что число возвращается как число с плавающей точкой `%`. Для более наглядного отображения выберите `Set number format`.
-Обратите внимание, что число возвращается как число с плавающей точкой `%`. Для более четкого отображения выберите `Set number format`.
+
-
+В открывшемся меню выберите `Percentage` из выпадающего списка `Output format`, после чего нажмите `Apply`.
-В открывшемся меню выберите `Percentage` из выпадающего списка `Output format` и нажмите `Apply`.
+
-
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/remote-demo-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/remote-demo-data.md
index 268c93f2e0f..85aaaab7efc 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/remote-demo-data.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/remote-demo-data.md
@@ -48,7 +48,6 @@ import DemoArchitecture from '@site/i18n/ru/docusaurus-plugin-content-docs/curre
Удалённые базы данных не поддерживаются, когда HyperDX развёрнут в ClickHouse Cloud. Поэтому этот набор данных недоступен.
:::
-
Он включает примерно 40 часов данных, полученных из ClickHouse-версии официального демо OpenTelemetry (OTel). Данные каждую ночь повторно воспроизводятся со временными метками, смещёнными к текущему временному интервалу, что позволяет пользователям исследовать поведение системы, используя встроенные в HyperDX логи, трассировки и метрики.
:::note Вариации данных
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/getting-started.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/getting-started.md
index 56668f78513..adbc84428b4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/getting-started.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/getting-started.md
@@ -25,16 +25,15 @@ import edit_connection from '@site/static/images/use-cases/observability/edit_co
Благодаря готовым Docker-образам начать работу с **ClickStack** очень просто. Эти образы собраны на основе официального Debian-пакета ClickHouse и доступны в нескольких вариантах для разных сценариев использования.
-
## Локальное развертывание {#local-deployment}
-Самый простой вариант — **единый образ** (single-image distribution), который включает все основные компоненты стека, упакованные вместе:
+Самый простой вариант — это **дистрибутив в виде одного образа (single-image)**, который включает все основные компоненты стека в одном образе:
- **HyperDX UI**
-- **OTel collector**
+- **OpenTelemetry (OTel) collector**
- **ClickHouse**
-Этот образ «все-в-одном» позволяет запустить полный стек одной командой, что делает его удобным для тестирования, экспериментов или быстрых локальных развертываний.
+Этот «всё-в-одном» образ позволяет запустить полный стек одной командой, что делает его идеальным для тестирования, экспериментов или быстрых локальных развертываний.
@@ -43,16 +42,20 @@ import edit_connection from '@site/static/images/use-cases/observability/edit_co
Следующая команда запустит OTel collector (на портах 4317 и 4318) и HyperDX UI (на порту 8080).
```shell
-docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one
+docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
```
-:::note Сохранение данных и настроек
-Чтобы сохранять данные и настройки между перезапусками контейнера, вы можете изменить приведённую выше команду Docker, чтобы примонтировать пути `/data/db`, `/var/lib/clickhouse` и `/var/log/clickhouse-server`.
+:::note Обновление имени образа
+Образы ClickStack теперь публикуются как `clickhouse/clickstack-*` (ранее `docker.hyperdx.io/hyperdx/*`).
+:::
+
+:::tip Сохранение данных и настроек
+Чтобы сохранять данные и настройки между перезапусками контейнера, пользователи могут изменить приведённую выше команду docker, чтобы примонтировать пути `/data/db`, `/var/lib/clickhouse` и `/var/log/clickhouse-server`.
Например:
```shell
-# измените команду, чтобы примонтировать пути {#modify-command-to-mount-paths}
+# измените команду, чтобы примонтировать пути
docker run \
-p 8080:8080 \
-p 4317:4317 \
@@ -60,39 +63,39 @@ docker run \
-v "$(pwd)/.volumes/db:/data/db" \
-v "$(pwd)/.volumes/ch_data:/var/lib/clickhouse" \
-v "$(pwd)/.volumes/ch_logs:/var/log/clickhouse-server" \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one
+ clickhouse/clickstack-all-in-one:latest
```
:::
-### Перейдите в HyperDX UI {#navigate-to-hyperdx-ui}
+### Переход в HyperDX UI {#navigate-to-hyperdx-ui}
-Перейдите по адресу [http://localhost:8080](http://localhost:8080), чтобы получить доступ к HyperDX UI.
+Перейдите по адресу [http://localhost:8080](http://localhost:8080), чтобы открыть HyperDX UI.
-Создайте пользователя, указав имя пользователя и пароль, удовлетворяющий требованиям к сложности.
+Создайте пользователя, указав имя пользователя и пароль, удовлетворяющие требованиям к сложности.
-
+
-HyperDX автоматически подключится к локальному кластеру и создаст источники данных для логов, трассировок, метрик и сеансов, что позволит вам сразу начать изучать продукт.
+HyperDX автоматически подключится к локальному кластеру и создаст источники данных для логов, трейсов, метрик и сессий — это позволит вам сразу начать работу с продуктом.
-### Изучите продукт {#explore-the-product}
+### Изучение продукта {#explore-the-product}
После развертывания стека попробуйте один из наших примерных наборов данных.
Чтобы продолжить работу с локальным кластером:
-- [Пример набора данных](/use-cases/observability/clickstack/getting-started/sample-data) — загрузите пример набора данных из нашего публичного демо и продиагностируйте простую проблему.
-- [Локальные файлы и метрики](/use-cases/observability/clickstack/getting-started/local-data) — загрузите локальные файлы и настройте мониторинг системы на OSX или Linux с использованием локального OTel collector.
+- [Пример набора данных](/use-cases/observability/clickstack/getting-started/sample-data) — Загрузите пример набора данных из нашего публичного демо и продиагностируйте простую проблему.
+- [Локальные файлы и метрики](/use-cases/observability/clickstack/getting-started/local-data) — Загрузите локальные файлы и осуществляйте мониторинг системы на OSX или Linux с использованием локального OTel collector.
-Либо вы можете подключиться к демо-кластеру, где доступен более крупный набор данных:
+Либо вы можете подключиться к демо-кластеру и исследовать более крупный набор данных:
-- [Удалённый демонстрационный набор данных](/use-cases/observability/clickstack/getting-started/remote-demo-data) — изучите демо-набор данных в нашем демо-сервисе ClickHouse.
+- [Удалённый демонстрационный набор данных](/use-cases/observability/clickstack/getting-started/remote-demo-data) — Исследуйте демонстрационный набор данных в нашем демо-сервисе ClickHouse.
-## Развертывание с ClickHouse Cloud {#deploy-with-clickhouse-cloud}
+## Развёртывание с ClickHouse Cloud {#deploy-with-clickhouse-cloud}
-Пользователи могут развернуть ClickStack с использованием ClickHouse Cloud, получая полностью управляемый и защищённый бэкенд при сохранении полного контроля над ингестией, схемой и процессами наблюдаемости.
+Пользователи могут разворачивать ClickStack поверх ClickHouse Cloud, получая полностью управляемый и защищённый бэкенд при сохранении полного контроля над ингестией, схемой и процессами обсервабилити.
@@ -102,17 +105,17 @@ HyperDX автоматически подключится к локальном
### Копирование параметров подключения {#copy-cloud-connection-details}
-Чтобы найти параметры подключения для HyperDX, перейдите в консоль ClickHouse Cloud и нажмите кнопку Connect на боковой панели.
+Чтобы найти параметры подключения для HyperDX, перейдите в консоль ClickHouse Cloud и нажмите кнопку Connect в боковой панели.
-Скопируйте параметры HTTP-подключения, в частности HTTPS-эндпойнт (`endpoint`) и пароль.
+Скопируйте параметры HTTP-подключения, в частности HTTPS endpoint (`endpoint`) и пароль.
-
+
-:::note Развертывание в продакшене
-Хотя для подключения HyperDX мы будем использовать пользователя `default`, мы рекомендуем создать выделенного пользователя при [переходе в продакшн](/use-cases/observability/clickstack/production#create-a-user).
+:::note Развёртывание в продакшен
+Хотя мы будем использовать пользователя `default` для подключения HyperDX, мы рекомендуем создать выделенного пользователя при [переходе в продакшен](/use-cases/observability/clickstack/production#create-a-user).
:::
-### Развертывание с помощью Docker {#deploy-with-docker}
+### Развёртывание с помощью docker {#deploy-with-docker}
Откройте терминал и экспортируйте скопированные выше учётные данные:
@@ -122,38 +125,38 @@ export CLICKHOUSE_ENDPOINT=
export CLICKHOUSE_PASSWORD=
```
-Выполните следующую команду docker:
+Выполните следующую docker-команду:
```shell
-docker run -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one
+docker run -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
```
-Будет запущен OTel collector (на портах 4317 и 4318), а также интерфейс HyperDX (на порту 8080).
+Это откроет OTel collector (на портах 4317 и 4318) и веб-интерфейс HyperDX (на порту 8080).
-### Переход в интерфейс HyperDX {#navigate-to-hyperdx-ui-cloud}
+### Переход в интерфейс HyperDX UI {#navigate-to-hyperdx-ui-cloud}
-Перейдите по адресу [http://localhost:8080](http://localhost:8080), чтобы открыть интерфейс HyperDX.
+Перейдите по адресу [http://localhost:8080](http://localhost:8080), чтобы открыть HyperDX UI.
-Создайте пользователя, указав имя пользователя и пароль, соответствующий требованиям к сложности.
+Создайте пользователя, указав имя пользователя и пароль, соответствующие требованиям к сложности.
-
+
### Создание подключения к ClickHouse Cloud {#create-a-cloud-connection}
Перейдите в `Team Settings` и нажмите `Edit` для `Local Connection`:
-
+
Переименуйте подключение в `Cloud` и заполните форму учётными данными вашего сервиса ClickHouse Cloud, затем нажмите `Save`:
-
+
### Изучение продукта {#explore-the-product-cloud}
-После развертывания стека попробуйте один из наших примерных наборов данных.
+После развёртывания стека попробуйте один из наших примерных наборов данных.
-- [Пример набора данных](/use-cases/observability/clickstack/getting-started/sample-data) — загрузите пример набора данных из нашего публичного демо и продиагностируйте простую проблему.
-- [Локальные файлы и метрики](/use-cases/observability/clickstack/getting-started/local-data) — загрузите локальные файлы и отслеживайте состояние системы на OSX или Linux, используя локальный OTel collector.
+- [Пример набора данных](/use-cases/observability/clickstack/getting-started/sample-data) — загрузите пример набора данных из нашего публичного демо и разберите простую проблему.
+- [Локальные файлы и метрики](/use-cases/observability/clickstack/getting-started/local-data) — загрузите локальные файлы и мониторьте систему в OSX или Linux с использованием локального OTel collector.
@@ -169,28 +172,28 @@ docker run -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=defa
Вы можете использовать облачную версию HyperDX в локальном режиме, доступную по адресу [play.hyperdx.io](https://play.hyperdx.io).
-### Самостоятельно размещаемая версия {#self-hosted-version}
+### Self-hosted‑версия {#self-hosted-version}
### Запуск с помощью Docker {#run-local-with-docker}
-Локальный образ в режиме самостоятельного размещения также поставляется с преднастроенными коллектором OpenTelemetry и сервером ClickHouse. Это упрощает приём телеметрических данных из ваших приложений и их визуализацию в HyperDX при минимальных внешних настройках. Чтобы начать работу с этой версией, просто запустите контейнер Docker с пробросом необходимых портов:
+Локальный self-hosted образ включает заранее сконфигурированные OpenTelemetry Collector и сервер ClickHouse. Это упрощает приём телеметрических данных из ваших приложений и их визуализацию в HyperDX при минимальной внешней настройке. Чтобы начать работу с self-hosted версией, просто запустите контейнер Docker с пробросом соответствующих портов:
```shell
-docker run -p 8080:8080 docker.hyperdx.io/hyperdx/hyperdx-local
+docker run -p 8080:8080 clickhouse/clickstack-local:latest
```
-Вам не будет предложено создать пользователя, так как локальный режим не включает аутентификацию.
+Система не предложит вам создать пользователя, так как локальный режим не включает аутентификацию.
-### Полные реквизиты подключения {#complete-connection-credentials}
+### Полные учётные данные подключения {#complete-connection-credentials}
-Чтобы подключиться к своему **внешнему кластеру ClickHouse**, вы можете вручную ввести реквизиты подключения.
+Чтобы подключиться к собственному **внешнему кластеру ClickHouse**, вы можете вручную ввести учётные данные подключения.
-Либо, для быстрой оценки продукта, вы можете нажать **Connect to Demo Server**, чтобы получить доступ к предзагруженным наборам данных и опробовать ClickStack без какой-либо настройки.
+Либо, для быстрого ознакомления с продуктом, вы можете нажать **Connect to Demo Server**, чтобы получить доступ к предварительно загруженным наборам данных и опробовать ClickStack без какой-либо настройки.
-
+
-При подключении к демо-серверу пользователи могут изучать набор данных, следуя [инструкциям по демонстрационному набору данных](/use-cases/observability/clickstack/getting-started/remote-demo-data).
+При подключении к demo-серверу пользователи могут изучать данные, используя [инструкции по демонстрационным данным](/use-cases/observability/clickstack/getting-started/remote-demo-data).
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/host-logs/ec2-host-logs.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/host-logs/ec2-host-logs.md
new file mode 100644
index 00000000000..d73430d6eb6
--- /dev/null
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/host-logs/ec2-host-logs.md
@@ -0,0 +1,595 @@
+---
+slug: /use-cases/observability/clickstack/integrations/host-logs/ec2
+title: 'Мониторинг журналов хоста EC2 с помощью ClickStack'
+sidebar_label: 'Журналы хоста EC2'
+pagination_prev: null
+pagination_next: null
+description: 'Мониторинг журналов хоста EC2 с помощью ClickStack'
+doc_type: 'guide'
+keywords: ['EC2', 'AWS', 'журналы хоста', 'systemd', 'syslog', 'OTel', 'ClickStack', 'мониторинг системы', 'облачные метаданные']
+---
+
+import Image from '@theme/IdealImage';
+import useBaseUrl from '@docusaurus/useBaseUrl';
+import import_dashboard from '@site/static/images/clickstack/import-dashboard.png';
+import search_view from '@site/static/images/clickstack/host-logs/ec2/search-view.png';
+import log_view from '@site/static/images/clickstack/host-logs/ec2/log-view.png';
+import search_view_demo from '@site/static/images/clickstack/host-logs/ec2/search-view-demo.png';
+import log_view_demo from '@site/static/images/clickstack/host-logs/ec2/log-view-demo.png';
+import logs_dashboard from '@site/static/images/clickstack/host-logs/host-logs-dashboard.png';
+import finish_import from '@site/static/images/clickstack/host-logs/import-dashboard.png';
+import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTrackedLink';
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+# Мониторинг журналов хостов EC2 с помощью ClickStack {#ec2-host-logs-clickstack}
+
+:::note[Кратко]
+Отслеживайте системные журналы EC2 с помощью ClickStack, установив OpenTelemetry Collector на ваши экземпляры. Коллектор автоматически обогащает журналы метаданными EC2 (ID экземпляра, регион, зона доступности, тип экземпляра). Вы узнаете, как:
+
+- Установить и настроить OpenTelemetry Collector на экземплярах EC2
+- Автоматически обогащать журналы метаданными EC2
+- Отправлять журналы в ClickStack через OTLP
+- Использовать готовую панель мониторинга для визуализации журналов хостов EC2 с облачным контекстом
+
+Демонстрационный набор данных с примерами журналов и смоделированными метаданными EC2 доступен для тестирования.
+
+Требуемое время: 10–15 минут
+:::
+
+## Интеграция с существующим экземпляром EC2 {#existing-ec2}
+
+В этом разделе рассматривается установка OpenTelemetry Collector на экземпляры EC2 для сбора системных логов и их отправки в ClickStack с автоматическим обогащением метаданными EC2. Такая распределённая архитектура готова к продакшену и масштабируется на несколько экземпляров.
+
+:::note[Запускаете ClickStack на том же экземпляре EC2?]
+Если ClickStack запущен на том же экземпляре EC2, логи которого вы хотите мониторить, вы можете использовать подход «всё-в-одном», аналогичный [руководству по логам Generic Host](/use-cases/observability/clickstack/integrations/host-logs). Смонтируйте `/var/log` в контейнер ClickStack и добавьте процессор `resourcedetection` в пользовательскую конфигурацию, чтобы автоматически собирать метаданные EC2. В этом руководстве основное внимание уделяется более распространённой распределённой архитектуре для продакшен-развертываний.
+:::
+
+Если вы хотите протестировать интеграцию логов хоста EC2 перед настройкой продакшен-экземпляра, вы можете опробовать нашу преднастроенную конфигурацию и пример данных в разделе ["Демонстрационный датасет"](/use-cases/observability/clickstack/integrations/host-logs/ec2#demo-dataset).
+
+##### Предварительные требования {#prerequisites}
+
+- Запущенный экземпляр ClickStack (on-premises, в Cloud или локальный)
+- Запущенный экземпляр EC2 (Ubuntu, Amazon Linux или другой дистрибутив Linux)
+- Сетевое подключение между экземпляром EC2 и OTLP-эндпоинтом ClickStack (порт 4318 для HTTP или 4317 для gRPC)
+- Сервис метаданных экземпляра EC2 доступен (по умолчанию включён)
+
+
+ #### Проверьте доступность метаданных EC2
+
+ С вашего EC2-инстанса проверьте доступность сервиса метаданных:
+
+ ```bash
+ # Получение токена метаданных (IMDSv2)
+ TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
+
+ # Проверка метаданных экземпляра
+ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id
+ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/placement/region
+ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-type
+ ```
+
+ Вы должны увидеть идентификатор экземпляра, регион и тип экземпляра. Если эти команды завершаются ошибкой, проверьте:
+
+ * Служба метаданных экземпляра включена
+ * IMDSv2 не блокируется группами безопасности или сетевыми списками контроля доступа (network ACL)
+ * Вы выполняете эти команды непосредственно на экземпляре EC2
+
+ :::note
+ Метаданные EC2 доступны по адресу `http://169.254.169.254` изнутри экземпляра. Процессор OpenTelemetry `resourcedetection` использует эту конечную точку для автоматического обогащения логов облачным контекстом.
+ :::
+
+ #### Проверьте наличие файлов syslog
+
+ Убедитесь, что ваш инстанс EC2 записывает файлы syslog:
+
+ ```bash
+ # Инстансы Ubuntu
+ ls -la /var/log/syslog
+
+ # Инстансы Amazon Linux / RHEL
+ ls -la /var/log/messages
+
+ # Просмотр последних записей
+ tail -20 /var/log/syslog
+ # или
+ tail -20 /var/log/messages
+ ```
+
+ #### Установка OpenTelemetry Collector
+
+ Установите дистрибутив OpenTelemetry Collector Contrib на экземпляр EC2:
+
+ ```bash
+ # Загрузите последний релиз
+ wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.114.0/otelcol-contrib_0.114.0_linux_amd64.tar.gz
+
+ # Распакуйте и установите
+ tar -xvf otelcol-contrib_0.114.0_linux_amd64.tar.gz
+ sudo mv otelcol-contrib /usr/local/bin/
+
+ # Проверьте установку
+ otelcol-contrib --version
+ ```
+
+ #### Создайте конфигурацию коллектора
+
+ Создайте файл конфигурации для OpenTelemetry Collector по пути `/etc/otelcol-contrib/config.yaml`:
+
+ ```bash
+ sudo mkdir -p /etc/otelcol-contrib
+ ```
+
+ Выберите конфигурацию в зависимости от вашего дистрибутива Linux:
+
+
+
+ ```yaml
+ sudo tee /etc/otelcol-contrib/config.yaml > /dev/null << 'EOF'
+ receivers:
+ filelog/syslog:
+ include:
+ - /var/log/syslog
+ - /var/log/**/*.log
+ start_at: end
+ operators:
+ - type: regex_parser
+ regex: '^(?P\S+) (?P\S+) (?P\S+?)(?:\[(?P\d+)\])?: (?P.*)$'
+ parse_from: body
+ parse_to: attributes
+
+ - type: time_parser
+ parse_from: attributes.timestamp
+ layout_type: gotime
+ layout: '2006-01-02T15:04:05.999999-07:00'
+
+ - type: add
+ field: attributes.source
+ value: "ec2-host-logs"
+
+ processors:
+ resourcedetection:
+ detectors: [ec2, system]
+ timeout: 5s
+ override: false
+ ec2:
+ tags:
+ - ^Name
+ - ^Environment
+ - ^Team
+
+ batch:
+ timeout: 10s
+ send_batch_size: 1024
+
+ exporters:
+ otlphttp:
+ endpoint: "http://YOUR_CLICKSTACK_HOST:4318"
+ headers:
+ authorization: "${env:CLICKSTACK_API_KEY}"
+
+ service:
+ pipelines:
+ logs:
+ receivers: [filelog/syslog]
+ processors: [resourcedetection, batch]
+ exporters: [otlphttp]
+ EOF
+ ```
+
+
+
+ ```yaml
+ sudo tee /etc/otelcol-contrib/config.yaml > /dev/null << 'EOF'
+ receivers:
+ filelog/syslog:
+ include:
+ - /var/log/messages
+ - /var/log/**/*.log
+ start_at: end
+ operators:
+ - type: regex_parser
+ regex: '^(?P\w+ \d+ \d{2}:\d{2}:\d{2}) (?P\S+) (?P\S+?)(?:\[(?P\d+)\])?: (?P.*)$'
+ parse_from: body
+ parse_to: attributes
+
+ - type: time_parser
+ parse_from: attributes.timestamp
+ layout: '%b %d %H:%M:%S'
+
+ - type: add
+ field: attributes.source
+ value: "ec2-host-logs"
+
+ processors:
+ resourcedetection:
+ detectors: [ec2, system]
+ timeout: 5s
+ override: false
+ ec2:
+ tags:
+ - ^Name
+ - ^Environment
+ - ^Team
+
+ batch:
+ timeout: 10s
+ send_batch_size: 1024
+
+ exporters:
+ otlphttp:
+ endpoint: "http://YOUR_CLICKSTACK_HOST:4318"
+ headers:
+ authorization: "${env:CLICKSTACK_API_KEY}"
+
+ service:
+ pipelines:
+ logs:
+ receivers: [filelog/syslog]
+ processors: [resourcedetection, batch]
+ exporters: [otlphttp]
+ EOF
+ ```
+
+
+
+
+
+ **Замените следующее в конфигурации:**
+
+ * `YOUR_CLICKSTACK_HOST`: Имя хоста или IP-адрес, где запущен ClickStack
+ * Для локального тестирования вы можете использовать SSH-туннель (см. раздел [Устранение неполадок](#troubleshooting))
+
+ Данная конфигурация:
+
+ * Считывает файлы системных журналов из стандартных путей (`/var/log/syslog` для Ubuntu, `/var/log/messages` для Amazon Linux/RHEL)
+ * Разбирает сообщения в формате syslog для извлечения структурированных полей (timestamp, hostname, unit/service, PID, message)
+ * **Автоматически обнаруживает и добавляет метаданные EC2** с помощью процессора `resourcedetection`
+ * При наличии при этом дополнительно включаются теги EC2 (Name, Environment, Team)
+ * Отправляет логи в ClickStack по протоколу OTLP через HTTP
+
+ :::note[Обогащение метаданными EC2]
+ Процессор `resourcedetection` автоматически добавляет эти атрибуты к каждой записи лога:
+
+ * `cloud.provider`: "aws"
+ * `cloud.platform`: "aws_ec2"
+ * `cloud.region`: регион AWS (например, "us-east-1")
+ * `cloud.availability_zone`: зона доступности (AZ), например «us-east-1a»
+ * `cloud.account.id`: идентификатор учетной записи AWS
+ * `host.id`: идентификатор экземпляра EC2 (например, "i-1234567890abcdef0")
+ * `host.type`: Тип инстанса (например, "t3.medium")
+ * `host.name`: Имя хоста инстанса
+
+ #### Установите API-ключ ClickStack
+
+ Экспортируйте API-ключ ClickStack как переменную окружения:
+
+ ```bash
+ export CLICKSTACK_API_KEY="your-api-key-here"
+ ```
+
+ Чтобы сохранить это значение после перезагрузки, добавьте его в профиль вашей командной оболочки:
+
+ ```bash
+ echo 'export CLICKSTACK_API_KEY="ваш-api-ключ-здесь"' >> ~/.bashrc
+ source ~/.bashrc
+ ```
+
+ #### Запуск коллектора
+
+ Запустите OpenTelemetry Collector:
+
+ ```bash
+ CLICKSTACK_API_KEY="your-api-key-here" /usr/local/bin/otelcol-contrib --config /etc/otelcol-contrib/config.yaml
+ ```
+
+ :::note[Для использования в production-среде]
+ Настройте коллектор для запуска в качестве службы systemd, чтобы он автоматически запускался при загрузке системы и перезапускался при сбоях. Подробности см. в [документации OpenTelemetry Collector](https://opentelemetry.io/docs/collector/deployment/).
+ :::
+
+ #### Проверка логов в HyperDX
+
+ После запуска коллектора войдите в HyperDX и убедитесь, что логи поступают с метаданными EC2:
+
+ 1. Перейдите на страницу поиска
+ 2. Выберите источник `Logs`
+ 3. Отфильтровать по `source:ec2-host-logs`
+ 4. Щёлкните запись журнала, чтобы раскрыть её
+ 5. Убедитесь, что в атрибутах ресурса отображаются метаданные EC2:
+ * `cloud.provider`
+ * `cloud.region`
+ * `host.id` (ID экземпляра)
+ * `host.type` (тип экземпляра)
+ * `cloud.availability_zone`
+
+
+
+
+
+
+## Демонстрационный датасет {#demo-dataset}
+
+Для пользователей, которые хотят протестировать интеграцию логов хостов EC2 перед настройкой своих продакшен‑инстансов, мы предоставляем примерный датасет с сымитированными метаданными EC2.
+
+
+ #### Загрузите образец набора данных
+
+ Загрузите образец лог-файла:
+
+ ```bash
+ curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/host-logs/journal.log
+ ```
+
+ Набор данных включает:
+
+ * Последовательность загрузки системы
+ * Активность входов по SSH (успешные и неуспешные попытки)
+ * Инцидент безопасности (атака методом перебора с срабатыванием fail2ban)
+ * Плановое обслуживание (задания cron, anacron)
+ * Перезапуски службы (rsyslog)
+ * Сообщения ядра и события брандмауэра
+ * Сочетание штатных операций и важных событий
+
+ #### Создайте тестовую конфигурацию коллектора
+
+ Создайте файл `ec2-host-logs-demo.yaml` со следующей конфигурацией:
+
+ ```yaml
+ cat > ec2-host-logs-demo.yaml << 'EOF'
+ receivers:
+ filelog/journal:
+ include:
+ - /tmp/host-demo/journal.log
+ start_at: beginning
+ operators:
+ - type: regex_parser
+ regex: '^(?P\S+) (?P\S+) (?P\S+?)(?:\[(?P\d+)\])?: (?P.*)$'
+ parse_from: body
+ parse_to: attributes
+
+ - type: time_parser
+ parse_from: attributes.timestamp
+ layout: '%Y-%m-%dT%H:%M:%S%z'
+
+ - type: add
+ field: attributes.source
+ value: "ec2-demo"
+
+ processors:
+ # Имитация метаданных EC2 для демонстрации (реальный инстанс EC2 не требуется)
+ resource:
+ attributes:
+ - key: service.name
+ value: "ec2-demo"
+ action: insert
+ - key: cloud.provider
+ value: "aws"
+ action: insert
+ - key: cloud.platform
+ value: "aws_ec2"
+ action: insert
+ - key: cloud.region
+ value: "us-east-1"
+ action: insert
+ - key: cloud.availability_zone
+ value: "us-east-1a"
+ action: insert
+ - key: host.id
+ value: "i-0abc123def456789"
+ action: insert
+ - key: host.type
+ value: "t3.medium"
+ action: insert
+ - key: host.name
+ value: "prod-web-01"
+ action: insert
+
+ service:
+ pipelines:
+ logs/ec2-demo:
+ receivers: [filelog/journal]
+ processors:
+ - resource
+ - memory_limiter
+ - transform
+ - batch
+ exporters:
+ - clickhouse
+ EOF
+ ```
+
+ :::note
+ В демонстрационных целях метаданные EC2 добавляются вручную с помощью процессора `resource`. В продакшене с реальными инстансами EC2 используйте процессор `resourcedetection`, который автоматически запрашивает API метаданных EC2.
+ :::
+
+ #### Запуск ClickStack с демонстрационной конфигурацией
+
+ Запустите ClickStack с демонстрационными логами и конфигурацией:
+
+ ```bash
+ docker run --name clickstack-demo \
+ -p 8080:8080 -p 4317:4317 -p 4318:4318 \
+ -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
+ -v "$(pwd)/ec2-host-logs-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
+ -v "$(pwd)/journal.log:/tmp/host-demo/journal.log:ro" \
+ docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ ```
+
+ #### Проверка логов в HyperDX
+
+ После запуска коллектора:
+
+ 1. Откройте [HyperDX](http://localhost:8080/) и войдите в свой аккаунт (при необходимости сначала создайте аккаунт)
+ 2. Перейдите на экран поиска и выберите в качестве источника `Logs`
+ 3. Задайте интервал времени **2025-11-10 00:00:00 - 2025-11-13 00:00:00**
+ 4. Отфильтруйте по значению `source:ec2-demo`
+ 5. Разверните запись лога, чтобы увидеть метаданные EC2 в атрибутах ресурса
+
+
+
+
+
+ :::note[Отображение часового пояса]
+ HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период **2025-11-11 00:00:00 - 2025-11-12 00:00:00 (UTC)**. Широкий временной диапазон гарантирует, что вы увидите демонстрационные логи независимо от вашего местоположения. Увидев логи, вы можете сузить диапазон до 24 часов для более чёткой визуализации.
+ :::
+
+ Вы должны увидеть логи с симулированным контекстом EC2, включающие:
+
+ * Идентификатор экземпляра: `i-0abc123def456789`
+ * Регион: `us-east-1`
+ * Зона доступности: `us-east-1a`
+ * Тип экземпляра: `t3.medium`
+
+
+## Дашборды и визуализация {#dashboards}
+
+Чтобы помочь вам начать мониторинг логов хостов EC2 с помощью ClickStack, мы предоставляем базовые визуализации с контекстом облачной инфраструктуры.
+
+
+
+#### Скачать конфигурацию дашборда {#download}
+
+#### Импортируйте готовый дашборд {#import-dashboard}
+
+1. Откройте HyperDX и перейдите в раздел Dashboards
+2. Нажмите **Import Dashboard** в правом верхнем углу под значком с многоточием
+
+
+
+3. Загрузите файл `host-logs-dashboard.json` и нажмите **Finish Import**
+
+
+
+#### Просмотрите дашборд {#created-dashboard}
+
+Дашборд будет создан со всеми преднастроенными визуализациями:
+
+
+
+Вы можете фильтровать визуализации дашборда по контексту EC2:
+- `cloud.region:us-east-1` — показать логи из конкретного региона
+- `host.type:t3.medium` — фильтрация по типу инстанса
+- `host.id:i-0abc123def456` — логи с конкретного инстанса
+
+:::note
+Для демонстрационного набора данных установите диапазон времени **2025-11-11 00:00:00 - 2025-11-12 00:00:00 (UTC)** (скорректируйте в соответствии с вашим часовым поясом). Импортированный дашборд по умолчанию не будет иметь заданного диапазона времени.
+:::
+
+
+
+## Устранение неполадок {#troubleshooting}
+
+### Метаданные EC2 не отображаются в журналах
+
+**Проверьте, что сервис метаданных EC2 доступен:**
+
+```bash
+# Получение токена метаданных
+TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
+
+# Тестирование конечной точки метаданных
+curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id
+```
+
+Если это не помогло, проверьте:
+
+* Служба метаданных экземпляра включена
+* IMDSv2 не блокируется группами безопасности
+* Коллектор запущен непосредственно на экземпляре EC2
+
+**Проверьте логи коллектора на наличие ошибок метаданных:**
+
+```bash
+# Если запущен как systemd-сервис
+sudo journalctl -u otelcol-contrib -f | grep -i "ec2\|metadata\|resourcedetection"
+
+# Если запущен в интерактивном режиме, проверьте stdout
+```
+
+
+### В HyperDX не отображаются логи
+
+**Проверьте, что файлы syslog существуют и в них ведётся запись:**
+
+```bash
+ls -la /var/log/syslog /var/log/messages
+tail -f /var/log/syslog
+```
+
+**Проверьте, что коллектор может читать файлы журналов:**
+
+```bash
+cat /var/log/syslog | head -20
+```
+
+**Проверьте сетевое подключение к ClickStack:**
+
+```bash
+# Проверка OTLP-эндпоинта
+curl -v http://YOUR_CLICKSTACK_HOST:4318/v1/logs
+
+# Должен вернуться ответ (даже при ошибке это означает, что эндпоинт доступен)
+```
+
+**Проверьте логи коллектора на наличие ошибок:**
+
+```bash
+# Если запущен в режиме переднего плана
+# Ищите сообщения об ошибках в stdout
+
+# Если запущен как служба systemd
+sudo journalctl -u otelcol-contrib -f | grep -i "error\|failed"
+```
+
+
+### Некорректный разбор логов
+
+**Проверьте формат syslog:**
+
+Для Ubuntu 24.04+:
+
+```bash
+# Должен отображать формат ISO8601: 2025-11-17T20:55:44.826796+00:00
+tail -5 /var/log/syslog
+```
+
+Для Amazon Linux 2 / Ubuntu 20.04:
+
+```bash
+# Должен отобразить традиционный формат: Nov 17 14:16:16
+tail -5 /var/log/messages
+```
+
+Если ваш формат отличается, в зависимости от вашей дистрибуции используйте соответствующую вкладку конфигурации в разделе [Create collector configuration](#create-config).
+
+
+### Коллектор не запускается как служба systemd
+
+**Проверьте статус службы:**
+
+```bash
+sudo systemctl status otelcol-contrib
+```
+
+**Просмотрите подробные логи:**
+
+```bash
+sudo journalctl -u otelcol-contrib -n 50
+```
+
+**Распространённые проблемы:**
+
+* API-ключ некорректно задан в переменных окружения
+* Ошибки синтаксиса в файле конфигурации
+* Проблемы с правами доступа к файлам логов
+
+
+## Следующие шаги {#next-steps}
+
+После настройки мониторинга логов хоста EC2:
+
+- Настройте [оповещения](/use-cases/observability/clickstack/alerts) для ключевых системных событий (сбоев сервисов, ошибок аутентификации, предупреждений по диску)
+- Фильтруйте логи по атрибутам метаданных EC2 (region, instance type, instance ID) для мониторинга конкретных ресурсов
+- Коррелируйте логи хоста EC2 с логами приложений для всестороннего устранения неполадок
+- Создайте пользовательские дашборды для мониторинга безопасности (попытки SSH-доступа, использование sudo, блокировки межсетевым экраном)
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/host-logs/generic-host-logs.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/host-logs/generic-host-logs.md
index 35246b8cd35..d3c3d4f5ab7 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/host-logs/generic-host-logs.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/host-logs/generic-host-logs.md
@@ -63,7 +63,7 @@ import TabItem from '@theme/TabItem';
tail -20 /var/log/syslog
```
- Типичные расположения syslog:
+ Стандартные расположения syslog:
* **Ubuntu/Debian**: `/var/log/syslog`
* **RHEL/CentOS/Fedora**: `/var/log/messages`
@@ -71,7 +71,7 @@ import TabItem from '@theme/TabItem';
#### Создайте пользовательскую конфигурацию OTel collector
- ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector путём монтирования пользовательского конфигурационного файла и установки переменной окружения.
+ ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector путём монтирования пользовательского конфигурационного файла и задания переменной окружения.
Создайте файл `host-logs-monitoring.yaml` с конфигурацией для вашей системы:
@@ -116,7 +116,7 @@ import TabItem from '@theme/TabItem';
```
-
+
```yaml
receivers:
filelog/syslog:
@@ -200,31 +200,31 @@ import TabItem from '@theme/TabItem';
Все конфигурации:
- * Чтение файлов syslog из стандартных расположений
- * Разберите сообщения в формате syslog, чтобы извлечь структурированные поля (timestamp, hostname, unit/service, PID, message)
- * Сохранение исходных временных меток логов
+ * Чтение файлов syslog из стандартных путей
+ * Разобрать сообщения в формате syslog, чтобы извлечь структурированные поля (timestamp, hostname, unit/service, PID, message)
+ * Сохраняйте исходные временные метки логов
* Добавьте атрибут `source: host-logs` для фильтрации данных в HyperDX
- * Маршрутизируйте логи в экспортёр ClickHouse через отдельный конвейер обработки
+ * Направьте логи в экспортёр ClickHouse через отдельный pipeline
:::note
* В пользовательской конфигурации вы задаёте только новые receivers и pipelines
- * Процессоры (`memory_limiter`, `transform`, `batch`) и экспортёры (`clickhouse`) уже определены в базовой конфигурации ClickStack — достаточно просто сослаться на них по имени
- * Парсер на основе регулярных выражений извлекает имена юнитов systemd, PID и другие метаданные из сообщений в формате syslog
- * Эта конфигурация использует `start_at: end`, чтобы избежать повторного приёма логов при перезапусках коллектора. Для тестирования измените на `start_at: beginning`, чтобы сразу увидеть логи за прошедшее время.
+ * Процессоры (`memory_limiter`, `transform`, `batch`) и экспортёры (`clickhouse`) уже определены в базовой конфигурации ClickStack — вы просто ссылаетесь на них по имени
+ * Regex-парсер извлекает имена юнитов systemd, PID'ы и другие метаданные из сообщений в формате syslog
+ * Эта конфигурация использует `start_at: end`, чтобы избежать повторного приёма логов при перезапусках коллектора. Для тестирования измените на `start_at: beginning`, чтобы сразу увидеть предыдущие логи.
:::
#### Настройте ClickStack для загрузки пользовательской конфигурации
Чтобы включить пользовательскую конфигурацию коллектора в существующем развертывании ClickStack, необходимо:
- 1. Смонтируйте пользовательский файл конфигурации по пути `/etc/otelcol-contrib/custom.config.yaml`
+ 1. Подмонтируйте пользовательский конфигурационный файл в `/etc/otelcol-contrib/custom.config.yaml`
2. Установите переменную окружения `CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml`
- 3. Смонтируйте каталог с файлами syslog, чтобы коллектор мог их читать
+ 3. Примонтируйте каталог с журналами syslog, чтобы коллектор мог их считывать
##### Вариант 1: Docker Compose
- Обновите конфигурацию развёртывания ClickStack:
+ Обновите конфигурацию развертывания ClickStack:
```yaml
services:
@@ -241,7 +241,7 @@ import TabItem from '@theme/TabItem';
##### Вариант 2: Docker Run (образ «всё в одном»)
- Если вы используете универсальный образ с docker run:
+ Если вы используете универсальный образ с `docker run`:
```bash
docker run --name clickstack \
@@ -249,21 +249,21 @@ import TabItem from '@theme/TabItem';
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/host-logs-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v /var/log:/var/log:ro \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
:::note
- Убедитесь, что коллектор ClickStack имеет необходимые права для чтения файлов syslog. В production-среде используйте монтирование только для чтения (`:ro`) и следуйте принципу наименьших привилегий.
+ Убедитесь, что коллектор ClickStack имеет необходимые права для чтения файлов syslog. В production-среде используйте монтирование только для чтения (`:ro`) и следуйте принципу минимальных привилегий.
:::
#### Проверка логов в HyperDX
После настройки войдите в HyperDX и убедитесь, что журналы поступают:
- 1. Перейдите в режим поиска
- 2. В поле Source выберите значение Logs
- 3. Отфильтруйте по `source:host-logs`, чтобы просмотреть логи конкретных хостов
- 4. Вы должны увидеть структурированные записи логов с полями, такими как `unit`, `hostname`, `pid`, `message` и т.д.
+ 1. Перейдите на страницу поиска
+ 2. В качестве источника выберите Logs
+ 3. Отфильтруйте логи по `source:host-logs`, чтобы увидеть логи конкретного хоста
+ 4. Вы должны увидеть структурированные записи логов с такими полями, как `unit`, `hostname`, `pid`, `message` и т.д.
@@ -272,13 +272,13 @@ import TabItem from '@theme/TabItem';
## Демонстрационный набор данных {#demo-dataset}
-Для пользователей, которые хотят протестировать интеграцию журналов хоста перед настройкой боевых систем, мы предоставляем пример набора данных с предварительно сгенерированными системными журналами с реалистичными сценариями.
+Для пользователей, которые хотят протестировать интеграцию с журналами хоста до настройки своих продуктовых систем, мы предоставляем пример набора данных из заранее сгенерированных системных логов с реалистичными шаблонами.
-#### Загрузка примера набора данных {#download-sample}
+#### Загрузите пример набора данных {#download-sample}
-Загрузите пример файла журнала:
+Загрузите пример файла логов:
```bash
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/host-logs/journal.log
@@ -287,13 +287,13 @@ curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-int
Набор данных включает:
- Последовательность загрузки системы
- Активность входа по SSH (успешные и неуспешные попытки)
-- Инцидент безопасности (атака перебором паролей с реакцией fail2ban)
-- Плановое обслуживание (задания cron, anacron)
+- Инцидент безопасности (атака методом перебора с реакцией fail2ban)
+- Плановое обслуживание (cron-задания, anacron)
- Перезапуски сервисов (rsyslog)
-- Сообщения ядра и активность межсетевого экрана (firewall)
-- Сочетание нормальной работы и примечательных событий
+- Сообщения ядра и активность межсетевого экрана
+- Сочетание нормальной работы и заметных событий
-#### Создание тестовой конфигурации коллектора {#test-config}
+#### Создайте тестовую конфигурацию коллектора {#test-config}
Создайте файл с именем `host-logs-demo.yaml` со следующей конфигурацией:
@@ -335,9 +335,9 @@ service:
EOF
```
-#### Запуск ClickStack с демонстрационной конфигурацией {#run-demo}
+#### Запустите ClickStack с демонстрационной конфигурацией {#run-demo}
-Запустите ClickStack с демо-журналами и конфигурацией:
+Запустите ClickStack с демонстрационными логами и конфигурацией:
```bash
docker run --name clickstack-demo \
@@ -345,26 +345,26 @@ docker run --name clickstack-demo \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/host-logs-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v "$(pwd)/journal.log:/tmp/host-demo/journal.log:ro" \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
:::note
-**Это монтирует файл журнала непосредственно в контейнер. Это делается для тестирования со статическими демо-данными.**
+**При этом файл логов монтируется непосредственно в контейнер. Это сделано для целей тестирования со статическими демонстрационными данными.**
:::
-#### Проверка журналов в HyperDX {#verify-demo-logs}
+#### Проверьте логи в HyperDX {#verify-demo-logs}
После запуска ClickStack:
-1. Откройте [HyperDX](http://localhost:8080/) и войдите в свою учетную запись (при необходимости сначала создайте учетную запись)
+1. Откройте [HyperDX](http://localhost:8080/) и войдите в свою учетную запись (возможно, вам сначала потребуется создать учетную запись)
2. Перейдите в раздел Search и установите источник `Logs`
-3. Установите диапазон времени **2025-11-10 00:00:00 - 2025-11-13 00:00:00**
+3. Установите диапазон времени на **2025-11-10 00:00:00 - 2025-11-13 00:00:00**
-
-
+
+
:::note[Отображение часового пояса]
-HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демо-данные охватывают период **2025-11-11 00:00:00 - 2025-11-12 00:00:00 (UTC)**. Широкий диапазон времени гарантирует, что вы увидите демо-журналы независимо от вашего местоположения. После того как вы увидите журналы, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
+HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период **2025-11-11 00:00:00 - 2025-11-12 00:00:00 (UTC)**. Широкий временной диапазон гарантирует, что вы увидите демонстрационные логи независимо от вашего местоположения. После того как вы увидите логи, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
:::
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/collector.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/collector.md
index 23cebeccc43..70ffaa7aff9 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/collector.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/collector.md
@@ -19,7 +19,6 @@ import ingestion_key from '@site/static/images/use-cases/observability/ingestion
На этой странице представлена подробная информация по настройке официального коллектора OpenTelemetry (OTel) для ClickStack.
-
## Роли коллектора {#collector-roles}
Коллекторы OpenTelemetry могут быть развернуты в двух основных ролях:
@@ -38,32 +37,32 @@ import ingestion_key from '@site/static/images/use-cases/observability/ingestion
### Автономный режим {#standalone}
-Чтобы развернуть дистрибутив ClickStack коннектора OTel в автономном режиме, выполните следующую команду Docker:
+Чтобы развернуть дистрибутив коннектора OTel ClickStack в автономном режиме, выполните следующую docker-команду:
```shell
-docker run -e OPAMP_SERVER_URL=${OPAMP_SERVER_URL} -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-otel-collector
+docker run -e OPAMP_SERVER_URL=${OPAMP_SERVER_URL} -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-otel-collector:latest
```
-Обратите внимание, что можно переопределить целевой экземпляр ClickHouse с помощью переменных окружения `CLICKHOUSE_ENDPOINT`, `CLICKHOUSE_USERNAME` и `CLICKHOUSE_PASSWORD`. Значение `CLICKHOUSE_ENDPOINT` должно быть полным HTTP-эндпоинтом ClickHouse, включая протокол и порт — например, `http://localhost:8123`.
+Обратите внимание, что мы можем переопределить целевой экземпляр ClickHouse с помощью переменных среды `CLICKHOUSE_ENDPOINT`, `CLICKHOUSE_USERNAME` и `CLICKHOUSE_PASSWORD`. Значение `CLICKHOUSE_ENDPOINT` должно быть полным HTTP‑эндпоинтом ClickHouse, включая протокол и порт — например, `http://localhost:8123`.
-**Эти переменные окружения можно использовать с любыми docker-дистрибутивами, которые включают коннектор.**
+**Эти переменные среды можно использовать с любыми docker-дистрибутивами, которые включают коннектор.**
-Переменная `OPAMP_SERVER_URL` должна указывать на ваше развертывание HyperDX — например, `http://localhost:4320`. HyperDX по умолчанию предоставляет сервер OpAMP (Open Agent Management Protocol) по пути `/v1/opamp` на порту `4320`. Убедитесь, что этот порт проброшен из контейнера, в котором запущен HyperDX (например, с помощью `-p 4320:4320`).
+`OPAMP_SERVER_URL` должен указывать на ваше развертывание HyperDX — например, `http://localhost:4320`. HyperDX по умолчанию поднимает сервер OpAMP (Open Agent Management Protocol) по пути `/v1/opamp` на порту `4320`. Убедитесь, что этот порт проброшен из контейнера, в котором запущен HyperDX (например, с помощью `-p 4320:4320`).
-:::note Публикация и подключение к порту OpAMP
-Чтобы коллектор смог подключиться к порту OpAMP, он должен быть опубликован контейнером HyperDX, например, с помощью `-p 4320:4320`. Для локального тестирования пользователи macOS могут затем задать `OPAMP_SERVER_URL=http://host.docker.internal:4320`. Пользователи Linux могут запустить контейнер коллектора с параметром `--network=host`.
+:::note Exposing and connecting to the OpAMP port
+Чтобы коллектор смог подключиться к порту OpAMP, он должен быть проброшен из контейнера HyperDX, например `-p 4320:4320`. Для локального тестирования пользователи macOS могут задать `OPAMP_SERVER_URL=http://host.docker.internal:4320`. Пользователи Linux могут запускать контейнер коллектора с параметром `--network=host`.
:::
-В продуктивной среде пользователям следует использовать учётную запись с [подходящими учетными данными](/use-cases/observability/clickstack/ingesting-data/otel-collector#creating-an-ingestion-user).
+В production-среде пользователям следует использовать пользователя с [соответствующими учётными данными](/use-cases/observability/clickstack/ingesting-data/otel-collector#creating-an-ingestion-user).
### Изменение конфигурации {#modifying-otel-collector-configuration}
#### Использование Docker {#using-docker}
-Все образы Docker с включённым OpenTelemetry Collector можно настроить на использование экземпляра ClickHouse через переменные окружения `OPAMP_SERVER_URL`, `CLICKHOUSE_ENDPOINT`, `CLICKHOUSE_USERNAME` и `CLICKHOUSE_PASSWORD`:
+Все образы Docker, включающие OpenTelemetry collector, можно настроить для работы с экземпляром ClickHouse через переменные окружения `OPAMP_SERVER_URL`, `CLICKHOUSE_ENDPOINT`, `CLICKHOUSE_USERNAME` и `CLICKHOUSE_PASSWORD`:
-Например, образ all-in-one:
+Например, универсальный (all-in-one) образ:
```shell
export OPAMP_SERVER_URL=
@@ -73,9 +72,13 @@ export CLICKHOUSE_PASSWORD=
```
```shell
-docker run -e OPAMP_SERVER_URL=${OPAMP_SERVER_URL} -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one
+docker run -e OPAMP_SERVER_URL=${OPAMP_SERVER_URL} -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
```
+:::note Изменение имени образа
+Образы ClickStack теперь публикуются под именем `clickhouse/clickstack-*` (ранее `docker.hyperdx.io/hyperdx/*`).
+:::
+
#### Docker Compose {#docker-compose-otel}
@@ -101,16 +104,15 @@ docker run -e OPAMP_SERVER_URL=${OPAMP_SERVER_URL} -e CLICKHOUSE_ENDPOINT=${CLIC
- internal
```
-
### Расширенная конфигурация {#advanced-configuration}
Дистрибутив OTel collector в составе ClickStack поддерживает расширение базовой конфигурации за счёт монтирования пользовательского конфигурационного файла и задания переменной окружения. Пользовательская конфигурация объединяется с базовой конфигурацией, управляемой HyperDX через OpAMP.
#### Расширение конфигурации коллектора {#extending-collector-config}
-Чтобы добавить пользовательские receivers, processors или pipelines:
+Чтобы добавить пользовательские приёмники (receivers), процессоры (processors) или конвейеры (pipelines):
-1. Создайте пользовательский файл конфигурации с дополнительными параметрами
+1. Создайте пользовательский файл конфигурации с вашей дополнительной конфигурацией
2. Смонтируйте файл по пути `/etc/otelcol-contrib/custom.config.yaml`
3. Установите переменную окружения `CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml`
@@ -126,7 +128,7 @@ receivers:
- /var/log/messages
start_at: beginning
- # Сбор метрик хост-системы
+ # Сбор метрик системы хоста
hostmetrics:
collection_interval: 30s
scrapers:
@@ -167,17 +169,17 @@ service:
- clickhouse
```
-**Разверните, используя образ «всё в одном»:**
+**Развертывание с использованием образа all-in-one:**
```bash
docker run -d --name clickstack \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/custom-config.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
-**Развертывание с отдельным коллектором:**
+**Развертывание с автономным коллектором:**
```bash
docker run -d \
@@ -188,14 +190,14 @@ docker run -d \
-e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} \
-v "$(pwd)/custom-config.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-p 4317:4317 -p 4318:4318 \
- docker.hyperdx.io/hyperdx/hyperdx-otel-collector
+ clickhouse/clickstack-otel-collector:latest
```
:::note
-В пользовательской конфигурации вы определяете только новые `receivers`, `processors` и `pipelines`. Базовые `processors` (`memory_limiter`, `batch`) и `exporters` (`clickhouse`) уже определены — ссылайтесь на них по имени. Пользовательская конфигурация объединяется с базовой конфигурацией и не может переопределять существующие компоненты.
+В пользовательской конфигурации вы определяете только новые `receivers`, `processors` и `pipelines`. Базовые `processors` (`memory_limiter`, `batch`) и `exporters` (`clickhouse`) уже определены — ссылайтесь на них по имени. Пользовательская конфигурация объединяется с базовой и не может переопределять уже существующие компоненты.
:::
-Для более сложных конфигураций обратитесь к [стандартной конфигурации коллектора ClickStack](https://github.com/hyperdxio/hyperdx/blob/main/docker/otel-collector/config.yaml) и к [документации по экспортёру ClickHouse](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/clickhouseexporter/README.md#configuration-options).
+Для более сложных конфигураций обратитесь к [конфигурации коллектора ClickStack по умолчанию](https://github.com/hyperdxio/hyperdx/blob/main/docker/otel-collector/config.yaml) и к [документации по экспортеру ClickHouse](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/clickhouseexporter/README.md#configuration-options).
#### Структура конфигурации {#configuration-structure}
@@ -228,7 +230,6 @@ GRANT SELECT, INSERT, CREATE DATABASE, CREATE TABLE, CREATE VIEW ON otel.* TO hy
Предполагается, что коллектор настроен на использование базы данных `otel`. Этим можно управлять через переменную окружения `HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE`. Передайте её в образ контейнера с коллектором [аналогично другим переменным окружения](#modifying-otel-collector-configuration).
-
## Обработка — фильтрация, трансформация и обогащение {#processing-filtering-transforming-enriching}
Пользователям в большинстве случаев потребуется фильтровать, трансформировать и обогащать сообщения событий во время ингестии. Поскольку конфигурацию коннектора ClickStack нельзя изменить, мы рекомендуем пользователям, которым требуется дополнительная фильтрация и обработка событий, либо:
@@ -309,7 +310,6 @@ service:
Для более сложной конфигурации мы рекомендуем обратиться к [документации по OpenTelemetry collector](https://opentelemetry.io/docs/collector/).
-
## Оптимизация вставок {#optimizing-inserts}
Чтобы обеспечить высокую производительность операций вставки при одновременном соблюдении строгих гарантий согласованности, пользователям следует придерживаться нескольких простых правил при вставке данных наблюдаемости в ClickHouse через коллектор ClickStack. При корректной настройке OTel collector следовать этим правилам должно быть несложно. Это также позволяет избежать [распространённых проблем](https://clickhouse.com/blog/common-getting-started-issues-with-clickhouse), с которыми пользователи сталкиваются при первом знакомстве с ClickHouse.
@@ -412,16 +412,16 @@ OTel collector в составе ClickStack действует как экзем
### Включение поддержки JSON {#enabling-json-support}
-Чтобы включить эту поддержку для коллектора, задайте переменную окружения `OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json'` в любом развертывании, содержащем коллектор. Это гарантирует, что схемы будут созданы в ClickHouse с использованием типа JSON.
+Чтобы включить эту поддержку для коллектора, установите переменную окружения `OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json'` в любом развертывании, где используется коллектор. Это гарантирует создание схем в ClickHouse с использованием типа JSON.
:::note Поддержка HyperDX
-Чтобы иметь возможность выполнять запросы к типу JSON, поддержку также необходимо включить на уровне приложения HyperDX с помощью переменной окружения `BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true`.
+Чтобы выполнять запросы к типу JSON, поддержку также необходимо включить на уровне приложения HyperDX с помощью переменной окружения `BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true`.
:::
Например:
```shell
-docker run -e OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' -e OPAMP_SERVER_URL=${OPAMP_SERVER_URL} -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-otel-collector
+docker run -e OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' -e OPAMP_SERVER_URL=${OPAMP_SERVER_URL} -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-otel-collector:latest
```
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/opentelemetry.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/opentelemetry.md
index 4191e1c52f5..13fdf2caf1d 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/opentelemetry.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/opentelemetry.md
@@ -15,7 +15,6 @@ import ingestion_key from '@site/static/images/use-cases/observability/ingestion
Пользователи отправляют данные в этот коллектор из [языковых SDK](/use-cases/observability/clickstack/sdks) или через агенты сбора данных, собирающие инфраструктурные метрики и логи (например, экземпляры OTel collector в [роли агента](/use-cases/observability/clickstack/ingesting-data/otel-collector#collector-roles) или другие технологии, такие как [Fluentd](https://www.fluentd.org/) или [Vector](https://vector.dev/)).
-
## Установка коллектора OpenTelemetry ClickStack {#installing-otel-collector}
Коллектор OpenTelemetry ClickStack включён в большинство вариантов развёртывания ClickStack, включая:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/schemas.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/schemas.md
index 64e33b0789d..39a42dee5f8 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/schemas.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/schemas.md
@@ -49,7 +49,6 @@ PRIMARY KEY (ServiceName, TimestampTime)
ORDER BY (ServiceName, TimestampTime, Timestamp)
```
-
## Трейсы {#traces}
```sql
@@ -89,7 +88,6 @@ PARTITION BY toDate(Timestamp)
ORDER BY (ServiceName, SpanName, toDateTime(Timestamp))
```
-
## Метрики {#metrics}
### Метрики типа Gauge {#gauge}
@@ -130,7 +128,6 @@ PARTITION BY toDate(TimeUnix)
ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
```
-
### Суммирующие метрики {#sum}
```sql
@@ -171,7 +168,6 @@ PARTITION BY toDate(TimeUnix)
ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
```
-
### Гистограммные метрики {#histogram}
```sql
@@ -216,7 +212,6 @@ PARTITION BY toDate(TimeUnix)
ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
```
-
### Экспоненциальные гистограммы {#exponential-histograms}
:::note
@@ -270,7 +265,6 @@ PARTITION BY toDate(TimeUnix)
ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
```
-
### Сводная таблица {#summary-table}
```sql
@@ -307,7 +301,6 @@ PARTITION BY toDate(TimeUnix)
ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
```
-
## Сессии {#sessions}
```sql
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/aws-lambda.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/aws-lambda.md
index ee4bf365383..ec8d9fd9ff3 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/aws-lambda.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/aws-lambda.md
@@ -24,7 +24,6 @@ import TabItem from '@theme/TabItem';
-
## Установка Lambda-слоёв OpenTelemetry {#installing-the-otel-lambda-layers}
Проект OpenTelemetry предоставляет отдельные Lambda-слои для следующего:
@@ -197,7 +196,6 @@ service:
OPENTELEMETRY_COLLECTOR_CONFIG_FILE=/var/task/collector.yaml
```
-
## Проверка установки {#checking-the-installation}
После развертывания слоёв вы должны увидеть трассировки, автоматически
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/browser.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/browser.md
index ce25e366c17..d2d1258444f 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/browser.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/browser.md
@@ -27,7 +27,6 @@ import TabItem from '@theme/TabItem';
* **Запросы XHR/Fetch/WebSocket**
* **Исключения**
-
## Начало работы {#getting-started}
@@ -127,7 +126,6 @@ HyperDX.setGlobalAttributes({
});
```
-
### Автоматический захват ошибок в React error boundary {#auto-capture-react-error-boundary-errors}
Если вы используете React, вы можете автоматически перехватывать ошибки, которые возникают внутри
@@ -143,7 +141,6 @@ import { ErrorBoundary } from 'react-error-boundary';
HyperDX.attachToReactErrorBoundary(ErrorBoundary);
```
-
### Отправка пользовательских действий {#send-custom-actions}
Чтобы явно отслеживать конкретное событие приложения (например, регистрацию,
@@ -160,7 +157,6 @@ HyperDX.addAction('Form-Completed', {
});
```
-
### Динамическое включение захвата сетевого трафика {#enable-network-capture-dynamically}
Чтобы динамически включать или отключать захват сетевого трафика, вызывайте функцию `enableAdvancedNetworkCapture` или `disableAdvancedNetworkCapture` по мере необходимости.
@@ -169,7 +165,6 @@ HyperDX.addAction('Form-Completed', {
HyperDX.enableAdvancedNetworkCapture();
```
-
### Включение измерения времени загрузки ресурсов для CORS-запросов {#enable-resource-timing-for-cors-requests}
Если ваше frontend-приложение отправляет API-запросы на другой домен, вы можете
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/elixir.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/elixir.md
index f3d0cd04a00..e677f7f8867 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/elixir.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/elixir.md
@@ -36,7 +36,6 @@ def deps do
end
```
-
### Настройте логгер {#configure-logger}
Добавьте следующее в файл `config.exs`:
@@ -49,7 +48,6 @@ config :logger,
backends: [:console, {Hyperdx.Backend, :hyperdx}]
```
-
### Настройка переменных окружения {#configure-environment-variables}
После этого вам нужно будет настроить следующие переменные окружения в оболочке, чтобы отправлять телеметрию в ClickStack:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/golang.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/golang.md
index cffb272463e..bf20b186735 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/golang.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/golang.md
@@ -38,7 +38,6 @@ go get -u github.com/hyperdxio/opentelemetry-go
go get -u github.com/hyperdxio/opentelemetry-logs-go
```
-
### Пример HTTP-сервера на базе стандартной библиотеки (net/http) {#native-http-server-example}
В этом примере используется `net/http/otelhttp`.
@@ -147,7 +146,6 @@ func ExampleHandler(w http.ResponseWriter, r *http.Request) {
}
```
-
### Пример приложения на Gin {#gin-application-example}
В этом примере используется `gin-gonic/gin`.
@@ -232,7 +230,6 @@ func main() {
}
```
-
### Настройка переменных окружения {#configure-environment-variables}
Далее необходимо задать в оболочке следующие переменные окружения, чтобы отправлять телеметрию в ClickStack:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/index.md
index 4a7d9962ea6..15897574116 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/index.md
@@ -60,7 +60,6 @@ OTEL_EXPORTER_OTLP_HEADERS='authorization=<ВАШ_КЛЮЧ_API_ПРИЁМА>'
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
```
-
## Интеграция с Kubernetes {#kubernetes-integration}
Все SDKs поддерживают автоматическую корреляцию с метаданными Kubernetes (имя пода, пространство имен и т. д.) при работе в среде Kubernetes. Это позволяет вам:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/java.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/java.md
index c71de871948..7102f652ae4 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/java.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/java.md
@@ -42,7 +42,6 @@ ClickStack использует стандарт OpenTelemetry для сбора
curl -L -O https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar
```
-
### Настройте переменные окружения {#configure-environment-variables}
Далее необходимо настроить в оболочке следующие переменные окружения для отправки телеметрии в ClickStack:
@@ -60,7 +59,6 @@ OTEL_SERVICE_NAME='<НАЗВАНИЕ_ВАШЕГО_ПРИЛОЖЕНИЯ_ИЛИ_С
Переменная окружения `OTEL_EXPORTER_OTLP_HEADERS` содержит ключ API, доступный в приложении HyperDX в разделе `Team Settings → API Keys`.
-
### Запустите приложение с Java-агентом OpenTelemetry {#run-the-application-with-otel-java-agent}
```shell
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/nextjs.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/nextjs.md
index cfe4b17b7bb..74485c05baa 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/nextjs.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/nextjs.md
@@ -25,7 +25,6 @@ ClickStack может выполнять приём трасс OpenTelemetry в
Если вам нужна запись пользовательских сессий и мониторинг на стороне браузера, вместо этого установите [интеграцию для браузера](/use-cases/observability/clickstack/sdks/browser).
:::
-
## Установка {#installing}
### Включите хук инструментирования (требуется для версий v15 и ниже) {#enable-instrumentation-hook}
@@ -55,7 +54,6 @@ const nextConfig = {
module.exports = nextConfig;
```
-
### Установите SDK OpenTelemetry для ClickHouse {#install-sdk}
@@ -94,7 +92,6 @@ export async function register() {
Это позволит Next.js импортировать инструментацию OpenTelemetry при любом вызове бессерверной функции.
-
### Настройка переменных окружения {#configure-environment-variables}
Если вы отправляете трассировки напрямую в ClickStack, вам потребуется запустить сервер Next.js
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/nodejs.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/nodejs.md
index 8d20d099e38..806754dec6c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/nodejs.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/nodejs.md
@@ -23,7 +23,6 @@ ClickStack использует стандарт OpenTelemetry для сбора
* **Трейсы**
* **Исключения**
-
## Начало работы {#getting-started}
### Установка пакета инструментирования HyperDX OpenTelemetry {#install-hyperdx-opentelemetry-instrumentation-package}
@@ -216,7 +215,6 @@ function myErrorHandler(error, req, res, next) {
export OTEL_LOG_LEVEL=debug
```
-
## Расширенная конфигурация инструментирования {#advanced-instrumentation-configuration}
### Сбор логов консоли {#capture-console-logs}
@@ -227,7 +225,6 @@ export OTEL_LOG_LEVEL=debug
export HDX_NODE_CONSOLE_CAPTURE=0
```
-
### Прикрепление информации о пользователе или метаданных {#attach-user-information-or-metadata}
Чтобы удобно помечать все события, связанные с заданным атрибутом или
@@ -269,7 +266,6 @@ app.use((req, res, next) => {
export HDX_NODE_BETA_MODE=1
```
-
### Google Cloud Run {#google-cloud-run}
Если вы запускаете приложение в Google Cloud Run, Cloud Trace
@@ -362,7 +358,6 @@ HDX_NODE_EXPERIMENTAL_EXCEPTION_CAPTURE=1
После этого, чтобы автоматически перехватывать исключения в Express или Koa либо обрабатывать их вручную, следуйте инструкциям в разделе [Настройка сбора ошибок](#setup-error-collection) выше.
-
### Автоматически инструментируемые библиотеки {#auto-instrumented-libraries-2}
Следующие библиотеки будут автоматически инструментированы (с включением трассировки) с помощью описанных выше методов установки:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/python.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/python.md
index 0e828969f06..7afdd755c90 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/python.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/python.md
@@ -22,7 +22,6 @@ ClickStack использует стандарт OpenTelemetry для сбора
* **Метрики**
* **Трассировки**
-
## Начало работы {#getting-started}
### Установите пакет инструментирования ClickStack OpenTelemetry {#install-clickstack-otel-instrumentation-package}
@@ -39,7 +38,6 @@ pip install hyperdx-opentelemetry
opentelemetry-bootstrap -a install
```
-
### Настройте переменные окружения {#configure-environment-variables}
Далее в оболочке необходимо задать следующие переменные окружения, чтобы отправлять телеметрию в ClickStack:
@@ -52,7 +50,6 @@ OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
*Переменная окружения `OTEL_SERVICE_NAME` используется для идентификации вашего сервиса в приложении HyperDX. Вы можете задать ей любое удобное вам имя.*
-
### Запуск приложения с Python-агентом OpenTelemetry {#run-the-application-with-otel-python-agent}
Теперь вы можете запустить приложение с Python-агентом OpenTelemetry (`opentelemetry-instrument`).
@@ -61,7 +58,6 @@ OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
opentelemetry-instrument python app.py
```
-
#### Если вы используете `Gunicorn`, `uWSGI` или `uvicorn` {#using-uvicorn-gunicorn-uwsgi}
В этом случае для корректной работы агента OpenTelemetry для Python потребуются дополнительные изменения.
@@ -110,7 +106,6 @@ OpenTelemetry [в настоящее время не работает](https://g
export HYPERDX_ENABLE_ADVANCED_NETWORK_CAPTURE=1
```
-
## Устранение неполадок {#troubleshooting}
### Логи не отображаются из-за уровня логирования {#logs-not-appearing-due-to-log-level}
@@ -126,7 +121,6 @@ logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
```
-
### Экспорт в консоль {#exporting-to-the-console}
OpenTelemetry Python SDK обычно отображает ошибки в консоли при их возникновении. Однако если вы не сталкиваетесь с какими-либо ошибками, но замечаете, что ваши данные не появляются в HyperDX, как ожидалось, вы можете включить режим отладки. Когда режим отладки активирован, вся телеметрия будет выводиться в консоль, что позволяет проверить, корректно ли ваше приложение проинструментировано и передаёт ожидаемые данные.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/react-native.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/react-native.md
index 99266534a07..ff13a890310 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/react-native.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/react-native.md
@@ -27,7 +27,6 @@ React Native SDK для ClickStack позволяет инструментиро
npm install @hyperdx/otel-react-native
```
-
### Инициализируйте ClickStack {#initialize-clickstack}
Инициализируйте библиотеку как можно раньше в жизненном цикле приложения:
@@ -42,7 +41,6 @@ HyperDXRum.init({
});
```
-
### Добавление информации о пользователе или метаданных (необязательно) {#attach-user-information-metadata}
Добавление информации о пользователе позволит выполнять поиск и фильтрацию
@@ -64,7 +62,6 @@ HyperDXRum.setGlobalAttributes({
});
```
-
### Инструментирование более старых версий {#instrument-lower-versions}
Чтобы инструментировать приложения, работающие на React Native версии ниже 0.68,
@@ -111,7 +108,6 @@ module.exports = {
};
```
-
## Навигация между экранами {#view-navigation}
Поддерживаются версии 5 и 6 [react-navigation](https://github.com/react-navigation/react-navigation).
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/ruby.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/ruby.md
index 1354392f8f0..06bff47a10c 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/ruby.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/ingesting-data/sdks/ruby.md
@@ -33,7 +33,6 @@ _Чтобы отправлять логи в ClickStack, используйте
bundle add opentelemetry-sdk opentelemetry-instrumentation-all opentelemetry-exporter-otlp
```
-
### Настройка OpenTelemetry и форматтера логов {#configure-otel-logger-formatter}
Далее необходимо инициализировать трассировочную инструментацию OpenTelemetry
@@ -75,7 +74,6 @@ Rails.application.configure do
end
```
-
### Настройка переменных окружения {#configure-environment-variables}
Далее вам нужно будет настроить в вашей оболочке следующие переменные окружения для отправки телеметрии в ClickStack:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/index.md
index 59185298c12..81cc1578d08 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/index.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/index.md
@@ -2,25 +2,27 @@
slug: /use-cases/observability/clickstack/integration-guides
pagination_prev: null
pagination_next: null
-description: 'Ингестия данных в ClickStack — стек наблюдаемости ClickHouse'
+description: 'Ингестия данных для ClickStack — ClickHouse Observability Stack'
title: 'Руководства по интеграции'
doc_type: 'landing-page'
-keywords: ['ингестия данных ClickStack', 'ингестия данных наблюдаемости', 'руководства по интеграции ClickStack']
+keywords: ['ингестия данных ClickStack', 'ингестия данных обсервабилити', 'руководства по интеграции ClickStack']
---
-ClickStack предоставляет несколько способов организовать ингестию данных наблюдаемости в экземпляр ClickHouse. В этом разделе приведены краткие руководства по различным источникам логов, трейсов и метрик.
+ClickStack предоставляет несколько способов приёма данных обсервабилити в ваш экземпляр ClickHouse. В этом разделе приведены краткие руководства по быстрому запуску для различных источников логов, трейсинга и метрик.
:::note
-Некоторые из этих руководств по интеграции используют встроенный в ClickStack OpenTelemetry Collector для быстрого тестирования. Для продакшен-сред мы рекомендуем запускать собственный OTel collector и отправлять данные на OTLP-эндпоинт ClickStack. См. раздел [Отправка данных OpenTelemetry](/use-cases/observability/clickstack/ingesting-data/opentelemetry) для продакшен-конфигурации.
+Часть этих руководств по интеграции используют встроенный в ClickStack OpenTelemetry Collector для быстрого тестирования. Для продуктивных развертываний мы рекомендуем запускать собственный OTel Collector и отправлять данные в OTLP‑эндпоинт ClickStack. См. раздел [Sending OpenTelemetry data](/use-cases/observability/clickstack/ingesting-data/opentelemetry) для конфигурации в продакшене.
:::
| Раздел | Описание |
|------|-------------|
-| [Метрики Kafka](/use-cases/observability/clickstack/integrations/kafka-metrics) | Краткое руководство по работе с метриками Kafka |
-| [Kubernetes](/use-cases/observability/clickstack/integrations/kubernetes) | Краткое руководство по работе с Kubernetes |
-| [Логи Nginx](/use-cases/observability/clickstack/integrations/nginx) | Краткое руководство по работе с логами Nginx |
-| [Трейсы Nginx](/use-cases/observability/clickstack/integrations/nginx-traces) | Краткое руководство по работе с трейсами Nginx |
-| [Логи PostgreSQL](/use-cases/observability/clickstack/integrations/postgresql-logs) | Краткое руководство по работе с логами PostgreSQL |
-| [Метрики PostgreSQL](/use-cases/observability/clickstack/integrations/postgresql-metrics) | Краткое руководство по работе с метриками PostgreSQL |
-| [Логи Redis](/use-cases/observability/clickstack/integrations/redis) | Краткое руководство по работе с логами Redis |
-| [Метрики Redis](/use-cases/observability/clickstack/integrations/redis-metrics) | Краткое руководство по работе с метриками Redis |
\ No newline at end of file
+| [Generic Host Logs](/use-cases/observability/clickstack/integrations/host-logs) | Краткое руководство по логам Generic Host |
+| [EC2 Host Logs](/use-cases/observability/clickstack/integrations/host-logs/ec2) | Краткое руководство по логам EC2 Host |
+| [Kafka Metrics](/use-cases/observability/clickstack/integrations/kafka-metrics) | Краткое руководство по Kafka Metrics |
+| [Kubernetes](/use-cases/observability/clickstack/integrations/kubernetes) | Краткое руководство по Kubernetes |
+| [Nginx Logs](/use-cases/observability/clickstack/integrations/nginx) | Краткое руководство по логам Nginx |
+| [Nginx Traces](/use-cases/observability/clickstack/integrations/nginx-traces) | Краткое руководство по трейсингу Nginx |
+| [PostgreSQL Logs](/use-cases/observability/clickstack/integrations/postgresql-logs) | Краткое руководство по логам PostgreSQL |
+| [PostgreSQL Metrics](/use-cases/observability/clickstack/integrations/postgresql-metrics) | Краткое руководство по метрикам PostgreSQL |
+| [Redis Logs](/use-cases/observability/clickstack/integrations/redis) | Краткое руководство по логам Redis |
+| [Redis Metrics](/use-cases/observability/clickstack/integrations/redis-metrics) | Краткое руководство по метрикам Redis |
\ No newline at end of file
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/kafka-metrics.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/kafka-metrics.md
index 62bf9141fd7..55e2a553f35 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/kafka-metrics.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/kafka-metrics.md
@@ -17,7 +17,6 @@ import finish_import from '@site/static/images/clickstack/kafka/import-kafka-das
import example_dashboard from '@site/static/images/clickstack/kafka/kafka-metrics-dashboard.png';
import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTrackedLink';
-
# Мониторинг метрик Kafka с помощью ClickStack {#kafka-metrics-clickstack}
:::note[TL;DR]
@@ -48,22 +47,22 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
#### Получите API-ключ ClickStack
- JMX Metric Gatherer отправляет данные на OTLP-эндпоинт ClickStack, который требует аутентификации.
+ JMX Metric Gatherer отправляет данные в OTLP-эндпоинт ClickStack, для которого требуется аутентификация.
- 1. Откройте HyperDX по URL-адресу ClickStack (например, [http://localhost:8080](http://localhost:8080))
- 2. Создайте учетную запись или, при необходимости, войдите в систему
+ 1. Откройте HyperDX по адресу вашего ClickStack (например, [http://localhost:8080](http://localhost:8080))
+ 2. При необходимости создайте учетную запись или войдите в систему
3. Перейдите в раздел **Team Settings → API Keys**
- 4. Скопируйте **ключ API для приёма данных**
+ 4. Скопируйте свой **ключ API для приёма данных**
- 5. Задайте его в переменной окружения:
+ 5. Задайте её как переменную окружения:
```bash
export CLICKSTACK_API_KEY=your-api-key-here
```
- #### Загрузите сборщик метрик JMX для OpenTelemetry
+ #### Загрузите OpenTelemetry JMX Metric Gatherer
Скачайте JAR-файл JMX Metric Gatherer:
@@ -101,14 +100,14 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
netstat -an | grep 9999
```
- #### Развертывание сборщика метрик JMX с помощью Docker Compose
+ #### Развертывание JMX Metric Gatherer с помощью Docker Compose
- Этот пример демонстрирует полную настройку с Kafka, JMX Metric Gatherer и ClickStack. Укажите имена сервисов и конечные точки в соответствии с вашим существующим развертыванием:
+ Данный пример демонстрирует полную конфигурацию с Kafka, JMX Metric Gatherer и ClickStack. Укажите имена сервисов и конечные точки в соответствии с вашим развертыванием:
```yaml
services:
clickstack:
- image: docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ image: clickhouse/clickstack-all-in-one:latest
ports:
- "8080:8080"
- "4317:4317"
@@ -172,11 +171,11 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
**Ключевые параметры конфигурации:**
- * `service:jmx:rmi:///jndi/rmi://kafka:9999/jmxrmi` - URL подключения JMX (используйте имя хоста вашего кластера Kafka)
- * `otel.jmx.target.system=kafka` - Включает метрики Kafka
- * `http://clickstack:4318` — HTTP-эндпоинт OTLP (используйте имя хоста ClickStack)
- * `authorization=\${CLICKSTACK_API_KEY}` — ключ API для аутентификации (обязателен)
- * `service.name=kafka,kafka.broker.id=broker-0` - атрибуты ресурса, используемые для фильтрации
+ * `service:jmx:rmi:///jndi/rmi://kafka:9999/jmxrmi` - URL JMX-подключения (используйте имя хоста Kafka)
+ * `otel.jmx.target.system=kafka` - Включает специализированные метрики Kafka
+ * `http://clickstack:4318` - OTLP HTTP endpoint (используйте имя хоста вашего ClickStack)
+ * `authorization=\${CLICKSTACK_API_KEY}` - ключ API для аутентификации (обязательный параметр)
+ * `service.name=kafka,kafka.broker.id=broker-0` - атрибуты ресурса для фильтрации
* `10000` - Интервал сбора данных в миллисекундах (10 секунд)
#### Проверка метрик в HyperDX
@@ -189,83 +188,83 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
**Ключевые метрики для проверки:**
- * `kafka.message.count` - Общее количество обработанных сообщений
- * `kafka.partition.count` - Общее количество партиций
- * `kafka.partition.under_replicated` - в здоровом кластере это значение должно быть равно 0
+ * `kafka.message.count` - Общее число обработанных сообщений
+ * `kafka.partition.count` - Общее число партиций
+ * `kafka.partition.under_replicated` - В исправном кластере значение должно быть 0
* `kafka.network.io` - Пропускная способность сети
- * `kafka.request.time.*` - Процентили времени обработки запросов
+ * `kafka.request.time.*` - Перцентили времени отклика запросов
- Чтобы создать активность и получить больше метрик:
+ Чтобы сгенерировать активность и получить больше метрик:
```bash
- # Создание тестового топика
+ # Создайте тестовый топик
docker exec kafka bash -c "unset JMX_PORT && kafka-topics --create --topic test-topic --bootstrap-server kafka:9092 --partitions 3 --replication-factor 1"
- # Отправка тестовых сообщений
+ # Отправьте тестовые сообщения
echo -e "Message 1\nMessage 2\nMessage 3" | docker exec -i kafka bash -c "unset JMX_PORT && kafka-console-producer --topic test-topic --bootstrap-server kafka:9092"
```
:::note
- При запуске клиентских команд Kafka (kafka-topics, kafka-console-producer и т. д.) внутри контейнера Kafka используйте префикс `unset JMX_PORT &&`, чтобы избежать конфликтов портов JMX.
+ При запуске клиентских команд Kafka (kafka-topics, kafka-console-producer и т. д.) внутри контейнера Kafka используйте префикс `unset JMX_PORT &&` для предотвращения конфликтов портов JMX.
:::
## Демонстрационный набор данных {#demo-dataset}
-Для пользователей, которые хотят протестировать интеграцию метрик Kafka перед настройкой продуктивных систем, мы предоставляем заранее сгенерированный набор данных с реалистичными паттернами метрик Kafka.
+Для пользователей, которые хотят протестировать интеграцию метрик Kafka до настройки продуктивных систем, мы предоставляем заранее сгенерированный набор данных с реалистичными шаблонами метрик Kafka.
-#### Загрузите пример набора метрик {#download-sample}
+#### Загрузите пример набора данных с метриками {#download-sample}
-Скачайте заранее сгенерированные файлы метрик (29 часов метрик Kafka с реалистичными паттернами):
+Скачайте заранее сгенерированные файлы метрик (29 часов метрик Kafka с реалистичными шаблонами):
```bash
-# Загрузка gauge-метрик (количество партиций, размеры очередей, задержки, лаг потребителя)
+# Загрузить gauge‑метрики (количество партиций, размеры очередей, задержки, лаг потребителей)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/kafka/kafka-metrics-gauge.csv
-# Загрузка sum-метрик (скорость сообщений, скорость по байтам, количество запросов)
+# Загрузить sum‑метрики (скорости сообщений, пропускная способность по байтам, количество запросов)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/kafka/kafka-metrics-sum.csv
```
-Набор данных включает реалистичные паттерны для e-commerce кластера Kafka с одним брокером:
-- **06:00-08:00: Утренний всплеск** — резкий рост трафика относительно ночного базового уровня
-- **10:00-10:15: Молниеносная распродажа** — резкий всплеск до 3.5× обычного трафика
-- **11:30: Событие развертывания** — 12× всплеск лага потребителя с недореплицированными партициями
-- **14:00-15:30: Пиковый период покупок** — устойчиво высокий трафик на уровне 2.8× от базового
-- **17:00-17:30: После работы** — вторичный пик трафика
-- **18:45: Перебалансировка потребителей** — 6× всплеск лага во время перебалансировки
-- **20:00-22:00: Вечернее снижение** — резкое снижение до ночного уровня
+Набор данных включает реалистичные шаблоны для одноброкерного кластера Kafka для e‑commerce:
+- **06:00-08:00: Утренний всплеск** — резкий рост трафика от ночного базового уровня
+- **10:00-10:15: Флеш‑распродажа** — резкий скачок до 3.5× нормального трафика
+- **11:30: Событие развертывания** — 12× скачок лага потребителей с недореплицированными партициями
+- **14:00-15:30: Пиковые покупки** — устойчиво высокий трафик на уровне 2.8× базового
+- **17:00-17:30: Вечерний всплеск после работы** — вторичный пик трафика
+- **18:45: Перебалансировка потребителей** — 6× скачок лага во время перебалансировки
+- **20:00-22:00: Вечерний спад** — резкое снижение до ночного уровня
-#### Запуск ClickStack {#start-clickstack}
+#### Запустите ClickStack {#start-clickstack}
Запустите экземпляр ClickStack:
```bash
docker run -d --name clickstack-demo \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
-#### Загрузка метрик в ClickStack {#load-metrics}
+#### Загрузите метрики в ClickStack {#load-metrics}
Загрузите метрики напрямую в ClickHouse:
```bash
-# Загрузка gauge-метрик (количество партиций, размеры очередей, задержки, лаг потребителя) {#send-test-messages}
+# Загрузить gauge‑метрики (количество партиций, размеры очередей, задержки, лаг потребителей)
cat kafka-metrics-gauge.csv | docker exec -i clickstack-demo \
clickhouse-client --query "INSERT INTO otel_metrics_gauge FORMAT CSVWithNames"
-# Загрузка sum-метрик (скорость сообщений, скорость по байтам, количество запросов)
+# Загрузить sum‑метрики (скорости сообщений, пропускная способность по байтам, количество запросов)
cat kafka-metrics-sum.csv | docker exec -i clickstack-demo \
clickhouse-client --query "INSERT INTO otel_metrics_sum FORMAT CSVWithNames"
```
-#### Проверка метрик в HyperDX {#verify-demo-metrics}
+#### Проверьте метрики в HyperDX {#verify-demo-metrics}
-После загрузки самый быстрый способ просмотреть метрики — использовать преднастроенный дашборд.
+После загрузки самый быстрый способ посмотреть метрики — воспользоваться преднастроенным дашбордом.
Перейдите к разделу [Дашборды и визуализация](#dashboards), чтобы импортировать дашборд и просмотреть все метрики Kafka одновременно.
-:::note[Отображение часового пояса]
-HyperDX отображает отметки времени в часовом поясе, настроенном в браузере. Демонстрационные данные охватывают период **2025-11-05 16:00:00 - 2025-11-06 16:00:00 (UTC)**. Установите диапазон времени на **2025-11-04 16:00:00 - 2025-11-07 16:00:00**, чтобы гарантированно увидеть демонстрационные метрики независимо от вашего местоположения. После того как вы увидите метрики, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
+:::note[Отображение часовых поясов]
+HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период **2025-11-05 16:00:00 - 2025-11-06 16:00:00 (UTC)**. Установите диапазон времени на **2025-11-04 16:00:00 - 2025-11-07 16:00:00**, чтобы гарантированно увидеть демонстрационные метрики, независимо от вашего местоположения. После того как метрики будут видны, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
:::
@@ -349,7 +348,6 @@ docker exec kafka bash -c "unset JMX_PORT && kafka-topics --create --topic test-
echo -e "Message 1\nMessage 2\nMessage 3" | docker exec -i kafka bash -c "unset JMX_PORT && kafka-console-producer --topic test-topic --bootstrap-server kafka:9092"
```
-
#### Ошибки авторизации {#created-dashboard}
Если вы видите `Authorization failed` или `401 Unauthorized`:
@@ -363,8 +361,7 @@ docker compose down
docker compose up -d
```
-
-#### Конфликты портов при выполнении команд клиента Kafka
+#### Конфликты портов при выполнении команд клиента Kafka {#import-dashboard}
При выполнении команд клиента Kafka внутри контейнера Kafka вы можете увидеть:
@@ -378,7 +375,6 @@ docker compose up -d
docker exec kafka bash -c "unset JMX_PORT && kafka-topics --list --bootstrap-server kafka:9092"
```
-
#### Проблемы с сетевым подключением {#no-metrics}
Если в логах экспортера JMX появляется сообщение `Connection refused`:
@@ -397,7 +393,6 @@ docker network inspect <имя-сети>
docker exec sh -c "timeout 2 bash -c 'cat < /dev/null > /dev/tcp/clickstack/4318' && echo 'Connected' || echo 'Failed'"
```
-
## Переход в продакшн {#going-to-production}
В этом руководстве метрики отправляются напрямую из JMX Metric Gatherer в OTLP-эндпоинт ClickStack, что хорошо подходит для тестирования и небольших развертываний.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/kubernetes.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/kubernetes.md
index faaa686bdb4..021d52eebb6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/kubernetes.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/kubernetes.md
@@ -41,7 +41,6 @@ kubectl create configmap -n=otel-demo otel-config-vars --from-literal=YOUR_OTEL_
# например: kubectl create configmap -n=otel-demo otel-config-vars --from-literal=YOUR_OTEL_COLLECTOR_ENDPOINT=http://my-hyperdx-hdx-oss-v2-otel-collector:4318 {#eg-kubectl-create-configmap-notel-demo-otel-config-vars-from-literalyour_otel_collector_endpointhttpmy-hyperdx-hdx-oss-v2-otel-collector4318}
```
-
### Создание конфигурации ДемонСета {#creating-the-daemonset-configuration}
ДемонСет будет собирать логи и метрики с каждого узла в кластере, но не будет собирать события Kubernetes или метрики на уровне всего кластера.
@@ -155,8 +154,7 @@ curl -O https://raw.githubusercontent.com/ClickHouse/clickhouse-docs/refs/heads/
```
-
-### Создание конфигурации развертывания
+### Создание конфигурации развертывания {#creating-the-deployment-configuration}
Чтобы собирать события Kubernetes и метрики всего кластера, нам нужно развернуть отдельный коллектор OpenTelemetry в виде развертывания.
@@ -231,8 +229,7 @@ curl -O https://raw.githubusercontent.com/ClickHouse/clickhouse-docs/refs/heads/
```
-
-## Развертывание коллектора OpenTelemetry
+## Развертывание коллектора OpenTelemetry {#deploying-the-otel-collector}
Теперь коллектор OpenTelemetry можно развернуть в вашем Kubernetes-кластере с помощью
[Helm-чарта OpenTelemetry](https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-collector).
@@ -252,8 +249,7 @@ helm install my-opentelemetry-collector-daemonset open-telemetry/opentelemetry-c
Теперь метрики, логи и события Kubernetes из вашего кластера должны появиться в HyperDX.
-
-## Пересылка тегов ресурсов в поды (рекомендуется)
+## Пересылка тегов ресурсов в поды (рекомендуется) {#forwarding-resouce-tags-to-pods}
Чтобы коррелировать логи, метрики и трассировки на уровне приложения с метаданными Kubernetes
(например, именем пода, пространством имен и т.п.), необходимо передавать метаданные Kubernetes
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/nginx-logs.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/nginx-logs.md
index 89b92c5d912..f76fdaeeeee 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/nginx-logs.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/nginx-logs.md
@@ -53,7 +53,7 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
* **Linux (apt/yum)**: `/etc/nginx/nginx.conf`
* **macOS (Homebrew)**: `/usr/local/etc/nginx/nginx.conf` или `/opt/homebrew/etc/nginx/nginx.conf`
- * **Docker**: конфигурацию обычно монтируют как том
+ * **Docker**: конфигурация обычно монтируется как том
Добавьте это определение формата журнала в блок `http`:
@@ -78,7 +78,7 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
}
```
- После внесения этого изменения перезагрузите Nginx.
+ После внесения этого изменения перезапустите Nginx.
#### Создайте пользовательскую конфигурацию OTel collector
@@ -116,32 +116,33 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
- clickhouse
```
- Эта конфигурация:
+ Данная конфигурация:
* Считывает логи Nginx из стандартных путей
* Разбирает JSON-записи журнала
- * Извлекает и сохраняет исходные метки времени журналов
- * Добавляет атрибут source: nginx для фильтрации в HyperDX
+ * Извлекает и сохраняет исходные временные метки логов
+ * Добавляет атрибут source: Nginx для последующей фильтрации в HyperDX
* Направляет логи в экспортёр ClickHouse через отдельный конвейер
:::note
* В пользовательской конфигурации вы задаёте только новые receivers и pipelines
- * Процессоры (memory_limiter, transform, batch) и экспортёры (clickhouse) уже определены в базовой конфигурации ClickStack — достаточно просто ссылаться на них по имени
- * Оператор time_parser извлекает метки времени из поля time_local сервера Nginx, чтобы сохранить исходное время записей в логах
- * Конвейеры направляют данные от ваших приёмников к экспортёру ClickHouse через существующие процессоры.
+ * Процессоры (memory_limiter, transform, batch) и экспортёры (clickhouse) уже определены в базовой конфигурации ClickStack — достаточно сослаться на них по имени
+ * Оператор time_parser извлекает временные метки из поля time_local Nginx, чтобы сохранить исходные временные метки журналов
+ * Конвейеры маршрутизируют данные от ваших receivers к экспортеру ClickHouse через существующие processors
+ :::
#### Настройте ClickStack для загрузки пользовательской конфигурации
Чтобы включить пользовательскую конфигурацию коллектора в существующем развертывании ClickStack, необходимо:
- 1. Смонтируйте файл пользовательской конфигурации в /etc/otelcol-contrib/custom.config.yaml
- 2. Установите переменную окружения CUSTOM_OTELCOL_CONFIG_FILE в значение /etc/otelcol-contrib/custom.config.yaml
- 3. Смонтируйте каталоги с логами Nginx, чтобы коллектор мог их считывать
+ 1. Смонтируйте файл пользовательской конфигурации по пути /etc/otelcol-contrib/custom.config.yaml
+ 2. Установите переменную окружения CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
+ 3. Смонтируйте каталоги с логами Nginx, чтобы коллектор мог их читать
##### Вариант 1: Docker Compose
- Обновите конфигурацию развёртывания ClickStack:
+ Обновите конфигурацию развертывания ClickStack:
```yaml
services:
@@ -158,7 +159,7 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
##### Вариант 2: Docker Run (образ «всё в одном»)
- При использовании универсального образа с помощью docker run:
+ При использовании универсального образа с docker run:
```bash
docker run --name clickstack \
@@ -166,47 +167,47 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/nginx-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v /var/log/nginx:/var/log/nginx:ro \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
:::note
- Убедитесь, что коллектор ClickStack имеет необходимые права для чтения файлов журналов nginx. В продакшене используйте монтирование только для чтения (:ro) и следуйте принципу наименьших привилегий.
+ Убедитесь, что коллектор ClickStack имеет необходимые права для чтения файлов журналов nginx. В продакшене используйте монтирование только для чтения (:ro) и следуйте принципу минимальных привилегий.
:::
#### Проверка логов в HyperDX
После настройки войдите в HyperDX и убедитесь, что журналы поступают:
- 1. Перейдите в режим поиска
- 2. Выберите Logs в качестве источника и убедитесь, что вы видите записи логов с полями вроде request, request_time, upstream_response_time и т. д.
+ 1. Откройте представление поиска
+ 2. Выберите Logs в качестве источника и убедитесь, что вы видите записи логов с полями request, request_time, upstream_response_time и т.д.
Вот пример того, что вы должны увидеть:
-
+
-## Демонстрационный набор данных {#demo-dataset}
+## Демонстрационный датасет {#demo-dataset}
-Для пользователей, которые хотят протестировать интеграцию с nginx перед настройкой продуктивных систем, мы предоставляем образец набора данных с предварительно сгенерированными access‑логами nginx с реалистическими характеристиками трафика.
+Для пользователей, которые хотят протестировать интеграцию с nginx до настройки production-систем, мы предоставляем пример датасета с предварительно сгенерированными access‑логами nginx с реалистичными паттернами трафика.
-#### Загрузка демонстрационного набора данных {#download-sample}
+#### Загрузка демонстрационного датасета {#download-sample}
```bash
-# Загрузка логов
+# Скачать логи
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/access.log
```
-Набор данных включает:
-- Записи логов с реалистическими характеристиками трафика
-- Различные эндпоинты и HTTP‑методы
-- Как успешные запросы, так и ошибки
-- Реалистичное время отклика и объём данных в байтах
+Датасет включает:
+- Записи логов с реалистичными паттернами трафика
+- Различные endpoints и HTTP-методы
+- Смесь успешных запросов и ошибок
+- Реалистичное время отклика и объем переданных байт
-#### Создание конфигурации тестового коллектора {#test-config}
+#### Создание тестовой конфигурации коллектора {#test-config}
Создайте файл с именем `nginx-demo.yaml` со следующей конфигурацией:
@@ -243,7 +244,7 @@ EOF
#### Запуск ClickStack с демонстрационной конфигурацией {#run-demo}
-Запустите ClickStack с демонстрационными логами и конфигурацией:
+Запустите ClickStack с демо-логами и конфигурацией:
```bash
docker run --name clickstack-demo \
@@ -251,21 +252,21 @@ docker run --name clickstack-demo \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/nginx-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v "$(pwd)/access.log:/tmp/nginx-demo/access.log:ro" \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
#### Проверка логов в HyperDX {#verify-demo-logs}
После запуска ClickStack:
-1. Откройте [HyperDX](http://localhost:8080/) и войдите в свою учётную запись (при необходимости сначала создайте её)
-2. Перейдите в раздел Search и установите источник `Logs`
-3. Установите диапазон времени **2025-10-19 11:00:00 - 2025-10-22 11:00:00**
+1. Откройте [HyperDX](http://localhost:8080/) и войдите в свою учетную запись (при необходимости сначала создайте учетную запись)
+2. Перейдите в представление Search и установите источник на `Logs`
+3. Установите диапазон времени на **2025-10-19 11:00:00 - 2025-10-22 11:00:00**
Вот что вы должны увидеть в представлении поиска:
:::note[Отображение часового пояса]
-HyperDX отображает временные метки в часовом поясе вашего браузера. Демонстрационные данные охватывают период 2025-10-20 11:00:00 - 2025-10-21 11:00:00 UTC. Широкий диапазон времени гарантирует, что вы увидите демонстрационные логи независимо от вашего местоположения. После того как вы увидите логи, можно сузить диапазон до 24 часов для более наглядной визуализации.
+HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демо-данные охватывают период 2025-10-20 11:00:00 - 2025-10-21 11:00:00 UTC. Широкий временной диапазон гарантирует, что вы увидите демо-логи независимо от вашего местоположения. После того как вы увидите логи, вы можете сузить интервал до 24 часов для более наглядных визуализаций.
:::
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/nginx-traces.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/nginx-traces.md
index b718b0f5970..2ad1f70cc40 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/nginx-traces.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/nginx-traces.md
@@ -17,7 +17,6 @@ import example_dashboard from '@site/static/images/clickstack/nginx-traces-dashb
import view_traces from '@site/static/images/clickstack/nginx-traces-search-view.png';
import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTrackedLink';
-
# Мониторинг трасс Nginx с помощью ClickStack {#nginx-traces-clickstack}
:::note[TL;DR]
@@ -172,56 +171,56 @@ sudo systemctl reload nginx
-## Демо-набор данных {#demo-dataset}
+## Демонстрационный набор данных {#demo-dataset}
-Для пользователей, которые хотят протестировать интеграцию трасс nginx до настройки своих production-систем, мы предоставляем пример набора предварительно сгенерированных трасс nginx с реалистическими паттернами трафика.
+Для пользователей, которые хотят протестировать интеграцию трасс Nginx до настройки своих продуктивных систем, мы предоставляем пример набора данных предварительно сгенерированных трасс Nginx с реалистическими шаблонами трафика.
-#### Запустите ClickStack {#start-clickstack}
+#### Запуск ClickStack {#start-clickstack}
-Если у вас ещё не запущен ClickStack, запустите его командой:
+Если ClickStack у вас ещё не запущен, запустите его с помощью:
```bash
docker run --name clickstack-demo \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
-Подождите около 30 секунд, чтобы ClickStack полностью инициализировался, прежде чем продолжить.
+Подождите около 30 секунд, чтобы ClickStack полностью инициализировался, прежде чем продолжать.
- Порт 8080: веб-интерфейс HyperDX
- Порт 4317: OTLP gRPC endpoint (используется модулем nginx)
-- Порт 4318: OTLP HTTP endpoint (используется для демо-трасс)
+- Порт 4318: OTLP HTTP endpoint (используется для демонстрационных трасс)
-#### Загрузите демонстрационный набор данных {#download-sample}
+#### Загрузка демонстрационного набора данных {#download-sample}
-Загрузите файл с демонстрационными трассами и обновите временные метки до текущего времени:
+Скачайте файл с демонстрационными трассами и обновите метки времени на текущее время:
```bash
-# Загрузить трассы {#download-the-traces}
+# Загрузить трассы
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/nginx-traces-sample.json
```
Набор данных включает:
-- 1 000 спанов трасс с реалистическими временными характеристиками
-- 9 различных конечных точек (endpoints) с разными паттернами трафика
-- ~93% успешных ответов (200), ~3% клиентских ошибок (404), ~4% серверных ошибок (500)
+- 1 000 спанов трасс с реалистическими задержками
+- 9 различных эндпоинтов с разными шаблонами трафика
+- ~93% успешных запросов (200), ~3% клиентских ошибок (404), ~4% серверных ошибок (500)
- Задержки в диапазоне от 10 мс до 800 мс
-- Исходные паттерны трафика сохранены и сдвинуты к текущему времени
+- Исходные шаблоны трафика сохранены и сдвинуты к текущему времени
-#### Отправьте трассы в ClickStack {#send-traces}
+#### Отправка трасс в ClickStack {#send-traces}
-Установите значение вашего API key в переменную окружения (если это ещё не сделано):
+Установите свой API key как переменную окружения (если он ещё не установлен):
```bash
export CLICKSTACK_API_KEY=your-api-key-here
```
-**Как получить ваш API key:**
-1. Откройте HyperDX по вашему URL ClickStack
+**Получение вашего API key:**
+1. Откройте HyperDX по вашему ClickStack URL
2. Перейдите в Settings → API Keys
-3. Скопируйте ваш **ключ API для приёма данных API key**
+3. Скопируйте свой **Ingestion API Key**
Затем отправьте трассы в ClickStack:
@@ -233,24 +232,24 @@ curl -X POST http://localhost:4318/v1/traces \
```
:::note[Запуск на localhost]
-В этом демо предполагается, что ClickStack запущен локально на `localhost:4318`. Для удалённых экземпляров замените `localhost` на ваш hostname ClickStack.
+В этом примере предполагается, что ClickStack запущен локально на `localhost:4318`. Для удалённых экземпляров замените `localhost` на имя хоста вашего ClickStack.
:::
-Вы должны увидеть ответ вида `{"partialSuccess":{}}`, указывающий, что трассы были успешно отправлены. Все 1 000 трасс будут приняты (ингестированы) в ClickStack.
+Вы должны увидеть ответ вида `{"partialSuccess":{}}`, указывающий, что трассы были успешно отправлены. Все 1 000 трасс будут приняты в ClickStack.
-#### Проверьте трассы в HyperDX {#verify-demo-traces}
+#### Проверка трасс в HyperDX {#verify-demo-traces}
1. Откройте [HyperDX](http://localhost:8080/) и войдите в свою учётную запись (при необходимости сначала создайте её)
-2. Перейдите в представление Search и установите источник `Traces`
-3. Установите диапазон времени на **2025-10-25 13:00:00 - 2025-10-28 13:00:00**
+2. Перейдите в раздел Search и установите источник в `Traces`
+3. Установите временной диапазон на **2025-10-25 13:00:00 - 2025-10-28 13:00:00**
-Вот что вы должны увидеть в окне поиска:
+Вот что вы должны увидеть в представлении поиска:
:::note[Отображение часового пояса]
-HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демо-данные покрывают период **2025-10-26 13:00:00 - 2025-10-27 13:00:00 (UTC)**. Широкий диапазон времени гарантирует, что вы увидите демо-трассы независимо от вашего местоположения. После того как вы увидите трассы, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
+HyperDX отображает метки времени в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период **2025-10-26 13:00:00 - 2025-10-27 13:00:00 (UTC)**. Широкий временной диапазон гарантирует, что вы увидите демонстрационные трассы независимо от вашего местоположения. Как только вы увидите трассы, вы можете сузить диапазон до 24 часов для более наглядных визуализаций.
:::
-
+
@@ -329,7 +328,6 @@ sudo tail -f /var/log/nginx/error.log | grep -i otel
tail -f /var/log/nginx/access.log
```
-
## Следующие шаги {#next-steps}
Если вы хотите продолжить изучение возможностей, ниже приведены варианты для экспериментов с вашей панелью мониторинга:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/postgres-logs.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/postgres-logs.md
index b93c398e684..cad76ce3667 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/postgres-logs.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/postgres-logs.md
@@ -56,12 +56,12 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
* **Linux (apt/yum)**: `/etc/postgresql/{version}/main/postgresql.conf`
* **macOS (Homebrew)**: `/usr/local/var/postgres/postgresql.conf` или `/opt/homebrew/var/postgres/postgresql.conf`
- * **Docker**: Конфигурация обычно настраивается через переменные окружения или смонтированный файл конфигурации
+ * **Docker**: Конфигурация обычно задаётся через переменные окружения или примонтированный конфигурационный файл
- Добавьте или измените следующие параметры в `postgresql.conf`:
+ Добавьте или измените эти настройки в `postgresql.conf`:
```conf
- # Требуется для логирования в CSV
+ # Требуется для логирования в формате CSV
logging_collector = on
log_destination = 'csvlog'
@@ -69,11 +69,11 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
log_connections = on
log_disconnections = on
- # Опционально: настройте в соответствии с потребностями мониторинга
+ # Опционально: настройте в соответствии с требованиями мониторинга
#log_min_duration_statement = 1000 # Логировать запросы длительностью более 1 секунды
- #log_statement = 'ddl' # Логировать DDL-операторы (CREATE, ALTER, DROP)
+ #log_statement = 'ddl' # Логировать DDL-команды (CREATE, ALTER, DROP)
#log_checkpoints = on # Логировать активность контрольных точек
- #log_lock_waits = on # Логировать ожидания блокировок
+ #log_lock_waits = on # Логировать ожидание блокировок
```
:::note
@@ -145,35 +145,35 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
- clickhouse
```
- Эта конфигурация:
+ Данная конфигурация:
- * Считывает CSV‑логи PostgreSQL из стандартного расположения
- * Обрабатывает многострочные записи логов (ошибки часто занимают несколько строк)
- * Разбирает формат CSV со всеми стандартными полями журнала PostgreSQL
+ * Считывает журналы PostgreSQL в формате CSV из стандартного расположения
+ * Поддерживает многострочные записи логов (ошибки часто занимают несколько строк)
+ * Разбирает формат CSV со всеми стандартными полями журналов PostgreSQL
* Извлекает временные метки, чтобы сохранить исходное время логов
- * Добавляет атрибут `source: postgresql` для последующей фильтрации в HyperDX
- * Направляет логи в экспортер ClickHouse через отдельный pipeline
+ * Добавляет атрибут `source: postgresql`, который можно использовать для фильтрации в HyperDX
+ * Направляет логи в экспортёр ClickHouse через выделенный конвейер обработки
:::note
- * Определяйте новые приёмники и конвейеры только в пользовательской конфигурации
- * Процессоры (`memory_limiter`, `transform`, `batch`) и экспортёры (`clickhouse`) уже определены в базовой конфигурации ClickStack — достаточно просто ссылаться на них по имени
+ * В пользовательской конфигурации вы задаёте только новые receivers и pipelines
+ * Процессоры (`memory_limiter`, `transform`, `batch`) и экспортёры (`clickhouse`) уже определены в базовой конфигурации ClickStack — просто ссылайтесь на них по имени
* Оператор `csv_parser` извлекает все стандартные поля CSV‑логов PostgreSQL и преобразует их в структурированные атрибуты
- * Эта конфигурация использует `start_at: end`, чтобы избежать повторного приёма логов при перезапуске коллектора. Для тестирования измените на `start_at: beginning`, чтобы сразу увидеть ранее собранные логи.
- * Измените путь в параметре `include` так, чтобы он соответствовал расположению каталога журналов PostgreSQL
+ * Эта конфигурация использует `start_at: end`, чтобы избежать повторного приёма логов при перезапусках коллектора. Для тестирования измените на `start_at: beginning`, чтобы сразу увидеть предыдущие логи.
+ * Настройте путь в `include` так, чтобы он соответствовал расположению каталога журналов PostgreSQL
:::
#### Настройте ClickStack для загрузки пользовательской конфигурации
Чтобы включить пользовательскую конфигурацию коллектора в существующем развертывании ClickStack, необходимо:
- 1. Смонтируйте файл пользовательской конфигурации по пути `/etc/otelcol-contrib/custom.config.yaml`
- 2. Задайте переменную окружения `CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml`
- 3. Смонтируйте директорию с журналами PostgreSQL, чтобы коллектор мог их считывать
+ 1. Смонтируйте файл пользовательской конфигурации в `/etc/otelcol-contrib/custom.config.yaml`
+ 2. Установите переменную окружения `CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml`
+ 3. Смонтируйте каталог логов PostgreSQL, чтобы коллектор мог их считывать
##### Вариант 1: Docker Compose
- Обновите конфигурацию развёртывания ClickStack:
+ Обновите конфигурацию развертывания ClickStack:
```yaml
services:
@@ -190,7 +190,7 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
##### Вариант 2: Docker Run (образ «всё в одном»)
- Если вы используете универсальный образ с docker run:
+ Если вы используете универсальный образ с `docker run`:
```bash
docker run --name clickstack \
@@ -198,36 +198,36 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/postgres-logs-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v /var/lib/postgresql:/var/lib/postgresql:ro \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
:::note
- Убедитесь, что коллектор ClickStack имеет необходимые права для чтения файлов журналов PostgreSQL. В production-среде используйте монтирование только для чтения (`:ro`) и следуйте принципу минимальных привилегий.
+ Убедитесь, что коллектор ClickStack имеет необходимые права для чтения файлов журналов PostgreSQL. В production-среде используйте монтирование только для чтения (`:ro`) и следуйте принципу наименьших привилегий.
:::
#### Проверка логов в HyperDX
После настройки войдите в HyperDX и убедитесь, что журналы поступают:
- 1. Перейдите на экран поиска
- 2. Установите параметр Source в значение Logs
- 3. Отфильтруйте по `source:postgresql`, чтобы увидеть логи, относящиеся к PostgreSQL
- 4. Вы увидите структурированные записи журнала с полями `user_name`, `database_name`, `error_severity`, `message`, `query` и т. д.
+ 1. Перейдите в режим поиска
+ 2. В поле Source выберите Logs
+ 3. Отфильтруйте по `source:postgresql`, чтобы увидеть специфичные для PostgreSQL логи
+ 4. Вы должны увидеть структурированные записи журнала с такими полями, как `user_name`, `database_name`, `error_severity`, `message`, `query` и т.д.
-## Демонстрационный набор данных {#demo-dataset}
+## Демо-набор данных {#demo-dataset}
-Для пользователей, которые хотят протестировать интеграцию логов PostgreSQL перед настройкой производственных систем, мы предоставляем образец набора данных с заранее сгенерированными логами PostgreSQL с реалистичными шаблонами.
+Для пользователей, которые хотят протестировать интеграцию логов PostgreSQL до настройки производственных систем, мы предоставляем демонстрационный набор данных с заранее сгенерированными логами PostgreSQL с реалистичными паттернами.
#### Загрузка демонстрационного набора данных {#download-sample}
-Загрузите пример файла логов:
+Загрузите пример файла лога:
```bash
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/postgres/postgresql.log
@@ -243,7 +243,7 @@ receivers:
filelog/postgres:
include:
- /tmp/postgres-demo/postgresql.log
- start_at: beginning # Читать с начала для демонстрационных данных
+ start_at: beginning # Read from beginning for demo data
multiline:
line_start_pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}'
operators:
@@ -278,7 +278,7 @@ service:
EOF
```
-#### Запуск ClickStack с демонстрационной конфигурацией {#run-demo}
+#### Запуск ClickStack с демо-конфигурацией {#run-demo}
Запустите ClickStack с демонстрационными логами и конфигурацией:
@@ -288,24 +288,24 @@ docker run --name clickstack-demo \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/postgres-logs-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v "$(pwd)/postgresql.log:/tmp/postgres-demo/postgresql.log:ro" \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
#### Проверка логов в HyperDX {#verify-demo-logs}
После запуска ClickStack:
-1. Откройте [HyperDX](http://localhost:8080/) и войдите в свою учетную запись (при необходимости сначала создайте её)
-2. Перейдите в раздел Search и выберите источник `Logs`
-3. Установите диапазон времени: **2025-11-09 00:00:00 - 2025-11-12 00:00:00**
+1. Откройте [HyperDX](http://localhost:8080/) и войдите в свою учетную запись (при необходимости сначала создайте ее)
+2. Перейдите в представление Search и установите источник в значение `Logs`
+3. Установите диапазон времени на **2025-11-09 00:00:00 - 2025-11-12 00:00:00**
:::note[Отображение часового пояса]
-HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период **2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC)**. Широкий диапазон времени гарантирует, что вы увидите демонстрационные логи независимо от вашего местоположения. После того как вы увидите логи, вы можете сузить диапазон до 24 часов для более наглядных визуализаций.
+HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демо-данные охватывают период **2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC)**. Широкий диапазон времени гарантирует, что вы увидите демо-логи независимо от вашего местоположения. После того как вы увидите логи, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
:::
-
+
-
+
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/postgres-metrics.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/postgres-metrics.md
index 37e2de023c4..98ca9f134da 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/postgres-metrics.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/postgres-metrics.md
@@ -16,7 +16,6 @@ import finish_import from '@site/static/images/clickstack/postgres/import-dashbo
import example_dashboard from '@site/static/images/clickstack/postgres/postgres-metrics-dashboard.png';
import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTrackedLink';
-
# Мониторинг метрик PostgreSQL с помощью ClickStack {#postgres-metrics-clickstack}
:::note[Кратко]
@@ -128,68 +127,68 @@ docker run -d \
-## Демо-набор данных {#demo-dataset}
+## Демонстрационный набор данных {#demo-dataset}
-Для пользователей, которые хотят протестировать интеграцию метрик PostgreSQL перед настройкой своих боевых систем, мы предоставляем заранее сгенерированный набор данных с реалистичными профилями метрик PostgreSQL.
+Для пользователей, которые хотят протестировать интеграцию метрик PostgreSQL перед настройкой своих производственных систем, мы предоставляем заранее сгенерированный набор данных с реалистичными паттернами метрик PostgreSQL.
:::note[Только метрики на уровне базы данных]
-Этот демо-набор данных включает только метрики на уровне базы данных, чтобы сохранить небольшой объём примеров. Метрики таблиц и индексов собираются автоматически при мониторинге реальной базы данных PostgreSQL.
+Этот демонстрационный набор данных включает только метрики на уровне базы данных, чтобы сделать пример данных компактным. Метрики таблиц и индексов собираются автоматически при мониторинге реальной базы данных PostgreSQL.
:::
-#### Загрузите пример набора метрик {#download-sample}
+#### Загрузка демонстрационного набора метрик {#download-sample}
-Скачайте заранее сгенерированные файлы метрик (24 часа метрик PostgreSQL с реалистичными профилями):
+Загрузите заранее сгенерированные файлы метрик (24 часа метрик PostgreSQL с реалистичными паттернами):
```bash
-# Скачивание gauge-метрик (соединения, размер базы данных) {#download-gauge-metrics-connections-database-size}
+# Загрузка gauge-метрик (подключения, размер базы данных)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/postgres/postgres-metrics-gauge.csv
-# Скачивание sum-метрик (коммиты, откаты, операции) {#download-sum-metrics-commits-rollbacks-operations}
+# Загрузка sum-метрик (коммиты, откаты, операции)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/postgres/postgres-metrics-sum.csv
```
-Набор данных включает реалистичные паттерны:
-- **Утренний всплеск соединений (08:00)** — массовый вход пользователей
-- **Проблема с производительностью кэша (11:00)** — всплеск Blocks_read
-- **Ошибка приложения (14:00–14:30)** — уровень откатов возрастает до 15%
-- **Инциденты взаимоблокировок (14:15, 16:30)** — редкие взаимоблокировки
+В набор данных заложены реалистичные сценарии:
+- **Утренний всплеск подключений (08:00)** — массовые логины
+- **Проблема с производительностью кеша (11:00)** — всплеск Blocks_read
+- **Ошибка приложения (14:00-14:30)** — доля откатов возрастает до 15%
+- **Инциденты дедлоков (14:15, 16:30)** — редкие дедлоки
-#### Запустите ClickStack {#start-clickstack}
+#### Запуск ClickStack {#start-clickstack}
Запустите экземпляр ClickStack:
```bash
docker run -d --name clickstack-postgres-demo \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
Подождите примерно 30 секунд, чтобы ClickStack полностью запустился.
-#### Загрузите метрики в ClickStack {#load-metrics}
+#### Загрузка метрик в ClickStack {#load-metrics}
Загрузите метрики напрямую в ClickHouse:
```bash
-# Загрузка gauge-метрик {#load-gauge-metrics}
+# Загрузка gauge-метрик
cat postgres-metrics-gauge.csv | docker exec -i clickstack-postgres-demo \
clickhouse-client --query "INSERT INTO otel_metrics_gauge FORMAT CSVWithNames"
-# Загрузка sum-метрик {#load-sum-metrics}
+# Загрузка sum-метрик
cat postgres-metrics-sum.csv | docker exec -i clickstack-postgres-demo \
clickhouse-client --query "INSERT INTO otel_metrics_sum FORMAT CSVWithNames"
```
-#### Проверьте метрики в HyperDX {#verify-metrics-demo}
+#### Проверка метрик в HyperDX {#verify-metrics-demo}
-После загрузки самый быстрый способ увидеть метрики — использовать преднастроенный дашборд.
+После загрузки самый быстрый способ просмотреть метрики — использовать преднастроенный дашборд.
Перейдите к разделу [Dashboards and visualization](#dashboards), чтобы импортировать дашборд и просмотреть множество метрик PostgreSQL одновременно.
:::note[Отображение часового пояса]
-HyperDX отображает временные метки в часовом поясе, настроенном в вашем браузере. Демо-данные охватывают период **2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC)**. Установите диапазон времени на **2025-11-09 00:00:00 - 2025-11-12 00:00:00**, чтобы гарантированно увидеть демо-метрики независимо от вашего местоположения. После того как вы увидите метрики, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
+HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период **2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC)**. Установите диапазон времени на **2025-11-09 00:00:00 - 2025-11-12 00:00:00**, чтобы гарантированно увидеть демонстрационные метрики независимо от вашего местоположения. После того как вы увидите метрики, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
:::
@@ -241,7 +240,6 @@ docker exec <имя-контейнера> printenv CUSTOM_OTELCOL_CONFIG_FILE
docker exec <имя-контейнера> cat /etc/otelcol-contrib/custom.config.yaml
```
-
### Метрики не отображаются в HyperDX {#no-metrics}
Убедитесь, что есть доступ к PostgreSQL:
@@ -256,7 +254,6 @@ docker exec psql -h postgres-host -U otel_monitor -d post
docker exec cat /etc/otel/supervisor-data/agent.log | grep -i postgres
```
-
### Ошибки аутентификации {#auth-errors}
Убедитесь, что пароль указан верно:
@@ -271,7 +268,6 @@ docker exec printenv POSTGRES_PASSWORD
psql -h postgres-host -U otel_monitor -d postgres -c "SELECT version();"
```
-
## Дальнейшие шаги {#next-steps}
После настройки мониторинга метрик PostgreSQL:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/redis-logs.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/redis-logs.md
index 66d41f596fe..5c5421865ab 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/redis-logs.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/redis-logs.md
@@ -17,7 +17,6 @@ import log_view from '@site/static/images/clickstack/redis/redis-log-view.png';
import log from '@site/static/images/clickstack/redis/redis-log.png';
import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTrackedLink';
-
# Мониторинг логов Redis с помощью ClickStack {#redis-clickstack}
:::note[Кратко]
@@ -52,13 +51,13 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
redis-cli CONFIG GET logfile
```
- Стандартные расположения журналов Redis:
+ Типичные расположения логов Redis:
* **Linux (apt/yum)**: `/var/log/redis/redis-server.log`
* **macOS (Homebrew)**: `/usr/local/var/log/redis.log`
- * **Docker**: Обычно пишет логи в stdout, но может быть настроен на запись логов в `/data/redis.log`
+ * **Docker**: Обычно пишет логи в stdout, но может быть настроен на запись в `/data/redis.log`
- Если Redis выполняет логирование в stdout, настройте его на запись в файл, обновив `redis.conf`:
+ Если Redis записывает логи в stdout, настройте запись в файл, обновив `redis.conf`:
```bash
# Записывать логи в файл вместо stdout
@@ -80,7 +79,7 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
#### Создайте пользовательскую конфигурацию OTel collector
- ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector путём монтирования пользовательского конфигурационного файла и установки переменной окружения. Пользовательская конфигурация объединяется с базовой конфигурацией, которой управляет HyperDX через OpAMP.
+ ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector путём монтирования пользовательского конфигурационного файла и установки переменной окружения. Пользовательская конфигурация объединяется с базовой конфигурацией, управляемой HyperDX через OpAMP.
Создайте файл `redis-monitoring.yaml` со следующей конфигурацией:
@@ -120,32 +119,32 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
- clickhouse
```
- Эта конфигурация:
+ Данная конфигурация:
* Считывает логи Redis из стандартного расположения
- * Разбирает формат логов Redis с помощью регулярных выражений для извлечения структурированных полей (`pid`, `role`, `timestamp`, `log_level`, `message`)
- * Добавляет атрибут `source: redis`, который можно использовать для фильтрации в HyperDX
- * Передаёт логи в экспортёр ClickHouse через отдельный конвейер
+ * Анализирует формат журналов Redis с использованием регулярных выражений (regex) для извлечения структурированных полей (`pid`, `role`, `timestamp`, `log_level`, `message`)
+ * Добавляет атрибут `source: redis` для последующей фильтрации в HyperDX
+ * Направляет логи в экспортёр ClickHouse по выделенному конвейеру
:::note
- * В пользовательской конфигурации вы определяете только новые приёмники и конвейеры
- * Процессоры (`memory_limiter`, `transform`, `batch`) и экспортёры (`clickhouse`) уже определены в базовой конфигурации ClickStack — достаточно просто ссылаться на них по имени
- * Оператор `time_parser` извлекает временные метки из журналов Redis, чтобы сохранить исходное время записей журнала
- * Эта конфигурация использует `start_at: beginning`, чтобы при запуске коллектора прочитать все уже имеющиеся логи, поэтому вы сможете увидеть их сразу. В продакшн-среде, где важно избежать повторного приёма логов при перезапуске коллектора, измените значение на `start_at: end`.
+ * В пользовательской конфигурации вы задаёте только новые receivers и pipelines
+ * Процессоры (`memory_limiter`, `transform`, `batch`) и экспортёры (`clickhouse`) уже определены в базовой конфигурации ClickStack — их достаточно указать по имени
+ * Оператор `time_parser` извлекает временные метки из логов Redis, чтобы сохранить их исходное время
+ * Эта конфигурация использует `start_at: beginning` для чтения всех существующих логов при запуске коллектора, что позволяет сразу увидеть логи. Для продакшн-развёртываний, где вы хотите избежать повторного приёма логов при перезапуске коллектора, измените значение на `start_at: end`.
:::
#### Настройте ClickStack для загрузки пользовательской конфигурации
Чтобы включить пользовательскую конфигурацию коллектора в существующем развертывании ClickStack, необходимо:
- 1. Смонтируйте файл пользовательской конфигурации в `/etc/otelcol-contrib/custom.config.yaml`
- 2. Установите для переменной окружения `CUSTOM_OTELCOL_CONFIG_FILE` значение `/etc/otelcol-contrib/custom.config.yaml`
- 3. Смонтируйте каталог логов Redis, чтобы коллектор мог их читать
+ 1. Смонтируйте файл пользовательской конфигурации по пути `/etc/otelcol-contrib/custom.config.yaml`
+ 2. Задайте значение переменной окружения `CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml`
+ 3. Смонтируйте каталог логов Redis, чтобы коллектор смог их считывать
##### Вариант 1: Docker Compose
- Обновите конфигурацию развёртывания ClickStack:
+ Обновите конфигурацию развертывания ClickStack:
```yaml
services:
@@ -170,11 +169,11 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/redis-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v /var/log/redis:/var/log/redis:ro \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
:::note
- Убедитесь, что у коллектора ClickStack есть необходимые права для чтения файлов журналов Redis. В продакшене используйте монтирование только для чтения (`:ro`) и следуйте принципу минимальных привилегий.
+ Убедитесь, что коллектор ClickStack имеет необходимые права для чтения файлов журналов Redis. В производственной среде используйте монтирование только для чтения (`:ro`) и следуйте принципу минимальных привилегий.
:::
#### Проверка логов в HyperDX
@@ -183,18 +182,18 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
-
+
## Демонстрационный набор данных {#demo-dataset}
-Для пользователей, которые хотят протестировать интеграцию с Redis перед настройкой продуктивных систем, мы предоставляем пример набора данных из предварительно сгенерированных логов Redis с реалистичными шаблонами.
+Для пользователей, которые хотят протестировать интеграцию Redis до настройки своих продуктивных систем, мы предоставляем демонстрационный набор данных с предварительно сгенерированными журналами Redis, имитирующими реалистичные сценарии.
#### Загрузка демонстрационного набора данных {#download-sample}
-Скачайте пример файла лога:
+Загрузите пример файла журнала:
```bash
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-server.log
@@ -252,26 +251,26 @@ docker run --name clickstack-demo \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/redis-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v "$(pwd)/redis-server.log:/tmp/redis-demo/redis-server.log:ro" \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
:::note
-**Эта команда напрямую монтирует файл лога в контейнер. Это делается для целей тестирования со статическими демонстрационными данными.**
+**При этом файл журнала монтируется непосредственно в контейнер. Это делается для целей тестирования со статическими демонстрационными данными.**
:::
## Проверка логов в HyperDX {#verify-demo-logs}
После запуска ClickStack:
-1. Откройте [HyperDX](http://localhost:8080/) и войдите в свою учётную запись (при необходимости сначала создайте учётную запись)
+1. Откройте [HyperDX](http://localhost:8080/) и войдите в свою учетную запись (при необходимости сначала создайте её)
2. Перейдите в представление Search и установите источник `Logs`
-3. Установите диапазон времени **2025-10-26 10:00:00 - 2025-10-29 10:00:00**
+3. Установите диапазон времени на **2025-10-26 10:00:00 - 2025-10-29 10:00:00**
:::note[Отображение часового пояса]
-HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период **2025-10-27 10:00:00 - 2025-10-28 10:00:00 (UTC)**. Расширенный диапазон времени гарантирует, что вы увидите демонстрационные логи независимо от вашего местоположения. После того как вы увидите логи, вы можете сузить диапазон до 24 часов для более наглядных визуализаций.
+HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период **2025-10-27 10:00:00 - 2025-10-28 10:00:00 (UTC)**. Широкий диапазон времени гарантирует, что вы увидите демонстрационные логи независимо от вашего местоположения. После того как вы увидите логи, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
:::
-
+
@@ -338,7 +337,6 @@ docker exec cat /etc/otel/supervisor-data/effective.yaml | grep -A 1
# Должна отобразиться конфигурация вашего приёмника filelog/Redis
```
-
### В HyperDX не отображаются логи
**Убедитесь, что Redis записывает логи в файл:**
@@ -378,7 +376,6 @@ docker volume inspect
# Убедитесь, что том подключен к обоим контейнерам {#expected-output-should-show-file-size-and-permissions}
```
-
### Логи разбираются некорректно
**Убедитесь, что формат логов Redis соответствует ожидаемому формату:**
@@ -394,7 +391,6 @@ tail -5 /var/log/redis/redis-server.log
* `pid:role timestamp level message`
* Пример: `12345:M 28 Oct 2024 14:23:45.123 * Server started`
-
## Дальнейшие шаги {#next-steps}
Если вы хотите продолжить изучение, вот несколько идей для экспериментов с вашей панелью мониторинга:
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/redis-metrics.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/redis-metrics.md
index 8ccd5155fb0..aa3c8969868 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/redis-metrics.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/integration-examples/redis-metrics.md
@@ -46,19 +46,19 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
#### Проверка подключения к Redis
- Сначала проверьте, что вы можете подключиться к Redis и что команда INFO работает:
+ Сначала убедитесь, что вы можете подключиться к Redis и что команда INFO работает:
```bash
# Проверка подключения
redis-cli ping
- # Ожидаемый вывод: PONG
+ # Ожидаемый результат: PONG
# Проверка команды INFO (используется сборщиком метрик)
redis-cli INFO server
- # Должна вывести информацию о сервере Redis
+ # Должна отобразиться информация о сервере Redis
```
- Если для Redis требуется аутентификация:
+ Если Redis требует аутентификацию:
```bash
redis-cli -a ping
@@ -67,8 +67,8 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
**Общие конечные точки Redis:**
* **Локальный экземпляр**: `localhost:6379`
- * **Docker**: используйте имя контейнера или имя службы (например, `Redis:6379`)
- * **Удалённый сервер**: `:6379`
+ * **Docker**: Используйте имя контейнера или имя сервиса (например, `redis:6379`)
+ * **Удалённый хост**: `:6379`
#### Создайте пользовательскую конфигурацию OTel collector
@@ -81,7 +81,7 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
redis:
endpoint: "localhost:6379"
collection_interval: 10s
- # Раскомментируйте, если для Redis требуется аутентификация
+ # Раскомментируйте, если Redis требует аутентификацию
# password: ${env:REDIS_PASSWORD}
# Настройте, какие метрики необходимо собирать
@@ -120,49 +120,49 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
- clickhouse
```
- Эта конфигурация:
+ Данная конфигурация:
- * Подключается к Redis на `localhost:6379` (измените endpoint в соответствии с вашей конфигурацией)
+ * Подключается к Redis на `localhost:6379` (при необходимости измените endpoint в соответствии с вашей конфигурацией)
* Собирает метрики каждые 10 секунд
* Собирает ключевые метрики производительности (команды, клиенты, память, статистика по пространству ключей)
- * **Устанавливает обязательный атрибут ресурса `service.name`** согласно [семантическим соглашениям OpenTelemetry](https://opentelemetry.io/docs/specs/semconv/resource/#service)
- * Маршрутизирует метрики в экспортёр ClickHouse через отдельный конвейер
+ * **Устанавливает обязательный атрибут ресурса `service.name`** в соответствии с [семантическими соглашениями OpenTelemetry](https://opentelemetry.io/docs/specs/semconv/resource/#service)
+ * Направляет метрики к экспортёру ClickHouse через отдельный конвейер обработки
**Собираемые ключевые метрики:**
* `redis.commands.processed` - Число обработанных команд в секунду
* `redis.clients.connected` - Количество подключенных клиентов
* `redis.clients.blocked` - Клиенты, заблокированные из-за блокирующих вызовов
- * `redis.memory.used` - используемая Redis память в байтах
+ * `redis.memory.used` - Объём используемой Redis памяти (в байтах)
* `redis.memory.peak` - Пиковое потребление памяти
* `redis.keyspace.hits` - Успешные обращения к ключам
- * `redis.keyspace.misses` - Неуспешные обращения к ключам (для расчёта коэффициента попаданий в кэш)
+ * `redis.keyspace.misses` - Промахи при обращении к ключам (для расчета коэффициента попаданий в кэш)
* `redis.keys.expired` - Истекшие ключи
- * `redis.keys.evicted` - Ключи, удалённые при нехватке памяти
- * `redis.connections.received` - Общее число принятых подключений
+ * `redis.keys.evicted` - Ключи, удалённые из-за ограничений по памяти
+ * `redis.connections.received` - Общее количество полученных подключений
* `redis.connections.rejected` - Отклонённые подключения
:::note
- * В пользовательской конфигурации вы задаёте только новые receivers, processors и pipelines
- * Процессоры `memory_limiter` и `batch`, а также экспортер `clickhouse` уже определены в базовой конфигурации ClickStack — достаточно сослаться на них по имени
- * Процессор `resource` задаёт необходимый атрибут `service.name` в соответствии с семантическими соглашениями OpenTelemetry
- * В production-среде с аутентификацией храните пароль в переменной окружения: `${env:REDIS_PASSWORD}`
- * Настройте `collection_interval` в соответствии с вашими потребностями (по умолчанию — 10s; меньшие значения увеличивают объем собираемых данных)
- * Для нескольких инстансов Redis задайте `service.name`, чтобы отличать их (например, `"redis-cache"`, `"redis-sessions"`)
- :::
+ * В пользовательском конфигурационном файле вы указываете только новые receivers, processors и pipelines
+ * Процессоры `memory_limiter` и `batch`, а также экспортёр `clickhouse` уже определены в базовой конфигурации ClickStack — достаточно просто сослаться на них по имени
+ * Процессор `resource` задаёт требуемый атрибут `service.name` в соответствии с семантическими соглашениями OpenTelemetry.
+ * Для продакшн-среды с аутентификацией сохраните пароль в переменной окружения `${env:REDIS_PASSWORD}`.
+ * Настройте `collection_interval` под ваши нужды (по умолчанию — 10s; уменьшение значения увеличивает объём данных)
+ * Для нескольких экземпляров Redis настройте параметр `service.name`, чтобы различать их между собой (например, `"redis-cache"`, `"redis-sessions"`)
+ :::
#### Настройте ClickStack для загрузки пользовательской конфигурации
Чтобы включить пользовательскую конфигурацию коллектора в существующем развертывании ClickStack, необходимо:
- 1. Смонтируйте пользовательский конфигурационный файл в `/etc/otelcol-contrib/custom.config.yaml`
+ 1. Смонтируйте пользовательский файл конфигурации по пути `/etc/otelcol-contrib/custom.config.yaml`
2. Установите переменную окружения `CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml`
- 3. Убедитесь, что между ClickStack и Redis есть сетевое соединение
+ 3. Обеспечьте сетевую связность между ClickStack и Redis
##### Вариант 1: Docker Compose
- Обновите конфигурацию развёртывания ClickStack:
+ Обновите конфигурацию развертывания ClickStack:
```yaml
services:
@@ -184,7 +184,7 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
image: redis:7-alpine
ports:
- "6379:6379"
- # Опционально: включение аутентификации
+ # Опционально: включить аутентификацию
# command: redis-server --requirepass ваш-пароль-redis
```
@@ -197,7 +197,7 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/redis-metrics.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
**Важно:** Если Redis запущен в другом контейнере, используйте сеть Docker:
@@ -209,86 +209,86 @@ import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTracke
# Запустите Redis в сети
docker run -d --name redis --network monitoring redis:7-alpine
- # Запустите ClickStack в той же сети (укажите endpoint "redis:6379" в конфигурации)
+ # Запустите ClickStack в той же сети (обновите endpoint на "redis:6379" в конфигурации)
docker run --name clickstack \
--network monitoring \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/redis-metrics.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
#### Проверка метрик в HyperDX
- После настройки войдите в HyperDX и убедитесь, что метрики поступают:
+ После настройки войдите в HyperDX и проверьте поступление метрик:
- 1. Перейдите в раздел «Metrics Explorer»
+ 1. Перейдите в обозреватель метрик
2. Найдите метрики, начинающиеся с `redis.` (например, `redis.commands.processed`, `redis.memory.used`)
- 3. Вы должны увидеть, как точки метрик появляются с настроенным интервалом сбора
+ 3. Вы должны увидеть точки данных метрик, которые появляются с заданным интервалом сбора
- {/* */ }
+ {/* */ }
-## Демонстрационный набор данных {#demo-dataset}
+## Демо‑датасет {#demo-dataset}
-Для пользователей, которые хотят протестировать интеграцию метрик Redis перед настройкой своих производственных систем, мы предоставляем предварительно сгенерированный набор данных с реалистичными паттернами метрик Redis.
+Для пользователей, которые хотят протестировать интеграцию Redis Metrics перед настройкой продуктивных систем, мы предоставляем заранее сгенерированный датасет с реалистичными профилями метрик Redis.
-#### Загрузка примерного набора метрик {#download-sample}
+#### Загрузите пример датасета метрик {#download-sample}
-Скачайте предварительно сгенерированные файлы метрик (24 часа метрик Redis с реалистичными паттернами):
+Скачайте заранее сгенерированные файлы метрик (24 часа Redis Metrics с реалистичными профилями):
```bash
-# Скачать метрики типа gauge (память, коэффициент фрагментации) {#expected-output-pong}
+# Загрузить метрики gauge (память, коэффициент фрагментации)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-metrics-gauge.csv
-# Скачать метрики типа sum (команды, подключения, статистика по keyspace) {#test-info-command-used-by-metrics-collector}
+# Загрузить метрики sum (команды, подключения, статистика пространства ключей)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-metrics-sum.csv
```
-Набор данных включает реалистичные паттерны:
-- **Событие прогрева кэша (06:00)** — доля попаданий растет с 30% до 80%
-- **Пик трафика (14:30–14:45)** — 5-кратный скачок трафика с ростом нагрузки на подключения
-- **Дефицит памяти (20:00)** — удаление ключей и деградация производительности кэша
-- **Ежедневные паттерны трафика** — пики в рабочие часы, спад вечером, случайные небольшие всплески
+Датасет включает реалистичные профили:
+- **Событие прогрева кэша (06:00)** — показатель hit rate растёт с 30% до 80%
+- **Сплеск трафика (14:30–14:45)** — пятикратный рост трафика с повышенной нагрузкой на подключения
+- **Дефицит памяти (20:00)** — вытеснение ключей и деградация производительности кэша
+- **Ежедневные профили трафика** — пики в рабочие часы, падения вечером, случайные короткие всплески
-#### Запуск ClickStack {#start-clickstack}
+#### Запустите ClickStack {#start-clickstack}
Запустите экземпляр ClickStack:
```bash
docker run -d --name clickstack-demo \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
- docker.hyperdx.io/hyperdx/hyperdx-all-in-one:latest
+ clickhouse/clickstack-all-in-one:latest
```
-Подождите примерно 30 секунд, пока ClickStack полностью не запустится.
+Подождите примерно 30 секунд, чтобы ClickStack полностью запустился.
-#### Загрузка метрик в ClickStack {#load-metrics}
+#### Загрузите метрики в ClickStack {#load-metrics}
Загрузите метрики напрямую в ClickHouse:
```bash
-# Загрузить метрики типа gauge (память, фрагментация)
+# Загрузить метрики gauge (память, фрагментация)
cat redis-metrics-gauge.csv | docker exec -i clickstack-demo \
clickhouse-client --query "INSERT INTO otel_metrics_gauge FORMAT CSVWithNames"
-# Загрузить метрики типа sum (команды, подключения, keyspace)
+# Загрузить метрики sum (команды, подключения, пространство ключей)
cat redis-metrics-sum.csv | docker exec -i clickstack-demo \
clickhouse-client --query "INSERT INTO otel_metrics_sum FORMAT CSVWithNames"
```
-#### Проверка метрик в HyperDX {#verify-metrics}
+#### Проверьте метрики в HyperDX {#verify-metrics}
-После загрузки самый быстрый способ просмотреть метрики — использовать предварительно созданную панель.
+После загрузки самый быстрый способ просмотреть метрики — воспользоваться преднастроенной панелью.
-Перейдите к разделу [Панели и визуализация](#dashboards), чтобы импортировать панель и просмотреть все метрики Redis сразу.
+Перейдите к разделу [Dashboards and visualization](#dashboards), чтобы импортировать дашборд и просмотреть все Redis Metrics одновременно.
:::note
-Диапазон времени демонстрационного набора данных: с 2025-10-20 00:00:00 по 2025-10-21 05:00:00. Убедитесь, что диапазон времени в HyperDX соответствует этому окну.
+Диапазон времени демо‑датасета — с 2025-10-20 00:00:00 по 2025-10-21 05:00:00. Убедитесь, что диапазон времени в HyperDX попадает в этот интервал.
-Обратите внимание на следующие интересные паттерны:
-- **06:00** — прогрев кэша (низкая доля попаданий постепенно растет)
-- **14:30–14:45** — пик трафика (высокое количество клиентских подключений, некоторые отказы)
-- **20:00** — дефицит памяти (начинается удаление ключей)
+Обратите внимание на следующие характерные профили:
+- **06:00** — прогрев кэша (hit rate растёт с низких значений)
+- **14:30–14:45** — сплеск трафика (большое число клиентских подключений, есть отказы)
+- **20:00** — дефицит памяти (начинается вытеснение ключей)
:::
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/migration/elastic/migrating-agents.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/migration/elastic/migrating-agents.md
index 7277b01eec8..4c5f3f1ce20 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/migration/elastic/migrating-agents.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/migration/elastic/migrating-agents.md
@@ -361,7 +361,7 @@ sources:
-### Запуск Elastic Agent как коллектора OpenTelemetry
+### Запуск Elastic Agent как коллектора OpenTelemetry {#sending-data-via-vector}
Elastic Agent включает встроенный EDOT Collector, который позволяет один раз инструментировать ваши приложения и инфраструктуру и отправлять данные нескольким поставщикам и в разные бэкэнды.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/production.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/production.md
index 1a73ce5b4f6..e736ca35d63 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/production.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/production.md
@@ -17,7 +17,6 @@ import hyperdx_login from '@site/static/images/use-cases/observability/hyperdx-l
При развертывании ClickStack в рабочей (production) среде необходимо учитывать ряд дополнительных факторов, чтобы обеспечить безопасность, стабильность и правильную конфигурацию.
-
## Безопасность сети и портов {#network-security}
По умолчанию Docker Compose пробрасывает порты на хост, делая их доступными извне контейнеров — даже если включены такие инструменты, как `ufw` (Uncomplicated Firewall). Такое поведение связано с сетевой подсистемой Docker, которая может обходить правила файрвола на уровне хоста, если явно не настроена иначе.
@@ -38,7 +37,6 @@ ports:
Обратитесь к [документации по сетевому взаимодействию Docker](https://docs.docker.com/network/), чтобы узнать подробности об изоляции контейнеров и повышении безопасности доступа.
-
## Настройка секрета сессии {#session-secret}
В продуктивной среде необходимо задать надёжное случайное значение для переменной окружения `EXPRESS_SESSION_SECRET`, чтобы защитить данные сессий и предотвратить их подделку.
@@ -79,7 +77,6 @@ openssl rand -hex 32
Не добавляйте секреты в систему контроля версий. В рабочей (production) среде рассмотрите использование инструментов управления переменными окружения (например, Docker Secrets, HashiCorp Vault или конфигураций CI/CD, специфичных для конкретных окружений).
-
## Безопасная ингестия {#secure-ingestion}
Вся ингестия должна выполняться через OTLP‑порты, которые предоставляет дистрибутив ClickStack с коллектором OpenTelemetry (OTel). По умолчанию для этого требуется защищённый ключ API для приёма данных, который генерируется при запуске. Этот ключ необходим при отправке данных на порты OTel и его можно найти в интерфейсе HyperDX в разделе `Team Settings → API Keys`.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/search.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/search.md
index 44462520790..466033a5b6a 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/search.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/search.md
@@ -18,7 +18,6 @@ ClickStack позволяет выполнять полнотекстовый п
Тот же синтаксис поиска используется и для фильтрации событий в дашбордах и графиках.
-
## Возможности поиска {#search-features}
### Синтаксис поиска на естественном языке {#natural-language-syntax}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/cloud-monitoring.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/cloud-monitoring.md
index 10107a2779d..c9af13405de 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/cloud-monitoring.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/cloud-monitoring.md
@@ -14,7 +14,6 @@ import ObservabilityIntegrations from '@site/i18n/ru/docusaurus-plugin-content-d
import DirectIntegrations from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_direct_observability_integration_options.md';
import CommunityMonitoring from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_community_monitoring.md';
-
# Мониторинг ClickHouse Cloud {#cloud-monitoring}
Это руководство предоставляет корпоративным командам, оценивающим ClickHouse Cloud, подробную информацию о возможностях мониторинга и наблюдаемости для продуктивных развертываний. Корпоративные клиенты часто спрашивают о встроенных возможностях мониторинга, интеграции с существующими стеками наблюдаемости, включая такие инструменты, как Datadog и AWS CloudWatch, а также о том, как возможности мониторинга ClickHouse Cloud соотносятся с развертываниями в self-hosted‑средах.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/self-managed-monitoring.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/self-managed-monitoring.md
index dfe79913337..69759df5005 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/self-managed-monitoring.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/self-managed-monitoring.md
@@ -11,7 +11,6 @@ import ObservabilityIntegrations from '@site/i18n/ru/docusaurus-plugin-content-d
import DirectIntegrations from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_direct_observability_integration_options.md';
import CommunityMonitoring from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_community_monitoring.md';
-
# Самостоятельно управляемый мониторинг {#cloud-monitoring}
В этом руководстве корпоративным командам, оценивающим open source-версию ClickHouse, предоставляется исчерпывающая информация о возможностях мониторинга и наблюдаемости для продакшн-развертываний. Корпоративных клиентов часто интересуют функции мониторинга «из коробки», интеграция с существующими стеками наблюдаемости, включая такие инструменты, как Datadog и AWS CloudWatch, а также то, как возможности мониторинга ClickHouse соотносятся с мониторингом в самостоятельно развернутых инсталляциях.
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md
index 3cad17ab1f5..1d8c81464e6 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2020.md
@@ -29,8 +29,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-1}
-
-
* Исправлена проблема, при которой процесс `clickhouse-odbc-bridge` был недоступен для сервера на машинах с двойным стеком IPv4/IPv6. Также исправлена проблема, при которой обновления ODBC-словарей выполнялись с использованием некорректных запросов и/или приводили к сбоям. Возможно, закрывает [#14489](https://github.com/ClickHouse/ClickHouse/issues/14489). [#18278](https://github.com/ClickHouse/ClickHouse/pull/18278) ([Denis Glazachev](https://github.com/traceon)).
* Исправлено сравнение ключей между типами Enum и Int. Это исправляет [#17989](https://github.com/ClickHouse/ClickHouse/issues/17989). [#18214](https://github.com/ClickHouse/ClickHouse/pull/18214) ([Amos Bird](https://github.com/amosbird)).
* Исправлен сбой при преобразовании уникального ключа в движке базы данных `MaterializeMySQL`. Это исправляет [#18186](https://github.com/ClickHouse/ClickHouse/issues/18186) и [#16372](https://github.com/ClickHouse/ClickHouse/issues/16372). [#18211](https://github.com/ClickHouse/ClickHouse/pull/18211) ([Winter Zhang](https://github.com/zhang2014)).
@@ -49,8 +47,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Новая функциональность {#new-feature}
-
-
* Добавлена поддержка сжатия/распаковки `*.xz`. Это позволяет использовать `*.xz` в функции `file()`. Закрывает [#8828](https://github.com/ClickHouse/ClickHouse/issues/8828). [#16578](https://github.com/ClickHouse/ClickHouse/pull/16578) ([Abi Palagashvili](https://github.com/fibersel)).
* Введён запрос `ALTER TABLE ... DROP|DETACH PART 'part_name'`. [#15511](https://github.com/ClickHouse/ClickHouse/pull/15511) ([nvartolomei](https://github.com/nvartolomei)).
* Добавлен новый синтаксис ALTER UPDATE/DELETE IN PARTITION. [#13403](https://github.com/ClickHouse/ClickHouse/pull/13403) ([Vladimir Chebotarev](https://github.com/excitoon)).
@@ -66,8 +62,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-2}
-
-
* Исправлена проблема, из-за которой сервер в крайне редких случаях мог перестать принимать соединения. [#17542](https://github.com/ClickHouse/ClickHouse/pull/17542) ([Amos Bird](https://github.com/amosbird)).
* Исправлена ошибка `Function not implemented` при выполнении запроса `RENAME` в базе данных `Atomic` при работе ClickHouse в подсистеме Windows для Linux (WSL). Устраняет [#17661](https://github.com/ClickHouse/ClickHouse/issues/17661). [#17664](https://github.com/ClickHouse/ClickHouse/pull/17664) ([tavplubix](https://github.com/tavplubix)).
* Не восстанавливать части из WAL, если параметр `in_memory_parts_enable_wal` отключён. [#17802](https://github.com/ClickHouse/ClickHouse/pull/17802) ([detailyang](https://github.com/detailyang)).
@@ -113,12 +107,8 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена ошибка удалённого запроса при использовании агрегатной функции с суффиксом 'if'. Исправляет [#16574](https://github.com/ClickHouse/ClickHouse/issues/16574) [#16231](https://github.com/ClickHouse/ClickHouse/issues/16231) [#16610](https://github.com/ClickHouse/ClickHouse/pull/16610) ([Winter Zhang](https://github.com/zhang2014)).
* Исправлено несогласованное поведение, вызванное параметром `select_sequential_consistency` при работе с оптимизированным тривиальным запросом COUNT и таблицей system.tables. [#16309](https://github.com/ClickHouse/ClickHouse/pull/16309) ([Hao Chen](https://github.com/haoch)).
-
-
#### Улучшение {#improvement}
-
-
* Удалять пустые парты после их обрезки по TTL, мутации или алгоритму схлопывающего слияния. [#16895](https://github.com/ClickHouse/ClickHouse/pull/16895) ([Anton Popov](https://github.com/CurtizJ)).
* Включен компактный формат директорий для асинхронной отправки в таблицах типа Distributed: `use_compact_format_in_distributed_parts_names` по умолчанию имеет значение 1. [#16788](https://github.com/ClickHouse/ClickHouse/pull/16788) ([Azat Khuzhin](https://github.com/azat)).
* Прерывать multipart‑загрузку, если в S3 не были записаны данные. [#16840](https://github.com/ClickHouse/ClickHouse/pull/16840) ([Pavel Kovalenko](https://github.com/Jokser)).
@@ -145,8 +135,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Улучшение для MaterializeMySQL (экспериментальная возможность). Выбрасывать исключение с указанием необходимых прав для синхронизации, когда у пользователя MySQL для синхронизации некорректные привилегии. [#15977](https://github.com/ClickHouse/ClickHouse/pull/15977) ([TCeason](https://github.com/TCeason)).
* Функция `indexOf()` теперь использует BloomFilter. [#14977](https://github.com/ClickHouse/ClickHouse/pull/14977) ([achimbab](https://github.com/achimbab)).
-
-
#### Повышение производительности {#performance-improvement}
* Используется алгоритм Floyd–Rivest, который наилучшим образом подходит для сценария частичной сортировки в ClickHouse. Бенчмарки находятся в https://github.com/danlark1/miniselect и [здесь](https://drive.google.com/drive/folders/1DHEaeXgZuX6AJ9eByeZ8iQVQv0ueP8XM). [#16825](https://github.com/ClickHouse/ClickHouse/pull/16825) ([Danila Kutenin](https://github.com/danlark1)).
@@ -163,8 +151,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-1}
-
-
* Улучшено тестовое покрытие при сборке образов. [#17233](https://github.com/ClickHouse/ClickHouse/pull/17233) ([alesapin](https://github.com/alesapin)).
* Обновлены встроенные данные часовых поясов до версии 2020d (также обновлён cctz до последнего состояния ветки master). [#17204](https://github.com/ClickHouse/ClickHouse/pull/17204) ([filimonov](https://github.com/filimonov)).
* Исправлен отчёт UBSan в Poco. Закрывает [#12719](https://github.com/ClickHouse/ClickHouse/issues/12719). [#16765](https://github.com/ClickHouse/ClickHouse/pull/16765) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -172,8 +158,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлен отчёт UBSan в кэш-словарях. Закрывает [#12641](https://github.com/ClickHouse/ClickHouse/issues/12641). [#16763](https://github.com/ClickHouse/ClickHouse/pull/16763) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлен отчёт UBSan при попытке преобразовать бесконечное значение с плавающей запятой в целое. Закрывает [#14190](https://github.com/ClickHouse/ClickHouse/issues/14190). [#16677](https://github.com/ClickHouse/ClickHouse/pull/16677) ([alexey-milovidov](https://github.com/alexey-milovidov)).
-
-
## Релиз ClickHouse 20.11 {#clickhouse-release-2011}
### Релиз ClickHouse v20.11.7.16-stable, 2021-03-02 {#clickhouse-release-v2011716-stable-2021-03-02}
@@ -184,8 +168,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-3}
-
-
* Исправлен сбой индекса BloomFilter. Исправляет [#19757](https://github.com/ClickHouse/ClickHouse/issues/19757). [#19884](https://github.com/ClickHouse/ClickHouse/pull/19884) ([Maksim Kita](https://github.com/kitaisreal)).
* Могла возникать взаимоблокировка при включённом `system.text_log`. Это исправляет [#19874](https://github.com/ClickHouse/ClickHouse/issues/19874). [#19875](https://github.com/ClickHouse/ClickHouse/pull/19875) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* В предыдущих версиях нетипичные аргументы функции arrayEnumerateUniq могли приводить к сбою или бесконечному циклу. Этот коммит исправляет [#19787](https://github.com/ClickHouse/ClickHouse/issues/19787). [#19788](https://github.com/ClickHouse/ClickHouse/pull/19788) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -236,8 +218,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена работа оптимизатора предикатов с недетерминированными функциями. Это исправляет [#17244](https://github.com/ClickHouse/ClickHouse/issues/17244). [#17273](https://github.com/ClickHouse/ClickHouse/pull/17273) ([Winter Zhang](https://github.com/zhang2014)).
* Мутация могла зависать в ожидании несуществующей части после операций `MOVE` или `REPLACE PARTITION` или, в редких случаях, после `DETACH` или `DROP PARTITION`. Ошибка исправлена. [#15537](https://github.com/ClickHouse/ClickHouse/pull/15537) ([tavplubix](https://github.com/tavplubix)).
-
-
#### Улучшение сборки/тестирования/упаковки {#buildtestingpackaging-improvement-2}
* Обновлена информация о часовых поясах до версии 2020e. [#18531](https://github.com/ClickHouse/ClickHouse/pull/18531) ([alesapin](https://github.com/alesapin)).
@@ -246,8 +226,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправления ошибок {#bug-fix-4}
-
-
* Исправлена проблема, когда процесс `clickhouse-odbc-bridge` был недоступен для сервера на машинах с двухстековой конфигурацией `IPv4/IPv6`, а также проблема с обновлением ODBC-словарей, когда оно выполнялось с использованием некорректных запросов и/или приводило к сбоям. Возможно, это исправление закрывает [#14489](https://github.com/ClickHouse/ClickHouse/issues/14489). [#18278](https://github.com/ClickHouse/ClickHouse/pull/18278) ([Denis Glazachev](https://github.com/traceon)).
* Исправлено сравнение ключей для типов Enum и Int. Это устраняет [#17989](https://github.com/ClickHouse/ClickHouse/issues/17989). [#18214](https://github.com/ClickHouse/ClickHouse/pull/18214) ([Amos Bird](https://github.com/amosbird)).
* Исправлена ошибка, приводившая к сбою при преобразовании уникального ключа в движке базы данных `MaterializeMySQL`. Это исправляет [#18186](https://github.com/ClickHouse/ClickHouse/issues/18186) и [#16372](https://github.com/ClickHouse/ClickHouse/issues/16372) [#18211](https://github.com/ClickHouse/ClickHouse/pull/18211) ([Winter Zhang](https://github.com/zhang2014)).
@@ -289,8 +267,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлено некорректное поведение, вызванное `select_sequential_consistency` при оптимизированном тривиальном запросе `count` и в таблице `system.tables`. [#16309](https://github.com/ClickHouse/ClickHouse/pull/16309) ([Hao Chen](https://github.com/haoch)).
* Выбрасывать ошибку при использовании ColumnTransformer для замены несуществующего столбца. [#16183](https://github.com/ClickHouse/ClickHouse/pull/16183) ([hexiaoting](https://github.com/hexiaoting)).
-
-
### Релиз ClickHouse v20.11.3.3-stable, 2020-11-13 {#clickhouse-release-v201133-stable-2020-11-13}
#### Исправление ошибок {#bug-fix-5}
@@ -310,8 +286,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Новая возможность {#new-feature-1}
-
-
* Добавлена поддержка LDAP как пользовательского каталога для пользователей, отсутствующих локально. [#12736](https://github.com/ClickHouse/ClickHouse/pull/12736) ([Denis Glazachev](https://github.com/traceon)).
* Добавлена таблица `system.replicated_fetches`, показывающая текущие фоновые операции выборки данных. [#16428](https://github.com/ClickHouse/ClickHouse/pull/16428) ([alesapin](https://github.com/alesapin)).
* Добавлена настройка `date_time_output_format`. [#15845](https://github.com/ClickHouse/ClickHouse/pull/15845) ([Maksim Kita](https://github.com/kitaisreal)).
@@ -334,16 +308,12 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Добавлена функция `formatReadableTimeDelta`, форматирующая интервал времени в человекочитаемую строку ... [#15497](https://github.com/ClickHouse/ClickHouse/pull/15497) ([Filipe Caixeta](https://github.com/filipecaixeta)).
* Добавлен параметр `disable_merges` для томов в многодисковой конфигурации. [#13956](https://github.com/ClickHouse/ClickHouse/pull/13956) ([Vladimir Chebotarev](https://github.com/excitoon)).
-
-
#### Экспериментальная функциональность {#experimental-feature-1}
* Новые функции `encrypt`, `aes_encrypt_mysql`, `decrypt`, `aes_decrypt_mysql`. Эти функции работают медленно, поэтому рассматриваются как экспериментальные. [#11844](https://github.com/ClickHouse/ClickHouse/pull/11844) ([Vasily Nemkov](https://github.com/Enmk)).
#### Исправление ошибки {#bug-fix-6}
-
-
* Маскировать пароль в data_path в `system.distribution_queue`. [#16727](https://github.com/ClickHouse/ClickHouse/pull/16727) ([Azat Khuzhin](https://github.com/azat)).
* Исправлена работа оператора `IN` для нескольких столбцов и кортежей при включённой настройке `transform_null_in`. Исправлено [#15310](https://github.com/ClickHouse/ClickHouse/issues/15310). [#16722](https://github.com/ClickHouse/ClickHouse/pull/16722) ([Anton Popov](https://github.com/CurtizJ)).
* Настройка `max_parallel_replicas` работала некорректно, если для запрашиваемой таблицы не было определено семплирование. Это исправляет [#5733](https://github.com/ClickHouse/ClickHouse/issues/5733). [#16675](https://github.com/ClickHouse/ClickHouse/pull/16675) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -362,12 +332,8 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Теперь при выполнении `ALTER MODIFY COLUMN ... DEFAULT ...` будет выброшено исключение, если значение по умолчанию несовместимо с типом столбца. Исправляет [#15854](https://github.com/ClickHouse/ClickHouse/issues/15854). [#15858](https://github.com/ClickHouse/ClickHouse/pull/15858) ([alesapin](https://github.com/alesapin)).
* Исправлены функции IPv4CIDRToRange/IPv6CIDRToRange, чтобы они принимали константные значения столбца IP. [#15856](https://github.com/ClickHouse/ClickHouse/pull/15856) ([vladimir-golovchenko](https://github.com/vladimir-golovchenko)).
-
-
#### Улучшение {#improvement-2}
-
-
* Считать `INTERVAL '1 hour'` эквивалентом `INTERVAL 1 HOUR` для совместимости с Postgres и подобными системами. Это исправляет [#15637](https://github.com/ClickHouse/ClickHouse/issues/15637). [#15978](https://github.com/ClickHouse/ClickHouse/pull/15978) ([flynn](https://github.com/ucasFL)).
* Добавлена возможность разбора значений перечислений по их числовым идентификаторам для форматов ввода CSV, TSV и JSON. [#15685](https://github.com/ClickHouse/ClickHouse/pull/15685) ([vivarum](https://github.com/vivarum)).
* Улучшено планирование задач чтения для архитектуры JBOD и хранилища `MergeTree`. Добавлена новая настройка `read_backoff_min_concurrency`, которая задаёт нижнюю границу числа потоков чтения. [#16423](https://github.com/ClickHouse/ClickHouse/pull/16423) ([Amos Bird](https://github.com/amosbird)).
@@ -403,8 +369,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Добавлены переподключения в утилиту `zookeeper-dump-tree`. [#15711](https://github.com/ClickHouse/ClickHouse/pull/15711) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Теперь можно явно указывать список столбцов в запросе `CREATE TABLE table AS table_function(...)`. Исправляет [#9249](https://github.com/ClickHouse/ClickHouse/issues/9249) и [#14214](https://github.com/ClickHouse/ClickHouse/issues/14214). [#14295](https://github.com/ClickHouse/ClickHouse/pull/14295) ([tavplubix](https://github.com/tavplubix)).
-
-
#### Улучшения производительности {#performance-improvement-1}
* Не выполнять слияние частей между партициями в SELECT FINAL. [#15938](https://github.com/ClickHouse/ClickHouse/pull/15938) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -417,8 +381,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-3}
-
-
* Добавлена проверка на нестабильность для stateless-тестов. Она будет заранее обнаруживать потенциально нестабильные функциональные тесты до их слияния. [#16238](https://github.com/ClickHouse/ClickHouse/pull/16238) ([alesapin](https://github.com/alesapin)).
* Использована корректная версия `croaring` вместо амальгамированной. [#16285](https://github.com/ClickHouse/ClickHouse/pull/16285) ([sundyli](https://github.com/sundy-li)).
* Улучшена генерация файлов сборки для системы сборки `ya.make` (Arcadia). [#16700](https://github.com/ClickHouse/ClickHouse/pull/16700) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -430,16 +392,12 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Упрощён init-скрипт SysV. [#14135](https://github.com/ClickHouse/ClickHouse/pull/14135) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* В `db_generator` добавлен `boost::program_options` для повышения удобства использования. Это закрывает [#15940](https://github.com/ClickHouse/ClickHouse/issues/15940). [#15973](https://github.com/ClickHouse/ClickHouse/pull/15973) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
-
-
## Релиз ClickHouse 20.10 {#clickhouse-release-2010}
### Релиз ClickHouse v20.10.7.4-stable, 2020-12-24 {#clickhouse-release-v201074-stable-2020-12-24}
#### Исправление ошибки {#bug-fix-7}
-
-
* Исправлена проблема, при которой процесс `clickhouse-odbc-bridge` был недоступен для сервера на машинах с двойным стеком `IPv4/IPv6`, а также проблема, из-за которой обновления ODBC-словарей выполнялись с использованием некорректных запросов и/или приводили к сбоям. Возможно, это закрывает [#14489](https://github.com/ClickHouse/ClickHouse/issues/14489). [#18278](https://github.com/ClickHouse/ClickHouse/pull/18278) ([Denis Glazachev](https://github.com/traceon)).
* Исправлено сравнение ключей между типами Enum и Int. Устраняет [#17989](https://github.com/ClickHouse/ClickHouse/issues/17989). [#18214](https://github.com/ClickHouse/ClickHouse/pull/18214) ([Amos Bird](https://github.com/amosbird)).
* Исправлен краш при преобразовании уникального ключа в движке базы данных `MaterializeMySQL`. Это исправляет [#18186](https://github.com/ClickHouse/ClickHouse/issues/18186), [#16372](https://github.com/ClickHouse/ClickHouse/issues/16372) и [#18211](https://github.com/ClickHouse/ClickHouse/pull/18211) ([Winter Zhang](https://github.com/zhang2014)).
@@ -475,8 +433,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлен неконтролируемый рост `TDigest`. [#16680](https://github.com/ClickHouse/ClickHouse/pull/16680) ([hrissan](https://github.com/hrissan)).
* Исправлен сбой удалённого запроса при использовании суффикса `if` в агрегатной функции. Это исправление закрывает задачи [#16574](https://github.com/ClickHouse/ClickHouse/issues/16574), [#16231](https://github.com/ClickHouse/ClickHouse/issues/16231) и пул‑реквест [#16610](https://github.com/ClickHouse/ClickHouse/pull/16610) ([Winter Zhang](https://github.com/zhang2014)).
-
-
### Релиз ClickHouse v20.10.4.1-stable, 2020-11-13 {#clickhouse-release-v201041-stable-2020-11-13}
#### Исправление ошибок {#bug-fix-8}
@@ -498,8 +454,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Обратное несовместимое изменение {#backward-incompatible-change-2}
-
-
* Признать `multiple_joins_rewriter_version` устаревшей и удалить первую версию переписывателя JOIN'ов. [#15472](https://github.com/ClickHouse/ClickHouse/pull/15472) ([Artem Zuikov](https://github.com/4ertus2)).
* Изменить значение по умолчанию настройки `format_regexp_escaping_rule` (она относится к формату `Regexp`) на `Raw` (это означает — читать весь подшаблон как одно значение), чтобы поведение больше соответствовало ожиданиям пользователей. [#15426](https://github.com/ClickHouse/ClickHouse/pull/15426) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Добавить поддержку вложенных многострочных комментариев `/* comment /* comment */ */` в SQL. Это соответствует стандарту SQL. [#14655](https://github.com/ClickHouse/ClickHouse/pull/14655) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -508,8 +462,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Новая функциональность {#new-feature-2}
-
-
* Фоновая рекомпрессия данных. Добавлена поддержка указания `TTL ... RECOMPRESS codec_name` для семейства движков таблиц MergeTree. [#14494](https://github.com/ClickHouse/ClickHouse/pull/14494) ([alesapin](https://github.com/alesapin)).
* Добавить параллельные вставки с кворумом. Это закрывает [#15601](https://github.com/ClickHouse/ClickHouse/issues/15601). [#15601](https://github.com/ClickHouse/ClickHouse/pull/15601) ([Latysheva Alexandra](https://github.com/alexelex)).
* Настройки для дополнительного усиления гарантий сохранности данных. Полезно для нереплицированных конфигураций. [#11948](https://github.com/ClickHouse/ClickHouse/pull/11948) ([Anton Popov](https://github.com/CurtizJ)).
@@ -541,12 +493,8 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Добавлено поле `event_time_microseconds` в таблицы `system.asynchronous_metric_log` и `system.metric_log`. [#14514](https://github.com/ClickHouse/ClickHouse/pull/14514) ([Bharat Nallan](https://github.com/bharatnc)).
* Добавлено поле `query_start_time_microseconds` в таблицы `system.query_log` и `system.query_thread_log`. [#14252](https://github.com/ClickHouse/ClickHouse/pull/14252) ([Bharat Nallan](https://github.com/bharatnc)).
-
-
#### Исправление ошибки {#bug-fix-9}
-
-
* Исправлен случай, когда память могла быть выделена сверх установленного лимита. Это закрывает [#14560](https://github.com/ClickHouse/ClickHouse/issues/14560). [#16206](https://github.com/ClickHouse/ClickHouse/pull/16206) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлено зависание источника словаря `executable`. В предыдущих версиях при использовании некоторых форматов (например, `JSONEachRow`) данные не передавались дочернему процессу, пока тот не выводил хотя бы что‑нибудь. Это исправление закрывает [#1697](https://github.com/ClickHouse/ClickHouse/issues/1697). Это исправление закрывает [#2455](https://github.com/ClickHouse/ClickHouse/issues/2455). [#14525](https://github.com/ClickHouse/ClickHouse/pull/14525) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлено двойное освобождение памяти в случае исключения в функции `dictGet`. Это могло произойти, если словарь был загружен с ошибкой. [#16429](https://github.com/ClickHouse/ClickHouse/pull/16429) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
@@ -630,12 +578,8 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена ошибка, из-за которой функцию `currentDatabase()` нельзя было использовать в DDL-запросе `ON CLUSTER`. [#14211](https://github.com/ClickHouse/ClickHouse/pull/14211) ([Winter Zhang](https://github.com/zhang2014)).
* `MaterializeMySQL` (экспериментальная возможность): Исправлена ошибка `Packet payload is not fully read` в движке базы данных `MaterializeMySQL`. [#14696](https://github.com/ClickHouse/ClickHouse/pull/14696) ([BohuTANG](https://github.com/BohuTANG)).
-
-
#### Улучшения {#improvement-4}
-
-
* Включить по умолчанию движок базы данных `Atomic` для новых баз данных. [#15003](https://github.com/ClickHouse/ClickHouse/pull/15003) ([tavplubix](https://github.com/tavplubix)).
* Добавлена возможность указывать специализированные кодеки, такие как `Delta`, `T64` и др., для столбцов с подтипами. Реализована [#12551](https://github.com/ClickHouse/ClickHouse/issues/12551), исправлены [#11397](https://github.com/ClickHouse/ClickHouse/issues/11397) и [#4609](https://github.com/ClickHouse/ClickHouse/issues/4609). [#15089](https://github.com/ClickHouse/ClickHouse/pull/15089) ([alesapin](https://github.com/alesapin)).
* Динамическая перезагрузка конфигурации ZooKeeper. [#14678](https://github.com/ClickHouse/ClickHouse/pull/14678) ([sundyli](https://github.com/sundy-li)).
@@ -670,8 +614,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Для INSERT-запросов со встроенными данными в формате VALUES в скриптовом режиме `clickhouse-client` добавлена поддержка точки с запятой в качестве символа окончания данных, помимо перевода строки. Закрывает [#12288](https://github.com/ClickHouse/ClickHouse/issues/12288). [#13192](https://github.com/ClickHouse/ClickHouse/pull/13192) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Поддержка пользовательских кодеков в компактных партах. [#12183](https://github.com/ClickHouse/ClickHouse/pull/12183) ([Anton Popov](https://github.com/CurtizJ)).
-
-
#### Улучшения производительности {#performance-improvement-2}
* По умолчанию включено создание компактных частей для маленьких партиций. Это позволяет обрабатывать частые вставки заметно эффективнее (в 4–100 раз). [#11913](https://github.com/ClickHouse/ClickHouse/pull/11913) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -688,8 +630,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-4}
-
-
* Теперь для боевой сборки ClickHouse мы используем clang-11. [#15239](https://github.com/ClickHouse/ClickHouse/pull/15239) ([alesapin](https://github.com/alesapin)).
* Теперь мы используем clang-11 для сборки ClickHouse в CI. [#14846](https://github.com/ClickHouse/ClickHouse/pull/14846) ([alesapin](https://github.com/alesapin)).
* Переключены бинарные сборки (Linux, Darwin, AArch64, FreeDSD) на clang-11. [#15622](https://github.com/ClickHouse/ClickHouse/pull/15622) ([Ilya Yatsishin](https://github.com/qoega)).
@@ -722,8 +662,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
## Релиз ClickHouse 20.9 {#clickhouse-release-209}
### Релиз ClickHouse v20.9.7.11-stable, 2020-12-07 {#clickhouse-release-v209711-stable-2020-12-07}
@@ -734,8 +672,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-10}
-
-
* Не восстанавливать части из WAL, если `in_memory_parts_enable_wal` отключён. [#17802](https://github.com/ClickHouse/ClickHouse/pull/17802) ([detailyang](https://github.com/detailyang)).
* Исправлено падение с ошибкой сегментации при недостатке места во время вставки в таблицу `Distributed`. [#17737](https://github.com/ClickHouse/ClickHouse/pull/17737) ([tavplubix](https://github.com/tavplubix)).
* Исправлена проблема, из-за которой ClickHouse не удавалось восстановить соединение с серверами MySQL. [#17681](https://github.com/ClickHouse/ClickHouse/pull/17681) ([Alexander Kazakov](https://github.com/Akazz)).
@@ -755,8 +691,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* TODO. [#16866](https://github.com/ClickHouse/ClickHouse/pull/16866) ([tavplubix](https://github.com/tavplubix)).
* Возвращать количество затронутых строк для запросов INSERT, выполняемых по протоколу MySQL. Ранее ClickHouse всегда возвращал 0; это исправлено. Исправляет [#16605](https://github.com/ClickHouse/ClickHouse/issues/16605). [#16715](https://github.com/ClickHouse/ClickHouse/pull/16715) ([Winter Zhang](https://github.com/zhang2014)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-5}
* Обновлены встроенные данные часовых поясов до версии 2020d (также обновлён cctz до последнего состояния ветки master). [#17204](https://github.com/ClickHouse/ClickHouse/pull/17204) ([filimonov](https://github.com/filimonov)).
@@ -782,8 +716,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправляет [#16574](https://github.com/ClickHouse/ClickHouse/issues/16574), исправляет [#16231](https://github.com/ClickHouse/ClickHouse/issues/16231): исправлен сбой удалённого запроса при использовании агрегатной функции с суффиксом `if`. [#16610](https://github.com/ClickHouse/ClickHouse/pull/16610) ([Winter Zhang](https://github.com/zhang2014)).
* Запрос завершается быстрее в случае возникновения исключения: выполнение на удалённых репликах отменяется, если произошло исключение. [#15578](https://github.com/ClickHouse/ClickHouse/pull/15578) ([Azat Khuzhin](https://github.com/azat)).
-
-
### Релиз ClickHouse v20.9.5.5-stable, 2020-11-13 {#clickhouse-release-v20955-stable-2020-11-13}
#### Исправление ошибок {#bug-fix-12}
@@ -800,8 +732,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-13}
-
-
* Исправлено двойное освобождение памяти в случае исключения в функции `dictGet`. Это могло произойти, если словарь был загружен с ошибкой. [#16429](https://github.com/ClickHouse/ClickHouse/pull/16429) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлено поведение `GROUP BY` с модификаторами `WITH TOTALS`/`ROLLUP`/`CUBE` и функциями `min`/`max` по ключам группировки. Исправлена [#16393](https://github.com/ClickHouse/ClickHouse/issues/16393). [#16397](https://github.com/ClickHouse/ClickHouse/pull/16397) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлен асинхронный `INSERT` в таблицы `Distributed` с `prefer_localhost_replica=0` и `internal_replication`. [#16358](https://github.com/ClickHouse/ClickHouse/pull/16358) ([Azat Khuzhin](https://github.com/azat)).
@@ -826,8 +756,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Уменьшить значение метрики `ReadonlyReplica` при отсоединении таблиц только для чтения. Это исправляет [#15598](https://github.com/ClickHouse/ClickHouse/issues/15598). [#15592](https://github.com/ClickHouse/ClickHouse/pull/15592) ([sundyli](https://github.com/sundy-li)).
* Вызывать ошибку при передаче в ReplicatedMergeTree одного параметра вместо того, чтобы игнорировать его. [#15516](https://github.com/ClickHouse/ClickHouse/pull/15516) ([nvartolomei](https://github.com/nvartolomei)).
-
-
#### Улучшение {#improvement-6}
* Теперь разрешено выполнять запросы `ALTER ... ON CLUSTER` независимо от настройки `` в конфигурации кластера. [#16075](https://github.com/ClickHouse/ClickHouse/pull/16075) ([alesapin](https://github.com/alesapin)).
@@ -837,8 +765,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-14}
-
-
* Исправлена ошибка `Cannot find column`, которая могла возникать при вставке в `MATERIALIZED VIEW`, если запрос для `MV` содержит оператор `ARRAY JOIN`. [#15717](https://github.com/ClickHouse/ClickHouse/pull/15717) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлена гонка (race condition) в AMQP-CPP. [#15667](https://github.com/ClickHouse/ClickHouse/pull/15667) ([alesapin](https://github.com/alesapin)).
* Исправлен порядок уничтожения ресурсов на шаге плана запроса `ReadFromStorage`. В редких случаях это могло приводить к аварийному завершению работы. Возможно, связано с [#15610](https://github.com/ClickHouse/ClickHouse/issues/15610). [#15645](https://github.com/ClickHouse/ClickHouse/pull/15645) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
@@ -861,8 +787,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена работа проталкивания предикатов, когда подзапрос содержит функцию finalizeAggregation. Исправляет [#14847](https://github.com/ClickHouse/ClickHouse/issues/14847). [#14937](https://github.com/ClickHouse/ClickHouse/pull/14937) ([filimonov](https://github.com/filimonov)).
* Исправлена проблема, при которой сервер мог зависать при запуске во время взаимодействия с ZooKeeper, если файлы конфигурации необходимо было загружать из ZK (с использованием опции include `from_zk`). Это исправляет [#14814](https://github.com/ClickHouse/ClickHouse/issues/14814). [#14843](https://github.com/ClickHouse/ClickHouse/pull/14843) ([Alexander Kuzmenkov](https://github.com/akuzm)).
-
-
#### Улучшение {#improvement-7}
* Теперь можно изменять тип столбца версии для `VersionedCollapsingMergeTree` с помощью запроса `ALTER`. [#15442](https://github.com/ClickHouse/ClickHouse/pull/15442) ([alesapin](https://github.com/alesapin)).
@@ -881,8 +805,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-15}
-
-
* Исправлена ошибка, из-за которой мутация `ALTER UPDATE` со столбцом типа Nullable в выражении присваивания и константным значением (например, `UPDATE x = 42`) приводила к некорректному значению в столбце или ошибке сегментации (segfault). Исправляет [#13634](https://github.com/ClickHouse/ClickHouse/issues/13634), [#14045](https://github.com/ClickHouse/ClickHouse/issues/14045). [#14646](https://github.com/ClickHouse/ClickHouse/pull/14646) ([alesapin](https://github.com/alesapin)).
* Исправлен неверный результат умножения `Decimal`, вызванный неправильным масштабом результата `Decimal` в результирующем столбце. [#14603](https://github.com/ClickHouse/ClickHouse/pull/14603) ([Artem Zuikov](https://github.com/4ertus2)).
* Исправлен некорректный порядок сортировки столбца типа `Nullable`. Это устраняет [#14344](https://github.com/ClickHouse/ClickHouse/issues/14344). [#14495](https://github.com/ClickHouse/ClickHouse/pull/14495) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
@@ -910,8 +832,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлено поведение оператора GRANT ALL при выполнении не на глобальном уровне. [#13987](https://github.com/ClickHouse/ClickHouse/pull/13987) ([Vitaly Baranov](https://github.com/vitlibar)).
* Исправлен захват `arrayJoin()` в `lambda` (выбрасывалось исключение с сообщением о логической ошибке). [#13792](https://github.com/ClickHouse/ClickHouse/pull/13792) ([Azat Khuzhin](https://github.com/azat)).
-
-
#### Экспериментальная возможность {#experimental-feature-2}
* Добавлен инструмент `db-generator` для случайной генерации базы данных по заданным запросам SELECT. Он может упростить воспроизведение проблем, когда от пользователя есть только неполный отчёт об ошибке. [#14442](https://github.com/ClickHouse/ClickHouse/pull/14442) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)) [#10973](https://github.com/ClickHouse/ClickHouse/issues/10973) ([ZeDRoman](https://github.com/ZeDRoman)).
@@ -934,8 +854,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Улучшение производительности {#performance-improvement-4}
-
-
* Оптимизировать запросы с LIMIT/LIMIT BY/ORDER BY для Distributed с GROUP BY sharding_key (при включённых `optimize_skip_unused_shards` и `optimize_distributed_group_by_sharding_key`). [#10373](https://github.com/ClickHouse/ClickHouse/pull/10373) ([Azat Khuzhin](https://github.com/azat)).
* Параллельное создание наборов для нескольких `JOIN` и `IN`. Это может немного повысить производительность запросов с несколькими различными выражениями вида `IN subquery`. [#14412](https://github.com/ClickHouse/ClickHouse/pull/14412) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Повысить производительность движка Kafka за счёт выделения независимого потока для каждого потребителя. Выделен отдельный пул потоков для потоковых движков (таких как Kafka). [#13939](https://github.com/ClickHouse/ClickHouse/pull/13939) ([fastio](https://github.com/fastio)).
@@ -947,8 +865,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена логика в скрипте backport. В предыдущих версиях он срабатывал для любых меток со 100% красным цветом. Это было странно. [#14433](https://github.com/ClickHouse/ClickHouse/pull/14433) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Интеграционные тесты используют базовую конфигурацию по умолчанию. Все изменения конфигурации выполняются явно, например, с помощью параметров main_configs, user_configs и dictionaries. [#13647](https://github.com/ClickHouse/ClickHouse/pull/13647) ([Ilya Yatsishin](https://github.com/qoega)).
-
-
## Релиз ClickHouse 20.8 {#clickhouse-release-208}
### Релиз ClickHouse v20.8.12.2-lts, 2021-01-16 {#clickhouse-release-v208122-lts-2021-01-16}
@@ -970,8 +886,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-18}
-
-
* Когда ротация серверных логов была настроена с помощью параметра `logger.size` с числовым значением больше 2^32, логи не ротировались корректно. [#17905](https://github.com/ClickHouse/ClickHouse/pull/17905) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Исправлена некорректная инициализация параметра `max_compress_block_size` в MergeTreeWriterSettings значением `min_compress_block_size`. [#17833](https://github.com/ClickHouse/ClickHouse/pull/17833) ([flynn](https://github.com/ucasFL)).
* Исправлена проблема, из-за которой ClickHouse не мог возобновить подключение к серверам MySQL. [#17681](https://github.com/ClickHouse/ClickHouse/pull/17681) ([Alexander Kazakov](https://github.com/Akazz)).
@@ -992,8 +906,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена проблема, из-за которой оптимизация запроса выдавала некорректный результат, если запрос содержал конструкцию `ARRAY JOIN`. [#17887](https://github.com/ClickHouse/ClickHouse/pull/17887) ([sundyli](https://github.com/sundy-li)).
* Теперь запрос в случае исключения завершается быстрее: при его возникновении выполнение на удалённых репликах отменяется. [#15578](https://github.com/ClickHouse/ClickHouse/pull/15578) ([Azat Khuzhin](https://github.com/azat)).
-
-
### Релиз ClickHouse v20.8.6.6-lts, 2020-11-13 {#clickhouse-release-v20866-lts-2020-11-13}
#### Исправление ошибок {#bug-fix-19}
@@ -1010,8 +922,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-20}
-
-
* Исправлен двойной `free` в случае возникновения исключения в функции `dictGet`. Это могло произойти, если словарь был загружен с ошибкой. [#16429](https://github.com/ClickHouse/ClickHouse/pull/16429) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлена обработка `GROUP BY` с модификаторами `WITH TOTALS`/`ROLLUP`/`CUBE` и функциями `min`/`max` по ключам группировки. Устранена ошибка [#16393](https://github.com/ClickHouse/ClickHouse/issues/16393). [#16397](https://github.com/ClickHouse/ClickHouse/pull/16397) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлен асинхронный запрос INSERT в Distributed при использовании prefer_localhost_replica=0 и internal_replication. [#16358](https://github.com/ClickHouse/ClickHouse/pull/16358) ([Azat Khuzhin](https://github.com/azat)).
@@ -1036,8 +946,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Уменьшите значение метрики `ReadonlyReplica` при отсоединении таблиц только для чтения. Это исправляет [#15598](https://github.com/ClickHouse/ClickHouse/issues/15598). [#15592](https://github.com/ClickHouse/ClickHouse/pull/15592) ([sundyli](https://github.com/sundy-li)).
* Вызывать ошибку, если `ReplicatedMergeTree` передан один параметр, вместо того чтобы игнорировать его. [#15516](https://github.com/ClickHouse/ClickHouse/pull/15516) ([nvartolomei](https://github.com/nvartolomei)).
-
-
#### Улучшение {#improvement-9}
* Теперь можно выполнять запросы `ALTER ... ON CLUSTER` независимо от настройки `` в конфигурации кластера. [#16075](https://github.com/ClickHouse/ClickHouse/pull/16075) ([alesapin](https://github.com/alesapin)).
@@ -1047,8 +955,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-21}
-
-
* Исправлен порядок уничтожения ресурсов на этапе `ReadFromStorage` в плане запроса. В редких случаях это могло приводить к сбоям. Возможно, связано с [#15610](https://github.com/ClickHouse/ClickHouse/issues/15610). [#15645](https://github.com/ClickHouse/ClickHouse/pull/15645) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлена ошибка `Element ... is not a constant expression` при использовании результата функции `JSON*` в `VALUES`, `LIMIT` или на правой стороне оператора `IN`. [#15589](https://github.com/ClickHouse/ClickHouse/pull/15589) ([tavplubix](https://github.com/tavplubix)).
* Исключена возможность появления сообщения об ошибке `Could not calculate available disk space (statvfs), errno: 4, strerror: Interrupted system call`. Это исправляет [#15541](https://github.com/ClickHouse/ClickHouse/issues/15541). [#15557](https://github.com/ClickHouse/ClickHouse/pull/15557) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -1075,8 +981,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлено некорректное определение монотонности для сужающего преобразования `Int -> Int` для знаковых типов. Это могло приводить к неверному результату запроса. Ошибка выявлена в [#14513](https://github.com/ClickHouse/ClickHouse/issues/14513). [#14783](https://github.com/ClickHouse/ClickHouse/pull/14783) ([Amos Bird](https://github.com/amosbird)).
* Исправлен некорректный порядок сортировки столбца `Nullable`. Исправляет [#14344](https://github.com/ClickHouse/ClickHouse/issues/14344). [#14495](https://github.com/ClickHouse/ClickHouse/pull/14495) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
-
-
#### Улучшение {#improvement-10}
* Теперь можно изменить тип столбца версии для `VersionedCollapsingMergeTree` с помощью запроса `ALTER`. [#15442](https://github.com/ClickHouse/ClickHouse/pull/15442) ([alesapin](https://github.com/alesapin)).
@@ -1106,8 +1010,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Обратное несовместимое изменение {#backward-incompatible-change-4}
-
-
* Теперь запрос `OPTIMIZE FINAL` не пересчитывает TTL для частей, которые были добавлены до создания TTL. Используйте `ALTER TABLE ... MATERIALIZE TTL` один раз, чтобы вычислить их, после чего `OPTIMIZE FINAL` будет корректно учитывать TTL. Это поведение никогда не работало для реплицируемых таблиц. [#14220](https://github.com/ClickHouse/ClickHouse/pull/14220) ([alesapin](https://github.com/alesapin)).
* Расширена настройка `parallel_distributed_insert_select`, добавлена опция для выполнения `INSERT` в локальную таблицу. Тип настройки изменяется с `Bool` на `UInt64`, поэтому значения `false` и `true` больше не поддерживаются. Если у вас указаны эти значения в конфигурации сервера, сервер не запустится. Замените их, соответственно, на `0` и `1`. [#14060](https://github.com/ClickHouse/ClickHouse/pull/14060) ([Azat Khuzhin](https://github.com/azat)).
* Удалена поддержка формата ввода/вывода `ODBCDriver`. Это был устаревший формат, ранее использовавшийся для взаимодействия с драйвером ClickHouse ODBC, который уже давно заменён форматом `ODBCDriver2`. Устраняет [#13629](https://github.com/ClickHouse/ClickHouse/issues/13629). [#13847](https://github.com/ClickHouse/ClickHouse/pull/13847) ([hexiaoting](https://github.com/hexiaoting)).
@@ -1115,8 +1017,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Новая функциональность {#new-feature-4}
-
-
* Добавлена возможность указывать кодек сжатия `Default` для столбцов, которые соответствуют настройкам, указанным в `config.xml`. Реализует задачу: [#9074](https://github.com/ClickHouse/ClickHouse/issues/9074). [#14049](https://github.com/ClickHouse/ClickHouse/pull/14049) ([alesapin](https://github.com/alesapin)).
* Добавлена поддержка аутентификации Kerberos в Kafka с использованием библиотек `krb5` и `cyrus-sasl`. [#12771](https://github.com/ClickHouse/ClickHouse/pull/12771) ([Ilya Golshtein](https://github.com/ilejn)).
* Добавлена функция `normalizeQuery`, которая заменяет литералы, последовательности литералов и сложные алиасы плейсхолдерами. Добавлена функция `normalizedQueryHash`, которая возвращает одинаковые 64-битные хэши для похожих запросов. Это помогает анализировать журнал запросов. Закрывает [#11271](https://github.com/ClickHouse/ClickHouse/issues/11271). [#13816](https://github.com/ClickHouse/ClickHouse/pull/13816) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -1131,8 +1031,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-23}
-
-
* Исправлено перекрытие отображаемых данных индикатором прогресса в клиенте в интерактивном режиме. Это исправляет [#12562](https://github.com/ClickHouse/ClickHouse/issues/12562), [#13369](https://github.com/ClickHouse/ClickHouse/issues/13369), [#13584](https://github.com/ClickHouse/ClickHouse/issues/13584) и [#12964](https://github.com/ClickHouse/ClickHouse/issues/12964). [#13691](https://github.com/ClickHouse/ClickHouse/pull/13691) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлен некорректный порядок сортировки для столбца типа `LowCardinality` при сортировке по нескольким столбцам. Это исправляет [#13958](https://github.com/ClickHouse/ClickHouse/issues/13958). [#14223](https://github.com/ClickHouse/ClickHouse/pull/14223) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Добавлена проверка на переполнение размера массива в агрегатной функции `topK`. Без этой проверки пользователь может отправить запрос с тщательно подобранными параметрами, что приведёт к сбою сервера. Это закрывает [#14452](https://github.com/ClickHouse/ClickHouse/issues/14452). [#14467](https://github.com/ClickHouse/ClickHouse/pull/14467) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -1178,12 +1076,8 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Удалена ошибочная проверка прав доступа при использовании ClickHouseDictionarySource для выполнения запросов к удалённым таблицам. [#12756](https://github.com/ClickHouse/ClickHouse/pull/12756) ([sundyli](https://github.com/sundy-li)).
* Корректно различать подзапросы в некоторых случаях при устранении общих подвыражений. [#8333](https://github.com/ClickHouse/ClickHouse/issues/8333). [#8367](https://github.com/ClickHouse/ClickHouse/pull/8367) ([Amos Bird](https://github.com/amosbird)).
-
-
#### Улучшение {#improvement-12}
-
-
* Запрещает использование `CODEC` для столбцов типа `ALIAS`. Исправляет [#13911](https://github.com/ClickHouse/ClickHouse/issues/13911). [#14263](https://github.com/ClickHouse/ClickHouse/pull/14263) ([Bharat Nallan](https://github.com/bharatnc)).
* При ожидании завершения обновления словаря используйте таймаут, заданный настройкой `query_wait_timeout_milliseconds`, вместо жёстко закодированного значения. [#14105](https://github.com/ClickHouse/ClickHouse/pull/14105) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Добавлена настройка `min_index_granularity_bytes`, которая защищает от случайного создания таблицы со слишком низким значением `index_granularity_bytes`. [#14139](https://github.com/ClickHouse/ClickHouse/pull/14139) ([Bharat Nallan](https://github.com/bharatnc)).
@@ -1211,8 +1105,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена работа readline: теперь история сбрасывается в файл. [#13600](https://github.com/ClickHouse/ClickHouse/pull/13600) ([Amos Bird](https://github.com/amosbird)).
* Создать базу данных `system` с движком `Atomic` по умолчанию (подготовительный шаг к включению движка `Atomic` по умолчанию повсюду). [#13680](https://github.com/ClickHouse/ClickHouse/pull/13680) ([tavplubix](https://github.com/tavplubix)).
-
-
#### Повышение производительности {#performance-improvement-5}
* Незначительно оптимизированы очень короткие запросы с `LowCardinality`. [#14129](https://github.com/ClickHouse/ClickHouse/pull/14129) ([Anton Popov](https://github.com/CurtizJ)).
@@ -1229,8 +1121,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-7}
-
-
* Добавлен скрипт `clickhouse install`, который полезен, если у вас есть только один бинарник. [#13528](https://github.com/ClickHouse/ClickHouse/pull/13528) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Добавлена возможность запускать исполняемый файл `clickhouse` без конфигурационного файла. [#13515](https://github.com/ClickHouse/ClickHouse/pull/13515) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Добавлена проверка кода на опечатки с помощью `codespell`. [#13513](https://github.com/ClickHouse/ClickHouse/pull/13513) [#13511](https://github.com/ClickHouse/ClickHouse/pull/13511) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -1258,8 +1148,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
## Релиз ClickHouse 20.7 {#clickhouse-release-207}
### Релиз ClickHouse v20.7.2.30-stable, 2020-08-31 {#clickhouse-release-v207230-stable-2020-08-31}
@@ -1275,8 +1163,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Новая функциональность {#new-feature-5}
-
-
* Тип словаря полигонов, обеспечивающий эффективный поиск с помощью «обратного геокодирования» — для нахождения региона по координатам в словаре из множества полигонов (карта мира). Использует тщательно оптимизированный алгоритм с рекурсивными сетками для снижения нагрузки на CPU и память. [#9278](https://github.com/ClickHouse/ClickHouse/pull/9278) ([achulkov2](https://github.com/achulkov2)).
* Добавлена поддержка LDAP-аутентификации для предварительно настроенных пользователей (метод «Simple Bind»). [#11234](https://github.com/ClickHouse/ClickHouse/pull/11234) ([Denis Glazachev](https://github.com/traceon)).
* Добавлена настройка `alter_partition_verbose_result`, которая выводит информацию о затронутых партах для некоторых типов запросов `ALTER TABLE ... PARTITION ...` (в настоящее время `ATTACH` и `FREEZE`). Закрывает [#8076](https://github.com/ClickHouse/ClickHouse/issues/8076). [#13017](https://github.com/ClickHouse/ClickHouse/pull/13017) ([alesapin](https://github.com/alesapin)).
@@ -1293,8 +1179,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-24}
-
-
* Исправлены преждевременные таймауты `ON CLUSTER` для запросов, которые должны выполняться на одной реплике. Исправляет [#6704](https://github.com/ClickHouse/ClickHouse/issues/6704), [#7228](https://github.com/ClickHouse/ClickHouse/issues/7228), [#13361](https://github.com/ClickHouse/ClickHouse/issues/13361), [#11884](https://github.com/ClickHouse/ClickHouse/issues/11884). [#13450](https://github.com/ClickHouse/ClickHouse/pull/13450) ([alesapin](https://github.com/alesapin)).
* Исправлено падение при поиске включения меток, появившееся в [#12277](https://github.com/ClickHouse/ClickHouse/pull/12277). [#14225](https://github.com/ClickHouse/ClickHouse/pull/14225) ([Amos Bird](https://github.com/amosbird)).
* Исправлена гонка во внешних словарях с размещением в кэше, которая могла приводить к сбою сервера. [#12566](https://github.com/ClickHouse/ClickHouse/pull/12566) ([alesapin](https://github.com/alesapin)).
@@ -1370,12 +1254,8 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлено переполнение при указании очень большого значения LIMIT или OFFSET. Исправляет [#10470](https://github.com/ClickHouse/ClickHouse/issues/10470). Исправляет [#11372](https://github.com/ClickHouse/ClickHouse/issues/11372). [#12427](https://github.com/ClickHouse/ClickHouse/pull/12427) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* kafka: исправлен SIGSEGV, возникавший при наличии сообщения с ошибкой в середине пакета. [#12302](https://github.com/ClickHouse/ClickHouse/pull/12302) ([Azat Khuzhin](https://github.com/azat)).
-
-
#### Улучшение {#improvement-13}
-
-
* Старайтесь хранить в ZooKeeper минимально необходимый объём логов. Избегайте чрезмерного роста узлов ZooKeeper при наличии офлайн-реплик и большом количестве серверов/таблиц/вставок. [#13100](https://github.com/ClickHouse/ClickHouse/pull/13100) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Теперь исключения возвращаются клиенту, если произошла ошибка во время операции `ALTER` или мутации. Закрывает [#11329](https://github.com/ClickHouse/ClickHouse/issues/11329). [#12666](https://github.com/ClickHouse/ClickHouse/pull/12666) ([alesapin](https://github.com/alesapin)).
* Добавлены `QueryTimeMicroseconds`, `SelectQueryTimeMicroseconds` и `InsertQueryTimeMicroseconds` в таблицу `system.events`, а также в system.metrics, processes, query_log и т. д. [#13028](https://github.com/ClickHouse/ClickHouse/pull/13028) ([ianton-ru](https://github.com/ianton-ru)).
@@ -1409,8 +1289,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Если таблица MergeTree не содержит ORDER BY или PARTITION BY, можно было выполнить запрос ALTER с CLEAR для всех столбцов, и ALTER зависал. Исправлено [#7941](https://github.com/ClickHouse/ClickHouse/issues/7941). [#12382](https://github.com/ClickHouse/ClickHouse/pull/12382) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Не перезагружать автодополнение из файла истории после каждого запроса (чтобы избежать перемешивания истории с другими клиентскими сессиями). [#13086](https://github.com/ClickHouse/ClickHouse/pull/13086) ([Azat Khuzhin](https://github.com/azat)).
-
-
#### Улучшение производительности {#performance-improvement-6}
* Снижено потребление памяти для некоторых операций до двух раз. [#12424](https://github.com/ClickHouse/ClickHouse/pull/12424) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -1428,8 +1306,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-8}
-
-
* Используйте `shellcheck` для линтинга sh-тестов. [#13200](https://github.com/ClickHouse/ClickHouse/pull/13200) [#13207](https://github.com/ClickHouse/ClickHouse/pull/13207) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Добавлен скрипт, который устанавливает метки для pull request'ов в GitHub-хуке. [#13183](https://github.com/ClickHouse/ClickHouse/pull/13183) ([alesapin](https://github.com/alesapin)).
* Удалена часть рекурсивных подмодулей. См. [#13378](https://github.com/ClickHouse/ClickHouse/issues/13378). [#13379](https://github.com/ClickHouse/ClickHouse/pull/13379) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -1467,8 +1343,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
## Релиз ClickHouse 20.6 {#clickhouse-release-206}
### Релиз ClickHouse v20.6.3.28-stable {#clickhouse-release-v206328-stable}
@@ -1490,8 +1364,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-25}
-
-
* Исправлена ошибка `aggregate function any(x) is found inside another aggregate function in query` с помощью `SET optimize_move_functions_out_of_any = 1` и использования алиасов внутри `any()`. [#13419](https://github.com/ClickHouse/ClickHouse/pull/13419) ([Artem Zuikov](https://github.com/4ertus2)).
* Исправлен `PrettyCompactMonoBlock` для clickhouse-local. Исправлены extremes/totals в `PrettyCompactMonoBlock`. Это исправляет [#7746](https://github.com/ClickHouse/ClickHouse/issues/7746). [#13394](https://github.com/ClickHouse/ClickHouse/pull/13394) ([Azat Khuzhin](https://github.com/azat)).
* Исправлена потенциальная ошибка `Totals having transform was already added to pipeline` в случае запроса с отложенной реплики. [#13290](https://github.com/ClickHouse/ClickHouse/pull/13290) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
@@ -1569,8 +1441,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена проверка, определяющая, является ли ограничение константным выражением. Это исправляет [#11360](https://github.com/ClickHouse/ClickHouse/issues/11360). [#12042](https://github.com/ClickHouse/ClickHouse/pull/12042) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлены некорректный результат и потенциальный сбой при вызове функции `if` с аргументами типа `FixedString` различного размера. Это исправляет [#11362](https://github.com/ClickHouse/ClickHouse/issues/11362). [#12021](https://github.com/ClickHouse/ClickHouse/pull/12021) ([alexey-milovidov](https://github.com/alexey-milovidov)).
-
-
#### Улучшения {#improvement-14}
* Теперь можно задавать вид и тип `JOIN` более стандартным способом: `LEFT SEMI JOIN` вместо `SEMI LEFT JOIN`. Пока оба варианта корректны. [#12520](https://github.com/ClickHouse/ClickHouse/pull/12520) ([Artem Zuikov](https://github.com/4ertus2)).
@@ -1587,8 +1457,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Улучшения производительности {#performance-improvement-7}
-
-
* Улучшена производительность `ORDER BY` и `GROUP BY` по префиксу ключа сортировки (включается настройкой `optimize_aggregation_in_order`, по умолчанию выключена). [#11696](https://github.com/ClickHouse/ClickHouse/pull/11696) ([Anton Popov](https://github.com/CurtizJ)).
* Удалены инъективные функции внутри `uniq*()` при `set optimize_injective_functions_inside_uniq=1`. [#12337](https://github.com/ClickHouse/ClickHouse/pull/12337) ([Ruslan Kamalov](https://github.com/kamalov-ruslan)).
* Индекс не использовался для оператора IN с литералами, что привело к регрессии производительности, появившейся примерно в v19.3. Это исправляет [#10574](https://github.com/ClickHouse/ClickHouse/issues/10574). [#12062](https://github.com/ClickHouse/ClickHouse/pull/12062) ([nvartolomei](https://github.com/nvartolomei)).
@@ -1599,8 +1467,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-9}
-
-
* Реализован режим фаззинга запросов в clickhouse-client на основе AST. См. [эту метку](https://github.com/ClickHouse/ClickHouse/issues?q=label%3Afuzz+is%3Aissue) для списка задач, которые мы недавно нашли с помощью фаззинга. Большинство из них были найдены этим инструментом, а несколько — SQLancer и `00746_sql_fuzzy.pl`. [#12111](https://github.com/ClickHouse/ClickHouse/pull/12111) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Добавлен новый тип тестов на основе фреймворка Testflows. [#12090](https://github.com/ClickHouse/ClickHouse/pull/12090) ([vzakaznikov](https://github.com/vzakaznikov)).
* Добавлен интеграционный тест S3 HTTPS. [#12412](https://github.com/ClickHouse/ClickHouse/pull/12412) ([Pavel Kovalenko](https://github.com/Jokser)).
@@ -1617,16 +1483,12 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Настроена ежедневная проверка с помощью инструмента анализа безопасности [GitHub CodeQL](https://securitylab.github.com/tools/codeql), который ищет [CWE](https://cwe.mitre.org/). [#12101](https://github.com/ClickHouse/ClickHouse/pull/12101) ([Ivan Blinkov](https://github.com/blinkov)).
* Установка `ca-certificates` перед первым `apt-get update` в Dockerfile. [#12095](https://github.com/ClickHouse/ClickHouse/pull/12095) ([Ivan Blinkov](https://github.com/blinkov)).
-
-
## Релиз ClickHouse 20.5 {#clickhouse-release-205}
### Релиз ClickHouse v20.5.4.40-stable 2020-08-10 {#clickhouse-release-v205440-stable-2020-08-10}
#### Исправление ошибки {#bug-fix-26}
-
-
* Исправлен неправильный анализ индексов при использовании функций. Это могло приводить к отсечению неверных частей данных при чтении из таблиц `MergeTree`. Исправлены [#13060](https://github.com/ClickHouse/ClickHouse/issues/13060). Исправлены [#12406](https://github.com/ClickHouse/ClickHouse/issues/12406). [#13081](https://github.com/ClickHouse/ClickHouse/pull/13081) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлено избыточное ограничение числа потоков для SELECT-запросов с локальной реплики. [#12840](https://github.com/ClickHouse/ClickHouse/pull/12840) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлена проблема с производительностью при работе с большими кортежами, которые интерпретируются как функции в условии `IN`. Ситуация, когда пользователь по какой-то непонятной причине пишет `WHERE x IN tuple(1, 2, ...)` вместо `WHERE x IN (1, 2, ...)`. [#12700](https://github.com/ClickHouse/ClickHouse/pull/12700) ([Anton Popov](https://github.com/CurtizJ)).
@@ -1657,8 +1519,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлено падение JOIN с типом LowCardinality при `join_algorithm=partial_merge`. [#12035](https://github.com/ClickHouse/ClickHouse/pull/12035) ([Artem Zuikov](https://github.com/4ertus2)).
* Исправлен неверный результат функции `if()` при наличии значений NULL в условии. [#11807](https://github.com/ClickHouse/ClickHouse/pull/11807) ([Artem Zuikov](https://github.com/4ertus2)).
-
-
#### Улучшение производительности {#performance-improvement-8}
* Индекс не использовался для оператора IN с литералами, регрессия производительности появилась примерно в v19.3. Это исправляет [#10574](https://github.com/ClickHouse/ClickHouse/issues/10574). [#12062](https://github.com/ClickHouse/ClickHouse/pull/12062) ([nvartolomei](https://github.com/nvartolomei)).
@@ -1682,8 +1542,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Новая функциональность {#new-feature-7}
-
-
* `TTL DELETE WHERE` и `TTL GROUP BY` для автоматического укрупнения данных и построения rollup-агрегатов в таблицах. [#10537](https://github.com/ClickHouse/ClickHouse/pull/10537) ([expl0si0nn](https://github.com/expl0si0nn)).
* Реализация протокола взаимодействия PostgreSQL (wire protocol). [#10242](https://github.com/ClickHouse/ClickHouse/pull/10242) ([Movses](https://github.com/MovElb)).
* Добавлены системные таблицы для пользователей, ролей, прав доступа, профилей настроек, квот и политик строк; также добавлены команды SHOW USER, SHOW [CURRENT|ENABLED] ROLES, SHOW SETTINGS PROFILES. [#10387](https://github.com/ClickHouse/ClickHouse/pull/10387) ([Vitaly Baranov](https://github.com/vitlibar)).
@@ -1733,12 +1591,8 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* `SimpleAggregateFunction` теперь поддерживает и `sumMap`. [#10000](https://github.com/ClickHouse/ClickHouse/pull/10000) ([Ildus Kurbangaliev](https://github.com/ildus)).
* Добавлена поддержка `ALTER RENAME COLUMN` для движка Distributed. Продолжение [#10727](https://github.com/ClickHouse/ClickHouse/issues/10727). Исправлено [#10747](https://github.com/ClickHouse/ClickHouse/issues/10747). [#10887](https://github.com/ClickHouse/ClickHouse/pull/10887) ([alesapin](https://github.com/alesapin)).
-
-
#### Исправление ошибки {#bug-fix-27}
-
-
* Исправлено срабатывание UBSan при разборе Decimal. Это исправляет [#7540](https://github.com/ClickHouse/ClickHouse/issues/7540). [#10512](https://github.com/ClickHouse/ClickHouse/pull/10512) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлено возможное арифметическое исключение с плавающей запятой при разборе DateTime64. Это исправляет [#11374](https://github.com/ClickHouse/ClickHouse/issues/11374). [#11875](https://github.com/ClickHouse/ClickHouse/pull/11875) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлен редкий сбой, возникавший при использовании столбца `Nullable` в условии `PREWHERE`. [#11895](https://github.com/ClickHouse/ClickHouse/pull/11895) [#11608](https://github.com/ClickHouse/ClickHouse/issues/11608) [#11869](https://github.com/ClickHouse/ClickHouse/pull/11869) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
@@ -1870,12 +1724,8 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена ошибка, связанная с ограничением "max_rows_to_sort". [#10268](https://github.com/ClickHouse/ClickHouse/pull/10268) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Получать словарь и проверять права доступа только один раз при каждом вызове любой функции чтения внешних словарей. [#10928](https://github.com/ClickHouse/ClickHouse/pull/10928) ([Vitaly Baranov](https://github.com/vitlibar)).
-
-
#### Улучшение {#improvement-15}
-
-
* Применяется `TTL` для старых данных после выполнения запроса `ALTER MODIFY TTL`. Это поведение контролируется настройкой `materialize_ttl_after_modify`, которая включена по умолчанию. [#11042](https://github.com/ClickHouse/ClickHouse/pull/11042) ([Anton Popov](https://github.com/CurtizJ)).
* При разборе C‑подобных escape‑последовательностей с обратной косой чертой в строковых литералах, `VALUES` и различных текстовых форматах (это расширение стандарта SQL, характерное для ClickHouse и MySQL), сохранять обратную косую черту, если обнаружена неизвестная escape‑последовательность (например, `\%` или `\w`), что делает использование регулярных выражений `LIKE` и `match` более удобным (достаточно написать `name LIKE 'used\_cars'` вместо `name LIKE 'used\\_cars'`), а также повышает совместимость. Это исправляет [#10922](https://github.com/ClickHouse/ClickHouse/issues/10922). [#11208](https://github.com/ClickHouse/ClickHouse/pull/11208) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* При чтении значений типа Decimal лишние цифры после десятичной точки отбрасываются. Такое поведение более совместимо с MySQL и PostgreSQL. Это исправляет [#10202](https://github.com/ClickHouse/ClickHouse/issues/10202). [#11831](https://github.com/ClickHouse/ClickHouse/pull/11831) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -1931,12 +1781,8 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Добавлена поддержка запроса `INSERT INTO [db.]table WATCH`. [#10498](https://github.com/ClickHouse/ClickHouse/pull/10498) ([vzakaznikov](https://github.com/vzakaznikov)).
* Добавлена возможность передавать параметр quota_key в clickhouse-client. Тем самым закрывается [#10227](https://github.com/ClickHouse/ClickHouse/issues/10227). [#10270](https://github.com/ClickHouse/ClickHouse/pull/10270) ([alexey-milovidov](https://github.com/alexey-milovidov)).
-
-
#### Повышение производительности {#performance-improvement-9}
-
-
* Добавлена возможность нескольким репликам одновременно назначать слияния, мутации, удаление, перемещение и замену разделов. Это закрывает [#10367](https://github.com/ClickHouse/ClickHouse/issues/10367). [#11639](https://github.com/ClickHouse/ClickHouse/pull/11639) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#11795](https://github.com/ClickHouse/ClickHouse/pull/11795) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Оптимизация выполнения GROUP BY с учётом ключа сортировки таблицы, включаемая с помощью настройки `optimize_aggregation_in_order`. [#9113](https://github.com/ClickHouse/ClickHouse/pull/9113) ([dimarub2000](https://github.com/dimarub2000)).
* Запросы SELECT с FINAL выполняются параллельно. Добавлена настройка `max_final_threads` для ограничения числа используемых потоков. [#10463](https://github.com/ClickHouse/ClickHouse/pull/10463) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
@@ -1959,8 +1805,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Оптимизировано использование памяти при чтении ответа HTTP‑клиента S3. [#11561](https://github.com/ClickHouse/ClickHouse/pull/11561) ([Pavel Kovalenko](https://github.com/Jokser)).
* Настроены параметры Kafka по умолчанию для повышения производительности. [#11388](https://github.com/ClickHouse/ClickHouse/pull/11388) ([filimonov](https://github.com/filimonov)).
-
-
#### Экспериментальная функциональность {#experimental-feature-5}
* Добавлены типы данных `Point` (Tuple(Float64, Float64)) и `Polygon` (Array(Array(Tuple(Float64, Float64))). [#10678](https://github.com/ClickHouse/ClickHouse/pull/10678) ([Alexey Ilyukhov](https://github.com/livace)).
@@ -1969,8 +1813,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-11}
-
-
* Включить clang-tidy для программ и утилит. [#10991](https://github.com/ClickHouse/ClickHouse/pull/10991) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Удалена зависимость от `tzdata`: теперь ошибка не возникает, даже если каталог `/usr/share/zoneinfo` отсутствует. Обратите внимание, что все часовые пояса в ClickHouse работают даже без установленного в системе tzdata. [#11827](https://github.com/ClickHouse/ClickHouse/pull/11827) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Добавлены стресс‑тесты с MSan и UBSan. Обратите внимание, что у нас уже есть MSan и UBSan для функциональных тестов, при этом "стресс‑тест" — это другой тип тестов. [#10871](https://github.com/ClickHouse/ClickHouse/pull/10871) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -2040,16 +1882,12 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
## Релиз ClickHouse v20.4 {#clickhouse-release-v204}
### Релиз ClickHouse v20.4.8.99-stable 2020-08-10 {#clickhouse-release-v204899-stable-2020-08-10}
#### Исправление ошибки {#bug-fix-28}
-
-
* Исправлена ошибка в функции `parseDateTimeBestEffort`, которая возникала при передаче значения Unix timestamp в качестве аргумента. Это устраняет [#13362](https://github.com/ClickHouse/ClickHouse/issues/13362). [#13441](https://github.com/ClickHouse/ClickHouse/pull/13441) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлены потенциальные проблемы с низкой производительностью и слегка некорректные результаты агрегатных функций `uniqExact`, `topK`, `sumDistinct` и подобных, вызываемых для типов Float со значениями NaN. Это также приводило к срабатыванию `assert` в отладочной сборке. Это исправляет [#12491](https://github.com/ClickHouse/ClickHouse/issues/12491). [#13254](https://github.com/ClickHouse/ClickHouse/pull/13254) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлена работа функции if с nullable constexpr в качестве условия, которое не является литералом NULL. Исправляет [#12463](https://github.com/ClickHouse/ClickHouse/issues/12463). [#13226](https://github.com/ClickHouse/ClickHouse/pull/13226) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -2111,8 +1949,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлен учёт памяти в HTTP-интерфейсе (может быть значимым при `wait_end_of_query=1`). [#11840](https://github.com/ClickHouse/ClickHouse/pull/11840) ([Azat Khuzhin](https://github.com/azat)).
* Разбирать метаданные, хранящиеся в ZooKeeper, прежде чем выполнять проверку на равенство. [#11739](https://github.com/ClickHouse/ClickHouse/pull/11739) ([Azat Khuzhin](https://github.com/azat)).
-
-
#### Улучшение производительности {#performance-improvement-10}
* Индекс не использовался для оператора IN с литералами, регрессия производительности возникла примерно в v19.3. Это исправляет [#10574](https://github.com/ClickHouse/ClickHouse/issues/10574). [#12062](https://github.com/ClickHouse/ClickHouse/pull/12062) ([nvartolomei](https://github.com/nvartolomei)).
@@ -2125,8 +1961,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-29}
-
-
* Исправлен редкий сбой, возникавший при использовании столбца типа `Nullable` в условии PREWHERE. Продолжение [#11608](https://github.com/ClickHouse/ClickHouse/issues/11608). [#11869](https://github.com/ClickHouse/ClickHouse/pull/11869) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Запрещено использование arrayJoin внутри функций высшего порядка. Оно приводило к нарушению синхронизации протокола. Это исправляет [#3933](https://github.com/ClickHouse/ClickHouse/issues/3933). [#11846](https://github.com/ClickHouse/ClickHouse/pull/11846) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлена ошибка при сравнении `FixedString` с константой типа `String`. Исправление закрывает [#11393](https://github.com/ClickHouse/ClickHouse/issues/11393). Ошибка появилась в версии 20.4. [#11828](https://github.com/ClickHouse/ClickHouse/pull/11828) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -2157,8 +1991,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Удалить старые патчи для libunwind. [https://github.com/ClickHouse-Extras/libunwind/commit/500aa227911bd185a94bfc071d68f4d3b03cb3b1#r39048012](https://github.com/ClickHouse-Extras/libunwind/commit/500aa227911bd185a94bfc071d68f4d3b03cb3b1#r39048012) Это позволяет отключить `-fno-omit-frame-pointer` в сборках `clang`, что в среднем улучшает производительность как минимум на 1%. [#10761](https://github.com/ClickHouse/ClickHouse/pull/10761) ([Amos Bird](https://github.com/amosbird)).
* Исправлена работа первичного ключа, обернутого в функцию, при использовании модификатора 'FINAL' и оптимизации 'ORDER BY'. [#10715](https://github.com/ClickHouse/ClickHouse/pull/10715) ([Anton Popov](https://github.com/CurtizJ)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-13}
* Исправлено несколько незначительных ошибок в модульных тестах. [#11262](https://github.com/ClickHouse/ClickHouse/pull/11262) ([alesapin](https://github.com/alesapin)).
@@ -2168,8 +2000,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-30}
-
-
* Исправлена ошибка `Data compressed with different methods`, которая могла возникать при включённом `min_bytes_to_use_direct_io`, когда PREWHERE активен и используется SAMPLE или большое число потоков. Это исправляет [#11539](https://github.com/ClickHouse/ClickHouse/issues/11539). [#11540](https://github.com/ClickHouse/ClickHouse/pull/11540) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлено возвращаемое кодеками значение сжатого размера. [#11448](https://github.com/ClickHouse/ClickHouse/pull/11448) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлена ошибка, приводившая к падению сервера, когда у столбца задан кодек сжатия с нелитеральными аргументами. Исправляет [#11365](https://github.com/ClickHouse/ClickHouse/issues/11365). [#11431](https://github.com/ClickHouse/ClickHouse/pull/11431) ([alesapin](https://github.com/alesapin)).
@@ -2202,8 +2032,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлено чрезмерное резервирование потоков для простых запросов (оптимизация по снижению количества потоков, частично нарушенная после изменений в конвейере). [#11114](https://github.com/ClickHouse/ClickHouse/pull/11114) ([Azat Khuzhin](https://github.com/azat)).
* Исправлена оптимизация предикатов для распределённых запросов (`enable_optimize_predicate_expression=1`) в запросах с секцией `HAVING` (т.е. когда требуется фильтрация на сервере-инициаторе) за счёт сохранения порядка выражений, чего достаточно для устранения проблемы, а также за счёт принудительного использования агрегатором имён столбцов вместо индексов. Исправляет: [#10613](https://github.com/ClickHouse/ClickHouse/issues/10613), [#11413](https://github.com/ClickHouse/ClickHouse/issues/11413). [#10621](https://github.com/ClickHouse/ClickHouse/pull/10621) ([Azat Khuzhin](https://github.com/azat)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-14}
* Исправлено несколько нестабильных интеграционных тестов. [#11355](https://github.com/ClickHouse/ClickHouse/pull/11355) ([alesapin](https://github.com/alesapin)).
@@ -2216,8 +2044,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-31}
-
-
* Удалено логирование при финализации мутаций, если в результате ничего не было финализировано. [#11109](https://github.com/ClickHouse/ClickHouse/pull/11109) ([alesapin](https://github.com/alesapin)).
* Исправлена утечка памяти в `registerDiskS3`. [#11074](https://github.com/ClickHouse/ClickHouse/pull/11074) ([Pavel Kovalenko](https://github.com/Jokser)).
* Исправлена возможная потеря данных при остановке таблицы с движком Kafka. [#11048](https://github.com/ClickHouse/ClickHouse/pull/11048) ([filimonov](https://github.com/filimonov)).
@@ -2257,8 +2083,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Добавлены тесты по настройке `max_rows_to_sort`. [#10268](https://github.com/ClickHouse/ClickHouse/pull/10268) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Добавлена обратная совместимость для операции создания индекса Bloom-фильтра. [#10551](https://github.com/ClickHouse/ClickHouse/issues/10551). [#10569](https://github.com/ClickHouse/ClickHouse/pull/10569) ([Winter Zhang](https://github.com/zhang2014)).
-
-
### Релиз ClickHouse v20.4.2.9, 2020-05-12 {#clickhouse-release-v20429-2020-05-12}
#### Изменение, нарушающее обратную совместимость {#backward-incompatible-change-8}
@@ -2267,8 +2091,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Команда SHOW CREATE TABLE теперь выводит результат в несколько строк. Теперь он более читабелен и больше похож на MySQL. [#10049](https://github.com/ClickHouse/ClickHouse/pull/10049) ([Azat Khuzhin](https://github.com/azat))
* Добавлена настройка `validate_polygons`, которая используется в функции `pointInPolygon` и по умолчанию включена. [#9857](https://github.com/ClickHouse/ClickHouse/pull/9857) ([alexey-milovidov](https://github.com/alexey-milovidov))
-
-
#### Новая функция {#new-feature-8}
* Добавлена поддержка защищённого соединения из ClickHouse к Zookeeper [#10184](https://github.com/ClickHouse/ClickHouse/pull/10184) ([Konstantin Lebedev](https://github.com/xzkostyan))
@@ -2298,14 +2120,10 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Добавлена опция 'strict_order' для windowFunnel() [#9773](https://github.com/ClickHouse/ClickHouse/pull/9773) ([achimbab](https://github.com/achimbab))
* Добавлена поддержка операторов SQL `DATE` и `TIMESTAMP`, например `SELECT date '2001-01-01'` [#9691](https://github.com/ClickHouse/ClickHouse/pull/9691) ([Artem Zuikov](https://github.com/4ertus2))
-
-
#### Экспериментальная функция {#experimental-feature-6}
* Добавлен экспериментальный движок базы данных Atomic. Он поддерживает неблокирующие запросы `DROP` и `RENAME TABLE`, а также атомарный запрос `EXCHANGE TABLES t1 AND t2` [#7512](https://github.com/ClickHouse/ClickHouse/pull/7512) ([tavplubix](https://github.com/tavplubix))
* Добавлена начальная поддержка ReplicatedMergeTree поверх S3 (пока работает неоптимально) [#10126](https://github.com/ClickHouse/ClickHouse/pull/10126) ([Pavel Kovalenko](https://github.com/Jokser))
-
-
#### Исправление ошибки {#bug-fix-32}
* Исправлены некорректные скалярные результаты во внутреннем запросе `MATERIALIZED VIEW` для случая, когда этот запрос содержал зависимую таблицу [#10603](https://github.com/ClickHouse/ClickHouse/pull/10603) ([Nikolai Kochetov](https://github.com/KochetovNicolai))
@@ -2424,8 +2242,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
#### Улучшение {#improvement-16}
* При сравнении `DateTime` со строковым литералом теперь используется часовой пояс. Это исправляет [#5206](https://github.com/ClickHouse/ClickHouse/issues/5206). [#10515](https://github.com/ClickHouse/ClickHouse/pull/10515) ([alexey-milovidov](https://github.com/alexey-milovidov))
@@ -2480,8 +2296,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Добавлена поддержка `MATERIALIZE TTL IN PARTITION`. [#9581](https://github.com/ClickHouse/ClickHouse/pull/9581) ([Vladimir Chebotarev](https://github.com/excitoon))
* Поддержка сложных типов во вложенных полях Avro [#10502](https://github.com/ClickHouse/ClickHouse/pull/10502) ([Andrew Onyshchuk](https://github.com/oandrew))
-
-
#### Повышение производительности {#performance-improvement-11}
* Улучшена логика вставки в правую таблицу для Partial MergeJoin. [#10467](https://github.com/ClickHouse/ClickHouse/pull/10467) ([Artem Zuikov](https://github.com/4ertus2))
* Повышена производительность строчно-ориентированных форматов (более чем на 10% для CSV и более чем на 35% для Avro в случае узких таблиц). [#10503](https://github.com/ClickHouse/ClickHouse/pull/10503) ([Andrew Onyshchuk](https://github.com/oandrew))
@@ -2496,8 +2310,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Добавлены дополнительные методы агрегации. Например, запрос TPC-H 1 теперь выберет `FixedHashMap` и получит прирост производительности на 25%. [#9829](https://github.com/ClickHouse/ClickHouse/pull/9829) ([Amos Bird](https://github.com/amosbird))
* Используется единый счетчик строк для нескольких потоков в преобразовании pre-limit. Это помогает избежать объединения конвейерных потоков в запросах с `limit`, но без `order by` (например, `select f(x) from (select x from t limit 1000000000)`) и использовать несколько потоков для дальнейшей обработки. [#9602](https://github.com/ClickHouse/ClickHouse/pull/9602) ([Nikolai Kochetov](https://github.com/KochetovNicolai))
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-15}
* Использовать форк библиотек AWS SDK из ClickHouse-Extras [#10527](https://github.com/ClickHouse/ClickHouse/pull/10527) ([Pavel Kovalenko](https://github.com/Jokser))
@@ -2556,8 +2368,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
## Релиз ClickHouse v20.3 {#clickhouse-release-v203}
### Релиз ClickHouse v20.3.21.2-lts, 2020-11-02 {#clickhouse-release-v203212-lts-2020-11-02}
@@ -2582,8 +2392,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-35}
-
-
* Исправлена редкая ошибка в запросах `SELECT`, когда запрашиваемый столбец имеет выражение `DEFAULT`, зависящее от другого столбца, который также имеет `DEFAULT`, но не присутствует в запросе `SELECT` и отсутствует на диске. Частично исправляет [#14531](https://github.com/ClickHouse/ClickHouse/issues/14531). [#14845](https://github.com/ClickHouse/ClickHouse/pull/14845) ([alesapin](https://github.com/alesapin)).
* Исправлена ошибка, когда мутация `ALTER UPDATE` с Nullable-столбцом в выражении присваивания и константным значением (например, `UPDATE x = 42`) приводила к некорректному значению в столбце или сегфолту. Исправляет [#13634](https://github.com/ClickHouse/ClickHouse/issues/13634), [#14045](https://github.com/ClickHouse/ClickHouse/issues/14045). [#14646](https://github.com/ClickHouse/ClickHouse/pull/14646) ([alesapin](https://github.com/alesapin)).
* Исправлен неверный результат умножения Decimal, вызванный неправильным масштабом (scale) десятичного результата в результирующем столбце. [#14603](https://github.com/ClickHouse/ClickHouse/pull/14603) ([Artem Zuikov](https://github.com/4ertus2)).
@@ -2613,8 +2421,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Build/Testing/Packaging Improvement {#buildtestingpackaging-improvement-16}
-
-
* Исправлен отчёт UBSan (добавление нуля к nullptr) в HashTable, появившийся после миграции на clang-10. [#10638](https://github.com/ClickHouse/ClickHouse/pull/10638) ([alexey-milovidov](https://github.com/alexey-milovidov)).
### Релиз ClickHouse v20.3.17.173-lts, 2020-08-15 {#clickhouse-release-v20317173-lts-2020-08-15}
@@ -2630,8 +2436,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-38}
-
-
* Исправлена ошибка в функции `parseDateTimeBestEffort`, возникавшая при передаче Unix‑времени в качестве аргумента. Это исправляет [#13362](https://github.com/ClickHouse/ClickHouse/issues/13362). [#13441](https://github.com/ClickHouse/ClickHouse/pull/13441) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлена проблема с потенциально низкой производительностью и слегка некорректным результатом для агрегатных функций `uniqExact`, `topK`, `sumDistinct` и подобных, вызываемых для типов с плавающей запятой (Float) со значениями `NaN`. Это также приводило к срабатыванию assert в отладочной сборке. Исправляет [#12491](https://github.com/ClickHouse/ClickHouse/issues/12491). [#13254](https://github.com/ClickHouse/ClickHouse/pull/13254) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлена работа функции if с nullable constexpr в качестве условия, не являющегося литералом NULL. Устраняет [#12463](https://github.com/ClickHouse/ClickHouse/issues/12463). [#13226](https://github.com/ClickHouse/ClickHouse/pull/13226) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -2687,8 +2491,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлено использование `LIMIT n WITH TIES` вместе с оператором `ORDER BY`, в котором используются псевдонимы. [#11689](https://github.com/ClickHouse/ClickHouse/pull/11689) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлено потенциальное чтение неинициализированной памяти в кеширующем словаре. [#10834](https://github.com/ClickHouse/ClickHouse/pull/10834) ([alexey-milovidov](https://github.com/alexey-milovidov)).
-
-
#### Улучшение производительности {#performance-improvement-13}
* Индекс не использовался для оператора IN с литералами, регрессия производительности, возникшая примерно в v19.3. Это исправляет [#10574](https://github.com/ClickHouse/ClickHouse/issues/10574). [#12062](https://github.com/ClickHouse/ClickHouse/pull/12062) ([nvartolomei](https://github.com/nvartolomei)).
@@ -2697,8 +2499,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-39}
-
-
* Исправлено редкое падение, возникавшее при использовании столбца типа `Nullable` в условии PREWHERE. Продолжение [#11608](https://github.com/ClickHouse/ClickHouse/issues/11608). [#11869](https://github.com/ClickHouse/ClickHouse/pull/11869) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Запретить использование arrayJoin внутри функций высшего порядка. Это приводило к нарушению синхронизации протокола. Закрывает [#3933](https://github.com/ClickHouse/ClickHouse/issues/3933). [#11846](https://github.com/ClickHouse/ClickHouse/pull/11846) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлена проблема чрезмерного использования потоков при выполнении запросов. [#11788](https://github.com/ClickHouse/ClickHouse/pull/11788) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
@@ -2722,8 +2522,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена утечка памяти при генерации исключения в процессе агрегации с функциями `-State`. Это исправляет [#8995](https://github.com/ClickHouse/ClickHouse/issues/8995). [#11496](https://github.com/ClickHouse/ClickHouse/pull/11496) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлена ошибка, приводившая к неверным результатам распределённых запросов, когда псевдоним мог переопределить квалифицированное имя столбца. Исправлены [#9672](https://github.com/ClickHouse/ClickHouse/issues/9672) [#9714](https://github.com/ClickHouse/ClickHouse/issues/9714). [#9972](https://github.com/ClickHouse/ClickHouse/pull/9972) ([Artem Zuikov](https://github.com/4ertus2)).
-
-
### Релиз ClickHouse v20.3.11.97-lts 2020-06-10 {#clickhouse-release-v2031197-lts-2020-06-10}
#### Новая возможность {#new-feature-9}
@@ -2732,8 +2530,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-40}
-
-
* Исправлена ошибка `Data compressed with different methods`, которая могла возникать при включённом `min_bytes_to_use_direct_io` и активном PREWHERE при использовании SAMPLE или большого числа потоков. Исправляет [#11539](https://github.com/ClickHouse/ClickHouse/issues/11539). [#11540](https://github.com/ClickHouse/ClickHouse/pull/11540) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлено возвращаемое значение сжатого размера для кодеков. [#11448](https://github.com/ClickHouse/ClickHouse/pull/11448) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлено падение сервера, когда для столбца установлен кодек сжатия с аргументами, отличными от литералов. Исправляет [#11365](https://github.com/ClickHouse/ClickHouse/issues/11365). [#11431](https://github.com/ClickHouse/ClickHouse/pull/11431) ([alesapin](https://github.com/alesapin)).
@@ -2765,8 +2561,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена оптимизация предикатов для распределённых запросов (`enable_optimize_predicate_expression=1`) для запросов с предложением `HAVING` (т.е. когда требуется фильтрация на сервере-инициаторе) за счёт сохранения порядка выражений (чего достаточно для устранения проблемы), а также принудительного использования агрегатором имён столбцов вместо их позиций. Исправления: [#10613](https://github.com/ClickHouse/ClickHouse/issues/10613), [#11413](https://github.com/ClickHouse/ClickHouse/issues/11413). [#10621](https://github.com/ClickHouse/ClickHouse/pull/10621) ([Azat Khuzhin](https://github.com/azat)).
* Добавлена логика повторной попытки коммита смещения, чтобы снизить вероятность получения дубликатов из Kafka в редких случаях, когда коммит смещения не удался. [#9884](https://github.com/ClickHouse/ClickHouse/pull/9884) ([filimonov](https://github.com/filimonov)).
-
-
#### Улучшение производительности {#performance-improvement-14}
* Получать словарь и проверять права доступа только один раз при каждом вызове функции, читающей внешние словари. [#10928](https://github.com/ClickHouse/ClickHouse/pull/10928) ([Vitaly Baranov](https://github.com/vitlibar)).
@@ -2779,8 +2573,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-41}
-
-
* Удалено логирование в задаче финализации мутаций, если в итоге не была финализирована ни одна мутация. [#11109](https://github.com/ClickHouse/ClickHouse/pull/11109) ([alesapin](https://github.com/alesapin)).
* Исправлены ошибки разрешения аргументов функции `parseDateTime64BestEffort`. [#11038](https://github.com/ClickHouse/ClickHouse/pull/11038) ([Vasily Nemkov](https://github.com/Enmk)).
* Исправлен некорректный размер сырых данных в методе `getRawData()`. [#10964](https://github.com/ClickHouse/ClickHouse/pull/10964) ([Igr](https://github.com/ObjatieGroba)).
@@ -2814,8 +2606,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлено некорректное завершение работы хранилища `Distributed`. [#10491](https://github.com/ClickHouse/ClickHouse/pull/10491) ([Azat Khuzhin](https://github.com/azat)).
* Исправлено переполнение целых чисел в `simpleLinearRegression` при работе с большими целыми значениями. [#10474](https://github.com/ClickHouse/ClickHouse/pull/10474) ([hcz](https://github.com/hczhcz)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-18}
* Исправлен отчёт UBSan в библиотеке LZ4. [#10631](https://github.com/ClickHouse/ClickHouse/pull/10631) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -2830,8 +2620,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
### Релиз ClickHouse v20.3.8.53, 2020-04-23 {#clickhouse-release-v203853-2020-04-23}
-
-
#### Исправление ошибки {#bug-fix-43}
* Исправлено некорректное поведение функций работы с датой и временем для часовых поясов, в которых смещение относительно UTC изменялось между положительным и отрицательным значениями (например, Pacific/Kiritimati). Это исправляет [#7202](https://github.com/ClickHouse/ClickHouse/issues/7202) [#10369](https://github.com/ClickHouse/ClickHouse/pull/10369) ([alexey-milovidov](https://github.com/alexey-milovidov))
@@ -2849,8 +2637,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Устранена проблема, при которой запрос с ARRAY JOIN, ORDER BY и LIMIT мог возвращать неполный результат. Исправление для [#10226](https://github.com/ClickHouse/ClickHouse/issues/10226). Автор: [Vadim Plakhtinskiy](https://github.com/VadimPlh). [#10427](https://github.com/ClickHouse/ClickHouse/pull/10427) ([alexey-milovidov](https://github.com/alexey-milovidov))
* Добавлена проверка количества и типа аргументов при создании индекса BloomFilter [#9623](https://github.com/ClickHouse/ClickHouse/issues/9623) [#10431](https://github.com/ClickHouse/ClickHouse/pull/10431) ([Winter Zhang](https://github.com/zhang2014))
-
-
#### Повышение производительности {#performance-improvement-15}
* Повышена производительность запросов с явно заданными наборами в правой части оператора `IN` и кортежами в левой части. Это исправляет регрессию производительности в версии 20.3. [#9740](https://github.com/ClickHouse/ClickHouse/pull/9740), [#10385](https://github.com/ClickHouse/ClickHouse/pull/10385) ([Anton Popov](https://github.com/CurtizJ))
@@ -2871,8 +2657,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибок {#bug-fix-45}
-
-
* Исправлена ошибка `Pipeline stuck`, возникавшая при использовании `max_rows_to_group_by` и `group_by_overflow_mode = 'break'`. [#10279](https://github.com/ClickHouse/ClickHouse/pull/10279) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлено редкое исключение `Cannot drain connections: cancel first`. [#10239](https://github.com/ClickHouse/ClickHouse/pull/10239) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлена ошибка, из‑за которой ClickHouse выдавал сообщение об ошибке "Unknown function lambda.", когда пользователь пытался выполнить ALTER UPDATE/DELETE над таблицами с ENGINE = Replicated*. Проверка недетерминированных функций теперь корректно обрабатывает lambda‑выражения. [#10237](https://github.com/ClickHouse/ClickHouse/pull/10237) ([Alexander Kazakov](https://github.com/Akazz)).
@@ -2905,8 +2689,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена ошибка с квалифицированными именами в `distributed_product_mode='local'`. Исправлена [#4756](https://github.com/ClickHouse/ClickHouse/issues/4756). [#9891](https://github.com/ClickHouse/ClickHouse/pull/9891) ([Artem Zuikov](https://github.com/4ertus2)).
* Исправлено вычисление прав доступа для интроспекционных функций на основе настройки 'allow_introspection_functions'. [#9840](https://github.com/ClickHouse/ClickHouse/pull/9840) ([Vitaly Baranov](https://github.com/vitlibar)).
-
-
#### Улучшения в сборке/тестировании/упаковке {#buildtestingpackaging-improvement-19}
* Исправлен интеграционный тест `test_settings_constraints`. [#9962](https://github.com/ClickHouse/ClickHouse/pull/9962) ([Vitaly Baranov](https://github.com/vitlibar)).
@@ -2932,8 +2714,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
### Релиз ClickHouse v20.3.4.10, 2020-03-20 {#clickhouse-release-v203410-2020-03-20}
-
-
#### Исправление ошибок {#bug-fix-47}
* Этот релиз также содержит все исправления ошибок из 20.1.8.41
* Исправлена отсутствующая метрика `rows_before_limit_at_least` для запросов по HTTP (с конвейером процессоров). Это исправляет [#9730](https://github.com/ClickHouse/ClickHouse/issues/9730). [#9757](https://github.com/ClickHouse/ClickHouse/pull/9757) ([Nikolai Kochetov](https://github.com/KochetovNicolai))
@@ -2949,8 +2729,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Обратное несовместимое изменение {#backward-incompatible-change-9}
-
-
* Исправлена ошибка `file name too long` при записи данных в таблицы `Distributed` при большом количестве реплик. Исправлена проблема, из-за которой учетные данные реплик выводились в журнал сервера. Формат имени каталога на диске был изменен на `[shard{shard_index}[_replica{replica_index}]]`. [#8911](https://github.com/ClickHouse/ClickHouse/pull/8911) ([Mikhail Korotov](https://github.com/millb)) После обновления до новой версии вы не сможете откатиться на старую без ручного вмешательства, так как старая версия сервера не распознает новый формат каталогов. Если вы хотите выполнить откат, вам необходимо вручную переименовать соответствующие каталоги в старый формат. Это изменение актуально только в том случае, если вы использовали асинхронные `INSERT` в таблицы `Distributed`. В версии 20.3.3 мы введем настройку, которая позволит постепенно включать новый формат.
* Изменён формат записей журнала репликации для команд мутаций. Перед установкой новой версии необходимо дождаться, пока старые мутации будут обработаны.
* Реализован простой профилировщик памяти, который сохраняет стек-трейсы в `system.trace_log` на каждые N байт сверх мягкого лимита по выделению памяти [#8765](https://github.com/ClickHouse/ClickHouse/pull/8765) ([Ivan](https://github.com/abyss7)) [#9472](https://github.com/ClickHouse/ClickHouse/pull/9472) ([alexey-milovidov](https://github.com/alexey-milovidov)). Столбец таблицы `system.trace_log` был переименован из `timer_type` в `trace_type`. Это потребует изменений во внешних инструментах анализа производительности и обработки флеймграфов.
@@ -2965,8 +2743,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
#### Новая функция {#new-feature-11}
* Добавлены форматы ввода/вывода `Avro` и `AvroConfluent` [#8571](https://github.com/ClickHouse/ClickHouse/pull/8571) ([Andrew Onyshchuk](https://github.com/oandrew)) [#8957](https://github.com/ClickHouse/ClickHouse/pull/8957) ([Andrew Onyshchuk](https://github.com/oandrew)) [#8717](https://github.com/ClickHouse/ClickHouse/pull/8717) ([alexey-milovidov](https://github.com/alexey-milovidov))
@@ -2998,14 +2774,10 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Добавлена функция `moduloOrZero` [#9358](https://github.com/ClickHouse/ClickHouse/pull/9358) ([hcz](https://github.com/hczhcz))
* Добавлены системные таблицы `system.zeros` и `system.zeros_mt`, а также табличные функции `zeros()` и `zeros_mt()`. Таблицы (и табличные функции) содержат единственный столбец с именем `zero` и типом `UInt8`. Этот столбец содержит нули. Они нужны для тестовых целей как самый быстрый способ генерации большого числа строк. Это исправляет [#6604](https://github.com/ClickHouse/ClickHouse/issues/6604) [#9593](https://github.com/ClickHouse/ClickHouse/pull/9593) ([Nikolai Kochetov](https://github.com/KochetovNicolai))
-
-
#### Экспериментальная функция {#experimental-feature-7}
* Добавлен новый компактный формат частей в таблицах семейства `MergeTree`, в котором все столбцы хранятся в одном файле. Это помогает увеличить производительность при небольших и частых вставках данных. Старый формат (один файл на столбец) теперь называется широким. Формат хранения данных управляется настройками `min_bytes_for_wide_part` и `min_rows_for_wide_part`. [#8290](https://github.com/ClickHouse/ClickHouse/pull/8290) ([Anton Popov](https://github.com/CurtizJ))
* Поддержка хранилища S3 для таблиц `Log`, `TinyLog` и `StripeLog`. [#8862](https://github.com/ClickHouse/ClickHouse/pull/8862) ([Pavel Kovalenko](https://github.com/Jokser))
-
-
#### Исправление ошибки {#bug-fix-49}
* Исправлено неконсистентное использование пробелов в сообщениях лога. [#9322](https://github.com/ClickHouse/ClickHouse/pull/9322) ([alexey-milovidov](https://github.com/alexey-milovidov))
@@ -3096,8 +2868,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
#### Улучшение {#improvement-20}
* Реализованы запросы `ALTER MODIFY/DROP` на основе мутаций для семейства движков `ReplicatedMergeTree*`. Теперь операторы `ALTER` блокируют только на этапе обновления метаданных и не блокируют после него. [#8701](https://github.com/ClickHouse/ClickHouse/pull/8701) ([alesapin](https://github.com/alesapin))
@@ -3140,8 +2910,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Добавлена системная метрика, отслеживающая количество клиентских соединений по протоколу MySQL ([#9013](https://github.com/ClickHouse/ClickHouse/issues/9013)). [#9015](https://github.com/ClickHouse/ClickHouse/pull/9015) ([Eugene Klimov](https://github.com/Slach))
* Теперь HTTP-ответы содержат заголовок `X-ClickHouse-Timezone` с тем же значением часового пояса, которое возвращает `SELECT timezone()`. [#9493](https://github.com/ClickHouse/ClickHouse/pull/9493) ([Denis Glazachev](https://github.com/traceon))
-
-
#### Улучшения производительности {#performance-improvement-16}
* Повышена производительность анализа индекса с оператором IN [#9261](https://github.com/ClickHouse/ClickHouse/pull/9261) ([Anton Popov](https://github.com/CurtizJ))
* Более простой и эффективный код в Logical Functions + рефакторинг кода. Доработка по отношению к [#8718](https://github.com/ClickHouse/ClickHouse/issues/8718) [#8728](https://github.com/ClickHouse/ClickHouse/pull/8728) ([Alexander Kazakov](https://github.com/Akazz))
@@ -3154,8 +2922,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Улучшена производительность функции `reinterpretAsFixedString`. [#9342](https://github.com/ClickHouse/ClickHouse/pull/9342) ([alexey-milovidov](https://github.com/alexey-milovidov))
* Блоки данных не отправляются клиенту для формата `Null` в конвейере процессоров. [#8797](https://github.com/ClickHouse/ClickHouse/pull/8797) ([Nikolai Kochetov](https://github.com/KochetovNicolai)) [#8767](https://github.com/ClickHouse/ClickHouse/pull/8767) ([Alexander Kuzmenkov](https://github.com/akuzm))
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-20}
* Обработка исключений теперь корректно работает в Windows Subsystem for Linux. Подробности см. в [https://github.com/ClickHouse-Extras/libunwind/pull/3](https://github.com/ClickHouse-Extras/libunwind/pull/3). Это исправляет ошибки [#6480](https://github.com/ClickHouse/ClickHouse/issues/6480) и [#9564](https://github.com/ClickHouse/ClickHouse/pull/9564) ([sobolevsv](https://github.com/sobolevsv))
@@ -3207,8 +2973,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
## Релиз ClickHouse v20.1 {#clickhouse-release-v201}
### Релиз ClickHouse v20.1.16.120-stable 2020-60-26 {#clickhouse-release-v20116120-stable-2020-60-26}
@@ -3230,8 +2994,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена утечка памяти, возникавшая при генерации исключения в середине агрегации с функциями с суффиксом `-State`. Исправляет [#8995](https://github.com/ClickHouse/ClickHouse/issues/8995). [#11496](https://github.com/ClickHouse/ClickHouse/pull/11496) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлено использование первичного ключа, обёрнутого в функцию с модификатором 'FINAL' и оптимизацией 'ORDER BY'. [#10715](https://github.com/ClickHouse/ClickHouse/pull/10715) ([Anton Popov](https://github.com/CurtizJ)).
-
-
### Релиз ClickHouse v20.1.15.109-stable 2020-06-19 {#clickhouse-release-v20115109-stable-2020-06-19}
#### Исправление ошибки {#bug-fix-51}
@@ -3248,8 +3010,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-53}
-
-
* Исправлена ошибка `Data compressed with different methods`, возникавшая, когда был включён `min_bytes_to_use_direct_io`, а PREWHERE использовался совместно с SAMPLE или большим числом потоков. Это исправляет [#11539](https://github.com/ClickHouse/ClickHouse/issues/11539). [#11540](https://github.com/ClickHouse/ClickHouse/pull/11540) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлен возврат сжатого размера для кодеков. [#11448](https://github.com/ClickHouse/ClickHouse/pull/11448) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлен сбой сервера, возникавший, когда у столбца был кодек сжатия с нелитеральными аргументами. Исправляет проблему [#11365](https://github.com/ClickHouse/ClickHouse/issues/11365). [#11431](https://github.com/ClickHouse/ClickHouse/pull/11431) ([alesapin](https://github.com/alesapin)).
@@ -3287,14 +3047,10 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлен `SELECT` для псевдонима столбца, у которого тип выражения по умолчанию отличается от типа столбца. [#10563](https://github.com/ClickHouse/ClickHouse/pull/10563) ([Azat Khuzhin](https://github.com/azat)).
* * Реализовано сравнение значений типов DateTime64 и String (аналогично DateTime). [#10560](https://github.com/ClickHouse/ClickHouse/pull/10560) ([Vasily Nemkov](https://github.com/Enmk)).
-
-
### Релиз ClickHouse v20.1.12.86, 2020-05-26 {#clickhouse-release-v2011286-2020-05-26}
#### Исправление ошибки {#bug-fix-54}
-
-
* Исправлена несовместимость двухуровневой агрегации между версиями 20.1 и более ранними. Эта несовместимость возникает, когда на инициирующем узле и удалённых узлах используются разные версии ClickHouse, размер результата GROUP BY большой, а агрегация выполняется по одному строковому полю (String). Это приводит к появлению в результате нескольких необъединённых строк для одного ключа. [#10952](https://github.com/ClickHouse/ClickHouse/pull/10952) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Исправлено повреждение данных для ключевого столбца `LowCardinality(FixedString)` в `SummingMergeTree`, которое могло возникнуть после слияния. Исправляет [#10489](https://github.com/ClickHouse/ClickHouse/issues/10489). [#10721](https://github.com/ClickHouse/ClickHouse/pull/10721) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлена ошибка, которая приводила к зависанию HTTP-запросов при закрытии клиента, когда `readonly=2` и `cancel_http_readonly_queries_on_client_close=1`. Исправлены [#7939](https://github.com/ClickHouse/ClickHouse/issues/7939), [#7019](https://github.com/ClickHouse/ClickHouse/issues/7019), [#7736](https://github.com/ClickHouse/ClickHouse/issues/7736), [#7091](https://github.com/ClickHouse/ClickHouse/issues/7091). [#10684](https://github.com/ClickHouse/ClickHouse/pull/10684) ([tavplubix](https://github.com/tavplubix)).
@@ -3315,8 +3071,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлено несколько ошибок, возникавших, когда часть данных вставлялась с кворумом, затем каким‑то образом удалялась (DROP PARTITION, TTL), что приводило к зависанию INSERT‑запросов или ложным исключениям при выполнении SELECT. Это исправляет [#9946](https://github.com/ClickHouse/ClickHouse/issues/9946). [#10188](https://github.com/ClickHouse/ClickHouse/pull/10188) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Исправлена несовместимость при использовании на удалённых серверах версий ниже 18.12.17, а на инициирующем сервере — более новой версии, при выполнении GROUP BY как по фиксированным, так и по нефиксированным ключам и при использовании двухуровневого метода группировки. [#3254](https://github.com/ClickHouse/ClickHouse/pull/3254) ([alexey-milovidov](https://github.com/alexey-milovidov)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-21}
* В docker-образ clickhouse-server были добавлены сертификаты CA. [#10476](https://github.com/ClickHouse/ClickHouse/pull/10476) ([filimonov](https://github.com/filimonov)).
@@ -3325,8 +3079,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-55}
-
-
* Исправлено редкое потенциальное исключение `Cannot drain connections: cancel first`. [#10239](https://github.com/ClickHouse/ClickHouse/pull/10239) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Исправлена ошибка, из-за которой ClickHouse выдавал сообщение об ошибке `'Unknown function lambda.'` при попытке пользователя выполнить `ALTER UPDATE/DELETE` для таблиц с `ENGINE = Replicated*`. Проверка недетерминированных функций теперь корректно обрабатывает lambda-выражения. [#10237](https://github.com/ClickHouse/ClickHouse/pull/10237) ([Alexander Kazakov](https://github.com/Akazz)).
* Исправлена работа функции `parseDateTimeBestEffort` со строками в формате RFC-2822, если день недели — вторник или четверг. Это исправляет [#10082](https://github.com/ClickHouse/ClickHouse/issues/10082). [#10214](https://github.com/ClickHouse/ClickHouse/pull/10214) ([alexey-milovidov](https://github.com/alexey-milovidov)).
@@ -3349,8 +3101,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена гонка между операциями drop и optimize в `ReplicatedMergeTree`. [#9901](https://github.com/ClickHouse/ClickHouse/pull/9901) ([alesapin](https://github.com/alesapin)).
* Исправлена логика `DeleteOnDestroy` в `ATTACH PART`, которая могла приводить к автоматическому удалению присоединённой части, и добавлено несколько тестов. [#9410](https://github.com/ClickHouse/ClickHouse/pull/9410) ([Vladimir Chebotarev](https://github.com/excitoon)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-22}
* Исправлен юнит-тест `collapsing_sorted_stream`. [#9367](https://github.com/ClickHouse/ClickHouse/pull/9367) ([Deleted user](https://github.com/ghost)).
@@ -3376,8 +3126,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
### Релиз ClickHouse v20.1.8.41, 2020-03-20 {#clickhouse-release-v201841-2020-03-20}
-
-
#### Исправление ошибок {#bug-fix-57}
* Исправлено возможное постоянное возникновение ошибки `Cannot schedule a task` (из-за необработанного исключения в `ParallelAggregatingBlockInputStream::Handler::onFinish/onFinishThread`). Это исправление закрывает [#6833](https://github.com/ClickHouse/ClickHouse/issues/6833). [#9154](https://github.com/ClickHouse/ClickHouse/pull/9154) ([Azat Khuzhin](https://github.com/azat))
* Исправлено чрезмерное потребление памяти в запросах `ALTER` (мутациях). Это исправление закрывает [#9533](https://github.com/ClickHouse/ClickHouse/issues/9533) и [#9670](https://github.com/ClickHouse/ClickHouse/issues/9670). [#9754](https://github.com/ClickHouse/ClickHouse/pull/9754) ([alesapin](https://github.com/alesapin))
@@ -3385,8 +3133,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
### Релиз ClickHouse v20.1.7.38, 2020-03-18 {#clickhouse-release-v201738-2020-03-18}
-
-
#### Исправление ошибки {#bug-fix-58}
* Исправлены неверные внутренние имена функций `sumKahan` и `sumWithOverflow`. Это приводило к исключению при использовании этих функций в удалённых запросах. [#9636](https://github.com/ClickHouse/ClickHouse/pull/9636) ([Azat Khuzhin](https://github.com/azat)). Эта проблема была во всех релизах ClickHouse.
@@ -3404,8 +3150,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена обработка not(has()) для индекса bloom_filter по столбцам массивного типа. [#9407](https://github.com/ClickHouse/ClickHouse/pull/9407) ([achimbab](https://github.com/achimbab))
* Исправлено поведение функций `match` и `extract`, когда haystack имеет длину ноль байт. Поведение было некорректным, когда haystack был константой. Это исправляет [#9160](https://github.com/ClickHouse/ClickHouse/issues/9160) [#9163](https://github.com/ClickHouse/ClickHouse/pull/9163) ([alexey-milovidov](https://github.com/alexey-milovidov)) [#9345](https://github.com/ClickHouse/ClickHouse/pull/9345) ([alexey-milovidov](https://github.com/alexey-milovidov))
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-24}
* Обработка исключений теперь корректно работает в подсистеме Windows для Linux (WSL). См.: https://github.com/ClickHouse-Extras/libunwind/pull/3. Это устраняет [#6480](https://github.com/ClickHouse/ClickHouse/issues/6480), [#9564](https://github.com/ClickHouse/ClickHouse/pull/9564) ([sobolevsv](https://github.com/sobolevsv))
@@ -3414,8 +3158,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление ошибки {#bug-fix-59}
-
-
* Исправлена несовместимость данных при сжатии с использованием кодека `T64`.
[#9039](https://github.com/ClickHouse/ClickHouse/pull/9039) [(abyss7)](https://github.com/abyss7)
* Исправлен порядок диапазонов при однопоточном чтении из таблицы MergeTree. Исправляет [#8964](https://github.com/ClickHouse/ClickHouse/issues/8964).
@@ -3467,8 +3209,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Исправлена ошибка, приводившая к завершению работы сервера при попытке использования/удаления таблицы `Kafka`, созданной с некорректными параметрами. Исправляет [#9494](https://github.com/ClickHouse/ClickHouse/issues/9494). Включает [#9507](https://github.com/ClickHouse/ClickHouse/issues/9507).
[#9513](https://github.com/ClickHouse/ClickHouse/pull/9513) [(filimonov)](https://github.com/filimonov)
-
-
#### Новая функциональность {#new-feature-12}
* Добавлена настройка `deduplicate_blocks_in_dependent_materialized_views` для управления поведением идемпотентных вставок в таблицы с материализованными представлениями. Эта новая возможность была добавлена в багфикс-релиз по специальному запросу от Altinity.
[#9070](https://github.com/ClickHouse/ClickHouse/pull/9070) [(urykhy)](https://github.com/urykhy)
@@ -3484,8 +3224,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Добавлена новая логика `ANY JOIN` для `StorageJoin`, согласованная с операцией `JOIN`. Чтобы обновиться без изменения поведения, вам необходимо добавить `SETTINGS any_join_distinct_right_table_keys = 1` в метаданные таблиц движка Join или пересоздать эти таблицы после обновления. [#8400](https://github.com/ClickHouse/ClickHouse/pull/8400) ([Artem Zuikov](https://github.com/4ertus2))
* Теперь для применения изменений в конфигурации логирования требуется перезапуск сервера. Это временное обходное решение, позволяющее избежать ошибки, при которой сервер пишет лог в удалённый файл журнала (см. [#8696](https://github.com/ClickHouse/ClickHouse/issues/8696)). [#8707](https://github.com/ClickHouse/ClickHouse/pull/8707) ([Alexander Kuzmenkov](https://github.com/akuzm))
-
-
#### Новая функция {#new-feature-13}
* Добавлена информация о путях частей в `system.merges`. [#8043](https://github.com/ClickHouse/ClickHouse/pull/8043) ([Vladimir Chebotarev](https://github.com/excitoon))
@@ -3522,8 +3260,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
#### Исправление ошибки {#bug-fix-60}
* Исправлено переименование таблиц с движком `Distributed`, устранена проблема [#7868](https://github.com/ClickHouse/ClickHouse/issues/7868). [#8306](https://github.com/ClickHouse/ClickHouse/pull/8306) ([tavplubix](https://github.com/tavplubix))
@@ -3628,8 +3364,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
#### Улучшение {#improvement-22}
* Улучшено логирование при работе с движком таблицы `S3`. [#8251](https://github.com/ClickHouse/ClickHouse/pull/8251) ([Grigory Pervakov](https://github.com/GrigoryPervakov))
@@ -3681,8 +3415,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
#### Повышение производительности {#performance-improvement-17}
* Оптимизация производительности конвейера процессоров. [#7988](https://github.com/ClickHouse/ClickHouse/pull/7988) ([Nikolai Kochetov](https://github.com/KochetovNicolai))
@@ -3711,8 +3443,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-25}
* Исправлена сборка под `ARM` и в минимальной конфигурации. [#8304](https://github.com/ClickHouse/ClickHouse/pull/8304) ([proller](https://github.com/proller))
@@ -3784,8 +3514,6 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
* Обновление contrib/protobuf. [#8256](https://github.com/ClickHouse/ClickHouse/pull/8256) ([Matwey V. Kornilov](https://github.com/matwey))
* В преддверии перехода на c++20 в качестве новогоднего подарка. "Да пребудет сила C++ с ClickHouse." [#8447](https://github.com/ClickHouse/ClickHouse/pull/8447) ([Amos Bird](https://github.com/amosbird))
-
-
#### Экспериментальная функция {#experimental-feature-8}
* Добавлена экспериментальная настройка `min_bytes_to_use_mmap_io`. Она позволяет читать большие файлы без копирования данных из ядра в пользовательское пространство. По умолчанию настройка отключена. Рекомендуемый порог — около 64 МБ, так как `mmap`/`munmap` работают медленно. [#8520](https://github.com/ClickHouse/ClickHouse/pull/8520) ([alexey-milovidov](https://github.com/alexey-milovidov))
* Переработаны квоты как часть системы контроля доступа. Добавлена новая таблица `system.quotas`, новые функции `currentQuota`, `currentQuotaKey`, новый SQL-синтаксис `CREATE QUOTA`, `ALTER QUOTA`, `DROP QUOTA`, `SHOW QUOTA`. [#7257](https://github.com/ClickHouse/ClickHouse/pull/7257) ([Vitaly Baranov](https://github.com/vitlibar))
@@ -3795,6 +3523,4 @@ keywords: ['ClickHouse 2020', 'журнал изменений 2020', 'заме
#### Исправление в области безопасности {#security-fix}
* Исправлена возможность чтения структуры каталогов в таблицах с движком `File`. Это исправляет [#8536](https://github.com/ClickHouse/ClickHouse/issues/8536). [#8537](https://github.com/ClickHouse/ClickHouse/pull/8537) ([alexey-milovidov](https://github.com/alexey-milovidov))
-
-
## [Журнал изменений за 2019 год](./2019.md) {#changelog-for-2019}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md
index eaf9c6c70cb..44a4f82adda 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2022.md
@@ -21,8 +21,6 @@ doc_type: 'changelog'
#### Примечания по обновлению {#upgrade-notes}
* Исправлена проблема обратной совместимости при (де)сериализации состояний агрегатных функций `min`, `max`, `any*`, `argMin`, `argMax` со строковым аргументом `String`. Несовместимость затрагивает ветки 22.9, 22.10 и 22.11 (исправлено, начиная с 22.9.6, 22.10.4 и 22.11.2 соответственно). Также затронуты некоторые минорные релизы веток 22.3, 22.7 и 22.8: 22.3.13...22.3.14 (исправлено, начиная с 22.3.15), 22.8.6...22.8.9 (исправлено, начиная с 22.8.10), 22.7.6 и новее (в 22.7 исправлено не будет, мы рекомендуем обновиться с 22.7.* до 22.8.10 или более новой версии). Это примечание к релизу не относится к пользователям, которые никогда не использовали затронутые версии. Несовместимые версии добавляют лишний символ `'\0'` к строкам при чтении состояний указанных выше агрегатных функций. Например, если более старая версия сохранила состояние `anyState('foobar')` в `state_column`, то несовместимая версия выведет `'foobar\0'` при выполнении `anyMerge(state_column)`. Также несовместимые версии записывают состояния агрегатных функций без завершающего `'\0'`. Более новые версии (с исправлением) могут корректно читать данные, записанные всеми версиями, включая несовместимые, за одним особым случаем. Если несовместимая версия сохранила состояние со строкой, которая фактически оканчивается нулевым символом, то более новая версия обрежет завершающий `'\0'` при чтении состояния затронутой агрегатной функции. Например, если несовместимая версия сохранила состояние `anyState('abrac\0dabra\0')` в `state_column`, то более новые версии выведут `'abrac\0dabra'` при выполнении `anyMerge(state_column)`. Проблема также затрагивает распределённые запросы, когда несовместимая версия работает в кластере вместе с более старыми или новыми версиями. [#43038](https://github.com/ClickHouse/ClickHouse/pull/43038) ([Alexander Tokmakov](https://github.com/tavplubix), [Raúl Marín](https://github.com/Algunenano)). Примечание: все официальные сборки ClickHouse уже содержат эти исправления. Это не обязательно верно для неофициальных сторонних сборок, которых следует избегать.
-
-
#### Новая возможность {#new-feature}
* Добавлен формат ввода и вывода `BSONEachRow`. В этом формате ClickHouse форматирует/парсит каждую строку как отдельный BSON-документ, а каждый столбец — как отдельное поле BSON с именем столбца в качестве ключа. [#42033](https://github.com/ClickHouse/ClickHouse/pull/42033) ([mark-polokhov](https://github.com/mark-polokhov)).
@@ -43,15 +41,11 @@ doc_type: 'changelog'
* Добавлена поддержка задания ограничений для настроек движка MergeTree. Например, можно запретить пользователям переопределять `storage_policy`. [#43903](https://github.com/ClickHouse/ClickHouse/pull/43903) ([Sergei Trifonov](https://github.com/serxa)).
* Добавлена новая настройка `input_format_json_read_objects_as_strings`, позволяющая разбирать вложенные объекты JSON как строки во всех форматах ввода JSON. По умолчанию эта настройка отключена. [#44052](https://github.com/ClickHouse/ClickHouse/pull/44052) ([Kruglov Pavel](https://github.com/Avogar)).
-
-
#### Экспериментальная возможность {#experimental-feature}
* Поддержка дедупликации для асинхронных вставок. До этого изменения асинхронные вставки не поддерживали дедупликацию, поскольку несколько небольших вставок объединялись в один пакет. Закрывает [#38075](https://github.com/ClickHouse/ClickHouse/issues/38075). [#43304](https://github.com/ClickHouse/ClickHouse/pull/43304) ([Han Fei](https://github.com/hanfei1991)).
* Добавлена поддержка косинусного расстояния для экспериментального индекса Annoy (поиск сходства векторов). [#42778](https://github.com/ClickHouse/ClickHouse/pull/42778) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Добавлены запросы `CREATE / ALTER / DROP NAMED COLLECTION`. [#43252](https://github.com/ClickHouse/ClickHouse/pull/43252) ([Kseniia Sumarokova](https://github.com/kssenii)). Эта возможность находится в разработке, и запросы не имеют эффекта в версии 22.12. Эта запись в журнале изменений добавлена только для того, чтобы избежать путаницы. Доступ к именованным коллекциям по умолчанию ограничен пользователем, указанным в конфигурации. Чтобы иметь возможность их просматривать, требуется установить `show_named_collections = 1`. [#43325](https://github.com/ClickHouse/ClickHouse/pull/43325) ([Kseniia Sumarokova](https://github.com/kssenii)). Добавлена таблица `system.named_collections` [#43147](https://github.com/ClickHouse/ClickHouse/pull/43147) ([Kseniia Sumarokova](https://github.com/kssenii)).
-
-
#### Улучшение производительности {#performance-improvement}
* Добавлены настройки `max_streams_for_merge_tree_reading` и `allow_asynchronous_read_from_io_pool_for_merge_tree`. Настройка `max_streams_for_merge_tree_reading` ограничивает количество потоков чтения для таблиц MergeTree. Настройка `allow_asynchronous_read_from_io_pool_for_merge_tree` включает фоновый пул ввода-вывода для чтения из таблиц `MergeTree`. Это может повысить производительность для запросов, ограниченных по вводу-выводу, при совместном использовании с `max_streams_to_max_threads_ratio` или `max_streams_for_merge_tree_reading`. [#43260](https://github.com/ClickHouse/ClickHouse/pull/43260) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). Это позволяет повысить производительность вплоть до 100 раз в случае хранилища с высокой задержкой, небольшим количеством CPU и большим количеством частей данных.
* Настройки `merge_tree_min_rows_for_concurrent_read_for_remote_filesystem/merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem` не учитывали адаптивную гранулярность. Широкие строки не уменьшали количество читаемых строк (как это делалось для `merge_tree_min_rows_for_concurrent_read/merge_tree_min_bytes_for_concurrent_read`), что могло приводить к высокому потреблению памяти при использовании удалённых файловых систем. [#43965](https://github.com/ClickHouse/ClickHouse/pull/43965) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
@@ -62,8 +56,6 @@ doc_type: 'changelog'
* Улучшение Keeper: синхронизация журналов на диск выполняется в попытке параллельно с репликацией. [#43450](https://github.com/ClickHouse/ClickHouse/pull/43450) ([Antonio Andelic](https://github.com/antonio2368)).
* Улучшение Keeper: запросы чаще объединяются в пакеты. Объединение в пакеты можно контролировать с помощью новой настройки `max_requests_quick_batch_size`. [#43686](https://github.com/ClickHouse/ClickHouse/pull/43686) ([Antonio Andelic](https://github.com/antonio2368)).
-
-
#### Улучшение {#improvement}
* Реализованы ссылочные зависимости, которые используются для создания таблиц в правильном порядке при восстановлении из резервной копии. [#43834](https://github.com/ClickHouse/ClickHouse/pull/43834) ([Vitaly Baranov](https://github.com/vitlibar)).
@@ -91,8 +83,6 @@ doc_type: 'changelog'
* Когда ClickHouse отправлял запрос на удалённый HTTP‑сервер и тот возвращал ошибку, числовой код состояния HTTP некорректно отображался в сообщении об исключении. Закрывает [#43919](https://github.com/ClickHouse/ClickHouse/issues/43919). [#43920](https://github.com/ClickHouse/ClickHouse/pull/43920) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Корректно сообщать об ошибках в запросах даже при оптимизации с участием нескольких JOIN-ов. [#43583](https://github.com/ClickHouse/ClickHouse/pull/43583) ([Salvatore](https://github.com/tbsal)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement}
* Интеграция с systemd теперь корректно уведомляет systemd о том, что служба действительно запущена и готова обрабатывать запросы. [#43400](https://github.com/ClickHouse/ClickHouse/pull/43400) ([Коренберг Марк](https://github.com/socketpair)).
@@ -101,8 +91,6 @@ doc_type: 'changelog'
#### Исправление ошибок (заметное пользователю некорректное поведение в официальном стабильном или престабильном релизе) {#bug-fix-user-visible-misbehavior-in-official-stable-or-prestable-release}
-
-
* Исправлена ошибка, которая могла приводить к взаимоблокировке при использовании асинхронных вставок. [#43233](https://github.com/ClickHouse/ClickHouse/pull/43233) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлена некорректная логика оптимизации на уровне AST `optimize_normalize_count_variants`. [#43873](https://github.com/ClickHouse/ClickHouse/pull/43873) ([Duc Canh Le](https://github.com/canhld94)).
* Исправлена проблема, при которой мутации не продвигаются, если контрольные суммы не совпадают между репликами (например, из‑за изменения формата данных при обновлении). [#36877](https://github.com/ClickHouse/ClickHouse/pull/36877) ([nvartolomei](https://github.com/nvartolomei)).
@@ -143,15 +131,11 @@ doc_type: 'changelog'
* Исправлено исключение, возникавшее, когда подзапрос содержал HAVING, но не содержал реальной агрегации. [#44051](https://github.com/ClickHouse/ClickHouse/pull/44051) ([Nikita Taranov](https://github.com/nickitat)).
* Исправлена ошибка состояния гонки при multipart-загрузке в S3. Она могла приводить к ошибке `Part number must be an integer between 1 and 10000, inclusive. (S3_ERROR)` при восстановлении из резервной копии. [#44065](https://github.com/ClickHouse/ClickHouse/pull/44065) ([Vitaly Baranov](https://github.com/vitlibar)).
-
-
### Релиз ClickHouse 22.11, 2022-11-17 {#a-id2211a-clickhouse-release-2211-2022-11-17}
#### Изменения, нарушающие обратную совместимость {#backward-incompatible-change}
* Семейство функций `JSONExtract` теперь будет пытаться привести значение к запрошенному типу. [#41502](https://github.com/ClickHouse/ClickHouse/pull/41502) ([Márcio Martins](https://github.com/marcioapm)).
-
-
#### Новая возможность {#new-feature-1}
* Добавлена поддержка повторных попыток при выполнении INSERT в ReplicatedMergeTree при потере сеанса с ClickHouse Keeper. Помимо повышения отказоустойчивости, это улучшает удобство работы пользователя, позволяя не возвращать ошибку во время вставки, если Keeper был перезапущен (например, из‑за обновления). [#42607](https://github.com/ClickHouse/ClickHouse/pull/42607) ([Igor Nikonov](https://github.com/devcrafter)).
@@ -170,8 +154,6 @@ doc_type: 'changelog'
* Добавлена настройка `min_age_to_force_merge_on_partition_only` для оптимизации старых кусков только на уровне всего раздела. [#42659](https://github.com/ClickHouse/ClickHouse/pull/42659) ([Antonio Andelic](https://github.com/antonio2368)).
* Добавлена универсальная реализация для произвольных структурированных именованных коллекций, типа доступа и системной таблицы `system.named_collections`. [#43147](https://github.com/ClickHouse/ClickHouse/pull/43147) ([Kseniia Sumarokova](https://github.com/kssenii)).
-
-
#### Повышение производительности {#performance-improvement-1}
* Функция `match` может использовать индекс, если условие задаёт префикс строки. Это закрывает [#37333](https://github.com/ClickHouse/ClickHouse/issues/37333). [#42458](https://github.com/ClickHouse/ClickHouse/pull/42458) ([clarkcaoliu](https://github.com/Clark0)).
* Ускорены операторы AND и OR при их последовательном выполнении. [#42214](https://github.com/ClickHouse/ClickHouse/pull/42214) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
@@ -183,8 +165,6 @@ doc_type: 'changelog'
* Добавлена поддержка типа `Object` внутри других типов, например `Array(JSON)`. [#36969](https://github.com/ClickHouse/ClickHouse/pull/36969) ([Anton Popov](https://github.com/CurtizJ)).
* Событие SAVEPOINT в MySQL binlog теперь игнорируется для MaterializedMySQL. [#42931](https://github.com/ClickHouse/ClickHouse/pull/42931) ([zzsmdfj](https://github.com/zzsmdfj)). Обеспечена обработка (игнорирование) запросов SAVEPOINT в MaterializedMySQL. [#43086](https://github.com/ClickHouse/ClickHouse/pull/43086) ([Stig Bakken](https://github.com/stigsb)).
-
-
#### Улучшение {#improvement-1}
* Простые запросы с небольшим LIMIT теперь корректно оценивают предполагаемое количество строк для чтения, чтобы порог проверялся правильно. Устраняет проблему [#7071](https://github.com/ClickHouse/ClickHouse/issues/7071). [#42580](https://github.com/ClickHouse/ClickHouse/pull/42580) ([Han Fei](https://github.com/hanfei1991)).
@@ -212,8 +192,6 @@ doc_type: 'changelog'
* Добавлены несколько функций для обеспечения совместимости с Power BI при подключении через протокол MySQL [#42612](https://github.com/ClickHouse/ClickHouse/pull/42612) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
* Улучшено удобство использования дашборда при изменениях [#42872](https://github.com/ClickHouse/ClickHouse/pull/42872) ([Vladimir C](https://github.com/vdimir)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-1}
* Запускать SQLancer для каждого pull request и коммита в master. [SQLancer](https://github.com/sqlancer/sqlancer) — это open source‑фаззер, ориентированный на автоматическое обнаружение логических ошибок. [#42397](https://github.com/ClickHouse/ClickHouse/pull/42397) ([Ilya Yatsishin](https://github.com/qoega)).
* Обновить до последней версии zlib-ng. [#42463](https://github.com/ClickHouse/ClickHouse/pull/42463) ([Boris Kuschel](https://github.com/bkuschel)).
@@ -224,8 +202,6 @@ doc_type: 'changelog'
#### Исправление ошибок (заметное пользователю некорректное поведение в официальном стабильном или престабильном релизе) {#bug-fix-user-visible-misbehavior-in-official-stable-or-prestable-release-1}
-
-
* Обновлён нормализатор для клонирования AST псевдонима. Исправляет [#42452](https://github.com/ClickHouse/ClickHouse/issues/42452). Реализация: * Обновлён `QueryNormalizer` для клонирования AST псевдонима при его замене. Ранее простое присваивание приводило к исключению в `LogicalExpressinsOptimizer`, так как один и тот же родительский узел AST вставлялся повторно. * Эта ошибка не проявляется с новым анализатором (`allow_experimental_analyzer`), поэтому для него изменений нет. Я добавила тест, покрывающий этот случай. [#42827](https://github.com/ClickHouse/ClickHouse/pull/42827) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Исправлена гонка при создании резервных копий таблиц в базах данных `Lazy`. [#43104](https://github.com/ClickHouse/ClickHouse/pull/43104) ([Vitaly Baranov](https://github.com/vitlibar)).
* Исправлена проблема с `skip_unavailable_shards`: параметр не работал с табличной функцией `s3Cluster`. [#43131](https://github.com/ClickHouse/ClickHouse/pull/43131) ([chen](https://github.com/xiedeyantu)).
@@ -259,8 +235,6 @@ doc_type: 'changelog'
* Поле `indent`, создаваемое инструментом `git-import`, было вычислено неправильно. См. [https://clickhouse.com/docs/getting-started/example-datasets/github/](https://clickhouse.com/docs/getting-started/example-datasets/github/). [#43191](https://github.com/ClickHouse/ClickHouse/pull/43191) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Исправлено непредвиденное поведение типов `Interval` при использовании в подзапросах и при приведении типов. [#43193](https://github.com/ClickHouse/ClickHouse/pull/43193) ([jh0x](https://github.com/jh0x)).
-
-
### Релиз ClickHouse 22.10, 2022-10-25 {#a-id2210a-clickhouse-release-2210-2022-10-25}
#### Обратно несовместимое изменение {#backward-incompatible-change-1}
@@ -268,8 +242,6 @@ doc_type: 'changelog'
* Удалена поддержка секции `WITH TIMEOUT` для `LIVE VIEW`. Это закрывает [#40557](https://github.com/ClickHouse/ClickHouse/issues/40557). [#42173](https://github.com/ClickHouse/ClickHouse/pull/42173) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Удалена поддержка макроса `{database}` в приглашении клиента. Он отображался некорректно, если база данных не была указана, и не обновлялся при выполнении операторов `USE`. Это закрывает [#25891](https://github.com/ClickHouse/ClickHouse/issues/25891). [#42508](https://github.com/ClickHouse/ClickHouse/pull/42508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Новая возможность {#new-feature-2}
* Добавлена составная конфигурация протоколов. Теперь различные протоколы можно настраивать с разными хостами для прослушивания. Обёртки протоколов, такие как PROXYv1, можно настраивать поверх любых других протоколов (TCP, TCP secure, MySQL, Postgres). [#41198](https://github.com/ClickHouse/ClickHouse/pull/41198) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
@@ -287,8 +259,6 @@ doc_type: 'changelog'
* Добавлены функции кодирования и декодирования Morton Coding (ZCurve). [#41753](https://github.com/ClickHouse/ClickHouse/pull/41753) ([Constantine Peresypkin](https://github.com/pkit)).
* Добавлена поддержка конструкции `SET setting_name = DEFAULT`. [#42187](https://github.com/ClickHouse/ClickHouse/pull/42187) ([Filatenkov Artur](https://github.com/FArthur-cmd)).
-
-
#### Экспериментальная функция {#experimental-feature-2}
* Добавлена новая инфраструктура для анализа и планирования запросов, управляемая настройкой `allow_experimental_analyzer`. [#31796](https://github.com/ClickHouse/ClickHouse/pull/31796) ([Maksim Kita](https://github.com/kitaisreal)).
* Начальная реализация Kusto Query Language. Пожалуйста, не используйте её. [#37961](https://github.com/ClickHouse/ClickHouse/pull/37961) ([Yong Wang](https://github.com/kashwy)).
@@ -306,8 +276,6 @@ doc_type: 'changelog'
* Идентификаторы потоков в списке процессов и в query_log сделаны уникальными, чтобы избежать избыточных затрат ресурсов. [#42180](https://github.com/ClickHouse/ClickHouse/pull/42180) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Добавлена поддержка полного пропуска кэша (как загрузки в кэш, так и чтения кэшированных данных) в случае, если запрошенный диапазон чтения превышает порог, определённый настройкой кэша `bypass_cache_threashold`, требуется включение параметром `enable_bypass_cache_with_threshold`). [#42418](https://github.com/ClickHouse/ClickHouse/pull/42418) ([Han Shukai](https://github.com/KinderRiven)). Это помогает на медленных локальных дисках.
-
-
#### Улучшение {#improvement-2}
* Добавлена настройка `allow_implicit_no_password`: в сочетании с `allow_no_password` она запрещает создание пользователя без пароля, если явно не указано выражение `IDENTIFIED WITH no_password`. [#41341](https://github.com/ClickHouse/ClickHouse/pull/41341) ([Nikolay Degterinsky](https://github.com/evillique)).
@@ -349,8 +317,6 @@ doc_type: 'changelog'
* Добавлена новая инфраструктура для анализа и планирования запросов, управляемая настройкой `allow_experimental_analyzer`. [#31796](https://github.com/ClickHouse/ClickHouse/pull/31796) ([Maksim Kita](https://github.com/kitaisreal)).
* Сокращено время восстановления потерянных соединений Keeper. [#42541](https://github.com/ClickHouse/ClickHouse/pull/42541) ([Raúl Marín](https://github.com/Algunenano)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-2}
* Добавлен фаззер для определений таблиц [#40096](https://github.com/ClickHouse/ClickHouse/pull/40096) ([Anton Popov](https://github.com/CurtizJ)). Это крупнейший прогресс в тестировании ClickHouse в этом году на текущий момент.
* Выпущена бета-версия сервиса ClickHouse Cloud: [https://console.clickhouse.cloud/](https://console.clickhouse.cloud/). Это самый простой способ использования ClickHouse (даже немного проще, чем установка одной командой).
@@ -363,8 +329,6 @@ doc_type: 'changelog'
#### Исправление ошибок (заметное пользователям некорректное поведение в официальном стабильном или предстабильном релизе) {#bug-fix-user-visible-misbehavior-in-official-stable-or-prestable-release-2}
-
-
* Теперь используется корректный метод агрегации для `LowCardinality` с целочисленными типами большого размера. [#42342](https://github.com/ClickHouse/ClickHouse/pull/42342) ([Duc Canh Le](https://github.com/canhld94)).
* Несколько исправлений для диска `web`. [#41652](https://github.com/ClickHouse/ClickHouse/pull/41652) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Исправляет проблему, из‑за которой `docker run` завершался с ошибкой, если в конфигурации отсутствовал `https_port`. [#41693](https://github.com/ClickHouse/ClickHouse/pull/41693) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
@@ -406,8 +370,6 @@ doc_type: 'changelog'
* Арифметический оператор с `Date` или `DateTime` и 128- или 256-битным целым числом обращался к неинициализированной памяти. [#42453](https://github.com/ClickHouse/ClickHouse/issues/42453). [#42573](https://github.com/ClickHouse/ClickHouse/pull/42573) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Исправлена неожиданная ошибка загрузки таблицы при обновлении сервера, возникающая, если ключ партиционирования содержит имена функций-псевдонимов. [#36379](https://github.com/ClickHouse/ClickHouse/pull/36379) ([Amos Bird](https://github.com/amosbird)).
-
-
### Релиз ClickHouse 22.9, 2022-09-22 {#a-id229a-clickhouse-release-229-2022-09-22}
#### Обратно несовместимые изменения {#backward-incompatible-change-2}
@@ -418,8 +380,6 @@ doc_type: 'changelog'
* По соображениям безопасности и стабильности модели catboost больше не вычисляются внутри сервера ClickHouse. Вместо этого вычисление теперь выполняется в clickhouse-library-bridge — отдельном процессе, который загружает библиотеку catboost и взаимодействует с серверным процессом по HTTP. [#40897](https://github.com/ClickHouse/ClickHouse/pull/40897) ([Robert Schulze](https://github.com/rschu1ze)).
* Интерпретация YAML-конфигураций сделана более общепринятой. [#41044](https://github.com/ClickHouse/ClickHouse/pull/41044) ([Vitaly Baranov](https://github.com/vitlibar)).
-
-
#### Новые возможности {#new-feature-3}
* Поддержка `insert_quorum = 'auto'` для использования большинства реплик. [#39970](https://github.com/ClickHouse/ClickHouse/pull/39970) ([Sachin](https://github.com/SachinSetiya)).
* Добавлены встроенные дашборды в сервер ClickHouse. Это демонстрационный проект о том, как достичь 90% результата, затратив 1% усилий, используя возможности ClickHouse. [#40461](https://github.com/ClickHouse/ClickHouse/pull/40461) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -437,8 +397,6 @@ doc_type: 'changelog'
* Добавлен новый движок хранения `KeeperMap`, который использует ClickHouse Keeper или ZooKeeper как key-value хранилище. [#39976](https://github.com/ClickHouse/ClickHouse/pull/39976) ([Antonio Andelic](https://github.com/antonio2368)). Этот движок хранения предназначен для хранения небольшого объёма метаданных.
* Улучшения для частей данных в памяти: полностью обработанные WAL-файлы удаляются. [#40592](https://github.com/ClickHouse/ClickHouse/pull/40592) ([Azat Khuzhin](https://github.com/azat)).
-
-
#### Повышение производительности {#performance-improvement-3}
* Реализовано сжатие меток и первичного ключа. Закрывает [#34437](https://github.com/ClickHouse/ClickHouse/issues/34437). [#37693](https://github.com/ClickHouse/ClickHouse/pull/37693) ([zhongyuankai](https://github.com/zhongyuankai)).
@@ -462,8 +420,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-3}
* При запуске и вызове ATTACH таблицы `ReplicatedMergeTree` будут доступны только для чтения до установления соединения с ZooKeeper и завершения инициализации. [#40148](https://github.com/ClickHouse/ClickHouse/pull/40148) ([Antonio Andelic](https://github.com/antonio2368)).
@@ -517,8 +473,6 @@ doc_type: 'changelog'
-
-
#### Улучшение сборки/тестирования/упаковки {#buildtestingpackaging-improvement-3}
* Сделать документацию обязательной для каждого параметра. [#40644](https://github.com/ClickHouse/ClickHouse/pull/40644) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -545,12 +499,8 @@ doc_type: 'changelog'
* Пробуем стресс‑тест поверх S3 [#36837](https://github.com/ClickHouse/ClickHouse/pull/36837) ([alesapin](https://github.com/alesapin)).
* Включена проверка `concurrency-mt-unsafe` в `clang-tidy` [#40224](https://github.com/ClickHouse/ClickHouse/pull/40224) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Исправление ошибок {#bug-fix}
-
-
* Исправлена потенциальная потеря данных из‑за [ошибки в AWS SDK](https://github.com/aws/aws-sdk-cpp/issues/658). Ошибка может проявляться только при использовании ClickHouse с S3. [#40506](https://github.com/ClickHouse/ClickHouse/pull/40506) ([alesapin](https://github.com/alesapin)). Эта ошибка оставалась открытой в AWS SDK в течение 5 лет и была закрыта после нашего отчёта.
* Злонамеренные данные в формате Native могут привести к сбою. [#41441](https://github.com/ClickHouse/ClickHouse/pull/41441) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Агрегатная функция `categorialInformationValue` была определена с некорректными свойствами, что могло привести к разыменованию нулевого указателя во время выполнения. Это исправляет [#41443](https://github.com/ClickHouse/ClickHouse/issues/41443). [#41449](https://github.com/ClickHouse/ClickHouse/pull/41449) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -634,8 +584,6 @@ doc_type: 'changelog'
* Исправлены данные о прочитанных байтах и строках в X-ClickHouse-Summary при использовании материализованных представлений. [#41586](https://github.com/ClickHouse/ClickHouse/pull/41586) ([Raúl Marín](https://github.com/Algunenano)).
* Исправлено возможное исключение `pipeline stuck` для запросов с `OFFSET`. Ошибка проявлялась при `enable_optimize_predicate_expression = 0` и всегда ложном условии в `WHERE`. Исправляет [#41383](https://github.com/ClickHouse/ClickHouse/issues/41383). [#41588](https://github.com/ClickHouse/ClickHouse/pull/41588) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
-
-
### Релиз ClickHouse 22.8, 2022-08-18 {#a-id228a-clickhouse-release-228-2022-08-18}
#### Обратно несовместимое изменение {#backward-incompatible-change-3}
@@ -644,8 +592,6 @@ doc_type: 'changelog'
* Готовые x86-бинарные файлы ClickHouse теперь требуют поддержки инструкций AVX, то есть CPU не старше Intel Sandy Bridge / AMD Bulldozer, обе архитектуры выпущены в 2011 году. [#39000](https://github.com/ClickHouse/ClickHouse/pull/39000) ([Robert Schulze](https://github.com/rschu1ze)).
* Кэш удаленной файловой системы сделан композиционным, добавлена возможность не вытеснять определенные файлы (idx, mrk и т. д.), а также удалена старая версия кэша. Теперь можно настраивать кэш поверх диска Azure blob storage, поверх локального диска, поверх диска StaticWeb и т. п. Этот PR помечен как обратно несовместимый, поскольку изменилась конфигурация кэша, и для работы кэша необходимо обновить конфигурационный файл. Старый кэш по-прежнему будет использоваться с новой конфигурацией. Сервер успешно запустится со старой конфигурацией кэша. Закрывает https://github.com/ClickHouse/ClickHouse/issues/36140. Закрывает https://github.com/ClickHouse/ClickHouse/issues/37889. ([Kseniia Sumarokova](https://github.com/kssenii)). [#36171](https://github.com/ClickHouse/ClickHouse/pull/36171))
-
-
#### Новая возможность {#new-feature-4}
* Поддержка стандартного SQL-синтаксиса `DELETE FROM` для таблиц семейства MergeTree и реализация легковесных операций удаления для семейств MergeTree. [#37893](https://github.com/ClickHouse/ClickHouse/pull/37893) ([Jianmei Zhang](https://github.com/zhangjmruc)) ([Alexander Gololobov](https://github.com/davenger)). Примечание: эта новая возможность не делает ClickHouse HTAP-СУБД.
* Параметры запроса могут быть заданы в интерактивном режиме как `SET param_abc = 'def'` и переданы через нативный протокол как настройки. [#39906](https://github.com/ClickHouse/ClickHouse/pull/39906) ([Nikita Taranov](https://github.com/nickitat)).
@@ -660,8 +606,6 @@ doc_type: 'changelog'
* Поддержка `SELECT ... INTO OUTFILE '...' AND STDOUT`. [#37490](https://github.com/ClickHouse/ClickHouse/issues/37490). [#39054](https://github.com/ClickHouse/ClickHouse/pull/39054) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Добавлены форматы `PrettyMonoBlock`, `PrettyNoEscapesMonoBlock`, `PrettyCompactNoEscapes`, `PrettyCompactNoEscapesMonoBlock`, `PrettySpaceNoEscapes`, `PrettySpaceMonoBlock`, `PrettySpaceNoEscapesMonoBlock`. [#39646](https://github.com/ClickHouse/ClickHouse/pull/39646) ([Kruglov Pavel](https://github.com/Avogar)).
-
-
#### Повышение производительности {#performance-improvement-4}
* Улучшено использование памяти при эффективном по памяти слиянии результатов агрегации. [#39429](https://github.com/ClickHouse/ClickHouse/pull/39429) ([Nikita Taranov](https://github.com/nickitat)).
@@ -678,8 +622,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-4}
* Нормализованы типы `AggregateFunction` и представления их состояний, поскольку оптимизации вроде [#35788](https://github.com/ClickHouse/ClickHouse/pull/35788) будут рассматривать `count(not null columns)` как `count()`, что может приводить к путанице в распределённых интерпретаторах и вызывать следующую ошибку: `Conversion from AggregateFunction(count) to AggregateFunction(count, Int64) is not supported`. [#39420](https://github.com/ClickHouse/ClickHouse/pull/39420) ([Amos Bird](https://github.com/amosbird)). Функции с идентичными состояниями могут взаимозаменяемо использоваться в материализованных представлениях.
@@ -719,8 +661,6 @@ doc_type: 'changelog'
-
-
#### Улучшение сборки/тестирования/упаковки {#buildtestingpackaging-improvement-4}
* [ClickFiddle](https://fiddle.clickhouse.com/): новый инструмент для тестирования версий ClickHouse в режимах чтения и записи (**Igor Baliuk**).
@@ -738,8 +678,6 @@ doc_type: 'changelog'
-
-
#### Исправление ошибки {#bug-fix-1}
* Исправлен возможный сегфолт в формате ввода `CapnProto`. Этот баг был обнаружен и сообщён через [программу bug bounty ClickHouse](https://github.com/ClickHouse/ClickHouse/issues/38986) пользователем *kiojj*. [#40241](https://github.com/ClickHouse/ClickHouse/pull/40241) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -792,8 +730,6 @@ doc_type: 'changelog'
* Исправление обратного DNS-разрешения. [#40134](https://github.com/ClickHouse/ClickHouse/pull/40134) ([Arthur Passos](https://github.com/arthurpassos)).
* Исправлен неожиданный результат работы функции `arrayDifference` для `Array(UInt32)`. [#40211](https://github.com/ClickHouse/ClickHouse/pull/40211) ([Duc Canh Le](https://github.com/canhld94)).
-
-
### Релиз ClickHouse 22.7, 2022-07-21 {#a-id227a-clickhouse-release-227-2022-07-21}
#### Примечания к обновлению {#upgrade-notes-1}
@@ -802,8 +738,6 @@ doc_type: 'changelog'
* Движок базы данных `Ordinary` и старый синтаксис определения хранилища для таблиц `*MergeTree` объявлены устаревшими. По умолчанию создание новых баз данных с движком `Ordinary` невозможно. Если база данных `system` использует движок `Ordinary`, он будет автоматически преобразован в `Atomic` при запуске сервера. Существуют настройки для сохранения старого поведения (`allow_deprecated_database_ordinary` и `allow_deprecated_syntax_for_merge_tree`), но они могут быть удалены в будущих релизах. [#38335](https://github.com/ClickHouse/ClickHouse/pull/38335) ([Alexander Tokmakov](https://github.com/tavplubix)).
* По умолчанию запятые в списке таблиц в секции FROM переписываются в INNER JOIN (установлено значение по умолчанию `cross_to_inner_join_rewrite = 2`). Чтобы вернуть старое поведение, задайте `cross_to_inner_join_rewrite = 1`. [#39326](https://github.com/ClickHouse/ClickHouse/pull/39326) ([Vladimir C](https://github.com/vdimir)). Если вы столкнётесь с какой-либо несовместимостью, вы можете вернуть настройке прежнее значение.
-
-
#### Новая возможность {#new-feature-5}
* Добавлена поддержка выражений с оконными функциями. Закрывает [#19857](https://github.com/ClickHouse/ClickHouse/issues/19857). [#37848](https://github.com/ClickHouse/ClickHouse/pull/37848) ([Dmitry Novik](https://github.com/novikd)).
@@ -832,13 +766,9 @@ doc_type: 'changelog'
* Добавлена поддержка передачи HTTP-заголовков в табличную функцию / движок таблицы `url` через SQL. Закрывает [#37897](https://github.com/ClickHouse/ClickHouse/issues/37897). [#38176](https://github.com/ClickHouse/ClickHouse/pull/38176) ([Kseniia Sumarokova](https://github.com/kssenii)).
* В состав пакетов добавлен бинарный файл `clickhouse-diagnostics`. [#38647](https://github.com/ClickHouse/ClickHouse/pull/38647) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
-
-
#### Экспериментальная функциональность {#experimental-feature-4}
* Добавлена новая настройка `implicit_transaction` для запуска отдельных запросов внутри транзакции. Она автоматически выполняет как создание, так и завершение транзакции (через COMMIT, если запрос выполнен успешно, или ROLLBACK, если нет). [#38344](https://github.com/ClickHouse/ClickHouse/pull/38344) ([Raúl Marín](https://github.com/Algunenano)).
-
-
#### Повышение производительности {#performance-improvement-5}
* Отдельная оптимизация для отсортированных столбцов. Используется специализированное преобразование DISTINCT, если входной поток отсортирован по столбцам, участвующим в DISTINCT. Оптимизация может применяться к pre-distinct, final distinct или обоим этапам. Исходная реализация от @dimarub2000. [#37803](https://github.com/ClickHouse/ClickHouse/pull/37803) ([Igor Nikonov](https://github.com/devcrafter)).
@@ -863,8 +793,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-5}
* Добавлена поддержка синтаксиса стандартного SQL для `CREATE INDEX` и `DROP INDEX`. [#35166](https://github.com/ClickHouse/ClickHouse/pull/35166) ([Jianmei Zhang](https://github.com/zhangjmruc)).
@@ -911,8 +839,6 @@ doc_type: 'changelog'
* Функции `multiMatch[Fuzzy](AllIndices/Any/AnyIndex)` больше не вызывают логическую ошибку, если аргумент `needle` пустой. [#39012](https://github.com/ClickHouse/ClickHouse/pull/39012) ([Robert Schulze](https://github.com/rschu1ze)).
* Добавлена возможность объявлять очередь `RabbitMQ` без стандартных аргументов `x-max-length` и `x-overflow`. [#39259](https://github.com/ClickHouse/ClickHouse/pull/39259) ([rnbondarenko](https://github.com/rnbondarenko)).
-
-
#### Улучшения сборки/тестирования/пакетирования {#buildtestingpackaging-improvement-5}
* Применены аннотации анализа потокобезопасности Clang (Thread Safety Analysis, TSA) к ClickHouse. [#38068](https://github.com/ClickHouse/ClickHouse/pull/38068) ([Robert Schulze](https://github.com/rschu1ze)).
* Адаптирован универсальный скрипт установки для FreeBSD. [#39302](https://github.com/ClickHouse/ClickHouse/pull/39302) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -922,8 +848,6 @@ doc_type: 'changelog'
* Системная таблица "system.licenses" теперь корректно заполняется на macOS (Darwin). [#38294](https://github.com/ClickHouse/ClickHouse/pull/38294) ([Robert Schulze](https://github.com/rschu1ze)).
* Изменены пакеты `all|noarch` на зависящие от архитектуры — исправлена часть документации по ним — добавлены пакеты aarch64|arm64 в Artifactory и релизные артефакты — исправлено [#36443](https://github.com/ClickHouse/ClickHouse/issues/36443). [#38580](https://github.com/ClickHouse/ClickHouse/pull/38580) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
-
-
#### Исправление ошибки (видимая пользователю некорректная работа в официальном стабильном или предварительном релизе) {#bug-fix-user-visible-misbehavior-in-official-stable-or-prestable-release-3}
* Исправлено округление для `Decimal128/Decimal256` при масштабе более 19 знаков. [#38027](https://github.com/ClickHouse/ClickHouse/pull/38027) ([Igor Nikonov](https://github.com/devcrafter)).
@@ -979,8 +903,6 @@ doc_type: 'changelog'
* Исправлена работа `parallel_view_processing=1` с `optimize_trivial_insert_select=1`. Исправлен `max_insert_threads` при вставке в представления. [#38731](https://github.com/ClickHouse/ClickHouse/pull/38731) ([Azat Khuzhin](https://github.com/azat)).
* Исправлена ошибка use-after-free для агрегатных функций с комбинатором `Map`, приводившая к некорректным результатам. [#38748](https://github.com/ClickHouse/ClickHouse/pull/38748) ([Azat Khuzhin](https://github.com/azat)).
-
-
### Релиз ClickHouse 22.6, 2022-06-16 {#a-id226a-clickhouse-release-226-2022-06-16}
#### Изменения, нарушающие обратную совместимость {#backward-incompatible-change-4}
@@ -991,8 +913,6 @@ doc_type: 'changelog'
* Шаблоны LIKE с завершающим символом экранирования ('\\') теперь запрещены (в соответствии со стандартом SQL). [#37764](https://github.com/ClickHouse/ClickHouse/pull/37764) ([Robert Schulze](https://github.com/rschu1ze)).
* Если вы запускаете разные версии ClickHouse в кластере с процессором AArch64 или смешиваете AArch64 и amd64 в одном кластере и используете распределённые запросы с GROUP BY по нескольким ключам типа фиксированного размера, которые помещаются в 256 бит, но не помещаются в 64 бита, и результат имеет очень большой размер, данные не будут полностью агрегированы в результатах таких запросов во время обновления. Обходной путь: выполняйте обновление с простоем вместо поочерёдного (rolling) обновления.
-
-
#### Новая возможность {#new-feature-6}
* Добавлена функция `GROUPING`. Она позволяет однозначно различать строки в запросах с `ROLLUP`, `CUBE` или `GROUPING SETS`. Закрывает [#19426](https://github.com/ClickHouse/ClickHouse/issues/19426). [#37163](https://github.com/ClickHouse/ClickHouse/pull/37163) ([Dmitry Novik](https://github.com/novikd)).
@@ -1015,15 +935,11 @@ doc_type: 'changelog'
* Добавлена поддержка изменения комментария для таблиц `ReplicatedMergeTree`. [#37416](https://github.com/ClickHouse/ClickHouse/pull/37416) ([Vasily Nemkov](https://github.com/Enmk)).
* Добавлен запрос `SYSTEM UNFREEZE`, который удаляет всю резервную копию независимо от того, была ли соответствующая таблица удалена или нет. [#36424](https://github.com/ClickHouse/ClickHouse/pull/36424) ([Vadim Volodin](https://github.com/PolyProgrammist)).
-
-
#### Экспериментальная возможность {#experimental-feature-5}
* Добавлена поддержка `POPULATE` для `WINDOW VIEW`. [#36945](https://github.com/ClickHouse/ClickHouse/pull/36945) ([vxider](https://github.com/Vxider)).
* Добавлена поддержка `ALTER TABLE ... MODIFY QUERY` для `WINDOW VIEW`. [#37188](https://github.com/ClickHouse/ClickHouse/pull/37188) ([vxider](https://github.com/Vxider)).
* Этот PR изменяет поведение синтаксиса `ENGINE` в `WINDOW VIEW`, чтобы оно стало таким же, как в `MATERIALIZED VIEW`. [#37214](https://github.com/ClickHouse/ClickHouse/pull/37214) ([vxider](https://github.com/Vxider)).
-
-
#### Повышение производительности {#performance-improvement-6}
* Добавлено множество оптимизаций для ARM NEON [#38093](https://github.com/ClickHouse/ClickHouse/pull/38093) ([Daniel Kutenin](https://github.com/danlark1)), ([Alexandra Pilipyuk](https://github.com/chalice19)). Примечание: если вы запускаете различные версии ClickHouse в кластере с ARM CPU и используете распределённые запросы с GROUP BY по нескольким ключам фиксированного размера, которые помещаются в 256 бит, но не помещаются в 64 бита, результаты агрегатного запроса во время обновления будут некорректными. Обходной путь: выполняйте обновление с простоем вместо поэтапного (rolling) обновления.
@@ -1057,8 +973,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-6}
* Добавлена поддержка типов с нестандартными значениями по умолчанию в ROLLUP, CUBE, GROUPING SETS. Закрывает [#37360](https://github.com/ClickHouse/ClickHouse/issues/37360). [#37667](https://github.com/ClickHouse/ClickHouse/pull/37667) ([Dmitry Novik](https://github.com/novikd)).
@@ -1101,8 +1015,6 @@ doc_type: 'changelog'
* Теперь, если настройка `always_fetch_merged_part` включена, при слияниях ReplicatedMergeTree поиск частей на других репликах будет выполняться реже, с меньшей нагрузкой на [Zoo]Keeper. [#37995](https://github.com/ClickHouse/ClickHouse/pull/37995) ([alesapin](https://github.com/alesapin)).
* Добавлены также неявные привилегии с правом передачи. Например, `GRANT CREATE TABLE ON test.* TO A WITH GRANT OPTION` теперь позволяет пользователю `A` выполнять команду `GRANT CREATE VIEW ON test.* TO B`. [#38017](https://github.com/ClickHouse/ClickHouse/pull/38017) ([Vitaly Baranov](https://github.com/vitlibar)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-6}
* Используем `clang-14` и инфраструктуру LLVM версии 14 для сборок. Это закрывает [#34681](https://github.com/ClickHouse/ClickHouse/issues/34681). [#34754](https://github.com/ClickHouse/ClickHouse/pull/34754) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Примечание: в `clang-14` есть [ошибка](https://github.com/google/sanitizers/issues/1540) в ThreadSanitizer, которая ухудшает работу нашей CI.
* Добавлена возможность сбрасывать привилегии при запуске. Это упрощает Docker-образы. Закрывает [#36293](https://github.com/ClickHouse/ClickHouse/issues/36293). [#36341](https://github.com/ClickHouse/ClickHouse/pull/36341) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -1111,8 +1023,6 @@ doc_type: 'changelog'
#### Исправление ошибки {#bug-fix-2}
-
-
* Исправлена обработка операторов `SELECT ... INTERSECT` и `EXCEPT SELECT` в случаях с константными строковыми типами. [#37738](https://github.com/ClickHouse/ClickHouse/pull/37738) ([Antonio Andelic](https://github.com/antonio2368)).
* Исправлена обработка `GROUP BY` для типа `AggregateFunction` (то есть когда вы выполняете `GROUP BY` по столбцу с типом `AggregateFunction`). [#37093](https://github.com/ClickHouse/ClickHouse/pull/37093) ([Azat Khuzhin](https://github.com/azat)).
* (экспериментальный WINDOW VIEW) Исправлена функция `addDependency` в WindowView. Эту ошибку можно воспроизвести как в [#37237](https://github.com/ClickHouse/ClickHouse/issues/37237). [#37224](https://github.com/ClickHouse/ClickHouse/pull/37224) ([vxider](https://github.com/Vxider)).
@@ -1163,8 +1073,6 @@ doc_type: 'changelog'
* Исправлена потенциальная ошибка heap-use-after-free при чтении таблиц system.projection_parts и system.projection_parts_columns. Это исправляет [#37184](https://github.com/ClickHouse/ClickHouse/issues/37184). [#37185](https://github.com/ClickHouse/ClickHouse/pull/37185) ([Amos Bird](https://github.com/amosbird)).
* Исправлено поведение дробной части секунд в `DateTime64` для дат до эпохи Unix. [#37697](https://github.com/ClickHouse/ClickHouse/pull/37697) ([Andrey Zvonov](https://github.com/zvonand)). [#37039](https://github.com/ClickHouse/ClickHouse/pull/37039) ([李扬](https://github.com/taiyang-li)).
-
-
### Релиз ClickHouse 22.5, 2022-05-19 {#a-id225a-clickhouse-release-225-2022-05-19}
#### Заметки по обновлению {#upgrade-notes-2}
@@ -1177,8 +1085,6 @@ doc_type: 'changelog'
#### Новая функция {#new-feature-7}
-
-
* Включен `memory overcommit` по умолчанию. [#35921](https://github.com/ClickHouse/ClickHouse/pull/35921) ([Dmitry Novik](https://github.com/novikd)).
* Добавлена поддержка `GROUPING SETS` в предложении `GROUP BY`. Эта реализация поддерживает параллельную обработку наборов группировки. [#33631](https://github.com/ClickHouse/ClickHouse/pull/33631) ([Dmitry Novik](https://github.com/novikd)).
* Добавлена таблица `system.certificates`. [#37142](https://github.com/ClickHouse/ClickHouse/pull/37142) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
@@ -1191,8 +1097,6 @@ doc_type: 'changelog'
#### Экспериментальная возможность {#experimental-feature-6}
-
-
* Реализованы функции расстояния L1, L2, Linf, Cosine для массивов и функции нормы L1, L2, Linf для массивов.
[#37033](https://github.com/ClickHouse/ClickHouse/pull/37033) ([qieqieplus](https://github.com/qieqieplus)). Предупреждение: функции будут переименованы.
* Улучшен запрос `WATCH` в WindowView: 1. Снижена задержка предоставления результатов запроса за счёт вызова сигнала `fire_condition`. 2. Операция отмены запроса (Ctrl+C) стала быстрее за счёт более частой проверки `isCancelled()`. [#37226](https://github.com/ClickHouse/ClickHouse/pull/37226) ([vxider](https://github.com/Vxider)).
@@ -1205,8 +1109,6 @@ doc_type: 'changelog'
#### Улучшение производительности {#performance-improvement-7}
-
-
* Улучшена производительность агрегатных функций `avg`, `sum`, если они используются без выражения GROUP BY. [#37257](https://github.com/ClickHouse/ClickHouse/pull/37257) ([Maksim Kita](https://github.com/kitaisreal)).
* Улучшена производительность унарных арифметических функций (`bitCount`, `bitNot`, `abs`, `intExp2`, `intExp10`, `negate`, `roundAge`, `roundDuration`, `roundToExp2`, `sign`) за счёт динамической диспетчеризации. [#37289](https://github.com/ClickHouse/ClickHouse/pull/37289) ([Maksim Kita](https://github.com/kitaisreal)).
* Улучшена производительность ORDER BY, MergeJoin и вставки в MergeTree с помощью JIT‑компиляции компаратора столбцов сортировки. [#34469](https://github.com/ClickHouse/ClickHouse/pull/34469) ([Maksim Kita](https://github.com/kitaisreal)).
@@ -1224,8 +1126,6 @@ doc_type: 'changelog'
#### Улучшение {#improvement-7}
-
-
* Показывать имена файлов с ошибками в случае ошибок разбора при выполнении табличных функций `file`, `s3` и `url`. [#36314](https://github.com/ClickHouse/ClickHouse/pull/36314) ([Anton Popov](https://github.com/CurtizJ)).
* Добавлена возможность увеличивать количество потоков для выполнения фоновых операций (слияний, мутаций, перемещений и загрузок) во время работы, если они указаны в конфигурации верхнего уровня. [#36425](https://github.com/ClickHouse/ClickHouse/pull/36425) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Теперь функции преобразования даты и времени, которые генерируют значения до 1970-01-01 00:00:00 в часовых поясах с дробными часами/минутами, будут ограничиваться нулём вместо переполнения. Это продолжение [https://github.com/ClickHouse/ClickHouse/pull/29953](https://github.com/ClickHouse/ClickHouse/pull/29953), которое касается [https://github.com/ClickHouse/ClickHouse/pull/29953#discussion_r800550280](https://github.com/ClickHouse/ClickHouse/pull/29953#discussion_r800550280). Отмечено как улучшение, поскольку это поведение, определяемое реализацией (и очень редкий случай), и мы можем позволить себе его изменить. [#36656](https://github.com/ClickHouse/ClickHouse/pull/36656) ([Amos Bird](https://github.com/amosbird)).
@@ -1266,8 +1166,6 @@ doc_type: 'changelog'
* Улучшен JSON-отчет утилиты `clickhouse-benchmark`. [#36473](https://github.com/ClickHouse/ClickHouse/pull/36473) ([Tian Xinhui](https://github.com/xinhuitian)).
* Сервер мог не запускаться, если не удавалось разрешить имя хоста внешнего словаря ClickHouse. Это исправлено. Исправляет [#36451](https://github.com/ClickHouse/ClickHouse/issues/36451). [#36463](https://github.com/ClickHouse/ClickHouse/pull/36463) ([tavplubix](https://github.com/tavplubix)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-7}
* Теперь `clickhouse-keeper` для архитектуры `x86_64` статически слинкован с [musl](https://musl.libc.org/) и больше не зависит от системных библиотек. [#31833](https://github.com/ClickHouse/ClickHouse/pull/31833) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -1279,8 +1177,6 @@ doc_type: 'changelog'
#### Исправление ошибок {#bug-fix-3}
-
-
* Извлекает идентификатор версии (Version ID) из URI, если он присутствует, и добавляет запрос к AWS HTTP URI. Закрывает [#31221](https://github.com/ClickHouse/ClickHouse/issues/31221). - [x] Извлечь `Version ID` из URI, если он присутствует, и пересобрать URI без него. - [x] Настроить объект `AWS HTTP URI` с запросом. - [x] Модульные тесты: [`gtest_s3_uri`](https://github.com/ClickHouse/ClickHouse/blob/2340a6c6849ebc05a8efbf97ba8de3ff9dc0eff4/src/IO/tests/gtest_s3_uri.cpp) - [x] Удалить коммит инструментирования. [#34571](https://github.com/ClickHouse/ClickHouse/pull/34571) ([Saad Ur Rahman](https://github.com/surahman)).
* Исправлен псевдоним attribute.values в system.opentelemetry_span_log: теперь он указывает на values вместо keys. [#37275](https://github.com/ClickHouse/ClickHouse/pull/37275) ([Aleksandr Razumov](https://github.com/ernado)).
* Исправлена ошибка преобразования Nullable(String) в Nullable(Bool/IPv4/IPv6). Закрывает [#37221](https://github.com/ClickHouse/ClickHouse/issues/37221). [#37270](https://github.com/ClickHouse/ClickHouse/pull/37270) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -1338,8 +1234,6 @@ doc_type: 'changelog'
* Исправлена операция `ALTER DROP COLUMN` для вложенного столбца с компактными частями (т.е. `ALTER TABLE x DROP COLUMN n`, когда существует столбец `n.d`). [#35797](https://github.com/ClickHouse/ClickHouse/pull/35797) ([Azat Khuzhin](https://github.com/azat)).
* Исправлена ошибка вычисления длины диапазона в функции `substring`, когда `offset` и `length` — отрицательные константы, а `s` не является константой. [#33861](https://github.com/ClickHouse/ClickHouse/pull/33861) ([RogerYK](https://github.com/RogerYK)).
-
-
### Релиз ClickHouse 22.4, 2022-04-19 {#a-id224a-clickhouse-release-224-2022-04-19}
#### Изменение, нарушающее обратную совместимость {#backward-incompatible-change-5}
@@ -1349,8 +1243,6 @@ doc_type: 'changelog'
#### Новая функциональность {#new-feature-8}
-
-
* Добавлено расширение INTERPOLATE к синтаксису ORDER BY ... WITH FILL. Закрывает задачу [#34903](https://github.com/ClickHouse/ClickHouse/issues/34903). [#35349](https://github.com/ClickHouse/ClickHouse/pull/35349) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* Профилирование на уровне процессоров (при включённой настройке `log_processors_profiles` ClickHouse будет записывать время, которое процессор потратил на выполнение/ожидание данных, в таблицу `system.processors_profile_log`). [#34355](https://github.com/ClickHouse/ClickHouse/pull/34355) ([Azat Khuzhin](https://github.com/azat)).
* Добавлены функции makeDate(year, month, day), makeDate32(year, month, day). [#35628](https://github.com/ClickHouse/ClickHouse/pull/35628) ([Alexander Gololobov](https://github.com/davenger)). Реализованы функции makeDateTime() и makeDateTime64(). [#35934](https://github.com/ClickHouse/ClickHouse/pull/35934) ([Alexander Gololobov](https://github.com/davenger)).
@@ -1368,8 +1260,6 @@ doc_type: 'changelog'
* Добавлены проверки корректности при запуске сервера (доступная память и дисковое пространство, максимальное количество потоков и т. д.). [#34566](https://github.com/ClickHouse/ClickHouse/pull/34566) ([Sergei Trifonov](https://github.com/serxa)).
* Улучшение INTERVAL — его теперь можно использовать с `[MILLI|MICRO|NANO]SECOND`. Добавлены функции `toStartOf[Milli|Micro|Nano]second()`. Добавлены функции `[add|subtract][Milli|Micro|Nano]seconds()`. [#34353](https://github.com/ClickHouse/ClickHouse/pull/34353) ([Andrey Zvonov](https://github.com/zvonand)).
-
-
#### Экспериментальная функция {#experimental-feature-7}
* Добавлена поддержка транзакций для простых таблиц `MergeTree`. Эта возможность находится на ранней экспериментальной стадии и не рекомендуется для использования в продакшене. Часть [#22086](https://github.com/ClickHouse/ClickHouse/issues/22086). [#24258](https://github.com/ClickHouse/ClickHouse/pull/24258) ([tavplubix](https://github.com/tavplubix)).
@@ -1379,8 +1269,6 @@ doc_type: 'changelog'
#### Улучшение производительности {#performance-improvement-8}
-
-
* Новая оптимизация плана запроса. По возможности функции вычисляются после `ORDER BY`. Например, для запроса `SELECT sipHash64(number) FROM numbers(1e8) ORDER BY number LIMIT 5` функция `sipHash64` будет вычисляться после `ORDER BY` и `LIMIT`, что даёт ускорение примерно в 20 раз. [#35623](https://github.com/ClickHouse/ClickHouse/pull/35623) ([Nikita Taranov](https://github.com/nickitat)).
* Размеры хеш-таблиц, используемых во время агрегации, теперь собираются и используются в последующих запросах, чтобы избежать их переразмеривания. [#33439](https://github.com/ClickHouse/ClickHouse/pull/33439) ([Nikita Taranov](https://github.com/nickitat)).
* Улучшение для функции `hasAll` с использованием SIMD‑инструкций (SSE и AVX2). [#27653](https://github.com/ClickHouse/ClickHouse/pull/27653) ([youennL-cs](https://github.com/youennL-cs)). [#35723](https://github.com/ClickHouse/ClickHouse/pull/35723) ([Maksim Kita](https://github.com/kitaisreal)).
@@ -1394,8 +1282,6 @@ doc_type: 'changelog'
#### Улучшение {#improvement-8}
-
-
* Много улучшений для определения схемы. Используются дополнительные доработки и эвристики для определения чисел, строк, массивов, кортежей и отображений (Map) в форматах данных CSV, TSV и TSVRaw. Добавлена настройка `input_format_csv_use_best_effort_in_schema_inference` для формата CSV, которая включает/отключает использование этих эвристик; если она отключена, всё обрабатывается как строка. Добавлена аналогичная настройка `input_format_tsv_use_best_effort_in_schema_inference` для форматов TSV/TSVRaw. Эти настройки включены по умолчанию. - Добавлена поддержка Map при определении схемы в формате Values. - Исправлена возможная ошибка сегфолта при определении схемы в формате Values. - Разрешено пропускать столбцы с неподдерживаемыми типами в форматах Arrow/ORC/Parquet. Для этого добавлены соответствующие настройки: `input_format_{parquet|orc|arrow}_skip_columns_with_unsupported_types_in_schema_inference`. Эти настройки отключены по умолчанию. - Разрешено преобразовывать столбец с типом Null в Nullable-столбец со всеми значениями NULL в форматах Arrow/Parquet. - Разрешено указывать имена столбцов при определении схемы с помощью настройки `column_names_for_schema_inference` для форматов, которые не содержат имена столбцов (таких как CSV, TSV, JSONCompactEachRow и т. д.). - Исправлено определение схемы в форматах ORC/Arrow/Parquet в части работы с Nullable-столбцами. Ранее все выводимые типы были не Nullable, и это блокировало чтение Nullable-столбцов из данных; теперь это исправлено, и все выводимые типы всегда Nullable (поскольку по схеме мы не можем понять, является столбец Nullable или нет). - Исправлено определение схемы в формате Template с правилами экранирования CSV. [#35582](https://github.com/ClickHouse/ClickHouse/pull/35582) ([Kruglov Pavel](https://github.com/Avogar)).
* Добавлен параллельный разбор и определение схемы для формата `JSONAsObject`. [#35592](https://github.com/ClickHouse/ClickHouse/pull/35592) ([Anton Popov](https://github.com/CurtizJ)).
* Добавлена поддержка автоматического определения схемы в табличной функции `s3Cluster`. Сигнатуры `s3` и `s3Cluster` приведены к одному виду. [#35544](https://github.com/ClickHouse/ClickHouse/pull/35544) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
@@ -1436,8 +1322,6 @@ doc_type: 'changelog'
* Корректная обработка параметра `max_rows_to_read` при чтении в порядке ключа сортировки и заданном `LIMIT`. Ранее исключение `Limit for rows or bytes to read exceeded` могло возникать, даже если запрос фактически требовал прочитать меньшее количество строк. [#33230](https://github.com/ClickHouse/ClickHouse/pull/33230) ([Anton Popov](https://github.com/CurtizJ)).
* Учитывать только quota и period cgroups, игнорируя shares (они на самом деле не ограничивают количество используемых ядер). [#35815](https://github.com/ClickHouse/ClickHouse/pull/35815) ([filimonov](https://github.com/filimonov)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-8}
* Добавлена очередная партия настроек рандомизации в функциональные тесты. [#35047](https://github.com/ClickHouse/ClickHouse/pull/35047) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -1456,8 +1340,6 @@ doc_type: 'changelog'
#### Исправление ошибок {#bug-fix-4}
-
-
* Добавлены настройки `input_format_ipv4_default_on_conversion_error`, `input_format_ipv6_default_on_conversion_error`, позволяющие при ошибке преобразования вставлять некорректные значения IP-адресов в таблицы как значения по умолчанию. Закрыта задача [#35726](https://github.com/ClickHouse/ClickHouse/issues/35726). [#35733](https://github.com/ClickHouse/ClickHouse/pull/35733) ([Maksim Kita](https://github.com/kitaisreal)).
* Не удалять столбцы из блока при чтении данных из Hive, если соответствующий столбец отсутствует. [#35393](https://github.com/ClickHouse/ClickHouse/pull/35393) ([lgbo](https://github.com/lgbo-ustc)).
* Добавлена проверка типов при создании материализованного представления. Закрыта: [#23684](https://github.com/ClickHouse/ClickHouse/issues/23684). [#24896](https://github.com/ClickHouse/ClickHouse/pull/24896) ([hexiaoting](https://github.com/hexiaoting)).
@@ -1503,8 +1385,6 @@ doc_type: 'changelog'
* Исправлены мутации в таблицах с включёнными разрежёнными столбцами. [#35284](https://github.com/ClickHouse/ClickHouse/pull/35284) ([Anton Popov](https://github.com/CurtizJ)).
* Не откладывать запись финальной части по умолчанию (исправляет возможную ошибку `Memory limit exceeded` во время выполнения `INSERT` за счёт добавления `max_insert_delayed_streams_for_parallel_write` со значением по умолчанию 1000 для записей в S3 и отключённым, как и раньше, в остальных случаях). [#34780](https://github.com/ClickHouse/ClickHouse/pull/34780) ([Azat Khuzhin](https://github.com/azat)).
-
-
### Релиз ClickHouse v22.3-lts, 2022-03-17 {#a-id223a-clickhouse-release-v223-lts-2022-03-17}
#### Обратно несовместимое изменение {#backward-incompatible-change-6}
@@ -1515,8 +1395,6 @@ doc_type: 'changelog'
#### Новая функциональность {#new-feature-9}
-
-
* Поддержка локального кэширования данных для удалённых файловых систем. Может быть включена для дисков `s3`. Закрывает [#28961](https://github.com/ClickHouse/ClickHouse/issues/28961). [#33717](https://github.com/ClickHouse/ClickHouse/pull/33717) ([Kseniia Sumarokova](https://github.com/kssenii)). За это время мы включили прогон тестового набора на файловой системе s3, и о каких‑либо известных проблемах больше не сообщается, поэтому её можно считать готовой к использованию в продакшене.
* Добавлена новая табличная функция `hive`. Её можно использовать следующим образом: `hive('', '', '', '', '')`, например: `SELECT * FROM hive('thrift://hivetest:9083', 'test', 'demo', 'id Nullable(String), score Nullable(Int32), day Nullable(String)', 'day')`. [#34946](https://github.com/ClickHouse/ClickHouse/pull/34946) ([lgbo](https://github.com/lgbo-ustc)).
* Поддержка аутентификации пользователей, подключающихся по SSL, по их сертификату X.509. [#31484](https://github.com/ClickHouse/ClickHouse/pull/31484) ([eungenue](https://github.com/eungenue)).
@@ -1534,8 +1412,6 @@ doc_type: 'changelog'
#### Улучшение производительности {#performance-improvement-9}
-
-
* Улучшена производительность вставки в таблицы `MergeTree` за счёт оптимизации сортировки. На реалистических бенчмарках наблюдается ускорение до 2 раз. [#34750](https://github.com/ClickHouse/ClickHouse/pull/34750) ([Maksim Kita](https://github.com/kitaisreal)).
* Отсечение столбцов при чтении файлов Parquet, ORC и Arrow по URL и из S3. Закрывает [#34163](https://github.com/ClickHouse/ClickHouse/issues/34163). [#34849](https://github.com/ClickHouse/ClickHouse/pull/34849) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Отсечение столбцов при чтении файлов Parquet, ORC и Arrow из Hive. [#34954](https://github.com/ClickHouse/ClickHouse/pull/34954) ([lgbo](https://github.com/lgbo-ustc)).
@@ -1545,8 +1421,6 @@ doc_type: 'changelog'
#### Улучшения {#improvement-9}
-
-
* Добавлена поддержка асинхронных вставок в табличные функции. Исправляет [#34864](https://github.com/ClickHouse/ClickHouse/issues/34864). [#34866](https://github.com/ClickHouse/ClickHouse/pull/34866) ([Anton Popov](https://github.com/CurtizJ)).
* Неявное приведение типа ключевого аргумента для функций `dictGetHierarchy`, `dictIsIn`, `dictGetChildren`, `dictGetDescendants`. Закрывает [#34970](https://github.com/ClickHouse/ClickHouse/issues/34970). [#35027](https://github.com/ClickHouse/ClickHouse/pull/35027) ([Maksim Kita](https://github.com/kitaisreal)).
* Запрос `EXPLAIN AST` может выводить AST в виде графа в формате Graphviz: `EXPLAIN AST graph = 1 SELECT * FROM system.parts`. [#35173](https://github.com/ClickHouse/ClickHouse/pull/35173) ([李扬](https://github.com/taiyang-li)).
@@ -1584,8 +1458,6 @@ doc_type: 'changelog'
* Улучшены логи спанов OpenTelemetry для операции INSERT в распределённую таблицу. [#34480](https://github.com/ClickHouse/ClickHouse/pull/34480) ([Frank Chen](https://github.com/FrankChen021)).
* Обеспечить согласованность значений `ctime` и `mtime` znode между серверами в ClickHouse Keeper. [#33441](https://github.com/ClickHouse/ClickHouse/pull/33441) ([小路](https://github.com/nicelulu)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-9}
* Репозиторий пакетов перенесён в JFrog Artifactory (**Mikhail f. Shiryaev**).
@@ -1599,8 +1471,6 @@ doc_type: 'changelog'
#### Исправление ошибок (заметное пользователям некорректное поведение в официальном стабильном или предстабильном релизе) {#bug-fix-user-visible-misbehaviour-in-official-stable-or-prestable-release}
-
-
* Исправление для интеграции с HDFS: когда размер внутреннего буфера слишком мал, NEED_MORE_INPUT в `HadoopSnappyDecoder` вызывается многократно (>=3 раз) для одного и того же сжатого блока. Это приводит к тому, что входные данные копируются в неверное место в `HadoopSnappyDecoder::buffer`. [#35116](https://github.com/ClickHouse/ClickHouse/pull/35116) ([lgbo](https://github.com/lgbo-ustc)).
* Устаревшие привилегии в операторах ATTACH GRANT теперь игнорируются. Этот PR исправляет [#34815](https://github.com/ClickHouse/ClickHouse/issues/34815). [#34855](https://github.com/ClickHouse/ClickHouse/pull/34855) ([Vitaly Baranov](https://github.com/vitlibar)).
* Исправлена ошибка сегментации (segfault) в базе данных Postgres при получении запроса `CREATE TABLE`, если база данных была создана с использованием именованных коллекций. Закрывает [#35312](https://github.com/ClickHouse/ClickHouse/issues/35312). [#35313](https://github.com/ClickHouse/ClickHouse/pull/35313) ([Kseniia Sumarokova](https://github.com/kssenii)).
@@ -1642,8 +1512,6 @@ doc_type: 'changelog'
* Исправлен некорректный результат простого запроса `count` при использовании механизма перемещения частей (part movement feature) [#34089](https://github.com/ClickHouse/ClickHouse/issues/34089). [#34385](https://github.com/ClickHouse/ClickHouse/pull/34385) ([nvartolomei](https://github.com/nvartolomei)).
* Устранено несоответствие ограничения `max_query_size` в распределённых подзапросах. [#34078](https://github.com/ClickHouse/ClickHouse/pull/34078) ([Chao Ma](https://github.com/godliness)).
-
-
### Релиз ClickHouse v22.2, 2022-02-17 {#a-id222a-clickhouse-release-v222-2022-02-17}
#### Примечания по обновлению {#upgrade-notes-3}
@@ -1652,8 +1520,6 @@ doc_type: 'changelog'
#### Новая функция {#new-feature-10}
-
-
* Проекции готовы к использованию в продакшене. Включить настройку `allow_experimental_projection_optimization` по умолчанию и объявить её устаревшей. [#34456](https://github.com/ClickHouse/ClickHouse/pull/34456) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Опция создания нового файла при вставке для движков `File`/`S3`/`HDFS`. Позволяет перезаписывать файл в `HDFS`. По умолчанию при попытке перезаписать файл в `S3` генерируется исключение. При попытке дописать данные в файл в форматах с суффиксом (и, следовательно, не поддерживающих дописывание, например `Parquet`, `ORC`) генерируется исключение. Закрывает [#31640](https://github.com/ClickHouse/ClickHouse/issues/31640) Закрывает [#31622](https://github.com/ClickHouse/ClickHouse/issues/31622) Закрывает [#23862](https://github.com/ClickHouse/ClickHouse/issues/23862) Закрывает [#15022](https://github.com/ClickHouse/ClickHouse/issues/15022) Закрывает [#16674](https://github.com/ClickHouse/ClickHouse/issues/16674). [#33302](https://github.com/ClickHouse/ClickHouse/pull/33302) ([Kruglov Pavel](https://github.com/Avogar)).
* Добавлена настройка, позволяющая пользователю задать собственную семантику дедупликации в `MergeTree`/`ReplicatedMergeTree`. Если она задана, она используется вместо хеша данных для генерации идентификатора блока. Таким образом, например, указывая уникальное значение для этой настройки в каждом операторе INSERT, пользователь может избежать дедупликации одних и тех же вставленных данных. Закрывает: [#7461](https://github.com/ClickHouse/ClickHouse/issues/7461). [#32304](https://github.com/ClickHouse/ClickHouse/pull/32304) ([Igor Nikonov](https://github.com/devcrafter)).
@@ -1675,8 +1541,6 @@ doc_type: 'changelog'
* Добавлена функция `addressToLineWithInlines`. Закрыта задача [#26211](https://github.com/ClickHouse/ClickHouse/issues/26211). [#33467](https://github.com/ClickHouse/ClickHouse/pull/33467) ([SuperDJY](https://github.com/cmsxbc)).
* Добавлены `#!` и `# ` как допустимые варианты начала однострочного комментария. Закрыта задача [#34138](https://github.com/ClickHouse/ClickHouse/issues/34138). [#34230](https://github.com/ClickHouse/ClickHouse/pull/34230) ([Aaron Katz](https://github.com/aaronstephenkatz)).
-
-
#### Экспериментальная возможность {#experimental-feature-9}
* Функции для классификации текста: определение языка и кодировки. См. [#23271](https://github.com/ClickHouse/ClickHouse/issues/23271). [#33314](https://github.com/ClickHouse/ClickHouse/pull/33314) ([Nikolay Degterinsky](https://github.com/evillique)).
@@ -1687,8 +1551,6 @@ doc_type: 'changelog'
#### Улучшение производительности {#performance-improvement-10}
-
-
* Поддержка `optimize_read_in_order`, если префикс сортировочного ключа уже отсортирован. Например, если в таблице есть сортировочный ключ `ORDER BY (a, b)` и запрос с условиями `WHERE a = const ORDER BY b`, теперь будет использоваться чтение в порядке сортировочного ключа вместо полной сортировки. [#32748](https://github.com/ClickHouse/ClickHouse/pull/32748) ([Anton Popov](https://github.com/CurtizJ)).
* Улучшена производительность вставки с разбиением по партициям (partitioned insert) в табличные функции `URL`, `S3`, `File`, `HDFS`. Закрывает [#34348](https://github.com/ClickHouse/ClickHouse/issues/34348). [#34510](https://github.com/ClickHouse/ClickHouse/pull/34510) ([Maksim Kita](https://github.com/kitaisreal)).
* Ряд улучшений производительности clickhouse-keeper. [#34484](https://github.com/ClickHouse/ClickHouse/pull/34484) [#34587](https://github.com/ClickHouse/ClickHouse/pull/34587) ([zhanglistar](https://github.com/zhanglistar)).
@@ -1707,12 +1569,8 @@ doc_type: 'changelog'
* Для вставок и слияний в S3 по возможности выполняйте параллельную запись файлов (TODO: проверить, смёржено ли это). [#33291](https://github.com/ClickHouse/ClickHouse/pull/33291) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Улучшена производительность `clickhouse-keeper` и исправлены несколько утечек памяти в библиотеке NuRaft. [#33329](https://github.com/ClickHouse/ClickHouse/pull/33329) ([alesapin](https://github.com/alesapin)).
-
-
#### Улучшение {#improvement-10}
-
-
* Добавлена поддержка асинхронных вставок в `clickhouse-client` для запросов с данными, указанными непосредственно в запросе. [#34267](https://github.com/ClickHouse/ClickHouse/pull/34267) ([Anton Popov](https://github.com/CurtizJ)).
* Функции `dictGet`, `dictHas` неявно приводят аргумент-ключ к структуре ключа словаря, если их типы различаются. [#33672](https://github.com/ClickHouse/ClickHouse/pull/33672) ([Maksim Kita](https://github.com/kitaisreal)).
* Улучшения для словарей `range_hashed`. Повышена производительность времени загрузки при наличии нескольких атрибутов. Разрешено создавать словарь без атрибутов. Добавлена опция для задания стратегии, когда интервальные границы `start` и `end` имеют тип `Nullable` — `convert_null_range_bound_to_open` по умолчанию имеет значение `true`. Закрывает [#29791](https://github.com/ClickHouse/ClickHouse/issues/29791). Разрешено указывать `Float`, `Decimal`, `DateTime64`, `Int128`, `Int256`, `UInt128`, `UInt256` в качестве типов диапазона. В `RangeHashedDictionary` добавлена поддержка диапазонных значений, выходящих за пределы типа `Int64`. Закрывает [#28322](https://github.com/ClickHouse/ClickHouse/issues/28322). Добавлена опция `range_lookup_strategy` для указания типа поиска по диапазону `min`, `max`, по умолчанию `min`. Закрывает [#21647](https://github.com/ClickHouse/ClickHouse/issues/21647). Исправлены вычисления выделенных байт. Исправлено имя типа в `system.dictionaries` в случае словаря `ComplexKeyHashedDictionary`. [#33927](https://github.com/ClickHouse/ClickHouse/pull/33927) ([Maksim Kita](https://github.com/kitaisreal)).
@@ -1762,8 +1620,6 @@ doc_type: 'changelog'
* Исправлен разбор структуры таблиц из ZooKeeper: теперь метаданные из ZooKeeper сравниваются с локальными метаданными в канонической форме. Это помогает, когда канонические имена функций меняются между версиями ClickHouse. [#33933](https://github.com/ClickHouse/ClickHouse/pull/33933) ([sunny](https://github.com/sunny19930321)).
* Правильно экранировать отдельные символы при взаимодействии с LDAP. [#33401](https://github.com/ClickHouse/ClickHouse/pull/33401) ([IlyaTsoi](https://github.com/IlyaTsoi)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-10}
* Удалена поддержка небандлированной сборки. [#33690](https://github.com/ClickHouse/ClickHouse/pull/33690) ([Azat Khuzhin](https://github.com/azat)).
@@ -1774,8 +1630,6 @@ doc_type: 'changelog'
#### Исправление ошибок (заметное пользователям некорректное поведение в официальном стабильном или предстабильном релизе) {#bug-fix-user-visible-misbehaviour-in-official-stable-or-prestable-release-1}
-
-
* Исправлена ошибка ассерта при использовании `allow_experimental_parallel_reading_from_replicas` с `max_parallel_replicas`, равным 1. Это исправляет [#34525](https://github.com/ClickHouse/ClickHouse/issues/34525). [#34613](https://github.com/ClickHouse/ClickHouse/pull/34613) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Исправлена редкая ошибка при чтении пустых массивов, которая могла приводить к ошибке `Data compressed with different methods`. Она могла воспроизводиться, если у вас в основном пустые массивы, но не всегда, и чтение выполняется в обратном направлении с ORDER BY ... DESC. Эта ошибка возникает крайне редко. [#34327](https://github.com/ClickHouse/ClickHouse/pull/34327) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлен неверный результат функций `round`/`roundBankers` при округлении целочисленных значений малых типов. Закрывает [#33267](https://github.com/ClickHouse/ClickHouse/issues/33267). [#34562](https://github.com/ClickHouse/ClickHouse/pull/34562) ([李扬](https://github.com/taiyang-li)).
@@ -1833,8 +1687,6 @@ doc_type: 'changelog'
* Исправлена ошибка [#18206](https://github.com/ClickHouse/ClickHouse/issues/18206). [#33977](https://github.com/ClickHouse/ClickHouse/pull/33977) ([Vitaly Baranov](https://github.com/vitlibar)).
* Этот PR позволяет использовать несколько хранилищ LDAP в одном и том же списке пользовательских директорий. Ранее это работало, но позже перестало из‑за того, что тесты LDAP были отключены (они входят в состав тестов testflows). [#33574](https://github.com/ClickHouse/ClickHouse/pull/33574) ([Vitaly Baranov](https://github.com/vitlibar)).
-
-
### Релиз ClickHouse v22.1, 2022-01-18 {#a-id221a-clickhouse-release-v221-2022-01-18}
#### Заметки по обновлению {#upgrade-notes-4}
@@ -1844,8 +1696,6 @@ doc_type: 'changelog'
#### Новая функциональность {#new-feature-11}
-
-
* Реализовано автоматическое определение схемы данных для форматов ввода. Теперь можно опускать описание структуры (или указывать просто `auto`) в табличных функциях `file`, `url`, `s3`, `hdfs` и в параметрах `clickhouse-local`. Также можно опускать структуру в запросе `CREATE` для движков таблиц `File`, `HDFS`, `S3`, `URL`, `Merge`, `Buffer`, `Distributed` и `ReplicatedMergeTree` (если добавляются новые реплики). [#32455](https://github.com/ClickHouse/ClickHouse/pull/32455) ([Kruglov Pavel](https://github.com/Avogar)).
* Определять формат по расширению файла в табличных функциях `file`/`hdfs`/`s3`/`url` и табличных движках `HDFS`/`S3`/`URL`, а также для `SELECT INTO OUTFILE` и `INSERT FROM INFILE` [#33565](https://github.com/ClickHouse/ClickHouse/pull/33565) ([Kruglov Pavel](https://github.com/Avogar)). Закрывает [#30918](https://github.com/ClickHouse/ClickHouse/issues/30918). [#33443](https://github.com/ClickHouse/ClickHouse/pull/33443) ([OnePiece](https://github.com/zhongyuankai)).
* Инструмент для сбора диагностических данных, если потребуется поддержка. [#33175](https://github.com/ClickHouse/ClickHouse/pull/33175) ([Alexander Burmak](https://github.com/Alex-Burmak)).
@@ -1863,8 +1713,6 @@ doc_type: 'changelog'
* Добавлена функция `decodeURLFormComponent`, которая немного отличается от `decodeURLComponent`. Закрывает [#10298](https://github.com/ClickHouse/ClickHouse/issues/10298). [#33451](https://github.com/ClickHouse/ClickHouse/pull/33451) ([SuperDJY](https://github.com/cmsxbc)).
* Позволяет разделять правила свёртки `GraphiteMergeTree` для обычных и метрик с тегами (необязательное поле rule_type). [#33494](https://github.com/ClickHouse/ClickHouse/pull/33494) ([Michail Safronov](https://github.com/msaf1980)).
-
-
#### Повышение производительности {#performance-improvement-11}
* Добавлена поддержка переноса условий в `PREWHERE` (настройка `optimize_move_to_prewhere`) для таблиц движка `Merge`, если все их базовые таблицы поддерживают `PREWHERE`. [#33300](https://github.com/ClickHouse/ClickHouse/pull/33300) ([Anton Popov](https://github.com/CurtizJ)).
@@ -1882,8 +1730,6 @@ doc_type: 'changelog'
#### Экспериментальная функциональность {#experimental-feature-10}
-
-
* Параллельное чтение с нескольких реплик внутри шарда при распределённом запросе без использования `sample key`. Чтобы включить это, установите `allow_experimental_parallel_reading_from_replicas = 1` и задайте `max_parallel_replicas` в любое значение. Это закрывает [#26748](https://github.com/ClickHouse/ClickHouse/issues/26748). [#29279](https://github.com/ClickHouse/ClickHouse/pull/29279) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Реализована разреженная сериализация (sparse serialization). Она может уменьшить использование дискового пространства и улучшить производительность некоторых запросов для столбцов, которые содержат много значений по умолчанию (нулей). Её можно включить с помощью настройки `ratio_for_sparse_serialization`. Разреженная сериализация будет динамически выбрана для столбца, если отношение количества значений по умолчанию к общему количеству значений превышает указанный порог. Тип сериализации (обычная или разреженная) будет фиксирован для каждого столбца в куске, но может отличаться между кусками. [#22535](https://github.com/ClickHouse/ClickHouse/pull/22535) ([Anton Popov](https://github.com/CurtizJ)).
* Добавлена возможность "TABLE OVERRIDE" для настройки схем таблиц MaterializedMySQL. [#32325](https://github.com/ClickHouse/ClickHouse/pull/32325) ([Stig Bakken](https://github.com/stigsb)).
@@ -1896,8 +1742,6 @@ doc_type: 'changelog'
#### Улучшение {#improvement-11}
-
-
* Теперь функции преобразования даты и времени, которые генерируют время до `1970-01-01 00:00:00`, будут возвращать ноль вместо переполнения. [#29953](https://github.com/ClickHouse/ClickHouse/pull/29953) ([Amos Bird](https://github.com/amosbird)). Также исправлена ошибка в анализе индексов, возникавшая, если функция усечения даты возвращала значение до эпохи Unix.
* Всегда показывать в клиенте использование ресурсов (суммарная загрузка CPU, суммарное потребление RAM и максимальное потребление RAM на хост) в клиенте. [#33271](https://github.com/ClickHouse/ClickHouse/pull/33271) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* Улучшена сериализация и десериализация типа `Bool`, добавлена проверка диапазона значений. [#32984](https://github.com/ClickHouse/ClickHouse/pull/32984) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -1942,8 +1786,6 @@ doc_type: 'changelog'
* Обновление поля `modification_time` у части данных в `system.parts` после её перемещения [#32964](https://github.com/ClickHouse/ClickHouse/issues/32964). [#32965](https://github.com/ClickHouse/ClickHouse/pull/32965) ([save-my-heart](https://github.com/save-my-heart)).
* Потенциальная проблема, но её нельзя эксплуатировать: при изменении размера массива может произойти переполнение целого числа. [#33024](https://github.com/ClickHouse/ClickHouse/pull/33024) ([varadarajkumar](https://github.com/varadarajkumar)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-11}
* Добавлены пакеты, функциональные тесты и Docker-сборки для AArch64 (ARM)‑версии ClickHouse. [#32911](https://github.com/ClickHouse/ClickHouse/pull/32911) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). [#32415](https://github.com/ClickHouse/ClickHouse/pull/32415)
@@ -1960,8 +1802,6 @@ doc_type: 'changelog'
#### Исправление ошибок (заметное пользователю некорректное поведение в официальном стабильном или предстабильном релизе) {#bug-fix-user-visible-misbehavior-in-official-stable-or-prestable-release-4}
-
-
* Несколько исправлений для разбора форматов. Это актуально, если `clickhouse-server` предоставляет злоумышленнику доступ на запись. Специально сформированные входные данные в формате `Native` могут приводить к чтению неинициализированной памяти или сбою. Это актуально, если `clickhouse-server` предоставляет злоумышленнику доступ на запись. [#33050](https://github.com/ClickHouse/ClickHouse/pull/33050) ([Heena Bansal](https://github.com/HeenaBansal2009)). Исправлена ошибка выхода индекса Union-типа Apache Avro за границы допустимого диапазона в бинарном формате Apache Avro. [#33022](https://github.com/ClickHouse/ClickHouse/pull/33022) ([Harry Lee](https://github.com/HarryLeeIBM)). Исправлено разыменование нулевого указателя в данных `LowCardinality` при десериализации данных `LowCardinality` в формате `Native`. [#33021](https://github.com/ClickHouse/ClickHouse/pull/33021) ([Harry Lee](https://github.com/HarryLeeIBM)).
* Обработчик ClickHouse Keeper будет корректно удалять операцию после отправки ответа. [#32988](https://github.com/ClickHouse/ClickHouse/pull/32988) ([JackyWoo](https://github.com/JackyWoo)).
* Потенциальная ошибка на единицу при расчёте квот: предельное значение квоты не было достигнуто, однако лимит считался превышенным. Это исправляет [#31174](https://github.com/ClickHouse/ClickHouse/issues/31174). [#31656](https://github.com/ClickHouse/ClickHouse/pull/31656) ([sunny](https://github.com/sunny19930321)).
@@ -2020,6 +1860,4 @@ doc_type: 'changelog'
-
-
## [Журнал изменений за 2021 год](./2021.md) {#changelog-for-2021}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md
index ae15f522ad5..9ec74058f14 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2023.md
@@ -29,8 +29,6 @@ doc_type: 'changelog'
* Исправлена проверка на недетерминированные функции в выражениях TTL. Ранее в некоторых случаях можно было создать выражение TTL с недетерминированными функциями, что могло привести к неопределенному поведению в дальнейшем. Это исправляет [#37250](https://github.com/ClickHouse/ClickHouse/issues/37250). По умолчанию запрещены выражения TTL, которые не зависят ни от одного столбца таблицы. Их можно снова разрешить с помощью `SET allow_suspicious_ttl_expressions = 1` или `SET compatibility = '23.11'`. Закрывает [#37286](https://github.com/ClickHouse/ClickHouse/issues/37286). [#51858](https://github.com/ClickHouse/ClickHouse/pull/51858) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Настройка MergeTree `clean_deleted_rows` объявлена устаревшей, она больше ни на что не влияет. Ключевое слово `CLEANUP` для `OPTIMIZE` по умолчанию запрещено (его можно включить настройкой `allow_experimental_replacing_merge_with_cleanup`). [#58267](https://github.com/ClickHouse/ClickHouse/pull/58267) ([Alexander Tokmakov](https://github.com/tavplubix)). Это исправляет [#57930](https://github.com/ClickHouse/ClickHouse/issues/57930). Это закрывает [#54988](https://github.com/ClickHouse/ClickHouse/issues/54988). Это закрывает [#54570](https://github.com/ClickHouse/ClickHouse/issues/54570). Это закрывает [#50346](https://github.com/ClickHouse/ClickHouse/issues/50346). Это закрывает [#47579](https://github.com/ClickHouse/ClickHouse/issues/47579). Эта возможность удаляется, поскольку она неудачна. Мы должны убрать её как можно быстрее, так как другого варианта нет. [#57932](https://github.com/ClickHouse/ClickHouse/pull/57932) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Новая возможность {#new-feature}
* Реализована поддержка обновляемых материализованных представлений, запрошенных в [#33919](https://github.com/ClickHouse/ClickHouse/issues/33919). [#56946](https://github.com/ClickHouse/ClickHouse/pull/56946) ([Michael Kolupaev](https://github.com/al13n321), [Michael Guzov](https://github.com/koloshmet)).
@@ -56,8 +54,6 @@ doc_type: 'changelog'
-
-
#### Повышение производительности {#performance-improvement}
* Во время обработки FINAL извлекаются диапазоны частей таблицы MergeTree, которые не пересекаются между собой. Таким образом можно избежать дополнительной логики FINAL для этих непересекающихся диапазонов частей. В случае, когда количество дублирующихся значений с одинаковым первичным ключом невелико, производительность будет почти такой же, как без FINAL. Улучшена производительность чтения для MergeTree с FINAL, когда установлена настройка `do_not_merge_across_partitions_select_final`. [#58120](https://github.com/ClickHouse/ClickHouse/pull/58120) ([Maksim Kita](https://github.com/kitaisreal)).
@@ -81,8 +77,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement}
* Поддержка мягкого лимита памяти в Keeper. Он будет отклонять запросы, если потребление памяти приближается к максимальному значению. [#57271](https://github.com/ClickHouse/ClickHouse/pull/57271) ([Han Fei](https://github.com/hanfei1991)). [#57699](https://github.com/ClickHouse/ClickHouse/pull/57699) ([Han Fei](https://github.com/hanfei1991)).
@@ -127,8 +121,6 @@ doc_type: 'changelog'
* Добавлено имя базового бэкапа в таблицы `system.backups` и `system.backup_log` [#58178](https://github.com/ClickHouse/ClickHouse/pull/58178) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* Добавлена поддержка указания параметров запроса в утилите clickhouse-local через командную строку [#58210](https://github.com/ClickHouse/ClickHouse/pull/58210) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement}
* Случайным образом варьировать больше настроек [#39663](https://github.com/ClickHouse/ClickHouse/pull/39663) ([Anton Popov](https://github.com/CurtizJ)).
* Случайным образом отключать оптимизации в CI [#57315](https://github.com/ClickHouse/ClickHouse/pull/57315) ([Raúl Marín](https://github.com/Algunenano)).
@@ -138,8 +130,6 @@ doc_type: 'changelog'
* Удалить использование небезопасной функции C/POSIX `select` во внешних библиотеках. [#57467](https://github.com/ClickHouse/ClickHouse/pull/57467) ([Igor Nikonov](https://github.com/devcrafter)).
* Настройки, доступные только в ClickHouse Cloud, также будут присутствовать в open source-сборке ClickHouse для удобства. [#57638](https://github.com/ClickHouse/ClickHouse/pull/57638) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release}
* Исправлено возможное нарушение порядка сортировки в TTL GROUP BY [#49103](https://github.com/ClickHouse/ClickHouse/pull/49103) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
@@ -180,8 +170,6 @@ doc_type: 'changelog'
* Исправлено снижение производительности `CREATE VIEW` при огромном количестве подзапросов [#58220](https://github.com/ClickHouse/ClickHouse/pull/58220) ([Tao Wang](https://github.com/wangtZJU)).
* Исправлен параллельный разбор JSONCompactEachRow [#58181](https://github.com/ClickHouse/ClickHouse/pull/58181) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#58250](https://github.com/ClickHouse/ClickHouse/pull/58250) ([Kruglov Pavel](https://github.com/Avogar)).
-
-
### Релиз ClickHouse 23.11, 2023-12-06 {#2311}
#### Обратно несовместимое изменение {#backward-incompatible-change-1}
@@ -191,8 +179,6 @@ doc_type: 'changelog'
* Спецификаторы формата `%l`/`%k`/`%c` в функции `parseDateTime` теперь могут разбирать часы/месяцы без ведущих нулей, например, `select parseDateTime('2023-11-26 8:14', '%F %k:%i')` теперь работает. Установите `parsedatetime_parse_without_leading_zeros = 0`, чтобы вернуть прежнее поведение, когда требовались две цифры. Функция `formatDateTime` теперь также может выводить часы/месяцы без ведущих нулей. Это управляется настройкой `formatdatetime_format_without_leading_zeros`, но по умолчанию выключено, чтобы не ломать существующие сценарии использования. [#55872](https://github.com/ClickHouse/ClickHouse/pull/55872) ([Azat Khuzhin](https://github.com/azat)).
* Больше нельзя использовать агрегатную функцию `avgWeighted` с аргументами типа `Decimal`. Обходной путь: преобразовать аргументы в `Float64`. Это закрывает [#43928](https://github.com/ClickHouse/ClickHouse/issues/43928). Это закрывает [#31768](https://github.com/ClickHouse/ClickHouse/issues/31768). Это закрывает [#56435](https://github.com/ClickHouse/ClickHouse/issues/56435). Если вы использовали эту функцию внутри материализованных представлений или проекций с аргументами типа `Decimal`, свяжитесь с support@clickhouse.com. Исправлена ошибка в агрегатной функции `sumMap` и её работа замедлена примерно в 1,5–2 раза. Это не имеет значения, поскольку функция в любом случае мусорная. Это закрывает [#54955](https://github.com/ClickHouse/ClickHouse/issues/54955). Это закрывает [#53134](https://github.com/ClickHouse/ClickHouse/issues/53134). Это закрывает [#55148](https://github.com/ClickHouse/ClickHouse/issues/55148). Исправлена ошибка в функции `groupArraySample` — она использовала один и тот же seed генератора случайных чисел в случае, когда в запросе создаётся более одного агрегатного состояния. [#56350](https://github.com/ClickHouse/ClickHouse/pull/56350) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Новая возможность {#new-feature-1}
* Добавлена серверная настройка `async_load_databases` для асинхронной загрузки баз данных и таблиц. Сокращает время запуска сервера. Применяется к базам данных с движками `Ordinary`, `Atomic` и `Replicated`. Метаданные их таблиц загружаются асинхронно. Запрос к таблице повышает приоритет задания загрузки и ожидает его завершения. Добавлена новая таблица `system.asynchronous_loader` для интроспекции. [#49351](https://github.com/ClickHouse/ClickHouse/pull/49351) ([Sergei Trifonov](https://github.com/serxa)).
@@ -222,8 +208,6 @@ doc_type: 'changelog'
-
-
#### Повышение производительности {#performance-improvement-1}
* Адаптивные тайм-ауты при взаимодействии с S3. Первая попытка выполняется с короткими тайм-аутами на отправку и получение данных. [#56314](https://github.com/ClickHouse/ClickHouse/pull/56314) ([Sema Checherinda](https://github.com/CheSema)).
@@ -252,8 +236,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-1}
* Добавлена новая настройка `MergeTree` `add_implicit_sign_column_constraint_for_collapsing_engine` (по умолчанию отключена). При включении добавляется неявное ограничение CHECK для таблиц `CollapsingMergeTree`, которое ограничивает значение столбца `Sign` значениями -1 и 1. [#56701](https://github.com/ClickHouse/ClickHouse/issues/56701). [#56986](https://github.com/ClickHouse/ClickHouse/pull/56986) ([Kevin Mingtarja](https://github.com/kevinmingtarja)).
@@ -317,8 +299,6 @@ doc_type: 'changelog'
-
-
#### Улучшение сборки/тестирования/упаковки {#buildtestingpackaging-improvement-1}
* Добавлен тест SQLLogic. [#56078](https://github.com/ClickHouse/ClickHouse/pull/56078) ([Han Fei](https://github.com/hanfei1991)).
@@ -339,8 +319,6 @@ doc_type: 'changelog'
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-1}
* Исправлен экспериментальный Analyzer — оператор `INSERT ... SELECT` с подзапросом, ссылающимся на таблицу, в которую выполняется вставка, должен обрабатывать только вставляемый блок данных. [#50857](https://github.com/ClickHouse/ClickHouse/pull/50857) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
@@ -414,8 +392,6 @@ doc_type: 'changelog'
* Мутации MergeTree повторно используют зернистость индекса исходной части [#57352](https://github.com/ClickHouse/ClickHouse/pull/57352) ([Maksim Kita](https://github.com/kitaisreal)).
* FS cache: добавлено ограничение на фоновую загрузку [#57424](https://github.com/ClickHouse/ClickHouse/pull/57424) ([Kseniia Sumarokova](https://github.com/kssenii)).
-
-
### Релиз ClickHouse 23.10, 2023-11-02 {#2310}
#### Обратно несовместимое изменение {#backward-incompatible-change-2}
@@ -428,8 +404,6 @@ doc_type: 'changelog'
* Экспериментальный движок таблиц `S3Queue` был полностью переработан: изменён способ хранения информации в ZooKeeper, что позволяет выполнять меньше запросов в ZooKeeper, добавлено кэширование состояния ZooKeeper в случаях, когда известно, что состояние не изменится, улучшен процесс опроса S3, чтобы сделать его менее агрессивным, изменён способ сопровождения TTL и максимального набора для отслеживаемых файлов — теперь это фоновый процесс. Добавлены таблицы `system.s3queue` и `system.s3queue_log`. Закрывает [#54998](https://github.com/ClickHouse/ClickHouse/issues/54998). [#54422](https://github.com/ClickHouse/ClickHouse/pull/54422) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Произвольные пути на HTTP-эндпоинте больше не интерпретируются как запрос к эндпоинту `/query`. [#55521](https://github.com/ClickHouse/ClickHouse/pull/55521) ([Konstantin Bogdanov](https://github.com/thevar1able)).
-
-
#### Новая возможность {#new-feature-2}
* Добавлена функция `arrayFold(accumulator, x1, ..., xn -> expression, initial, array1, ..., arrayn)`, которая применяет лямбда-функцию к нескольким массивам одинаковой длины и накапливает результат в аккумуляторе. [#49794](https://github.com/ClickHouse/ClickHouse/pull/49794) ([Lirikl](https://github.com/Lirikl)).
@@ -458,8 +432,6 @@ doc_type: 'changelog'
-
-
#### Повышение производительности {#performance-improvement-2}
* Добавлена опция `query_plan_preserve_num_streams_after_window_functions` для сохранения числа потоков после вычисления оконных функций, чтобы обеспечить параллельную обработку потоков. [#50771](https://github.com/ClickHouse/ClickHouse/pull/50771) ([frinkr](https://github.com/frinkr)).
@@ -491,8 +463,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-2}
* Функции `toDayOfWeek` (MySQL-алиас: `DAYOFWEEK`), `toYearWeek` (`YEARWEEK`) и `toWeek` (`WEEK`) теперь поддерживают аргументы типа `String`. Это делает их поведение соответствующим поведению MySQL. [#55589](https://github.com/ClickHouse/ClickHouse/pull/55589) ([Robert Schulze](https://github.com/rschu1ze)).
@@ -536,8 +506,6 @@ doc_type: 'changelog'
* Исправлена опечатка в SQL-функции `minSampleSizeContinous` (переименована в `minSampleSizeContinuous`). Старое имя сохранено для обратной совместимости. Это закрывает: [#56139](https://github.com/ClickHouse/ClickHouse/issues/56139). [#56143](https://github.com/ClickHouse/ClickHouse/pull/56143) ([Dorota Szeremeta](https://github.com/orotaday)).
* Теперь перед завершением работы сервера выводится путь к повреждённым частям данных на диске. До этого изменения, если часть данных была повреждена на диске и сервер не мог запуститься, было почти невозможно понять, какая именно часть сломана. Теперь это исправлено. [#56181](https://github.com/ClickHouse/ClickHouse/pull/56181) ([Duc Canh Le](https://github.com/canhld94)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-2}
* Если база данных в Docker-контейнере уже инициализирована, ее не нужно инициализировать повторно при последующих запусках. Это потенциально может исправить проблему бесконечных перезапусков контейнера, когда базе данных не удается загрузиться в пределах 1000 попыток (актуально для очень больших баз данных и многосерверных конфигураций). [#50724](https://github.com/ClickHouse/ClickHouse/pull/50724) ([Alexander Nikolaev](https://github.com/AlexNik)).
* Ресурс с исходным кодом, включающим подмодули, собирается в специальной задаче сборки для Darwin. Его можно использовать для сборки ClickHouse без отдельной загрузки/клонирования подмодулей. [#51435](https://github.com/ClickHouse/ClickHouse/pull/51435) ([Ilya Yatsishin](https://github.com/qoega)).
@@ -547,8 +515,6 @@ doc_type: 'changelog'
* Скорректированы различия в сообщениях об ошибках между OpenSSL и BoringSSL, чтобы исправить функциональный тест. [#55975](https://github.com/ClickHouse/ClickHouse/pull/55975) ([MeenaRenganathan22](https://github.com/MeenaRenganathan22)).
* Использован upstream‑репозиторий для apache datasketches. [#55787](https://github.com/ClickHouse/ClickHouse/pull/55787) ([Nikita Taranov](https://github.com/nickitat)).
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-2}
* Пропускать создание жёстких ссылок на файлы инвертированного индекса при выполнении мутации [#47663](https://github.com/ClickHouse/ClickHouse/pull/47663) ([cangyin](https://github.com/cangyin)).
@@ -612,8 +578,6 @@ doc_type: 'changelog'
* Исправлен кэш схемы для резервного варианта JSON->JSONEachRow при изменении настроек [#56172](https://github.com/ClickHouse/ClickHouse/pull/56172) ([Kruglov Pavel](https://github.com/Avogar)).
* Добавлен обработчик ошибок в odbc-bridge [#56185](https://github.com/ClickHouse/ClickHouse/pull/56185) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
-
-
### Релиз ClickHouse 23.9, 2023-09-28 {#239}
#### Обратно несовместимые изменения {#backward-incompatible-change-3}
@@ -621,8 +585,6 @@ doc_type: 'changelog'
* Экспериментальный кэш метаданных частей удалён из кодовой базы. [#54215](https://github.com/ClickHouse/ClickHouse/pull/54215) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* По умолчанию отключена настройка `input_format_json_try_infer_numbers_from_strings`, чтобы по умолчанию не пытаться распознавать числа в строках в форматах JSON и таким образом избежать возможных ошибок парсинга, когда примеры данных содержат строки, похожие на числа. [#55099](https://github.com/ClickHouse/ClickHouse/pull/55099) ([Kruglov Pavel](https://github.com/Avogar)).
-
-
#### Новая возможность {#new-feature-3}
* Улучшено определение схемы из JSON-форматов: 1) Теперь можно выводить именованные `Tuple` из JSON-объектов без использования экспериментального типа JSON с помощью настройки `input_format_json_try_infer_named_tuples_from_objects` в JSON-форматах. Ранее без экспериментального типа JSON мы могли выводить JSON-объекты только как `String` или `Map`, теперь мы можем выводить именованный `Tuple`. Итоговый тип `Tuple` будет содержать все ключи объектов, которые были прочитаны в выборке данных во время определения схемы. Это может быть полезно для чтения структурированных JSON-данных без разреженных объектов. Настройка включена по умолчанию. 2) Разрешён разбор JSON-массива в столбец типа `String` с помощью настройки `input_format_json_read_arrays_as_strings`. Это может помочь при чтении массивов с элементами разных типов. 3) Разрешено использовать тип `String` для JSON-ключей с неизвестными типами (`null`/`[]`/`{}`) в выборке данных с помощью настройки `input_format_json_infer_incomplete_types_as_strings`. Теперь в JSON-форматах мы можем читать любое значение в столбец типа `String` и можем избежать ошибки `Cannot determine type for column 'column_name' by first 25000 rows of data, most likely this column contains only Nulls or empty Arrays/Maps` при определении схемы, используя тип `String` для неизвестных типов, так что данные будут успешно прочитаны. [#54427](https://github.com/ClickHouse/ClickHouse/pull/54427) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -648,8 +610,6 @@ doc_type: 'changelog'
-
-
#### Повышение производительности {#performance-improvement-3}
* Ускорено чтение из S3 за счет включения опережающей выборки (prefetch) по умолчанию. [#53709](https://github.com/ClickHouse/ClickHouse/pull/53709) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -672,14 +632,10 @@ doc_type: 'changelog'
* Повторное использование HTTP‑соединений в табличной функции `s3`. [#54812](https://github.com/ClickHouse/ClickHouse/pull/54812) ([Michael Kolupaev](https://github.com/al13n321)).
* Линейный поиск в `MergeTreeRangeReader::Stream::ceilRowsToCompleteGranules` заменён бинарным поиском. [#54869](https://github.com/ClickHouse/ClickHouse/pull/54869) ([usurai](https://github.com/usurai)).
-
-
#### Экспериментальная возможность {#experimental-feature}
* Создание индексов `Annoy` теперь может выполняться параллельно с использованием настройки `max_threads_for_annoy_index_creation`. [#54047](https://github.com/ClickHouse/ClickHouse/pull/54047) ([Robert Schulze](https://github.com/rschu1ze)).
* В режиме parallel replicas при работе с распределёнными таблицами чтение больше не выполняется со всех реплик. [#54199](https://github.com/ClickHouse/ClickHouse/pull/54199) ([Igor Nikonov](https://github.com/devcrafter)).
-
-
#### Улучшение {#improvement-3}
* Позволяет заменять слишком длинные имена файлов столбцов в частях данных `MergeTree` на хэши их имен. Это помогает избежать ошибки `File name too long` в некоторых случаях. [#50612](https://github.com/ClickHouse/ClickHouse/pull/50612) ([Anton Popov](https://github.com/CurtizJ)).
@@ -727,8 +683,6 @@ doc_type: 'changelog'
* Keeper динамически изменяет уровни логирования. [#50372](https://github.com/ClickHouse/ClickHouse/pull/50372) ([helifu](https://github.com/helifu)).
* Добавлена функция `timestamp` для совместимости с MySQL. Закрывает [#54275](https://github.com/ClickHouse/ClickHouse/issues/54275). [#54639](https://github.com/ClickHouse/ClickHouse/pull/54639) ([Nikolay Degterinsky](https://github.com/evillique)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-3}
* Обновлён компилятор для официальных сборок ClickHouse и сборок непрерывной интеграции с Clang 16 до Clang 17. [#53831](https://github.com/ClickHouse/ClickHouse/pull/53831) ([Robert Schulze](https://github.com/rschu1ze)).
* Повторно сгенерированы TLD-данные для поиска (`tldLookup.generated.cpp`). [#54269](https://github.com/ClickHouse/ClickHouse/pull/54269) ([Bharat Nallan](https://github.com/bharatnc)).
@@ -738,8 +692,6 @@ doc_type: 'changelog'
* Если компоновщик отличен от LLD, сборка завершается с фатальной ошибкой. [#55036](https://github.com/ClickHouse/ClickHouse/pull/55036) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Заменена библиотека для обработки (кодирования/декодирования) значений base64 с Turbo-Base64 на aklomp-base64. Обе используют SIMD-ускорение на x86 и ARM, но: 1) лицензия последней (BSD-2) более благоприятна для ClickHouse, тогда как Turbo64 за это время перешла на GPL-3; 2) благодаря большему числу звёзд на GitHub aklomp-base64 выглядит более перспективной; 3) aklomp-base64 имеет немного более удобный API (что, возможно, субъективно); и 4) aklomp-base64 не требует от нас обходить ошибки (например, не потокобезопасную инициализацию). Примечание: aklomp-base64 отклоняет значения base64 без padding’а, тогда как Turbo-Base64 пытается декодировать их по принципу best effort. RFC-4648 прямо не устанавливает, является ли padding обязательным, но в зависимости от контекста это может быть изменением поведения, о котором следует помнить. [#54119](https://github.com/ClickHouse/ClickHouse/pull/54119) ([Mikhail Koviazin](https://github.com/mkmkme)).
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-3}
* Исправлена работа REPLACE/MOVE PARTITION с репликацией без копирования данных (примечание: «zero-copy replication» — экспериментальная возможность) [#54193](https://github.com/ClickHouse/ClickHouse/pull/54193) ([Alexander Tokmakov](https://github.com/tavplubix)).
@@ -798,8 +750,6 @@ doc_type: 'changelog'
* Fix: вставка с кворумом без повторных попыток Keeper [#55026](https://github.com/ClickHouse/ClickHouse/pull/55026) ([Igor Nikonov](https://github.com/devcrafter)).
* Исправлено простое состояние с Nullable [#55030](https://github.com/ClickHouse/ClickHouse/pull/55030) ([Pedro Riera](https://github.com/priera)).
-
-
### Релиз ClickHouse 23.8 LTS, 2023-08-31 {#238}
#### Обратно несовместимые изменения {#backward-incompatible-change-4}
@@ -809,8 +759,6 @@ doc_type: 'changelog'
* Функция кэша метаданных объявлена устаревшей. Она является экспериментальной, и мы никогда её не использовали. Эта возможность опасна: [#51182](https://github.com/ClickHouse/ClickHouse/issues/51182). Удалена системная таблица `system.merge_tree_metadata_cache`. Кэш метаданных всё ещё доступен в этой версии, но будет вскоре удалён. Это закрывает задачу [#39197](https://github.com/ClickHouse/ClickHouse/issues/39197). [#51303](https://github.com/ClickHouse/ClickHouse/pull/51303) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Отключена поддержка 3DES в TLS-соединениях. [#52893](https://github.com/ClickHouse/ClickHouse/pull/52893) ([Kenji Noguchi](https://github.com/knoguchi)).
-
-
#### Новая возможность {#new-feature-4}
* Прямой импорт из архивов в форматах zip/7z/tar. Пример: `file('*.zip :: *.csv')`. [#50321](https://github.com/ClickHouse/ClickHouse/pull/50321) ([nikitakeba](https://github.com/nikitakeba)).
@@ -838,15 +786,11 @@ doc_type: 'changelog'
* Добавлена поддержка сложения и вычитания массивов: `[5,2] + [1,7]`. Деление и умножение не реализованы из-за неоднозначности между поэлементным умножением и скалярным произведением аргументов. Закрывает [#49939](https://github.com/ClickHouse/ClickHouse/issues/49939). [#52625](https://github.com/ClickHouse/ClickHouse/pull/52625) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Добавлена поддержка строковых литералов в качестве имён таблиц. Закрывает [#52178](https://github.com/ClickHouse/ClickHouse/issues/52178). [#52635](https://github.com/ClickHouse/ClickHouse/pull/52635) ([hendrik-m](https://github.com/hendrik-m)).
-
-
#### Экспериментальная возможность {#experimental-feature-1}
* Добавлен новый движок таблицы `S3Queue` для потокового импорта данных из S3. Закрывает [#37012](https://github.com/ClickHouse/ClickHouse/issues/37012). [#49086](https://github.com/ClickHouse/ClickHouse/pull/49086) ([s-kat](https://github.com/s-kat)). Он ещё не готов к использованию. Не используйте его.
* Добавлена поддержка параллельного чтения с реплик через распределённую таблицу. Связано с [#49708](https://github.com/ClickHouse/ClickHouse/issues/49708). [#53005](https://github.com/ClickHouse/ClickHouse/pull/53005) ([Igor Nikonov](https://github.com/devcrafter)).
* Добавлена экспериментальная поддержка HNSW как метода приблизительного поиска ближайших соседей. [#53447](https://github.com/ClickHouse/ClickHouse/pull/53447) ([Davit Vardanyan](https://github.com/davvard)). В настоящее время предназначена для тех, кто продолжает работу над реализацией. Не используйте это.
-
-
#### Повышение производительности {#performance-improvement-4}
* Проталкивание фильтров в Parquet. То есть при чтении файлов формата Parquet группы строк (части файла) пропускаются в зависимости от условия WHERE и min/max значений в каждом столбце. В частности, если файл примерно отсортирован по определённому столбцу, запросы с фильтрацией по короткому диапазону значений этого столбца будут выполняться значительно быстрее. [#52951](https://github.com/ClickHouse/ClickHouse/pull/52951) ([Michael Kolupaev](https://github.com/al13n321)).
@@ -871,8 +815,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-4}
* Добавлен параметр конфигурации `stderr_reaction` для управления реакцией (`none`, `log` или `throw`) при наличии данных в stderr внешней команды. Это упрощает отладку внешних команд. [#43210](https://github.com/ClickHouse/ClickHouse/pull/43210) ([Amos Bird](https://github.com/amosbird)).
@@ -948,8 +890,6 @@ doc_type: 'changelog'
-
-
#### Улучшение сборки/тестирования/упаковки {#buildtestingpackaging-improvement-4}
* Не экспортировать символы бинарного файла ClickHouse для динамического линковщика. Это может исправить [#43933](https://github.com/ClickHouse/ClickHouse/issues/43933). [#47475](https://github.com/ClickHouse/ClickHouse/pull/47475) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -975,8 +915,6 @@ doc_type: 'changelog'
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-4}
* Не сбрасывать (экспериментальный) индекс Annoy во время построения, если имеется более одной метки [#51325](https://github.com/ClickHouse/ClickHouse/pull/51325) ([Tian Xinhui](https://github.com/xinhuitian)).
@@ -1043,8 +981,6 @@ doc_type: 'changelog'
* Исправлена потенциальная ошибка сегментации при использовании движка PostgreSQL [#53847](https://github.com/ClickHouse/ClickHouse/pull/53847) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Исправлен алиас named_collection_admin [#54066](https://github.com/ClickHouse/ClickHouse/pull/54066) ([Kseniia Sumarokova](https://github.com/kssenii)).
-
-
### Релиз ClickHouse 23.7, 2023-07-27 {#237}
#### Обратно несовместимое изменение {#backward-incompatible-change-5}
@@ -1054,8 +990,6 @@ doc_type: 'changelog'
* Проверка метаданных проекций теперь выполняется так же, как проверка обычных метаданных. Это изменение может помешать запуску сервера в случае, если была таблица с некорректной проекцией. Пример — проекция, которая создала позиционные столбцы в PK (например, `projection p (select * order by 1, 4)`, что не допускается в PK таблицы и может вызвать сбой при вставке/слиянии). Удалите такие проекции до обновления. Исправляет [#52353](https://github.com/ClickHouse/ClickHouse/issues/52353). [#52361](https://github.com/ClickHouse/ClickHouse/pull/52361) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Экспериментальная функция `hashid` удалена из-за ошибки. Качество реализации было сомнительным с самого начала, и она так и не вышла из экспериментального статуса. Закрывает [#52406](https://github.com/ClickHouse/ClickHouse/issues/52406). [#52449](https://github.com/ClickHouse/ClickHouse/pull/52449) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Новая возможность {#new-feature-5}
* Добавлен движок базы данных `Overlay` для объединения нескольких баз данных в одну. Добавлен движок базы данных `Filesystem` для представления каталога в файловой системе в виде набора неявно доступных таблиц с автоматически определяемыми форматами и структурами. Новый движок базы данных `S3` позволяет в режиме «только чтение» взаимодействовать с хранилищем S3, представляя префикс в виде набора таблиц. Новый движок базы данных `HDFS` позволяет взаимодействовать с хранилищем HDFS аналогичным образом. [#48821](https://github.com/ClickHouse/ClickHouse/pull/48821) ([alekseygolub](https://github.com/alekseygolub)).
@@ -1091,8 +1025,6 @@ doc_type: 'changelog'
-
-
#### Повышение производительности {#performance-improvement-5}
* Включить автоматический выбор разреженного формата сериализации по умолчанию. Это улучшает производительность. Формат поддерживается, начиная с версии 22.1. После этого изменения откат на версии ниже 22.1 может быть невозможен. Для отката может потребоваться установить `ratio_of_defaults_for_sparse_serialization=0.9375` [55153](https://github.com/ClickHouse/ClickHouse/issues/55153). Вы можете отключить использование разреженного формата сериализации, задав настройку `ratio_of_defaults_for_sparse_serialization = 1` для ваших таблиц MergeTree. [#49631](https://github.com/ClickHouse/ClickHouse/pull/49631) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -1113,8 +1045,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-5}
* Используйте read_bytes/total_bytes_to_read для индикатора выполнения в табличных функциях s3/file/url/... для более наглядного отображения прогресса. [#51286](https://github.com/ClickHouse/ClickHouse/pull/51286) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -1160,8 +1090,6 @@ doc_type: 'changelog'
* Ожидать блокировку zero-copy репликации, даже если некоторые диски её не поддерживают. [#52376](https://github.com/ClickHouse/ClickHouse/pull/52376) ([Raúl Marín](https://github.com/Algunenano)).
* Теперь межсерверный порт будет закрываться только после остановки таблиц. [#52498](https://github.com/ClickHouse/ClickHouse/pull/52498) ([alesapin](https://github.com/alesapin)).
-
-
#### Экспериментальная возможность {#experimental-feature-2}
* Запись файлов Parquet выполняется в 10 раз быстрее, теперь она многопоточная. Скорость почти такая же, как у чтения. [#49367](https://github.com/ClickHouse/ClickHouse/pull/49367) ([Michael Kolupaev](https://github.com/al13n321)). Это управляется настройкой `output_format_parquet_use_custom_encoder`, которая по умолчанию отключена, поскольку возможность пока реализована неидеально.
* Добавлена поддержка [PRQL](https://prql-lang.org/) как языка запросов. [#50686](https://github.com/ClickHouse/ClickHouse/pull/50686) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
@@ -1175,8 +1103,6 @@ doc_type: 'changelog'
* Настройка `session_timezone` (новая в версии 23.6) переведена в разряд экспериментальных. [#52445](https://github.com/ClickHouse/ClickHouse/pull/52445) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Добавлена поддержка команды ZooKeeper `reconfig` для ClickHouse Keeper с инкрементальной переконфигурацией, которую можно включить с помощью настройки `keeper_server.enable_reconfiguration`. Поддерживается добавление серверов, удаление серверов и изменение приоритетов серверов. [#49450](https://github.com/ClickHouse/ClickHouse/pull/49450) ([Mike Kot](https://github.com/myrrc)). Предполагается, что эта возможность реализована не полностью.
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-5}
* Добавлены экспериментальные сборки ClickHouse для Linux RISC-V 64 в CI. [#31398](https://github.com/ClickHouse/ClickHouse/pull/31398) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Добавлена проверка интеграционных тестов с включённым Analyzer. [#50926](https://github.com/ClickHouse/ClickHouse/pull/50926) [#52210](https://github.com/ClickHouse/ClickHouse/pull/52210) ([Dmitry Novik](https://github.com/novikd)).
@@ -1187,8 +1113,6 @@ doc_type: 'changelog'
* Таблица `system.licenses` теперь включает жёстко форкнутую библиотеку Poco. Это закрывает [#52066](https://github.com/ClickHouse/ClickHouse/issues/52066). [#52127](https://github.com/ClickHouse/ClickHouse/pull/52127) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Добавлена проверка на отсутствие неправильной пунктуации: пробела перед запятой, как в `Hello ,world`, вместо `Hello, world`. [#52549](https://github.com/ClickHouse/ClickHouse/pull/52549) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-5}
* Исправлена синхронизация таблиц в MaterializedPostgreSQL [#49698](https://github.com/ClickHouse/ClickHouse/pull/49698) ([Kseniia Sumarokova](https://github.com/kssenii)).
@@ -1239,8 +1163,6 @@ doc_type: 'changelog'
* Исправлена проблема с выполнением операции LIGHTWEIGHT DELETE после удаления проекции [#52517](https://github.com/ClickHouse/ClickHouse/pull/52517) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлена потенциальная ошибка "Cannot drain connections: cancel first" [#52585](https://github.com/ClickHouse/ClickHouse/pull/52585) ([Kruglov Pavel](https://github.com/Avogar)).
-
-
### Релиз ClickHouse 23.6, 2023-06-29 {#236}
#### Обратно несовместимые изменения {#backward-incompatible-change-6}
@@ -1249,8 +1171,6 @@ doc_type: 'changelog'
* Значения по умолчанию для `http_max_field_value_size` и `http_max_field_name_size` уменьшены до 128 KiB. [#51163](https://github.com/ClickHouse/ClickHouse/pull/51163) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Метрики CGroups, связанные с CPU, заменены одной метрикой `CGroupMaxCPU` для повышения удобства использования. Метрики использования CPU `Normalized` теперь нормализуются по лимитам CGroups вместо общего количества CPU, когда такие лимиты установлены. Это закрывает [#50836](https://github.com/ClickHouse/ClickHouse/issues/50836). [#50835](https://github.com/ClickHouse/ClickHouse/pull/50835) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Новая возможность {#new-feature-6}
* Функция `transform`, а также `CASE` с сопоставлением по значению теперь поддерживают все типы данных. Это закрывает [#29730](https://github.com/ClickHouse/ClickHouse/issues/29730). Это закрывает [#32387](https://github.com/ClickHouse/ClickHouse/issues/32387). Это закрывает [#50827](https://github.com/ClickHouse/ClickHouse/issues/50827). Это закрывает [#31336](https://github.com/ClickHouse/ClickHouse/issues/31336). Это закрывает [#40493](https://github.com/ClickHouse/ClickHouse/issues/40493). [#51351](https://github.com/ClickHouse/ClickHouse/pull/51351) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Добавлен параметр `--rename_files_after_processing `. Это закрывает [#34207](https://github.com/ClickHouse/ClickHouse/issues/34207). [#49626](https://github.com/ClickHouse/ClickHouse/pull/49626) ([alekseygolub](https://github.com/alekseygolub)).
@@ -1262,8 +1182,6 @@ doc_type: 'changelog'
* Добавлена настройка `session_timezone`; она используется как часовой пояс по умолчанию для сессии, когда он явно не указан. [#44149](https://github.com/ClickHouse/ClickHouse/pull/44149) ([Andrey Zvonov](https://github.com/zvonand)).
* Кодек DEFLATE_QPL теперь управляется серверной настройкой `enable_deflate_qpl_codec` (по умолчанию: false) вместо настройки `allow_experimental_codecs`. Это означает, что DEFLATE_QPL больше не считается экспериментальным. [#50775](https://github.com/ClickHouse/ClickHouse/pull/50775) ([Robert Schulze](https://github.com/rschu1ze)).
-
-
#### Улучшение производительности {#performance-improvement-6}
* Улучшено планирование задач выбора слияний и очистки в `ReplicatedMergeTree`. Задачи не будут выполняться слишком часто, когда нет данных для слияния или очистки. Добавлены настройки `max_merge_selecting_sleep_ms`, `merge_selecting_sleep_slowdown_factor`, `max_cleanup_delay_period` и `cleanup_thread_preferred_points_per_iteration`. Это изменение должно закрыть [#31919](https://github.com/ClickHouse/ClickHouse/issues/31919). [#50107](https://github.com/ClickHouse/ClickHouse/pull/50107) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Реализовано проталкивание фильтра через `CROSS JOIN`. [#50605](https://github.com/ClickHouse/ClickHouse/pull/50605) ([Han Fei](https://github.com/hanfei1991)).
@@ -1282,8 +1200,6 @@ doc_type: 'changelog'
* Добавлено случайное ожидание перед выполнением крупных слияний/мутаций для более равномерного распределения нагрузки между репликами в случае репликации без копирования (zero-copy replication). [#51282](https://github.com/ClickHouse/ClickHouse/pull/51282) ([alesapin](https://github.com/alesapin)).
* Запросы `ALTER PARTITION` и мутации не реплицируются через базу данных `Replicated`, если у неё только один шард и базовая таблица — `ReplicatedMergeTree`. [#51049](https://github.com/ClickHouse/ClickHouse/pull/51049) ([Alexander Tokmakov](https://github.com/tavplubix)).
-
-
#### Улучшение {#improvement-6}
* Ослаблены пороги для состояния «too many parts», чтобы соответствовать современным требованиям. Восстановлен механизм обратного давления (backpressure) во время длительных запросов INSERT. [#50856](https://github.com/ClickHouse/ClickHouse/pull/50856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -1305,8 +1221,6 @@ doc_type: 'changelog'
* Улучшена проверка частей данных на дисках с файловым кэшем. [#51164](https://github.com/ClickHouse/ClickHouse/pull/51164) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлено периодически некорректное значение `current_elements_num` в кэше файловой системы. [#51242](https://github.com/ClickHouse/ClickHouse/pull/51242) ([Kseniia Sumarokova](https://github.com/kssenii)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-6}
* Во встроенный standalone-бинарник keeper добавлен embedded keeper-client. [#50964](https://github.com/ClickHouse/ClickHouse/pull/50964) ([pufit](https://github.com/pufit)).
* Теперь используется актуальная версия LZ4. [#50621](https://github.com/ClickHouse/ClickHouse/pull/50621) ([Nikita Taranov](https://github.com/nickitat)).
@@ -1317,8 +1231,6 @@ doc_type: 'changelog'
#### Исправление ошибок (заметное пользователю некорректное поведение в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-6}
-
-
* Корректно отображать статус загрузки исполняемых словарей [#48775](https://github.com/ClickHouse/ClickHouse/pull/48775) ([Anton Kozlov](https://github.com/tonickkozlov)).
* Корректная мутация индексов пропуска и проекций [#50104](https://github.com/ClickHouse/ClickHouse/pull/50104) ([Amos Bird](https://github.com/amosbird)).
* Рефакторинг изменяемых компонентов [#50489](https://github.com/ClickHouse/ClickHouse/pull/50489) ([vdimir](https://github.com/vdimir)).
@@ -1351,8 +1263,6 @@ doc_type: 'changelog'
* Исправлен сбой фаззера в ActionsDAG [#51301](https://github.com/ClickHouse/ClickHouse/pull/51301) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Удалён лишний код из функции `transform` [#51350](https://github.com/ClickHouse/ClickHouse/pull/51350) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
### Релиз ClickHouse 23.5, 2023-06-08 {#235}
#### Заметки по обновлению {#upgrade-notes}
@@ -1365,8 +1275,6 @@ doc_type: 'changelog'
* Отменить изменение "`groupArray` returns cannot be nullable" (из‑за нарушения двоичной совместимости для `groupArray`/`groupArrayLast`/`groupArraySample` над типами `Nullable`, что, вероятно, приведет к ошибкам `TOO_LARGE_ARRAY_SIZE` или `CANNOT_READ_ALL_DATA`). [#49971](https://github.com/ClickHouse/ClickHouse/pull/49971) ([Azat Khuzhin](https://github.com/azat)).
* Настройка `enable_memory_bound_merging_of_aggregation_results` включена по умолчанию. Если вы обновляетесь с версии до 22.12 включительно, мы рекомендуем установить этот флаг в значение `false` до завершения обновления. [#50319](https://github.com/ClickHouse/ClickHouse/pull/50319) ([Nikita Taranov](https://github.com/nickitat)).
-
-
#### Новая возможность {#new-feature-7}
* Добавлен движок хранения AzureBlobStorage и табличная функция azureBlobStorage. Набор поддерживаемых возможностей во многом аналогичен движку/табличной функции S3 [#50604] ([https://github.com/ClickHouse/ClickHouse/pull/50604](https://github.com/ClickHouse/ClickHouse/pull/50604)) ([alesapin](https://github.com/alesapin)) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni).
@@ -1402,8 +1310,6 @@ doc_type: 'changelog'
-
-
#### Повышение производительности {#performance-improvement-7}
* Метки и первичный ключ по умолчанию сжимаются. Это значительно сокращает время выполнения холодных запросов. Примечания по обновлению: поддержка сжатых меток и первичного ключа была добавлена в версии 22.9. Если вы включили сжатые метки или первичный ключ или установили версию 23.5 или новее, в которых сжатые метки и первичный ключ включены по умолчанию, вы не сможете выполнить откат на версию 22.8 или более раннюю. Вы также можете явно отключить сжатые метки или первичный ключ, указав настройки `compress_marks` и `compress_primary_key` в секции `` конфигурационного файла сервера. [#42587](https://github.com/ClickHouse/ClickHouse/pull/42587) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -1431,8 +1337,6 @@ doc_type: 'changelog'
* Не отправлять `HEAD`‑запросы для всех ключей при определении схемы Iceberg, а только для ключей, используемых для чтения данных. [#50203](https://github.com/ClickHouse/ClickHouse/pull/50203) ([Kruglov Pavel](https://github.com/Avogar)).
* Параметр `enable_memory_bound_merging_of_aggregation_results` включен по умолчанию. [#50319](https://github.com/ClickHouse/ClickHouse/pull/50319) ([Nikita Taranov](https://github.com/nickitat)).
-
-
#### Экспериментальная функция {#experimental-feature-4}
* Кодек `DEFLATE_QPL` снижает минимальные требования к версии SIMD до SSE 4.2. [изменение документации в qpl](https://github.com/intel/qpl/commit/3f8f5cea27739f5261e8fd577dc233ffe88bf679) — Intel® QPL использует диспетчер ядер на этапе выполнения и проверку CPUID для выбора наилучшей доступной реализации (sse/avx2/avx512) — переработан CMake-файл для сборки qpl в ClickHouse, чтобы привести его в соответствие с последней версией upstream qpl. [#49811](https://github.com/ClickHouse/ClickHouse/pull/49811) ([jasperzhu](https://github.com/jinjunzh)).
* Добавлена начальная поддержка выполнения операций JOIN с исключительно параллельными репликами. [#49544](https://github.com/ClickHouse/ClickHouse/pull/49544) ([Raúl Marín](https://github.com/Algunenano)).
@@ -1440,8 +1344,6 @@ doc_type: 'changelog'
* Parallel Replicas: 1) Исправлена ошибка `NOT_FOUND_COLUMN_IN_BLOCK` при использовании параллельных реплик с нереплицируемым хранилищем и отключённой настройкой `parallel_replicas_for_non_replicated_merge_tree`. 2) Теперь `allow_experimental_parallel_reading_from_replicas` может принимать 3 значения — 0, 1 и 2. 0 — отключено, 1 — включено, при ошибке они бесшумно отключаются (в случае FINAL или JOIN), 2 — включено, при ошибке выбрасывается исключение. 3) Если модификатор FINAL используется в запросе SELECT и параллельные реплики включены, ClickHouse попытается отключить их, если `allow_experimental_parallel_reading_from_replicas` установлено в 1, и выбросит исключение в противном случае. [#50195](https://github.com/ClickHouse/ClickHouse/pull/50195) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* При включённых параллельных репликах они всегда будут пропускать недоступные серверы (поведение управляется настройкой `skip_unavailable_shards`, которая включена по умолчанию и может быть только отключена). Это закрывает задачу: [#48565](https://github.com/ClickHouse/ClickHouse/issues/48565). [#50293](https://github.com/ClickHouse/ClickHouse/pull/50293) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
-
-
#### Улучшение {#improvement-7}
* Команда `BACKUP` не расшифровывает данные с зашифрованных дисков при создании резервной копии. Вместо этого данные будут сохранены в резервной копии в зашифрованном виде. Такие резервные копии можно восстановить только на зашифрованный диск с тем же (или расширенным) списком ключей шифрования. [#48896](https://github.com/ClickHouse/ClickHouse/pull/48896) ([Vitaly Baranov](https://github.com/vitlibar)).
@@ -1515,8 +1417,6 @@ doc_type: 'changelog'
-
-
#### Улучшение сборки/тестирования/упаковки {#buildtestingpackaging-improvement-7}
* Новый и улучшенный `keeper-bench`. Все настраивается из YAML/XML-файла: - генератор запросов - каждый тип генератора запросов может иметь собственный набор полей - multi-запросы могут быть сгенерированы просто задав ту же структуру под ключом `multi` - для каждого запроса или подзапроса в multi можно определить поле `weight` для управления распределением - можно задать деревья, которые нужно подготовить для тестового прогона - хосты можно задать с полностью настраиваемыми тайм-аутами и управлять количеством сессий, генерируемых для каждого хоста - целые числа, определенные полями `min_value` и `max_value`, являются генераторами случайных чисел. [#48547](https://github.com/ClickHouse/ClickHouse/pull/48547) ([Antonio Andelic](https://github.com/antonio2368)).
@@ -1537,12 +1437,8 @@ doc_type: 'changelog'
* Обновлён c-ares до версии 1.19.1 (ложные CVE-2023-32067, CVE-2023-31130, CVE-2023-31147). [#50403](https://github.com/ClickHouse/ClickHouse/pull/50403) ([Robert Schulze](https://github.com/rschu1ze)).
* Исправлено ложное сообщение об уязвимости CVE-2022-2469 в libgsasl. [#50404](https://github.com/ClickHouse/ClickHouse/pull/50404) ([Robert Schulze](https://github.com/rschu1ze)).
-
-
#### Исправление ошибки (некорректное поведение, заметное пользователю, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-7}
-
-
* ActionsDAG: исправлена некорректная оптимизация [#47584](https://github.com/ClickHouse/ClickHouse/pull/47584) ([Salvatore Mesoraca](https://github.com/aiven-sal)).
* Корректно обрабатывать конкурентные снапшоты в Keeper [#48466](https://github.com/ClickHouse/ClickHouse/pull/48466) ([Antonio Andelic](https://github.com/antonio2368)).
* MergeTreeMarksLoader теперь содержит DataPart вместо DataPartStorage [#48515](https://github.com/ClickHouse/ClickHouse/pull/48515) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
@@ -1627,8 +1523,6 @@ doc_type: 'changelog'
* Исправлено преобразование значения Null в LowCardinality(Nullable) в табличной функции values [#50637](https://github.com/ClickHouse/ClickHouse/pull/50637) ([Kruglov Pavel](https://github.com/Avogar)).
* Отменена некорректная оптимизация для RegExpTreeDictionary [#50642](https://github.com/ClickHouse/ClickHouse/pull/50642) ([Johann Gan](https://github.com/johanngan)).
-
-
### Релиз ClickHouse 23.4, 2023-04-26 {#234}
#### Изменения, несовместимые с предыдущими версиями {#backward-incompatible-change-7}
@@ -1636,8 +1530,6 @@ doc_type: 'changelog'
* Это изменение имеет смысл только если вы используете кэш виртуальной файловой системы. Если `path` в конфигурации кэша виртуальной файловой системы не пуст и не является абсолютным путем, то он будет размещен в `/caches/`. [#48784](https://github.com/ClickHouse/ClickHouse/pull/48784) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Первичные/вторичные индексы и ключи сортировки с идентичными выражениями теперь отклоняются. Это поведение можно отключить с помощью настройки `allow_suspicious_indices`. [#48536](https://github.com/ClickHouse/ClickHouse/pull/48536) ([凌涛](https://github.com/lingtaolf)).
-
-
#### Новая возможность {#new-feature-8}
* Поддержка новой агрегатной функции `quantileGK`/`quantilesGK`, подобной [approx_percentile](https://spark.apache.org/docs/latest/api/sql/index.html#approx_percentile) в Spark. Алгоритм Greenwald–Khanna описан в [http://infolab.stanford.edu/~datar/courses/cs361a/papers/quantiles.pdf](http://infolab.stanford.edu/~datar/courses/cs361a/papers/quantiles.pdf). [#46428](https://github.com/ClickHouse/ClickHouse/pull/46428) ([李扬](https://github.com/taiyang-li)).
@@ -1655,8 +1547,6 @@ doc_type: 'changelog'
* Функции replaceOne(), replaceAll(), replaceRegexpOne() и replaceRegexpAll() теперь могут вызываться с неконстантными аргументами шаблона и замены. [#46589](https://github.com/ClickHouse/ClickHouse/pull/46589) ([Robert Schulze](https://github.com/rschu1ze)).
* Добавлены функции для работы со столбцами типа `Map`: `mapConcat`, `mapSort`, `mapExists`. [#48071](https://github.com/ClickHouse/ClickHouse/pull/48071) ([Anton Popov](https://github.com/CurtizJ)).
-
-
#### Улучшение производительности {#performance-improvement-8}
* Чтение файлов в формате `Parquet` теперь существенно быстрее. Операции ввода-вывода и декодирование выполняются параллельно (управляется настройкой `max_threads`), и считываются только необходимые диапазоны данных. [#47964](https://github.com/ClickHouse/ClickHouse/pull/47964) ([Michael Kolupaev](https://github.com/al13n321)).
* При запуске мутации с IN (подзапросом) вида: `ALTER TABLE t UPDATE col='new value' WHERE id IN (SELECT id FROM huge_table)` и наличии у таблицы `t` нескольких частей для каждой части в памяти строится множество для подзапроса `SELECT id FROM huge_table`. Если частей много, это может потреблять значительный объём памяти (и приводить к OOM) и CPU. Решение — ввести краткоживущий кэш множеств, которые в данный момент строятся задачами мутации. Если другая задача той же мутации выполняется параллельно, она может найти множество в кэше, дождаться завершения его построения и переиспользовать его. [#46835](https://github.com/ClickHouse/ClickHouse/pull/46835) ([Alexander Gololobov](https://github.com/davenger)).
@@ -1669,16 +1559,12 @@ doc_type: 'changelog'
* Снижено потребление памяти при нескольких мутациях `ALTER DELETE`. [#48522](https://github.com/ClickHouse/ClickHouse/pull/48522) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Удалены избыточные попытки подключения, если включена настройка `skip_unavailable_shards`. [#48771](https://github.com/ClickHouse/ClickHouse/pull/48771) ([Azat Khuzhin](https://github.com/azat)).
-
-
#### Экспериментальная функция {#experimental-feature-5}
* Записи в кэше запросов теперь схлопываются до max_block_size и сжимаются. [#45912](https://github.com/ClickHouse/ClickHouse/pull/45912) ([Robert Schulze](https://github.com/rschu1ze)).
* Теперь можно задавать квоты в кэше запросов для отдельных пользователей. [#48284](https://github.com/ClickHouse/ClickHouse/pull/48284) ([Robert Schulze](https://github.com/rschu1ze)).
* Некоторые исправления механизма параллельных реплик. [#48433](https://github.com/ClickHouse/ClickHouse/pull/48433) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Реализована zero-copy-replication (экспериментальная функция) на зашифрованных дисках. [#48741](https://github.com/ClickHouse/ClickHouse/pull/48741) ([Vitaly Baranov](https://github.com/vitlibar)).
-
-
#### Улучшение {#improvement-8}
* Увеличено значение по умолчанию для `connect_timeout_with_failover_ms` до 1000 мс (в связи с добавлением асинхронных подключений в [https://github.com/ClickHouse/ClickHouse/pull/47229](https://github.com/ClickHouse/ClickHouse/pull/47229)). Закрывает [#5188](https://github.com/ClickHouse/ClickHouse/issues/5188). [#49009](https://github.com/ClickHouse/ClickHouse/pull/49009) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -1737,8 +1623,6 @@ doc_type: 'changelog'
* В предыдущих версиях формат `LineAsString` работал непоследовательно при включённом или отключённом параллельном разборе в случае переводов строк формата DOS или macOS Classic. Это закрывает [#49039](https://github.com/ClickHouse/ClickHouse/issues/49039). [#49052](https://github.com/ClickHouse/ClickHouse/pull/49052) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Сообщение об исключении для неразобранного параметра запроса теперь также содержит имя этого параметра. Повторно реализовать [#48878](https://github.com/ClickHouse/ClickHouse/issues/48878). Закрывает [#48772](https://github.com/ClickHouse/ClickHouse/issues/48772). [#49061](https://github.com/ClickHouse/ClickHouse/pull/49061) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-8}
* Обновлены часовые пояса. Обновлены следующие часовые пояса: Africa/Cairo, Africa/Casablanca, Africa/El_Aaiun, America/Bogota, America/Cambridge_Bay, America/Ciudad_Juarez, America/Godthab, America/Inuvik, America/Iqaluit, America/Nuuk, America/Ojinaga, America/Pangnirtung, America/Rankin_Inlet, America/Resolute, America/Whitehorse, America/Yellowknife, Asia/Gaza, Asia/Hebron, Asia/Kuala_Lumpur, Asia/Singapore, Canada/Yukon, Egypt, Europe/Kirov, Europe/Volgograd, Singapore. [#48572](https://github.com/ClickHouse/ClickHouse/pull/48572) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Сокращено количество зависимостей в заголовочных файлах для ускорения сборки. [#47984](https://github.com/ClickHouse/ClickHouse/pull/47984) ([Dmitry Novik](https://github.com/novikd)).
@@ -1751,8 +1635,6 @@ doc_type: 'changelog'
#### Исправление ошибки (ошибочное поведение, заметное пользователю, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-8}
-
-
* Исправлен журнал `system.query_views_log` для материализованных представлений (MV), выполняемых в фоновых потоках [#46668](https://github.com/ClickHouse/ClickHouse/pull/46668) ([Azat Khuzhin](https://github.com/azat)).
* Устранены несколько ошибок `RENAME COLUMN` [#46946](https://github.com/ClickHouse/ClickHouse/pull/46946) ([alesapin](https://github.com/alesapin)).
* Исправлены незначительные проблемы с подсветкой в clickhouse-format [#47610](https://github.com/ClickHouse/ClickHouse/pull/47610) ([Natasha Murashkina](https://github.com/murfel)).
@@ -1790,8 +1672,6 @@ doc_type: 'changelog'
* Исправлена ошибка `UNKNOWN_IDENTIFIER` при выполнении запроса `SELECT` из таблицы с политикой строк и столбцом, в имени которого есть точки [#48976](https://github.com/ClickHouse/ClickHouse/pull/48976) ([Kruglov Pavel](https://github.com/Avogar)).
* Исправлена агрегация по пустым строкам типа Nullable [#48999](https://github.com/ClickHouse/ClickHouse/pull/48999) ([LiuNeng](https://github.com/liuneng1994)).
-
-
### Релиз ClickHouse 23.3 LTS, 2023-03-30 {#233}
#### Заметки по обновлению {#upgrade-notes-1}
@@ -1803,8 +1683,6 @@ doc_type: 'changelog'
* Параметры backup_threads/restore_threads сделаны серверными настройками (вместо пользовательских). [#47881](https://github.com/ClickHouse/ClickHouse/pull/47881) ([Azat Khuzhin](https://github.com/azat)).
* Запрещены константные и недетерминированные вторичные индексы. [#46839](https://github.com/ClickHouse/ClickHouse/pull/46839) ([Anton Popov](https://github.com/CurtizJ)).
-
-
#### Новая возможность {#new-feature-9}
* Добавлен новый режим распределения нагрузки по репликам с помощью настроек `parallel_replicas_custom_key` и `parallel_replicas_custom_key_filter_type`. Если кластер состоит из одного шарда с несколькими репликами, до `max_parallel_replicas` реплик будут случайным образом выбраны и использованы как шарды. Для каждого такого шарда соответствующий фильтр добавляется к запросу на стороне инициатора перед отправкой на шард. Если кластер состоит из нескольких шардов, поведение будет таким же, как у `sample_key`, но с возможностью задать произвольный ключ. [#45108](https://github.com/ClickHouse/ClickHouse/pull/45108) ([Antonio Andelic](https://github.com/antonio2368)).
@@ -1832,8 +1710,6 @@ doc_type: 'changelog'
-
-
#### Повышение производительности {#performance-improvement-9}
* Метки в памяти теперь хранятся в сжатом виде и занимают в 3–6 раз меньше памяти. [#47290](https://github.com/ClickHouse/ClickHouse/pull/47290) ([Michael Kolupaev](https://github.com/al13n321)).
@@ -1851,16 +1727,12 @@ doc_type: 'changelog'
* Ещё больше батчирования в Keeper. Производительность улучшена за счёт того, что батчи не разбиваются при запросах на чтение. [#47978](https://github.com/ClickHouse/ClickHouse/pull/47978) ([Antonio Andelic](https://github.com/antonio2368)).
* Разрешено использовать PREWHERE для таблиц Merge с различными выражениями DEFAULT для столбцов. [#46831](https://github.com/ClickHouse/ClickHouse/pull/46831) ([Azat Khuzhin](https://github.com/azat)).
-
-
#### Экспериментальная возможность {#experimental-feature-6}
* Параллельные реплики: улучшена общая производительность за счет более эффективного использования локальной реплики и по умолчанию запрещено чтение с использованием параллельных реплик из нереплицируемых таблиц MergeTree. [#47858](https://github.com/ClickHouse/ClickHouse/pull/47858) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Добавлена поддержка проталкивания фильтра в левую таблицу для JOIN с таблицами `Join`, `Dictionary` и `EmbeddedRocksDB`, если включен экспериментальный Analyzer. [#47280](https://github.com/ClickHouse/ClickHouse/pull/47280) ([Maksim Kita](https://github.com/kitaisreal)).
* Теперь ReplicatedMergeTree с репликацией без копирования (zero-copy replication) меньше нагружает Keeper. [#47676](https://github.com/ClickHouse/ClickHouse/pull/47676) ([alesapin](https://github.com/alesapin)).
* Исправлено создание материализованного представления с MaterializedPostgreSQL. [#40807](https://github.com/ClickHouse/ClickHouse/pull/40807) ([Maksim Buren](https://github.com/maks-buren630501)).
-
-
#### Улучшение {#improvement-9}
* Настройка `input_format_json_ignore_unknown_keys_in_named_tuple` включена по умолчанию. [#46742](https://github.com/ClickHouse/ClickHouse/pull/46742) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -1911,8 +1783,6 @@ doc_type: 'changelog'
* Добавлена поддержка больших целых чисел `(U)Int128/(U)Int256`, `Map` с любым типом ключа и `DateTime64` с любой точностью (не только 3 и 6). [#48119](https://github.com/ClickHouse/ClickHouse/pull/48119) ([Kruglov Pavel](https://github.com/Avogar)).
* Разрешить пропуск ошибок, связанных с неизвестными значениями enum, в построчных форматах ввода. [#48133](https://github.com/ClickHouse/ClickHouse/pull/48133) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-9}
* ClickHouse теперь собирается с `C++23`. [#47424](https://github.com/ClickHouse/ClickHouse/pull/47424) ([Robert Schulze](https://github.com/rschu1ze)).
* Фаззинг запросов `EXPLAIN` в AST Fuzzer. [#47803](https://github.com/ClickHouse/ClickHouse/pull/47803) [#47852](https://github.com/ClickHouse/ClickHouse/pull/47852) ([flynn](https://github.com/ucasfl)).
@@ -1928,8 +1798,6 @@ doc_type: 'changelog'
* Добавлен модульный тест, проверяющий, что фатальные сообщения логирования Apache Arrow не приводят к аварийному завершению процесса. Он покрывает изменения в [ClickHouse/arrow#16](https://github.com/ClickHouse/arrow/pull/16). [#47958](https://github.com/ClickHouse/ClickHouse/pull/47958) ([Arthur Passos](https://github.com/arthurpassos)).
* Восстановлена возможность запуска нативной отладочной сборки сервера для macOS. [#48050](https://github.com/ClickHouse/ClickHouse/pull/48050) ([Robert Schulze](https://github.com/rschu1ze)). Примечание: это изменение актуально только для разработки, так как официальные сборки ClickHouse выполняются с использованием кросс‑компиляции.
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-9}
* Исправлен сброс парсера форматов, протестирована обработка некорректных сообщений в `Kafka` [#45693](https://github.com/ClickHouse/ClickHouse/pull/45693) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -1994,8 +1862,6 @@ doc_type: 'changelog'
* Корректно настроены тайм-ауты TCP/HTTP-сокетов в Keeper [#48108](https://github.com/ClickHouse/ClickHouse/pull/48108) ([Antonio Andelic](https://github.com/antonio2368)).
* Исправлен потенциальный вызов метода через нулевой указатель в формате `Avro` [#48184](https://github.com/ClickHouse/ClickHouse/pull/48184) ([Kruglov Pavel](https://github.com/Avogar)).
-
-
### Релиз ClickHouse 23.2, 2023-02-23 {#232}
#### Изменения, нарушающие обратную совместимость {#backward-incompatible-change-8}
@@ -2007,8 +1873,6 @@ doc_type: 'changelog'
* Незначительно улучшена производительность `countDigits` на реалистичных наборах данных. Это закрыло [#44518](https://github.com/ClickHouse/ClickHouse/issues/44518). В предыдущих версиях `countDigits(0)` возвращала `0`; теперь она возвращает `1`, что более корректно и соответствует существующей документации. [#46187](https://github.com/ClickHouse/ClickHouse/pull/46187) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Запрещено создание новых столбцов, сжатых комбинацией кодеков "Delta" или "DoubleDelta" с последующим применением кодеков "Gorilla" или "FPC". Это ограничение можно обойти, используя настройку "allow_suspicious_codecs = true". [#45652](https://github.com/ClickHouse/ClickHouse/pull/45652) ([Robert Schulze](https://github.com/rschu1ze)).
-
-
#### Новая возможность {#new-feature-10}
* Добавлены движок таблиц `StorageIceberg` и табличная функция `iceberg` для доступа к хранилищу таблиц Iceberg в S3. [#45384](https://github.com/ClickHouse/ClickHouse/pull/45384) ([flynn](https://github.com/ucasfl)).
@@ -2032,8 +1896,6 @@ doc_type: 'changelog'
-
-
#### Повышение производительности {#performance-improvement-10}
* Введённая логика работает, если условие PREWHERE представляет собой конъюнкцию нескольких условий (cond1 AND cond2 AND ... ). Она группирует в шаги те условия, которые требуют чтения одних и тех же столбцов. После каждого шага вычисляется соответствующая часть полного условия, и результирующие строки могут быть отфильтрованы. Это позволяет читать меньше строк на следующих шагах, тем самым экономя пропускную способность ввода-вывода и выполняя меньше вычислений. Эта логика пока по умолчанию отключена. Она будет включена по умолчанию в одном из будущих релизов, когда будет подтверждено отсутствие регрессий, поэтому настоятельно рекомендуется использовать её для тестирования. Её поведение можно контролировать с помощью двух настроек: "enable_multiple_prewhere_read_steps" и "move_all_conditions_to_prewhere". [#46140](https://github.com/ClickHouse/ClickHouse/pull/46140) ([Alexander Gololobov](https://github.com/davenger)).
@@ -2068,8 +1930,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-10}
* Включены повторные попытки выполнения INSERT по умолчанию при потере сессии ZooKeeper. Мы уже используем это в продакшене. [#46308](https://github.com/ClickHouse/ClickHouse/pull/46308) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -2130,8 +1990,6 @@ doc_type: 'changelog'
* Поддержка оператора IN с параметром в параметризованных представлениях. [#46583](https://github.com/ClickHouse/ClickHouse/pull/46583) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Не загружать именованные коллекции при запуске сервера (загружать их при первом обращении к ним). [#46607](https://github.com/ClickHouse/ClickHouse/pull/46607) ([Kseniia Sumarokova](https://github.com/kssenii)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-10}
* Включён GWP-ASan, реализованный в рантайме LLVM. Это закрывает [#27039](https://github.com/ClickHouse/ClickHouse/issues/27039). [#45226](https://github.com/ClickHouse/ClickHouse/pull/45226) ([Han Fei](https://github.com/hanfei1991)).
* Мы хотим сделать наши тесты менее стабильными и более «хрупкими»: добавлена рандомизация настроек MergeTree в тестах. [#38983](https://github.com/ClickHouse/ClickHouse/pull/38983) ([Anton Popov](https://github.com/CurtizJ)).
@@ -2146,8 +2004,6 @@ doc_type: 'changelog'
#### Исправление ошибок (ошибочное поведение, заметное пользователю, в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-official-stable-release}
-
-
* Сбрасывать данные строго в соответствии с `rabbitmq_flush_interval_ms` или `rabbitmq_max_block_size` в `StorageRabbitMQ`. Закрывает [#42389](https://github.com/ClickHouse/ClickHouse/issues/42389). Закрывает [#45160](https://github.com/ClickHouse/ClickHouse/issues/45160). [#44404](https://github.com/ClickHouse/ClickHouse/pull/44404) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Использовать PODArray для отрисовки в функции sparkBar, чтобы контролировать расход памяти. Закрывает [#44467](https://github.com/ClickHouse/ClickHouse/issues/44467). [#44489](https://github.com/ClickHouse/ClickHouse/pull/44489) ([Duc Canh Le](https://github.com/canhld94)).
* Исправлена ошибка в функциях quantilesExactExclusive и quantilesExactInclusive, из-за которой возвращался неотсортированный элемент массива. [#45379](https://github.com/ClickHouse/ClickHouse/pull/45379) ([wujunfu](https://github.com/wujunfu)).
@@ -2192,8 +2048,6 @@ doc_type: 'changelog'
* Буферы памяти, выделенные во время асинхронных вставок, освобождались в глобальном контексте, и счётчики MemoryTracker для соответствующего пользователя и запроса обновлялись некорректно. Это приводило к ложным срабатываниям исключений OOM. [#46622](https://github.com/ClickHouse/ClickHouse/pull/46622) ([Dmitry Novik](https://github.com/novikd)).
* Обновлено так, чтобы не очищать on_expression из table_join, так как он используется последующими запусками analyze, что решает [#45185](https://github.com/ClickHouse/ClickHouse/issues/45185). [#46487](https://github.com/ClickHouse/ClickHouse/pull/46487) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
-
-
### Релиз ClickHouse 23.1, 2023-01-26 {#231}
### Релиз ClickHouse 23.1 {#clickhouse-release-231}
@@ -2207,8 +2061,6 @@ doc_type: 'changelog'
* Пути в названиях часовых поясов запрещены. Например, имя часового пояса `/usr/share/zoneinfo/Asia/Aden` не допускается; следует использовать имя из базы часовых поясов IANA, например `Asia/Aden`. [#44225](https://github.com/ClickHouse/ClickHouse/pull/44225) ([Kruglov Pavel](https://github.com/Avogar)).
* Запросы, сочетающие equijoin и константные выражения (например, `JOIN ON t1.x = t2.x AND 1 = 1`), запрещены из-за некорректных результатов. [#44016](https://github.com/ClickHouse/ClickHouse/pull/44016) ([Vladimir C](https://github.com/vdimir)).
-
-
#### Новая возможность {#new-feature-11}
* Источник словаря для извлечения ключей при обходе дерева регулярных выражений. Может использоваться для парсинга User-Agent. [#40878](https://github.com/ClickHouse/ClickHouse/pull/40878) ([Vage Ogannisian](https://github.com/nooblose)). [#43858](https://github.com/ClickHouse/ClickHouse/pull/43858) ([Han Fei](https://github.com/hanfei1991)).
@@ -2229,16 +2081,12 @@ doc_type: 'changelog'
* Реализована попытка автоматически определять заголовки с именами столбцов (и, возможно, типами) для форматов ввода CSV/TSV/CustomSeparated.
Добавлены настройки input_format_tsv/csv/custom_detect_header, которые включают это поведение (по умолчанию включены). Закрывает [#44640](https://github.com/ClickHouse/ClickHouse/issues/44640). [#44953](https://github.com/ClickHouse/ClickHouse/pull/44953) ([Kruglov Pavel](https://github.com/Avogar)).
-
-
#### Экспериментальная функция {#experimental-feature-7}
* Добавлен экспериментальный инвертированный индекс как новый тип вторичного индекса для эффективного текстового поиска. [#38667](https://github.com/ClickHouse/ClickHouse/pull/38667) ([larryluogit](https://github.com/larryluogit)).
* Добавлен экспериментальный кэш результатов запросов. [#43797](https://github.com/ClickHouse/ClickHouse/pull/43797) ([Robert Schulze](https://github.com/rschu1ze)).
* Добавлена расширяемая и настраиваемая подсистема планирования для запросов ввода-вывода (пока не интегрирована с самим кодом ввода-вывода). [#41840](https://github.com/ClickHouse/ClickHouse/pull/41840) ([Sergei Trifonov](https://github.com/serxa)). Эта возможность пока ничего не делает — наслаждайтесь.
* Добавлена команда `SYSTEM DROP DATABASE REPLICA`, удаляющая метаданные неработающей (dead) реплики базы данных `Replicated`. Решает проблему [#41794](https://github.com/ClickHouse/ClickHouse/issues/41794). [#42807](https://github.com/ClickHouse/ClickHouse/pull/42807) ([Alexander Tokmakov](https://github.com/tavplubix)).
-
-
#### Повышение производительности {#performance-improvement-11}
* Не загружать неактивные части при запуске таблиц `MergeTree`. [#42181](https://github.com/ClickHouse/ClickHouse/pull/42181) ([Anton Popov](https://github.com/CurtizJ)).
@@ -2263,12 +2111,8 @@ doc_type: 'changelog'
* Оптимизировано потребление памяти во время резервного копирования в S3: файлы теперь копируются в S3 напрямую, без использования `WriteBufferFromS3` (который мог потреблять много памяти). [#45188](https://github.com/ClickHouse/ClickHouse/pull/45188) ([Vitaly Baranov](https://github.com/vitlibar)).
* Добавлен кэш для идентификаторов асинхронных блоков. Это уменьшит количество запросов к ZooKeeper при включённой дедупликации асинхронных вставок. [#45106](https://github.com/ClickHouse/ClickHouse/pull/45106) ([Han Fei](https://github.com/hanfei1991)).
-
-
#### Улучшение {#improvement-11}
-
-
* Использовать структуру таблицы, в которую выполняется вставка, в функции generateRandom без аргументов. [#45239](https://github.com/ClickHouse/ClickHouse/pull/45239) ([Kruglov Pavel](https://github.com/Avogar)).
* Добавлена возможность неявного преобразования чисел с плавающей запятой, хранящихся в строковых полях JSON, в целые числа в функциях `JSONExtract`. Например, `JSONExtract('{"a": "1000.111"}', 'a', 'UInt64')` -> `1000`, ранее возвращалось 0. [#45432](https://github.com/ClickHouse/ClickHouse/pull/45432) ([Anton Popов](https://github.com/CurtizJ)).
* Добавлены поля `supports_parallel_parsing` и `supports_parallel_formatting` в таблицу `system.formats` для улучшения возможностей анализа. [#45499](https://github.com/ClickHouse/ClickHouse/pull/45499) ([Anton Popov](https://github.com/CurtizJ)).
@@ -2304,8 +2148,6 @@ doc_type: 'changelog'
* Добавлены настройки для запрета одновременного выполнения резервного копирования и восстановления, что решает [#43891](https://github.com/ClickHouse/ClickHouse/issues/43891). Реализация: * Добавлены настройки на уровне сервера для запрета одновременного выполнения резервного копирования и восстановления, которые считываются и устанавливаются при создании BackupWorker в Context. * По умолчанию эти настройки имеют значение true. * Перед запуском резервного копирования или восстановления добавлена проверка на выполнение других операций резервного копирования/восстановления. Для внутренних запросов дополнительно проверяется, что запрос поступил с локального узла, с использованием backup_uuid. [#45072](https://github.com/ClickHouse/ClickHouse/pull/45072) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Добавлен конфигурационный параметр `` для системных логов. [#45320](https://github.com/ClickHouse/ClickHouse/pull/45320) ([Stig Bakken](https://github.com/stigsb)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-11}
* Статически слинкована библиотека `skim` (она написана на Rust) для нечеткого поиска по истории клиента ClickHouse/локальной истории. [#44239](https://github.com/ClickHouse/ClickHouse/pull/44239) ([Azat Khuzhin](https://github.com/azat)).
* Мы удалили поддержку динамического связывания из-за Rust. На самом деле Rust — лишь предлог для этого решения, и мы все равно хотели это убрать. [#44828](https://github.com/ClickHouse/ClickHouse/pull/44828) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -2318,8 +2160,6 @@ doc_type: 'changelog'
#### Исправление ошибок {#bug-fix}
-
-
* Типы IP-адресов домена (IPv4, IPv6) заменены на нативные. [#43221](https://github.com/ClickHouse/ClickHouse/pull/43221) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). Это автоматически устраняет некоторые пропущенные реализации в коде.
* Исправлен процесс резервного копирования в случае, если мутации принудительно завершаются во время его выполнения. [#45351](https://github.com/ClickHouse/ClickHouse/pull/45351) ([Vitaly Baranov](https://github.com/vitlibar)).
* Исправлено сообщение об исключении «Invalid number of rows in Chunk». [#41404](https://github.com/ClickHouse/ClickHouse/issues/41404). [#42126](https://github.com/ClickHouse/ClickHouse/pull/42126) ([Alexander Gololobov](https://github.com/davenger)).
@@ -2401,6 +2241,4 @@ doc_type: 'changelog'
-
-
## [Журнал изменений за 2022 год](/whats-new/changelog/2022) {#changelog-for-2022}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md
index c28f01bbdd6..441da0454ca 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/changelog/2024.md
@@ -29,8 +29,6 @@ doc_type: 'changelog'
* Функции `greatest` и `least` теперь игнорируют входные значения NULL, тогда как ранее они возвращали NULL, если один из аргументов был NULL. Например, теперь `SELECT greatest(1, 2, NULL)` возвращает 2. Это делает поведение совместимым с PostgreSQL, но при этом нарушает совместимость с MySQL, который возвращает NULL. Чтобы сохранить предыдущее поведение, установите настройку `least_greatest_legacy_null_behavior` (по умолчанию: `false`) в значение `true`. [#65519](https://github.com/ClickHouse/ClickHouse/pull/65519) [#73344](https://github.com/ClickHouse/ClickHouse/pull/73344) ([kevinyhzou](https://github.com/KevinyhZou)).
* Новая интеграция с MongoDB теперь используется по умолчанию. Пользователи, которые предпочитают использовать устаревший драйвер MongoDB (на основе драйвера Poco), могут включить серверную настройку `use_legacy_mongodb_integration`. [#73359](https://github.com/ClickHouse/ClickHouse/pull/73359) ([Kirill Nikiforov](https://github.com/allmazz).
-
-
#### Новая возможность {#new-feature}
* Типы `JSON`/`Dynamic`/`Variant` переведены из экспериментальных в бета-стадию. [#72294](https://github.com/ClickHouse/ClickHouse/pull/72294) ([Pavel Kruglov](https://github.com/Avogar)). Мы также перенесли все исправления, включая это изменение, в версию 24.11.
@@ -48,13 +46,9 @@ doc_type: 'changelog'
* Добавлена возможность использовать разделитель в качестве необязательного второго аргумента агрегатной функции `groupConcat`. [#72540](https://github.com/ClickHouse/ClickHouse/pull/72540) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Функция `translate` теперь поддерживает удаление символов, если в аргументе `from` больше символов, чем в аргументе `to`. Пример: `SELECT translate('clickhouse', 'clickhouse', 'CLICK')` теперь возвращает `CLICK`. [#71441](https://github.com/ClickHouse/ClickHouse/pull/71441) ([shuai.xu](https://github.com/shuai-xu)).
-
-
#### Экспериментальные возможности {#experimental-features}
* Новый параметр движка MergeTree `allow_experimental_reverse_key`, который включает поддержку сортировки по убыванию в ключах сортировки MergeTree. Это полезно для анализа временных рядов, особенно для TopN-запросов. Пример использования: `ENGINE = MergeTree ORDER BY (time DESC, key)` — сортировка по убыванию для поля `time`. [#71095](https://github.com/ClickHouse/ClickHouse/pull/71095) ([Amos Bird](https://github.com/amosbird)).
-
-
#### Повышение производительности {#performance-improvement}
* Переупорядочивание JOIN. Добавлен параметр для выбора стороны соединения, которая будет использоваться как внутренняя (build) таблица в плане запроса. Это контролируется параметром `query_plan_join_swap_table`, который может быть установлен в значение `auto`. В этом режиме ClickHouse попытается выбрать таблицу с наименьшим количеством строк. [#71577](https://github.com/ClickHouse/ClickHouse/pull/71577) ([Vladimir Cherkasov](https://github.com/vdimir)).
@@ -76,8 +70,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement}
* Удалена настройка `allow_experimental_join_condition`, что по умолчанию разрешает условия JOIN не по равенству. [#69910](https://github.com/ClickHouse/ClickHouse/pull/69910) ([Vladimir Cherkasov](https://github.com/vdimir)).
@@ -110,8 +102,6 @@ doc_type: 'changelog'
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release}
* Исправлена возможная проблема пересечения партов для MergeTree (после неудачной операции перемещения парта в каталог detached, возможно из‑за операции с объектным хранилищем). [#70476](https://github.com/ClickHouse/ClickHouse/pull/70476) ([Azat Khuzhin](https://github.com/azat)).
@@ -151,8 +141,6 @@ doc_type: 'changelog'
* Исправлена возможная переоценка потребления памяти (когда разница между `MemoryTracking` и `MemoryResident` продолжала расти). [#73081](https://github.com/ClickHouse/ClickHouse/pull/73081) ([Azat Khuzhin](https://github.com/azat)).
* Добавлена проверка наличия дублирующихся ключей JSON при разборе Tuple. Ранее это могло приводить к возникновению логической ошибки `Invalid number of rows in Chunk` при разборе. [#73082](https://github.com/ClickHouse/ClickHouse/pull/73082) ([Pavel Kruglov](https://github.com/Avogar)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement}
* Все небольшие утилиты, ранее хранившиеся в каталоге `/utils` и требовавшие ручной компиляции из исходников, теперь являются частью основного дистрибутива ClickHouse. Это закрывает [#72404](https://github.com/ClickHouse/ClickHouse/issues/72404). [#72426](https://github.com/ClickHouse/ClickHouse/pull/72426) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Отменено удаление `/etc/systemd/system/clickhouse-server.service`, добавленное в 22.3. [#39323](https://github.com/ClickHouse/ClickHouse/issues/39323). [#72259](https://github.com/ClickHouse/ClickHouse/pull/72259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
@@ -170,8 +158,6 @@ doc_type: 'changelog'
* Удалена поддержка аргументов типов `Enum`, а также `UInt128` и `UInt256` в `deltaSumTimestamp`. Удалена поддержка типов `Int8`, `UInt8`, `Int16` и `UInt16` для второго («timestamp») аргумента `deltaSumTimestamp`. [#71790](https://github.com/ClickHouse/ClickHouse/pull/71790) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* При получении данных непосредственно из словаря с использованием хранилища Dictionary, табличной функции словаря или прямого SELECT по самому словарю теперь достаточно иметь привилегию `SELECT` или `dictGet` для этого словаря. Это согласуется с предыдущими попытками предотвратить обход ACL: https://github.com/ClickHouse/ClickHouse/pull/57362 и https://github.com/ClickHouse/ClickHouse/pull/65359. Это также делает второе из них обратно совместимым. [#72051](https://github.com/ClickHouse/ClickHouse/pull/72051) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
-
-
#### Экспериментальная функция {#experimental-feature}
* Реализован `allow_feature_tier` как глобальный переключатель для отключения всех экспериментальных / бета‑функций. [#71841](https://github.com/ClickHouse/ClickHouse/pull/71841) [#71145](https://github.com/ClickHouse/ClickHouse/pull/71145) ([Raúl Marín](https://github.com/Algunenano)).
* Исправлена возможная ошибка `No such file or directory`, возникающая из‑за неэкранированных специальных символов в файлах для подстолбцов JSON. [#71182](https://github.com/ClickHouse/ClickHouse/pull/71182) ([Pavel Kruglov](https://github.com/Avogar)).
@@ -190,8 +176,6 @@ doc_type: 'changelog'
* Разрешено задавать для каждого метода аутентификации собственный срок действия; при этом срок действия удалён из сущности пользователя. [#70090](https://github.com/ClickHouse/ClickHouse/pull/70090) ([Arthur Passos](https://github.com/arthurpassos)).
* Добавлены новые функции `parseDateTime64`, `parseDateTime64OrNull` и `parseDateTime64OrZero`. По сравнению с существующей функцией `parseDateTime` (и её вариантами) они возвращают значение типа `DateTime64` вместо `DateTime`. [#71581](https://github.com/ClickHouse/ClickHouse/pull/71581) ([kevinyhzou](https://github.com/KevinyhZou)).
-
-
#### Повышение производительности {#performance-improvement-1}
* Оптимизировано использование памяти для значений гранулярности индекса, если гранулярность постоянна для парта. Добавлена возможность всегда выбирать постоянную гранулярность для парта (настройка `use_const_adaptive_granularity`), что помогает гарантировать, что она всегда оптимально используется в памяти. Это помогает при больших нагрузках (триллионы строк в общем хранилище) избежать постоянного роста расхода памяти на метаданные (значения гранулярности индекса) партов данных. [#71786](https://github.com/ClickHouse/ClickHouse/pull/71786) ([Anton Popov](https://github.com/CurtizJ)).
@@ -212,8 +196,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-1}
* Добавлена возможность использовать clickhouse с файловым аргументом, например `ch queries.sql`. [#71589](https://github.com/ClickHouse/ClickHouse/pull/71589) ([Raúl Marín](https://github.com/Algunenano)).
@@ -256,8 +238,6 @@ doc_type: 'changelog'
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-1}
* Части, дедуплицированные при выполнении запроса `ATTACH PART`, больше не остаются с префиксом `attaching_`. [#65636](https://github.com/ClickHouse/ClickHouse/pull/65636) ([Kirill](https://github.com/kirillgarbar)).
@@ -329,8 +309,6 @@ doc_type: 'changelog'
* Это исправление для репликации "zero-copy", которая не поддерживается и будет полностью удалена. Не удаляйте blob, если им пользуются узлы в ReplicatedMergeTree с репликацией zero-copy. [#71186](https://github.com/ClickHouse/ClickHouse/pull/71186) ([Antonio Andelic](https://github.com/antonio2368)).
* Это исправление для репликации «zero-copy», которая не поддерживается и будет полностью удалена. Перед перемещением парта на zero-copy-диск теперь берётся общий разделяемый блокирующий замок zero-copy, чтобы предотвратить возможную потерю данных при недоступности Keeper. [#71845](https://github.com/ClickHouse/ClickHouse/pull/71845) ([Aleksei Filatov](https://github.com/aalexfvk)).
-
-
### Релиз ClickHouse 24.10, 2024-10-31 {#a-id2410a-clickhouse-release-2410-2024-10-31}
#### Обратное несовместимое изменение {#backward-incompatible-change-2}
@@ -338,8 +316,6 @@ doc_type: 'changelog'
* Перестановка условий фильтрации в секции `[PRE]WHERE` теперь по умолчанию разрешена. Это можно отключить, установив параметр `allow_reorder_prewhere_conditions` в `false`. [#70657](https://github.com/ClickHouse/ClickHouse/pull/70657) ([Nikita Taranov](https://github.com/nickitat)).
* Удалена библиотека `idxd-config`, которая имеет несовместимую лицензию. Это также удаляет экспериментальный кодек Intel DeflateQPL. [#70987](https://github.com/ClickHouse/ClickHouse/pull/70987) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Новая возможность {#new-feature-2}
* Добавлена возможность выдавать доступ к шаблонам с подстановочными символами. `GRANT SELECT ON db.table_pefix_* TO user`. [#65311](https://github.com/ClickHouse/ClickHouse/pull/65311) ([pufit](https://github.com/pufit)).
@@ -361,8 +337,6 @@ doc_type: 'changelog'
* Интеграция с MongoDB: поддержка всех типов MongoDB, поддержка операторов WHERE и ORDER BY на стороне MongoDB, ограничение на выражения, не поддерживаемые MongoDB. Обратите внимание, что новая интеграция по умолчанию отключена; чтобы её использовать, установите параметр `` в значение `false` в конфигурации сервера. [#63279](https://github.com/ClickHouse/ClickHouse/pull/63279) ([Kirill Nikiforov](https://github.com/allmazz)).
* Добавлена новая функция `getSettingOrDefault`, которая возвращает значение по умолчанию и предотвращает выброс исключения, если пользовательская настройка отсутствует в текущем профиле. [#69917](https://github.com/ClickHouse/ClickHouse/pull/69917) ([Shankar](https://github.com/shiyer7474)).
-
-
#### Экспериментальная функция {#experimental-feature-1}
* Обновляемые материализованные представления готовы для промышленной эксплуатации. [#70550](https://github.com/ClickHouse/ClickHouse/pull/70550) ([Michael Kolupaev](https://github.com/al13n321)). Обновляемые материализованные представления теперь поддерживаются в реплицируемых базах данных. [#60669](https://github.com/ClickHouse/ClickHouse/pull/60669) ([Michael Kolupaev](https://github.com/al13n321)).
* Параллельные реплики переведены из экспериментального статуса в бета. Переработаны настройки, которые управляют поведением алгоритмов параллельных реплик. Краткое напоминание: в ClickHouse есть четыре различных алгоритма параллельного чтения с участием нескольких реплик, что отражено в настройке `parallel_replicas_mode`, значение по умолчанию для неё — `read_tasks`. Дополнительно была добавлена переключаемая настройка `enable_parallel_replicas`. [#63151](https://github.com/ClickHouse/ClickHouse/pull/63151) ([Alexey Milovidov](https://github.com/alexey-milovidov)), ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
@@ -372,8 +346,6 @@ doc_type: 'changelog'
* Введён специальный (экспериментальный) режим селектора слияний для таблиц MergeTree, который делает его более агрессивным для разделов, находящихся близко к лимиту по количеству кусков. Он управляется настройкой уровня MergeTree `merge_selector_use_blurry_base`. [#70645](https://github.com/ClickHouse/ClickHouse/pull/70645) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Реализована обобщённая сериализация/десериализация между типом `Union` в Avro и типом `Variant` в ClickHouse. Решает проблему [#69713](https://github.com/ClickHouse/ClickHouse/issues/69713). [#69712](https://github.com/ClickHouse/ClickHouse/pull/69712) ([Jiří Kozlovský](https://github.com/jirislav)).
-
-
#### Повышение производительности {#performance-improvement-2}
* Рефакторинг `IDisk` и `IObjectStorage` для повышения производительности. Таблицы в объектных хранилищах `plain` и `plain_rewritable` будут инициализироваться быстрее. [#68146](https://github.com/ClickHouse/ClickHouse/pull/68146) ([Alexey Milovidov](https://github.com/alexey-milovidov), [Julia Kartseva](https://github.com/jkartseva)). Не вызывать API LIST объектного хранилища при определении, существует ли файл или каталог на диске plain rewritable, так как это может быть экономически неэффективно. [#70852](https://github.com/ClickHouse/ClickHouse/pull/70852) ([Julia Kartseva](https://github.com/jkartseva)). Сокращено количество запросов HEAD к API объектного хранилища на диске plain_rewritable. [#70915](https://github.com/ClickHouse/ClickHouse/pull/70915) ([Julia Kartseva](https://github.com/jkartseva)).
@@ -394,8 +366,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-2}
* `CREATE TABLE AS` копирует `PRIMARY KEY`, `ORDER BY` и аналогичные конструкции (для таблиц `MergeTree`). [#69739](https://github.com/ClickHouse/ClickHouse/pull/69739) ([sakulali](https://github.com/sakulali)).
@@ -442,8 +412,6 @@ doc_type: 'changelog'
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-2}
* Применять обновления конфигурации к глобальному объекту контекста. Это исправляет проблемы, такие как [#62308](https://github.com/ClickHouse/ClickHouse/issues/62308). [#62944](https://github.com/ClickHouse/ClickHouse/pull/62944) ([Amos Bird](https://github.com/amosbird)).
@@ -507,8 +475,6 @@ doc_type: 'changelog'
* Исправлена логическая ошибка, вызванная отрицательными нулями в двухуровневой хеш-таблице. Исправляет проблему из [#70973](https://github.com/ClickHouse/ClickHouse/issues/70973). [#70979](https://github.com/ClickHouse/ClickHouse/pull/70979) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Исправлена работа операторов `LIMIT BY` и `LIMIT WITH TIES` для распределённых и параллельных реплик. [#70880](https://github.com/ClickHouse/ClickHouse/pull/70880) ([Nikita Taranov](https://github.com/nickitat)).
-
-
### Релиз ClickHouse 24.9, 2024-09-26 {#a-id249a-clickhouse-release-249-2024-09-26}
#### Изменение, нарушающее обратную совместимость {#backward-incompatible-change-3}
@@ -516,8 +482,6 @@ doc_type: 'changelog'
* При включённой настройке `print_pretty_type_names` тип данных `Tuple` будет выводиться в наглядной форме в операторах `SHOW CREATE TABLE`, в функции `formatQuery`, а также в интерактивном режиме в `clickhouse-client` и `clickhouse-local`. В предыдущих версиях эта настройка применялась только к запросам `DESCRIBE` и `toTypeName`. Это закрывает [#65753](https://github.com/ClickHouse/ClickHouse/issues/65753). [#68492](https://github.com/ClickHouse/ClickHouse/pull/68492) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Запрещено явно указывать UUID при создании таблицы в базах данных `Replicated`. Также запрещено явно указывать путь в Keeper и имя реплики для таблиц *MergeTree в базах данных `Replicated`. Вводится новая настройка `database_replicated_allow_explicit_uuid` и изменяется тип `database_replicated_allow_replicated_engine_arguments` с Bool на UInt64. [#66104](https://github.com/ClickHouse/ClickHouse/pull/66104) ([Alexander Tokmakov](https://github.com/tavplubix)).
-
-
#### Новая возможность {#new-feature-3}
* Разрешает пользователю иметь несколько методов аутентификации вместо одного. Позволяет сбрасывать методы аутентификации к последнему добавленному. Если вы хотите какое‑то время запускать экземпляры на версии 24.8 и один на 24.9, лучше на этот период задать `max_authentication_methods_per_user` = 1, чтобы избежать потенциальных несовместимостей. [#65277](https://github.com/ClickHouse/ClickHouse/pull/65277) ([Arthur Passos](https://github.com/arthurpassos)).
@@ -536,8 +500,6 @@ doc_type: 'changelog'
* Добавлены команды `cp`/`mv` для клиентского приложения keeper командной строки, которые атомарно копируют/перемещают узел. [#69034](https://github.com/ClickHouse/ClickHouse/pull/69034) ([Mikhail Artemenko](https://github.com/Michicosun)).
* Добавлен аргумент `scale` (по умолчанию: `true`) для функции `arrayAUC`, позволяющий пропустить шаг нормализации (issue [#69609](https://github.com/ClickHouse/ClickHouse/issues/69609)). [#69717](https://github.com/ClickHouse/ClickHouse/pull/69717) ([gabrielmcg44](https://github.com/gabrielmcg44)).
-
-
#### Экспериментальная функция {#experimental-feature-2}
* Добавлена настройка `input_format_try_infer_variants`, которая позволяет определять тип `Variant` при определении схемы для текстовых форматов, когда для элементов столбца/массива существует более одного возможного типа. [#63798](https://github.com/ClickHouse/ClickHouse/pull/63798) ([Shaun Struwig](https://github.com/Blargian)).
* Добавлены агрегатные функции `distinctDynamicTypes`/`distinctJSONPaths`/`distinctJSONPathsAndTypes` для более удобного анализа содержимого типов в JSON-столбцах. [#68463](https://github.com/ClickHouse/ClickHouse/pull/68463) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -548,8 +510,6 @@ doc_type: 'changelog'
* Улучшен `castOrDefault` для столбцов Variant/Dynamic, чтобы он работал, когда внутренние типы вообще не преобразуемы. [#67150](https://github.com/ClickHouse/ClickHouse/pull/67150) ([Kruglov Pavel](https://github.com/Avogar)).
* Репликация подмножества столбцов теперь доступна через MaterializedPostgreSQL. Закрывает [#33748](https://github.com/ClickHouse/ClickHouse/issues/33748). [#69092](https://github.com/ClickHouse/ClickHouse/pull/69092) ([Kruglov Kirill](https://github.com/1on)).
-
-
#### Улучшение производительности {#performance-improvement-3}
* Реализовано чтение только необходимых файлов для секционирования Hive. [#68963](https://github.com/ClickHouse/ClickHouse/pull/68963) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Улучшена производительность `JOIN` за счет перестановки правой таблицы по ключам, когда ключи таблицы плотные в `LEFT` или `INNER` хеш-объединениях. [#60341](https://github.com/ClickHouse/ClickHouse/pull/60341) ([kevinyhzou](https://github.com/KevinyhZou)).
@@ -567,8 +527,6 @@ doc_type: 'changelog'
* Снижено потребление памяти при вставках в столбец JSON за счет адаптивного размера буфера записи. Многие файлы, создаваемые JSON‑столбцом в широкой части, содержат небольшое количество данных, и нет смысла выделять для них буфер размером 1 МБ. [#69272](https://github.com/ClickHouse/ClickHouse/pull/69272) ([Kruglov Pavel](https://github.com/Avogar)).
* Исключён возврат потока в пул потоков concurrent hash join, чтобы предотвратить чрезмерное создание потоков запросом. [#69406](https://github.com/ClickHouse/ClickHouse/pull/69406) ([Duc Canh Le](https://github.com/canhld94)).
-
-
#### Улучшение {#improvement-3}
* CREATE TABLE AS теперь копирует PRIMARY KEY, ORDER BY и аналогичные конструкции. Сейчас это поддерживается только для семейства движков таблиц MergeTree. [#69076](https://github.com/ClickHouse/ClickHouse/pull/69076) ([sakulali](https://github.com/sakulali)).
@@ -604,8 +562,6 @@ doc_type: 'changelog'
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-3}
* Исправлено подключение таблицы, когда имя базы данных PostgreSQL (pg dbname) содержит «-», в экспериментальном, неподдерживаемом движке MaterializedPostgreSQL. [#62730](https://github.com/ClickHouse/ClickHouse/pull/62730) ([takakawa](https://github.com/takakawa)).
@@ -685,8 +641,6 @@ doc_type: 'changelog'
* Использовать функцию tryconvertfieldtotype в gethyperrectangleforrowgroup. [#69745](https://github.com/ClickHouse/ClickHouse/pull/69745) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* Откат исправления «Fix prewhere without columns and without adaptive index granularity (almost w/o anything)». В результате отката этих изменений возможны ошибки при чтении частей данных, созданных старыми релизами ClickHouse (предположительно 2021 года или более ранними). [#68897](https://github.com/ClickHouse/ClickHouse/pull/68897) ([Alexander Gololobov](https://github.com/davenger)).
-
-
### Релиз ClickHouse 24.8 LTS, 2024-08-20 {#a-id248a-clickhouse-release-248-lts-2024-08-20}
#### Обратное несовместимое изменение {#backward-incompatible-change-4}
@@ -699,8 +653,6 @@ doc_type: 'changelog'
* Исправлено форматирование модификатора REPLACE (запрещено опускать скобки). [#67774](https://github.com/ClickHouse/ClickHouse/pull/67774) ([Azat Khuzhin](https://github.com/azat)).
* Бэкпортировано в [#68349](https://github.com/ClickHouse/ClickHouse/issues/68349): заново реализован тип `Dynamic`. Теперь, когда достигается лимит динамических типов данных, новые типы не приводятся к String, а сохраняются в специальной структуре данных в бинарном формате с двоичным кодированием типа данных. Теперь любой тип, когда‑либо вставленный в столбец `Dynamic`, может быть считан из него как подстолбец. [#68132](https://github.com/ClickHouse/ClickHouse/pull/68132) ([Kruglov Pavel](https://github.com/Avogar)).
-
-
#### Новая возможность {#new-feature-4}
* Добавлена новая настройка движка `MergeTree` `deduplicate_merge_projection_mode` для управления проекциями во время слияний (для определённых движков) и запроса `OPTIMIZE DEDUPLICATE`. Поддерживаемые варианты: `throw` (выбрасывать исключение, если проекция не полностью поддерживается для *движка MergeTree*), `drop` (удалять проекцию во время слияния, если её нельзя корректно слить) и `rebuild` (полностью перестраивать проекцию с нуля, что является ресурсоёмкой операцией). [#66672](https://github.com/ClickHouse/ClickHouse/pull/66672) ([jsc0218](https://github.com/jsc0218)).
@@ -717,8 +669,6 @@ doc_type: 'changelog'
* Добавлена поддержка запроса `OPTIMIZE` для таблиц `Join`, что позволяет уменьшить их потребление памяти. [#67883](https://github.com/ClickHouse/ClickHouse/pull/67883) ([Duc Canh Le](https://github.com/canhld94)).
* Добавлена возможность мгновенно выполнять запрос в Play при добавлении `&run=1` в URL [#66457](https://github.com/ClickHouse/ClickHouse/pull/66457) ([Aleksandr Musorin](https://github.com/AVMusorin)).
-
-
#### Экспериментальная функция {#experimental-feature-3}
* Реализован новый тип данных `JSON`. [#66444](https://github.com/ClickHouse/ClickHouse/pull/66444) ([Kruglov Pavel](https://github.com/Avogar)).
* Добавлен новый движок таблиц `TimeSeries`. [#64183](https://github.com/ClickHouse/ClickHouse/pull/64183) ([Vitaly Baranov](https://github.com/vitlibar)).
@@ -736,8 +686,6 @@ doc_type: 'changelog'
* Исключено выделение избыточной емкости для столбца-массива при записи ORC. Производительность для столбца типа Array увеличена на 15%. [#67879](https://github.com/ClickHouse/ClickHouse/pull/67879) ([李扬](https://github.com/taiyang-li)).
* Существенно ускорены мутации для нереплицируемого движка MergeTree. [#66911](https://github.com/ClickHouse/ClickHouse/pull/66911) [#66909](https://github.com/ClickHouse/ClickHouse/pull/66909) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Улучшение {#improvement-4}
* Настройка `allow_experimental_analyzer` переименована в `enable_analyzer`. Старое имя сохранено как псевдоним. Это означает, что Analyzer больше не является бета-функциональностью и полностью готов к использованию в продуктивной среде. [#66438](https://github.com/ClickHouse/ClickHouse/pull/66438) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
@@ -766,16 +714,12 @@ doc_type: 'changelog'
* Добавлены события профилирования для слияний и мутаций для более удобного анализа. [#68015](https://github.com/ClickHouse/ClickHouse/pull/68015) ([Anton Popov](https://github.com/CurtizJ)).
* Удалены лишние логи для нереплицируемого `MergeTree`. [#68238](https://github.com/ClickHouse/ClickHouse/pull/68238) ([Daniil Ivanik](https://github.com/divanik)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-1}
* Проверка нестабильности интеграционных тестов теперь запускает каждый тестовый кейс несколько раз, чтобы найти больше проблем в тестах и сделать их более надёжными. Для этого используется библиотека `pytest-repeat`, позволяющая запускать тестовый кейс несколько раз в одном и том же окружении. Важно очищать таблицы и другие сущности в конце тестового кейса, чтобы он проходил. Повторные прогоны работают гораздо быстрее, чем несколько запусков pytest, так как необходимые контейнеры стартуют только один раз. [#66986](https://github.com/ClickHouse/ClickHouse/pull/66986) ([Ilya Yatsishin](https://github.com/qoega)).
* Снято ограничение на использование CLion с ClickHouse. В предыдущих версиях CLion подвисал на минуту при каждом нажатии клавиши. Это закрывает [#66994](https://github.com/ClickHouse/ClickHouse/issues/66994). [#66995](https://github.com/ClickHouse/ClickHouse/pull/66995) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* getauxval: предотвращён сбой при повторном запуске под санитайзером из‑за высокой энтропии ASLR в новых ядрах Linux. [#67081](https://github.com/ClickHouse/ClickHouse/pull/67081) ([Raúl Marín](https://github.com/Algunenano)).
* Часть клиентского кода вынесена в отдельный файл, и к ней применяется максимально возможный уровень оптимизации даже для debug-сборок. Это закрывает: [#65745](https://github.com/ClickHouse/ClickHouse/issues/65745). [#67215](https://github.com/ClickHouse/ClickHouse/pull/67215) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
-
-
#### Исправление ошибки {#bug-fix}
* Актуально только для экспериментального типа данных Variant. Исправлено аварийное завершение при использовании типов Variant и AggregateFunction. [#67122](https://github.com/ClickHouse/ClickHouse/pull/67122) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -844,8 +788,6 @@ doc_type: 'changelog'
* Попытка исправить сбой Postgres при отмене запроса. [#68288](https://github.com/ClickHouse/ClickHouse/pull/68288) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Исправлено отсутствие режима синхронизации реплики в запросе `SYSTEM SYNC REPLICA`. [#68326](https://github.com/ClickHouse/ClickHouse/pull/68326) ([Duc Canh Le](https://github.com/canhld94)).
-
-
### Релиз ClickHouse 24.7, 2024-07-30 {#a-id247a-clickhouse-release-247-2024-07-30}
#### Обратные несовместимые изменения {#backward-incompatible-change-5}
@@ -857,8 +799,6 @@ doc_type: 'changelog'
* Изменён принцип работы дедупликации для материализованных представлений. Исправлено множество случаев, таких как: - в целевой таблице: данные разбиваются на 2 или более блоков, и эти блоки считаются дубликатами, когда блок вставляется параллельно; - в целевой таблице MV: одинаковые блоки дедуплицируются, это происходит, когда MV часто производит одинаковые данные как результат для различных входных данных из-за выполнения агрегации; - в целевой таблице MV: одинаковые блоки, поступающие из разных MV, дедуплицируются. [#61601](https://github.com/ClickHouse/ClickHouse/pull/61601) ([Sema Checherinda](https://github.com/CheSema)).
* Функции `bitShiftLeft` и `bitShitfRight` возвращают ошибку при выходе позиции сдвига за допустимый диапазон. [#65838](https://github.com/ClickHouse/ClickHouse/pull/65838) ([Pablo Marcos](https://github.com/pamarcos)).
-
-
#### Новая функция {#new-feature-5}
* Добавлена поддержка `ASOF JOIN` для алгоритма `full_sorting_join`. [#55051](https://github.com/ClickHouse/ClickHouse/pull/55051) ([vdimir](https://github.com/vdimir)).
* Добавлена поддержка аутентификации по JWT в `clickhouse-client` (будет доступна только в ClickHouse Cloud). [#62829](https://github.com/ClickHouse/ClickHouse/pull/62829) ([Konstantin Bogdanov](https://github.com/thevar1able)).
@@ -876,8 +816,6 @@ doc_type: 'changelog'
* При выполнении лёгкого удаления (lightweight delete) в таблице с одной или несколькими проекциями пользователи могут выбрать: выбросить исключение (по умолчанию) или удалить проекцию. [#65594](https://github.com/ClickHouse/ClickHouse/pull/65594) ([jsc0218](https://github.com/jsc0218)).
* Добавлены системные таблицы с основной информацией обо всех отсоединённых таблицах. [#65400](https://github.com/ClickHouse/ClickHouse/pull/65400) ([Konstantin Morozov](https://github.com/k-morozov)).
-
-
#### Экспериментальная возможность {#experimental-feature-4}
* Изменена двоичная сериализация типа данных `Variant`: добавлен режим `compact`, позволяющий избежать записи одного и того же дискриминатора несколько раз для гранул с единственным вариантом или только со значениями NULL. Добавлена настройка MergeTree `use_compact_variant_discriminators_serialization`, которая включена по умолчанию. Обратите внимание, что тип `Variant` по-прежнему является экспериментальным, и обратно несовместимое изменение формата сериализации допустимо. [#62774](https://github.com/ClickHouse/ClickHouse/pull/62774) ([Kruglov Pavel](https://github.com/Avogar)).
* Добавлена поддержка дискового backend-хранилища для clickhouse-keeper. [#56626](https://github.com/ClickHouse/ClickHouse/pull/56626) ([Han Fei](https://github.com/hanfei1991)).
@@ -886,8 +824,6 @@ doc_type: 'changelog'
* Исправлено чтение подстолбцов `Dynamic` из изменённой таблицы `Memory`. Ранее, если параметр `max_types` типа `Dynamic` был изменён в таблице `Memory` через ALTER, последующее чтение подстолбцов могло возвращать неверный результат. [#66066](https://github.com/ClickHouse/ClickHouse/pull/66066) ([Kruglov Pavel](https://github.com/Avogar)).
* Добавлена поддержка `cluster_for_parallel_replicas` при использовании параллельных реплик с пользовательским ключом. Это позволяет использовать параллельные реплики с пользовательским ключом для таблиц MergeTree. [#65453](https://github.com/ClickHouse/ClickHouse/pull/65453) ([Antonio Andelic](https://github.com/antonio2368)).
-
-
#### Повышение производительности {#performance-improvement-5}
* Заменён алгоритм преобразования int в строку на более быстрый (с модифицированного amdn/itoa на модифицированный jeaiii/itoa). [#61661](https://github.com/ClickHouse/ClickHouse/pull/61661) ([Raúl Marín](https://github.com/Algunenano)).
* Теперь размеры хеш-таблиц, создаваемых оператором `join` (алгоритм `parallel_hash`), собираются и кэшируются. Эта информация используется для предварительного выделения места в хеш-таблицах при последующих выполнениях запросов и экономии времени на изменение их размера. [#64553](https://github.com/ClickHouse/ClickHouse/pull/64553) ([Nikita Taranov](https://github.com/nickitat)).
@@ -902,8 +838,6 @@ doc_type: 'changelog'
* Улучшено балансирование нагрузки ZooKeeper. Текущая сессия не истекает до тех пор, пока не станут доступны оптимальные узлы, несмотря на `fallback_session_lifetime`. Добавлена поддержка AZ-aware балансировки. [#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix)).
* DatabaseCatalog удаляет таблицы быстрее за счёт использования до database_catalog_drop_table_concurrency потоков. [#66065](https://github.com/ClickHouse/ClickHouse/pull/66065) ([Sema Checherinda](https://github.com/CheSema)).
-
-
#### Улучшение {#improvement-5}
* Улучшена балансировка нагрузки в ZooKeeper. Текущая сессия не истекает до тех пор, пока оптимальные узлы не станут доступными, несмотря на значение `fallback_session_lifetime`. Добавлена поддержка балансировки с учётом зон доступности (AZ-aware). [#65570](https://github.com/ClickHouse/ClickHouse/pull/65570) ([Alexander Tokmakov](https://github.com/tavplubix)).
@@ -947,8 +881,6 @@ doc_type: 'changelog'
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-4}
* Теперь проверяются циклические зависимости в запросах CREATE/REPLACE/RENAME/EXCHANGE и при их наличии выбрасывается исключение. Ранее такие циклические зависимости могли приводить к взаимоблокировке (deadlock) во время запуска сервера. Также исправлены некоторые ошибки в логике создания зависимостей. [#65405](https://github.com/ClickHouse/ClickHouse/pull/65405) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -1027,8 +959,6 @@ doc_type: 'changelog'
* Исправлен граничный случай в функции `indexHint`, обнаруженный фаззером. [#66286](https://github.com/ClickHouse/ClickHouse/pull/66286) ([Anton Popov](https://github.com/CurtizJ)).
* Исправлено форматирование AST для выражения 'create table b empty as a'. [#64951](https://github.com/ClickHouse/ClickHouse/pull/64951) ([Michael Kolupaev](https://github.com/al13n321)).
-
-
### Релиз ClickHouse 24.6, 2024-07-01 {#a-id246a-clickhouse-release-246-2024-07-01}
#### Обратно несовместимые изменения {#backward-incompatible-change-6}
@@ -1038,8 +968,6 @@ doc_type: 'changelog'
* Переделана параллельная обработка в режиме `Ordered` хранилища `S3Queue`. Этот PR обратно несовместим для режима Ordered, если вы использовали настройки `s3queue_processing_threads_num` или `s3queue_total_shards_num`. Настройка `s3queue_total_shards_num` удалена; ранее её было разрешено использовать только вместе с `s3queue_allow_experimental_sharded_mode`, который теперь помечен как устаревший. Добавлена новая настройка — `s3queue_buckets`. [#64349](https://github.com/ClickHouse/ClickHouse/pull/64349) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Добавлены новые функции `snowflakeIDToDateTime`, `snowflakeIDToDateTime64`, `dateTimeToSnowflakeID` и `dateTime64ToSnowflakeID`. В отличие от существующих функций `snowflakeToDateTime`, `snowflakeToDateTime64`, `dateTimeToSnowflake` и `dateTime64ToSnowflake`, новые функции совместимы с функцией `generateSnowflakeID`, т.е. они принимают snowflake‑ID, сгенерированные `generateSnowflakeID`, и выдают snowflake‑ID того же типа, что и `generateSnowflakeID` (т.е. `UInt64`). Кроме того, новые функции по умолчанию используют эпоху UNIX (т.е. 1970-01-01), так же как `generateSnowflakeID`. При необходимости можно передать другую эпоху, например эпоху Twitter/X от 2010-11-04, т.е. 1288834974657 мс от эпохи UNIX. Старые функции конвертации объявлены устаревшими и будут удалены после переходного периода: чтобы продолжать использовать их, включите настройку `allow_deprecated_snowflake_conversion_functions`. [#64948](https://github.com/ClickHouse/ClickHouse/pull/64948) ([Robert Schulze](https://github.com/rschu1ze)).
-
-
#### Новая возможность {#new-feature-6}
* Добавлена возможность хранить именованные коллекции в ClickHouse Keeper. [#64574](https://github.com/ClickHouse/ClickHouse/pull/64574) ([Kseniia Sumarokova](https://github.com/kssenii)).
@@ -1062,16 +990,12 @@ doc_type: 'changelog'
* Добавлены два дополнительных столбца в `system.query_log`: `used_privileges` и `missing_privileges`. `used_privileges` заполняется привилегиями, которые были проверены при выполнении запроса, а `missing_privileges` содержит необходимые, но отсутствующие привилегии. [#64597](https://github.com/ClickHouse/ClickHouse/pull/64597) ([Alexey Katsman](https://github.com/alexkats)).
* Добавлена настройка `output_format_pretty_display_footer_column_names`, которая при включении отображает имена столбцов в конце таблицы для длинных таблиц (по умолчанию — от 50 строк). Пороговое значение минимального числа строк задаётся параметром `output_format_pretty_display_footer_column_names_min_rows`. [#65144](https://github.com/ClickHouse/ClickHouse/pull/65144) ([Shaun Struwig](https://github.com/Blargian)).
-
-
#### Экспериментальная функция {#experimental-feature-5}
* Добавлена статистика типа «число различных значений». [#59357](https://github.com/ClickHouse/ClickHouse/pull/59357) ([Han Fei](https://github.com/hanfei1991)).
* Добавлена поддержка статистики с ReplicatedMergeTree. [#64934](https://github.com/ClickHouse/ClickHouse/pull/64934) ([Han Fei](https://github.com/hanfei1991)).
* Если для базы данных `Replicated` настроена «группа реплик» (replica group), автоматически создаётся кластер, включающий реплики из всех групп. [#64312](https://github.com/ClickHouse/ClickHouse/pull/64312) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Добавлены настройки `parallel_replicas_custom_key_range_lower` и `parallel_replicas_custom_key_range_upper` для управления тем, как параллельные реплики с динамическими шардами распараллеливают запросы при использовании фильтра по диапазону. [#64604](https://github.com/ClickHouse/ClickHouse/pull/64604) ([josh-hildred](https://github.com/josh-hildred)).
-
-
#### Повышение производительности {#performance-improvement-6}
* Добавлена возможность перераспределять строки при вставке для оптимизации размера без нарушения порядка, заданного `PRIMARY KEY`. Управляется настройкой `optimize_row_order` (по умолчанию выключена). [#63578](https://github.com/ClickHouse/ClickHouse/pull/63578) ([Igor Markelov](https://github.com/ElderlyPassionFruit)).
@@ -1101,8 +1025,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-6}
* `SHOW CREATE TABLE`, выполненный для системных таблиц, теперь выводит уникальный, весьма полезный комментарий для каждой таблицы, объясняющий её назначение. [#63788](https://github.com/ClickHouse/ClickHouse/pull/63788) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
@@ -1137,8 +1059,6 @@ doc_type: 'changelog'
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-5}
* Исправлена ошибка в библиотеке Apache ORC: скорректирован расчёт статистики ORC при записи данных для беззнаковых типов на всех платформах и типа Int8 на ARM. [#64563](https://github.com/ClickHouse/ClickHouse/pull/64563) ([Michael Kolupaev](https://github.com/al13n321)).
@@ -1200,8 +1120,6 @@ doc_type: 'changelog'
* Исправлена ошибка в механизме короткого замыкания при вычислении словарей Hashed и Hashed_Array, из-за которой могло происходить чтение неинициализированного числа, приводящее к различным ошибкам. [#65256](https://github.com/ClickHouse/ClickHouse/pull/65256) ([jsc0218](https://github.com/jsc0218)).
* Этот PR гарантирует, что тип константы (второго параметра оператора IN) всегда учитывается во время процесса приведения типов для оператора IN. В противном случае потеря информации о типе может привести к тому, что некоторые преобразования будут завершаться с ошибкой, например преобразование из DateTime в Date. Тем самым исправляется ([#64487](https://github.com/ClickHouse/ClickHouse/issues/64487)). [#65315](https://github.com/ClickHouse/ClickHouse/pull/65315) ([pn](https://github.com/chloro-pn)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-2}
* Добавлена поддержка LLVM XRay. [#64592](https://github.com/ClickHouse/ClickHouse/pull/64592) [#64837](https://github.com/ClickHouse/ClickHouse/pull/64837) ([Tomer Shafir](https://github.com/tomershafir)).
* Объединены реализации хранилищ s3/hdfs/azure в один класс, работающий с IObjectStorage. То же самое сделано для *Cluster, озёр данных и хранилищ Queue. [#59767](https://github.com/ClickHouse/ClickHouse/pull/59767) ([Kseniia Sumarokova](https://github.com/kssenii)).
@@ -1219,8 +1137,6 @@ doc_type: 'changelog'
* Использование функций `neighbor`, `runningAccumulate`, `runningDifferenceStartingWithFirstValue`, `runningDifference` объявлено устаревшим (так как они легко приводят к ошибкам). Вместо них следует использовать корректные оконные функции. Чтобы включить их обратно, установите `allow_deprecated_error_prone_window_functions = 1` или установите `compatibility = '24.4'` или ниже. [#63132](https://github.com/ClickHouse/ClickHouse/pull/63132) ([Nikita Taranov](https://github.com/nickitat)).
* Запросы к `system.columns` будут работать быстрее, если имеется большое количество колонок, но при этом для многих баз данных или таблиц не выданы права `SHOW TABLES`. Обратите внимание, что в предыдущих версиях, если вы выдаёте `SHOW COLUMNS` для отдельных колонок, не выдавая `SHOW TABLES` для соответствующих таблиц, таблица `system.columns` будет показывать эти колонки, но в новой версии такая таблица будет полностью пропущена. Удалены сообщения трассировки в логах "Access granted" и "Access denied", которые замедляли запросы. [#63439](https://github.com/ClickHouse/ClickHouse/pull/63439) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Новая возможность {#new-feature-7}
* Добавляет формат `Form` для чтения и записи одной записи в формате `application/x-www-form-urlencoded`. [#60199](https://github.com/ClickHouse/ClickHouse/pull/60199) ([Shaun Struwig](https://github.com/Blargian)).
@@ -1241,16 +1157,12 @@ doc_type: 'changelog'
* Добавлена поддержка функции `azureBlobStorage` в сервере ClickHouse для использования Azure Workload Identity при аутентификации в Azure Blob Storage. Если в конфигурации установлен параметр `use_workload_identity`, для аутентификации используется [Workload Identity](https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/identity/azure-identity#authenticate-azure-hosted-applications). [#57881](https://github.com/ClickHouse/ClickHouse/pull/57881) ([Vinay Suryadevara](https://github.com/vinay92-ch)).
* Добавлена информация о TTL в таблицу `system.parts_columns`. [#63200](https://github.com/ClickHouse/ClickHouse/pull/63200) ([litlig](https://github.com/litlig)).
-
-
#### Экспериментальные возможности {#experimental-features-1}
* Реализован тип данных `Dynamic`, который позволяет хранить значения любого типа без необходимости заранее знать все возможные типы. Тип `Dynamic` доступен при включённой настройке `allow_experimental_dynamic_type`. См.: [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864). [#63058](https://github.com/ClickHouse/ClickHouse/pull/63058) ([Kruglov Pavel](https://github.com/Avogar)).
* Разрешено создавать базу данных `MaterializedMySQL` без подключения к MySQL. [#63397](https://github.com/ClickHouse/ClickHouse/pull/63397) ([Kirill](https://github.com/kirillgarbar)).
* Автоматически помечать реплику реплицируемой базы данных как потерянную и запускать восстановление, если некоторая DDL-задача более `max_retries_before_automatic_recovery` раз подряд (по умолчанию 100) завершается сбоем с одной и той же ошибкой. Также исправлена ошибка, из-за которой могли пропускаться записи DDL при возникновении исключения на ранней стадии выполнения записи. [#63549](https://github.com/ClickHouse/ClickHouse/pull/63549) ([Alexander Tokmakov](https://github.com/tavplubix)).
* Учитывать файлы, обработка которых завершилась сбоем, в `s3queue_tracked_file_ttl_sec` и `s3queue_traked_files_limit` для `StorageS3Queue`. [#63638](https://github.com/ClickHouse/ClickHouse/pull/63638) ([Kseniia Sumarokova](https://github.com/kssenii)).
-
-
#### Улучшение производительности {#performance-improvement-7}
* Меньше конкуренции за файловый кэш (часть 4). Позволяет не заполнять файловый кэш до предела за счёт дополнительного вытеснения в фоне (управляется параметром `keep_free_space_size(elements)_ratio`). Это позволяет снизить нагрузку на резервирование места для запросов (в методе `tryReserve`). Также это реализовано по возможности без блокировок, то есть не должно блокировать обычное использование кэша. [#61250](https://github.com/ClickHouse/ClickHouse/pull/61250) ([Kseniia Sumarokova](https://github.com/kssenii)).
* Пропуск слияния заново созданных блоков проекций во время `INSERT`-ов. [#59405](https://github.com/ClickHouse/ClickHouse/pull/59405) ([Nikita Taranov](https://github.com/nickitat)).
@@ -1267,8 +1179,6 @@ doc_type: 'changelog'
* Разрешено использовать native copy для Azure даже при разных контейнерах. [#64154](https://github.com/ClickHouse/ClickHouse/pull/64154) ([alesapin](https://github.com/alesapin)).
* Наконец включён native copy для Azure. [#64182](https://github.com/ClickHouse/ClickHouse/pull/64182) ([alesapin](https://github.com/alesapin)).
-
-
#### Улучшение {#improvement-7}
* Теперь можно использовать `clickhouse-local` и его сокращения `clickhouse` и `ch` с запросом или файлом с запросами в качестве позиционного аргумента. Примеры: `ch "SELECT 1"`, `ch --param_test Hello "SELECT {test:String}"`, `ch query.sql`. Тем самым закрыта задача [#62361](https://github.com/ClickHouse/ClickHouse/issues/62361). [#63081](https://github.com/ClickHouse/ClickHouse/pull/63081) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -1301,8 +1211,6 @@ doc_type: 'changelog'
* Добавлены метрики, логи и имена потоков при фильтрации частей по индексам. [#64130](https://github.com/ClickHouse/ClickHouse/pull/64130) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Игнорировать параметр `allow_suspicious_primary_key` при `ATTACH` и проверять при `ALTER`. [#64202](https://github.com/ClickHouse/ClickHouse/pull/64202) ([Azat Khuzhin](https://github.com/azat)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-3}
* ClickHouse теперь собирается с использованием clang-18. Включено множество новых проверок из clang-tidy-18. [#60469](https://github.com/ClickHouse/ClickHouse/pull/60469) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Экспериментально добавлена поддержка loongarch64 в качестве новой платформы для ClickHouse. [#63733](https://github.com/ClickHouse/ClickHouse/pull/63733) ([qiangxuhui](https://github.com/qiangxuhui)).
@@ -1312,8 +1220,6 @@ doc_type: 'changelog'
* Включена поддержка gRPC для aarch64 Linux при кросс-компиляции бинарного файла. [#64072](https://github.com/ClickHouse/ClickHouse/pull/64072) ([alesapin](https://github.com/alesapin)).
* Исправлена раскрутка стека (unwind) при обработке SIGSEGV на aarch64 (из-за малого стека для сигнала). [#64058](https://github.com/ClickHouse/ClickHouse/pull/64058) ([Azat Khuzhin](https://github.com/azat)).
-
-
#### Исправление ошибки {#bug-fix-1}
* По умолчанию отключена настройка `enable_vertical_final`. Эту возможность не следует использовать, потому что в ней есть ошибка: [#64543](https://github.com/ClickHouse/ClickHouse/issues/64543). [#64544](https://github.com/ClickHouse/ClickHouse/pull/64544) ([Alexander Tokmakov](https://github.com/tavplubix)).
@@ -1382,8 +1288,6 @@ doc_type: 'changelog'
* Игнорирование `text_log` для Keeper [#64218](https://github.com/ClickHouse/ClickHouse/pull/64218) ([Antonio Andelic](https://github.com/antonio2368)).
* Исправлена логическая ошибка: некорректное приведение типов для таблицы движка Buffer с PREWHERE. [#64388](https://github.com/ClickHouse/ClickHouse/pull/64388) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
-
-
### Релиз ClickHouse 24.4, 2024-04-30 {#a-id244a-clickhouse-release-244-2024-04-30}
#### Заметки по обновлению {#upgrade-notes}
@@ -1393,8 +1297,6 @@ doc_type: 'changelog'
* Удалена настройка `optimize_monotonous_functions_in_order_by`. [#63004](https://github.com/ClickHouse/ClickHouse/pull/63004) ([Raúl Marín](https://github.com/Algunenano)).
* С движка базы данных `Replicated` снят экспериментальный статус. Теперь он находится на стадии beta. [#62937](https://github.com/ClickHouse/ClickHouse/pull/62937) ([Justin de Guzman](https://github.com/justindeguzman)).
-
-
#### Новая функция {#new-feature-8}
* Поддержка рекурсивных CTE. [#62074](https://github.com/ClickHouse/ClickHouse/pull/62074) ([Maksim Kita](https://github.com/kitaisreal)).
* Поддержка предложения `QUALIFY`. Закрывает [#47819](https://github.com/ClickHouse/ClickHouse/issues/47819). [#62619](https://github.com/ClickHouse/ClickHouse/pull/62619) ([Maksim Kita](https://github.com/kitaisreal)).
@@ -1409,8 +1311,6 @@ doc_type: 'changelog'
* Добавлен постоянный виртуальный столбец `_block_offset`, который хранит исходный номер строки в блоке, присвоенный при вставке. Сохранение столбца `_block_offset` на диске может быть включено настройкой MergeTree `enable_block_offset_column`. Добавлен виртуальный столбец `_part_data_version`, который содержит либо минимальный номер блока, либо версию мутации части. Постоянный виртуальный столбец `_block_number` больше не считается экспериментальным. [#60676](https://github.com/ClickHouse/ClickHouse/pull/60676) ([Anton Popov](https://github.com/CurtizJ)).
* Добавлена настройка `input_format_json_throw_on_bad_escape_sequence`; её отключение позволяет сохранять некорректные escape-последовательности во входных форматах JSON. [#61889](https://github.com/ClickHouse/ClickHouse/pull/61889) ([Kruglov Pavel](https://github.com/Avogar)).
-
-
#### Повышение производительности {#performance-improvement-8}
* Улучшения проталкивания фильтров в JOIN с использованием множеств эквивалентности. [#61216](https://github.com/ClickHouse/ClickHouse/pull/61216) ([Maksim Kita](https://github.com/kitaisreal)).
@@ -1429,8 +1329,6 @@ doc_type: 'changelog'
* Исправлена ошибка, из-за которой при добавлении избыточного `= 1` или `= 0` после логического выражения с участием первичного ключа не использовался первичный индекс. Например, и `SELECT * FROM <table> WHERE <primary-key> IN (<value>) = 1`, и `SELECT * FROM <table> WHERE <primary-key> NOT IN (<value>) = 0` приводили к полному сканированию таблицы, хотя мог быть использован первичный индекс. [#62142](https://github.com/ClickHouse/ClickHouse/pull/62142) ([josh-hildred](https://github.com/josh-hildred)).
* Возвращать поток чанков из `system.remote_data_paths` вместо накопления всего результата в одном большом чанке. Это позволяет расходовать меньше памяти, отображать промежуточный прогресс и отменять запрос. [#62613](https://github.com/ClickHouse/ClickHouse/pull/62613) ([Alexander Gololobov](https://github.com/davenger)).
-
-
#### Экспериментальная функция {#experimental-feature-6}
* Добавлена поддержка параллельного буфера записи для Azure Blob Storage, управляемая настройкой `azure_allow_parallel_part_upload`. [#62534](https://github.com/ClickHouse/ClickHouse/pull/62534) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Кэш страниц в пространстве пользователя (userspace page cache) теперь работает со статическим веб-хранилищем (`disk(type = web)`). Для включения используйте клиентскую настройку `use_page_cache_for_disks_without_file_cache=1`. [#61911](https://github.com/ClickHouse/ClickHouse/pull/61911) ([Michael Kolupaev](https://github.com/al13n321)).
@@ -1439,8 +1337,6 @@ doc_type: 'changelog'
* Добавлена поддержка `Variant` в функциях JSONExtract. [#62014](https://github.com/ClickHouse/ClickHouse/pull/62014) ([Kruglov Pavel](https://github.com/Avogar)).
* Тип `Variant` помечен как сравнимый, поэтому его можно использовать в первичном ключе. [#62693](https://github.com/ClickHouse/ClickHouse/pull/62693) ([Kruglov Pavel](https://github.com/Avogar)).
-
-
#### Улучшение {#improvement-8}
* Для удобства `SELECT * FROM numbers() `будет работать так же, как `SELECT * FROM system.numbers` — без лимита. [#61969](https://github.com/ClickHouse/ClickHouse/pull/61969) ([YenchangChan](https://github.com/YenchangChan)).
@@ -1480,8 +1376,6 @@ doc_type: 'changelog'
-
-
#### Улучшение сборки/тестирования/упаковки {#buildtestingpackaging-improvement-4}
* Завендорить зависимости Rust, чтобы код на Rust (который мы используем для мелких фич ради хайпа и лулзов) можно было собирать нормальным образом, аналогично C++. [#62297](https://github.com/ClickHouse/ClickHouse/pull/62297) ([Raúl Marín](https://github.com/Algunenano)).
@@ -1494,8 +1388,6 @@ doc_type: 'changelog'
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-6}
* Исправлена логическая ошибка при откате транзакции кворумной вставки. [#61953](https://github.com/ClickHouse/ClickHouse/pull/61953) ([Han Fei](https://github.com/hanfei1991)).
@@ -1564,12 +1456,8 @@ doc_type: 'changelog'
* Установлено имя сервера для SSL-рукопожатия в движке MongoDB [#63122](https://github.com/ClickHouse/ClickHouse/pull/63122) ([Alexander Gololobov](https://github.com/davenger)).
* Использовать указанную пользователем базу данных вместо "config" для проверки версии wire-протокола MongoDB [#63126](https://github.com/ClickHouse/ClickHouse/pull/63126) ([Alexander Gololobov](https://github.com/davenger)).
-
-
### Релиз ClickHouse 24.3 LTS от 2024-03-27 {#a-id243a-clickhouse-release-243-lts-2024-03-27}
-
-
#### Примечания по обновлению {#upgrade-notes-1}
* Настройка `allow_experimental_analyzer` включена по умолчанию и переключает анализ запросов на новую реализацию, которая обеспечивает лучшую совместимость и более полный набор возможностей. Функция "analyzer" считается бета-версией, а не экспериментальной. Вы можете вернуть старое поведение, установив параметр `compatibility` в значение `24.2` или отключив настройку `allow_experimental_analyzer`. Посмотрите [видео на YouTube](https://www.youtube.com/watch?v=zhrOYQpgvkk).
@@ -1583,8 +1471,6 @@ doc_type: 'changelog'
* По умолчанию запретить использование `SimpleAggregateFunction` в `ORDER BY` таблиц `MergeTree` (аналогично уже запрещённому `AggregateFunction`; запрет связан с тем, что такие функции не являются сравнимыми). Для разрешения их использования применяйте `allow_suspicious_primary_key`. [#61399](https://github.com/ClickHouse/ClickHouse/pull/61399) ([Azat Khuzhin](https://github.com/azat)).
* Движок базы данных `Ordinary` объявлен устаревшим. Вы получите предупреждение в clickhouse-client, если ваш сервер его использует. Это закрывает [#52229](https://github.com/ClickHouse/ClickHouse/issues/52229). [#56942](https://github.com/ClickHouse/ClickHouse/pull/56942) ([shabroo](https://github.com/shabroo)).
-
-
#### Новые возможности {#new-feature-9}
* Поддержка чтения и записи резервных копий в формате `tar` (в дополнение к `zip`). [#59535](https://github.com/ClickHouse/ClickHouse/pull/59535) ([josh-hildred](https://github.com/josh-hildred)).
* Реализована поддержка бакетов S3 Express. [#59965](https://github.com/ClickHouse/ClickHouse/pull/59965) ([Nikita Taranov](https://github.com/nickitat)).
@@ -1599,8 +1485,6 @@ doc_type: 'changelog'
* Добавлена функция `toMillisecond`, которая возвращает значение миллисекунд для значений типа `DateTime` или `DateTime64`. [#60281](https://github.com/ClickHouse/ClickHouse/pull/60281) ([Shaun Struwig](https://github.com/Blargian)).
* Добавлена возможность настраивать обработчики HTTP‑редиректов для clickhouse-server. Например, можно сделать так, чтобы `/` перенаправлял в Play UI. [#60390](https://github.com/ClickHouse/ClickHouse/pull/60390) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Повышение производительности {#performance-improvement-9}
* Оптимизирована функция `dotProduct`, чтобы избежать ненужных и дорогостоящих операций копирования памяти. [#60928](https://github.com/ClickHouse/ClickHouse/pull/60928) ([Robert Schulze](https://github.com/rschu1ze)).
@@ -1621,8 +1505,6 @@ doc_type: 'changelog'
* Добавлен новый проход анализатора для оптимизации оператора IN в случае одного значения. [#61564](https://github.com/ClickHouse/ClickHouse/pull/61564) ([LiuNeng](https://github.com/liuneng1994)).
* DNSResolver перемешивает набор разрешённых IP-адресов, что необходимо для равномерного распределения нагрузки между несколькими конечными точками AWS S3. [#60965](https://github.com/ClickHouse/ClickHouse/pull/60965) ([Sema Checherinda](https://github.com/CheSema)).
-
-
#### Экспериментальная функциональность {#experimental-feature-7}
* Добавлена поддержка параллельного чтения из Azure Blob Storage. Это повышает производительность экспериментального объектного хранилища Azure. [#61503](https://github.com/ClickHouse/ClickHouse/pull/61503) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* Добавлен асинхронный WriteBuffer для Azure Blob Storage, аналогичный S3. Это повышает производительность экспериментального объектного хранилища Azure. [#59929](https://github.com/ClickHouse/ClickHouse/pull/59929) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
@@ -1630,8 +1512,6 @@ doc_type: 'changelog'
* Добавлена настройка `parallel_replicas_allow_in_with_subquery = 1`, которая позволяет подзапросам в операторе IN работать с параллельными репликами. [#60950](https://github.com/ClickHouse/ClickHouse/pull/60950) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* Изменение для репликации «zero-copy»: все блокировки «zero-copy», относящиеся к таблице, должны быть сняты при удалении таблицы. Каталог, содержащий эти блокировки, также должен быть удален. [#57575](https://github.com/ClickHouse/ClickHouse/pull/57575) ([Sema Checherinda](https://github.com/CheSema)).
-
-
#### Улучшение {#improvement-9}
* Используйте `MergeTree` в качестве табличного движка по умолчанию. [#60524](https://github.com/ClickHouse/ClickHouse/pull/60524) ([Alexey Milovidov](https://github.com/alexey-milovidov))
@@ -1684,16 +1564,12 @@ doc_type: 'changelog'
* Добавлена функция `current_user` в качестве псевдонима для совместимости с MySQL. [#61770](https://github.com/ClickHouse/ClickHouse/pull/61770) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* Исправлены несогласованные состояния агрегатных функций с плавающей запятой в смешанных кластерах x86-64 / ARM [#60610](https://github.com/ClickHouse/ClickHouse/pull/60610) ([Harry Lee](https://github.com/HarryLeeIBM)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-5}
* Профилировщик запросов в реальном времени теперь работает на AArch64. В предыдущих версиях он работал только если программа не находилась внутри системного вызова. [#60807](https://github.com/ClickHouse/ClickHouse/pull/60807) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Версия ClickHouse добавлена в метки Docker. Закрывает [#54224](https://github.com/ClickHouse/ClickHouse/issues/54224). [#60949](https://github.com/ClickHouse/ClickHouse/pull/60949) ([Nikolay Monkov](https://github.com/nikmonkov)).
* Компонент `prqlc` обновлён до версии 0.11.3. [#60616](https://github.com/ClickHouse/ClickHouse/pull/60616) ([Maximilian Roos](https://github.com/max-sixty)).
* Добавлен универсальный фаззер текста запросов в `clickhouse-local`. [#61508](https://github.com/ClickHouse/ClickHouse/pull/61508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-7}
* Исправлена настройка finished_mutations_to_keep=0 для MergeTree (в документации указано, что 0 означает «сохранять всё») [#60031](https://github.com/ClickHouse/ClickHouse/pull/60031) ([Azat Khuzhin](https://github.com/azat)).
@@ -1756,8 +1632,6 @@ doc_type: 'changelog'
* Исправлен отчёт санитайзера в `multiSearchAllPositionsCaseInsensitiveUTF8` о некорректных данных UTF-8 [#61749](https://github.com/ClickHouse/ClickHouse/pull/61749) ([pufit](https://github.com/pufit)).
* Уточнено, что фрейм RANGE не поддерживается для столбцов типа Nullable. [#61766](https://github.com/ClickHouse/ClickHouse/pull/61766) ([YuanLiu](https://github.com/ditgittube)).
-
-
### Релиз ClickHouse 24.2, 2024-02-29 {#a-id242a-clickhouse-release-242-2024-02-29}
#### Обратное несовместимое изменение {#backward-incompatible-change-8}
@@ -1767,8 +1641,6 @@ doc_type: 'changelog'
* Разрешить заключать операции ALTER в круглые скобки. Вывод скобок может управляться с помощью настройки `format_alter_operations_with_parentheses`. По умолчанию в отформатированных запросах скобки выводятся, поскольку мы храним отформатированные операции ALTER в некоторых местах как метаданные (например, для мутаций). Новый синтаксис проясняет некоторые запросы, в которых операции ALTER заканчиваются списком. Например, `ALTER TABLE x MODIFY TTL date GROUP BY a, b, DROP COLUMN c` не может быть корректно разобран со старым синтаксисом. В новом синтаксисе запрос `ALTER TABLE x (MODIFY TTL date GROUP BY a, b), (DROP COLUMN c)` очевиден. Старые версии не могут прочитать новый синтаксис, поэтому использование нового синтаксиса может вызвать проблемы, если новые и старые версии ClickHouse используются в одном кластере. [#59532](https://github.com/ClickHouse/ClickHouse/pull/59532) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* Исправление уязвимости безопасности в материализованном представлении, которая позволяла пользователю выполнять вставку в таблицу без необходимых привилегий. Исправление проверяет, что у пользователя есть права на вставку не только в материализованное представление, но и во все лежащие в его основе таблицы. Это означает, что некоторые запросы, которые работали раньше, теперь могут завершаться ошибкой `Not enough privileges`. Для решения этой проблемы релиз вводит новый механизм SQL security для представлений https://clickhouse.com/docs/sql-reference/statements/create/view#sql_security. [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)).
-
-
#### Новая возможность {#new-feature-10}
* Добавлен новый синтаксис, который позволяет указывать пользователя-определителя (definer) в представлении/материализованном представлении. Это позволяет выполнять операции SELECT/INSERT из представлений без явных привилегий на базовые таблицы. Таким образом, представление будет инкапсулировать права доступа. [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)).
@@ -1789,8 +1661,6 @@ doc_type: 'changelog'
* Добавлена поддержка указания набора разрешённых пользователей для отдельных настроек S3 в конфигурации с помощью ключа `user`. [#60144](https://github.com/ClickHouse/ClickHouse/pull/60144) ([Antonio Andelic](https://github.com/antonio2368)).
* Добавлена табличная функция `mergeTreeIndex`. Она представляет содержимое файлов индекса и меток таблиц `MergeTree`. Её можно использовать для интроспекции. Синтаксис: `mergeTreeIndex(database, table, [with_marks = true])`, где `database.table` — это существующая таблица с движком `MergeTree`. [#58140](https://github.com/ClickHouse/ClickHouse/pull/58140) ([Anton Popov](https://github.com/CurtizJ)).
-
-
#### Экспериментальная функция {#experimental-feature-8}
* Добавлена функция `seriesOutliersDetectTukey` для обнаружения выбросов в данных временных рядов с использованием алгоритма ограждений Тьюки (Tukey's fences). [#58632](https://github.com/ClickHouse/ClickHouse/pull/58632) ([Bhavna Jindal](https://github.com/bhavnajindal)). Имейте в виду, что поведение будет изменено в следующем патч-релизе.
* Добавлена функция `variantType`, которая возвращает Enum с именем варианта типа для каждой строки. [#59398](https://github.com/ClickHouse/ClickHouse/pull/59398) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -1799,8 +1669,6 @@ doc_type: 'changelog'
* Реализован оператор сравнения для значений `Variant` и корректная вставка Field в столбец `Variant`. По умолчанию запрещено создавать тип `Variant` со схожими вариантами типов (разрешается при включении настройки `allow_suspicious_variant_types`). Закрывает [#59996](https://github.com/ClickHouse/ClickHouse/issues/59996). Закрывает [#59850](https://github.com/ClickHouse/ClickHouse/issues/59850). [#60198](https://github.com/ClickHouse/ClickHouse/pull/60198) ([Kruglov Pavel](https://github.com/Avogar)).
* Отключено выполнение `JOIN` с параллельными репликами для CTE (без analyzer'а). [#59239](https://github.com/ClickHouse/ClickHouse/pull/59239) ([Raúl Marín](https://github.com/Algunenano)).
-
-
#### Повышение производительности {#performance-improvement-10}
* Первичный ключ будет потреблять меньше памяти. [#60049](https://github.com/ClickHouse/ClickHouse/pull/60049) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -1824,8 +1692,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-10}
* Когда формат вывода — `Pretty`, и блок состоит из одного числового значения, которое превышает один миллион, читабельное число будет выведено в правой части таблицы. [#60379](https://github.com/ClickHouse/ClickHouse/pull/60379) ([rogeryk](https://github.com/rogeryk)).
@@ -1866,8 +1732,6 @@ doc_type: 'changelog'
* Подключения через MySQL-порт теперь автоматически выполняются с настройкой `prefer_column_name_to_alias = 1`, что позволяет поддерживать QuickSight «из коробки». Также настройки `mysql_map_string_to_text_in_show_columns` и `mysql_map_fixed_string_to_text_in_show_columns` теперь включены по умолчанию и, как и предыдущая, применяются только к подключениям по MySQL. Это повышает совместимость с большим числом BI-инструментов. [#60365](https://github.com/ClickHouse/ClickHouse/pull/60365) ([Robert Schulze](https://github.com/rschu1ze)).
* Исправлено состояние гонки в коде JavaScript, из-за которого графики дублировались и накладывались друг на друга. [#60392](https://github.com/ClickHouse/ClickHouse/pull/60392) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Улучшения сборки/тестирования/упаковки {#buildtestingpackaging-improvement-6}
* Добавлены сборки и тесты с интроспективным сбором покрытия. Продолжение [#56102](https://github.com/ClickHouse/ClickHouse/issues/56102). [#58792](https://github.com/ClickHouse/ClickHouse/pull/58792) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Обновлён инструментарий Rust в `corrosion-cmake`, когда задана переменная CMake для кросс-компиляции toolchain. [#59309](https://github.com/ClickHouse/ClickHouse/pull/59309) ([Aris Tritas](https://github.com/aris-aiven)).
@@ -1877,8 +1741,6 @@ doc_type: 'changelog'
* Query fuzzer теперь фаззит SETTINGS внутри запросов. [#60087](https://github.com/ClickHouse/ClickHouse/pull/60087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Добавлена поддержка сборки ClickHouse с clang-19 (master). [#60448](https://github.com/ClickHouse/ClickHouse/pull/60448) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
-
-
#### Исправление ошибки (видимая пользователю неисправность в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-8}
* Исправлена ошибка «Non-ready set» в TTL WHERE. [#57430](https://github.com/ClickHouse/ClickHouse/pull/57430) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
@@ -1931,8 +1793,6 @@ doc_type: 'changelog'
* Исправлена проблема в `OptimizeDateOrDateTimeConverterWithPreimageVisitor` при работе с аргументами `null` [#60453](https://github.com/ClickHouse/ClickHouse/pull/60453) ([Raúl Marín](https://github.com/Algunenano)).
* Исправлена незначительная ошибка, из-за которой запросы к распределённым таблицам, отправленные клиентами, использующими диалекты KQL или PRQL, не выполнялись на репликах. [#59674](https://github.com/ClickHouse/ClickHouse/issues/59674). [#60470](https://github.com/ClickHouse/ClickHouse/pull/60470) ([Alexey Milovidov](https://github.com/alexey-milovidov)) [#59674](https://github.com/ClickHouse/ClickHouse/pull/59674) ([Austin Kothig](https://github.com/kothiga)).
-
-
### Релиз ClickHouse 24.1, 2024-01-30 {#a-id241a-clickhouse-release-241-2024-01-30}
#### Изменения, нарушающие обратную совместимость {#backward-incompatible-change-9}
@@ -1945,8 +1805,6 @@ doc_type: 'changelog'
* Диалект `Kusto` отключён до тех пор, пока не будут исправлены следующие две ошибки: [#59037](https://github.com/ClickHouse/ClickHouse/issues/59037) и [#59036](https://github.com/ClickHouse/ClickHouse/issues/59036). [#59305](https://github.com/ClickHouse/ClickHouse/pull/59305) ([Alexey Milovidov](https://github.com/alexey-milovidov)). Любая попытка использовать `Kusto` приведёт к исключению.
* Более эффективная реализация модификатора `FINAL` больше не гарантирует сохранение порядка даже при `max_threads = 1`. Если вы рассчитывали на предыдущее поведение, установите `enable_vertical_final` в значение 0 или `compatibility` в `23.12`.
-
-
#### Новая возможность {#new-feature-11}
* Реализован тип данных Variant, представляющий собой объединение других типов данных. Тип `Variant(T1, T2, ..., TN)` означает, что каждая строка этого типа содержит значение одного из типов `T1`, `T2`, ..., `TN` либо ни одного из них (значение `NULL`). Тип Variant доступен при включённой настройке `allow_experimental_variant_type`. Ссылка: [#54864](https://github.com/ClickHouse/ClickHouse/issues/54864). [#58047](https://github.com/ClickHouse/ClickHouse/pull/58047) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -1977,8 +1835,6 @@ doc_type: 'changelog'
-
-
#### Повышение производительности {#performance-improvement-11}
* Координационный механизм для параллельных реплик переработан для улучшения параллелизма и локальности кэша. Он был протестирован и показал линейную масштабируемость на сотнях реплик. Также добавлена поддержка чтения в заданном порядке. [#57968](https://github.com/ClickHouse/ClickHouse/pull/57968) ([Nikita Taranov](https://github.com/nickitat)).
@@ -2006,8 +1862,6 @@ doc_type: 'changelog'
-
-
#### Улучшение {#improvement-11}
* Добавлены комментарии (краткие описания) ко всем столбцам системных таблиц. На это есть несколько причин: - Мы очень активно используем системные таблицы, и иногда разработчику бывает очень сложно понять назначение и смысл конкретного столбца. - Мы часто меняем системные таблицы (добавляем новые или модифицируем существующие), и документация по ним постоянно устаревает. Например, посмотрите на страницу документации для [`system.parts`](/operations/system-tables/parts). В ней отсутствует множество столбцов. - В перспективе мы хотим генерировать документацию напрямую из ClickHouse. [#58356](https://github.com/ClickHouse/ClickHouse/pull/58356) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
@@ -2056,8 +1910,6 @@ doc_type: 'changelog'
* Реализована поддержка предложения `FORMAT` в запросах `BACKUP` и `RESTORE`. [#59338](https://github.com/ClickHouse/ClickHouse/pull/59338) ([Vitaly Baranov](https://github.com/vitlibar)).
* Функция `concatWithSeparator` теперь поддерживает аргументы произвольных типов (а не только аргументы типов `String` и `FixedString`). Например, теперь `SELECT concatWithSeparator('.', 'number', 1)` возвращает `number.1`. [#59341](https://github.com/ClickHouse/ClickHouse/pull/59341) ([Robert Schulze](https://github.com/rschu1ze)).
-
-
#### Улучшение сборки/тестирования/упаковки {#buildtestingpackaging-improvement-7}
* Улучшены алиасы для бинарника clickhouse (теперь `ch`/`clickhouse` — это `clickhouse-local` или `clickhouse` в зависимости от аргументов) и добавлено автодополнение bash для новых алиасов. [#58344](https://github.com/ClickHouse/ClickHouse/pull/58344) ([Azat Khuzhin](https://github.com/azat)).
* Добавлена проверка изменений настроек в CI, чтобы убедиться, что все изменения настроек отражены в истории изменений настроек. [#58555](https://github.com/ClickHouse/ClickHouse/pull/58555) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -2068,8 +1920,6 @@ doc_type: 'changelog'
#### Исправление ошибки (заметное пользователю некорректное поведение в официальном стабильном релизе) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release-9}
-
-
* Добавлено преобразование ключей соединения для вложенных типов LowCardinality [#51550](https://github.com/ClickHouse/ClickHouse/pull/51550) ([vdimir](https://github.com/vdimir)).
* Разворачивать при flatten_nested=1 только собственно тип Nested, а не все Array(Tuple) [#56132](https://github.com/ClickHouse/ClickHouse/pull/56132) ([Kruglov Pavel](https://github.com/Avogar)).
* Исправлена ошибка с проекциями и настройкой `aggregate_functions_null_for_empty` при вставке. [#56944](https://github.com/ClickHouse/ClickHouse/pull/56944) ([Amos Bird](https://github.com/amosbird)).
@@ -2120,6 +1970,4 @@ doc_type: 'changelog'
-
-
## [Журнал изменений за 2023 год](/whats-new/changelog/2023) {#changelog-for-2023}
diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/security-changelog.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/security-changelog.md
index 596ce05e5d3..0776d19da81 100644
--- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/security-changelog.md
+++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/security-changelog.md
@@ -8,12 +8,8 @@ doc_type: 'changelog'
keywords: ['безопасность', 'CVE', 'уязвимости', 'исправления безопасности', 'патчи']
---
-
-
# Журнал изменений безопасности {#security-changelog}
-
-
## Исправлено в ClickHouse v25.1.5.5, 2025-01-05 {#fixed-in-clickhouse-release-2025-01-05}
### [CVE-2025-1385](https://github.com/ClickHouse/ClickHouse/security/advisories/GHSA-5phv-x8x4-83x5) {#CVE-2025-1385}
@@ -26,8 +22,6 @@ ClickHouse Cloud не затронут данной уязвимостью.
Благодарности: [Arseniy Dugin](https://github.com/ZerLes)
-
-
## Исправлено в ClickHouse v24.5, 2024-08-01 {#fixed-in-clickhouse-release-2024-08-01}
### [CVE-2024-6873](https://github.com/ClickHouse/ClickHouse/security/advisories/GHSA-432f-r822-j66f) {#CVE-2024-6873}
@@ -40,8 +34,6 @@ ClickHouse Cloud использует иную схему версиониров
Благодарности: malacupa (независимый исследователь)
-
-
## Исправлено в ClickHouse v24.1, 2024-01-30 {#fixed-in-clickhouse-release-24-01-30}
### [CVE-2024-22412](https://github.com/ClickHouse/ClickHouse/security/advisories/GHSA-45h5-f7g3-gr8r) {#CVE-2024-22412}
@@ -54,8 +46,6 @@ ClickHouse Cloud использует другую схему версионир
Благодарности: Evan Johnson и Alan Braithwaite из команды Runreveal — дополнительную информацию можно найти в [их записи в блоге](https://blog.runreveal.com/cve-2024-22412-behind-the-bug-a-classic-caching-problem-in-the-clickhouse-query-cache/).
-
-
## Исправлено в ClickHouse v23.10.5.20, 2023-11-26 {#fixed-in-clickhouse-release-23-10-5-20-2023-11-26}
### [CVE-2023-47118](https://github.com/ClickHouse/ClickHouse/security/advisories/GHSA-g22g-p6q2-x39v) {#CVE-2023-47118}
@@ -88,8 +78,6 @@ ClickHouse Cloud использует другую схему версионир
Благодарности: malacupa (независимый исследователь)
-
-
## Исправлено в ClickHouse 22.9.1.2603, 2022-09-22 {#fixed-in-clickhouse-release-22-9-1-2603-2022-9-22}
### CVE-2022-44011 {#CVE-2022-44011}
@@ -108,8 +96,6 @@ ClickHouse Cloud использует другую схему версионир
Благодарности: Kiojj (независимый исследователь)
-
-
## Исправлено в ClickHouse 21.10.2.15, 2021-10-18 {#fixed-in-clickhouse-release-21-10-2-215-2021-10-18}
### CVE-2021-43304 {#cve-2021-43304}
@@ -154,8 +140,6 @@ ClickHouse Cloud использует другую схему версионир
Благодарности: JFrog Security Research Team
-
-
## Исправлено в ClickHouse 21.4.3.21, 2021-04-12 {#fixed-in-clickhouse-release-21-4-3-21-2021-04-12}
### CVE-2021-25263 {#cve-2021-25263}
@@ -166,8 +150,6 @@ ClickHouse Cloud использует другую схему версионир
Благодарности: [Vyacheslav Egoshin](https://twitter.com/vegoshin)
-
-
## Исправлено в релизе ClickHouse 19.14.3.3, 2019-09-10 {#fixed-in-clickhouse-release-19-14-3-3-2019-09-10}
### CVE-2019-15024 {#cve-2019-15024}
@@ -188,8 +170,6 @@ OOB read, OOB write и целочисленное переполнение (unde
Благодарности: Eldar Zaitov из команды информационной безопасности Yandex
-
-
## Исправлено в релизе ClickHouse 19.13.6.1, 2019-09-20 {#fixed-in-clickhouse-release-19-13-6-1-2019-09-20}
### CVE-2019-18657 {#cve-2019-18657}
@@ -198,8 +178,6 @@ OOB read, OOB write и целочисленное переполнение (unde
Благодарности: [Nikita Tikhomirov](https://github.com/NSTikhomirov)
-
-
## Исправлено в релизе ClickHouse 18.12.13, 2018-09-10 {#fixed-in-clickhouse-release-18-12-13-2018-09-10}
### CVE-2018-14672 {#cve-2018-14672}
@@ -208,8 +186,6 @@ OOB read, OOB write и целочисленное переполнение (unde
Авторы: Андрей Красичков из команды информационной безопасности Яндекса (Yandex Information Security Team)
-
-
## Исправлено в ClickHouse Release 18.10.3, 2018-08-13 {#fixed-in-clickhouse-release-18-10-3-2018-08-13}
### CVE-2018-14671 {#cve-2018-14671}
@@ -218,8 +194,6 @@ unixODBC позволял загружать произвольные разде
Благодарности: Андрей Красичков и Евгений Сидоров из команды информационной безопасности Яндекса
-
-
## Исправлено в релизе ClickHouse 1.1.54388 от 2018-06-28 {#fixed-in-clickhouse-release-1-1-54388-2018-06-28}
### CVE-2018-14668 {#cve-2018-14668}
@@ -228,8 +202,6 @@ unixODBC позволял загружать произвольные разде
Благодарности: Андрей Красичков из команды информационной безопасности Яндекса
-
-
## Исправлено в релизе ClickHouse 1.1.54390, 2018-07-06 {#fixed-in-clickhouse-release-1-1-54390-2018-07-06}
### CVE-2018-14669 {#cve-2018-14669}
@@ -238,8 +210,6 @@ MySQL-клиент ClickHouse поддерживал функцию "LOAD DATA L
Благодарности: Андрей Красичков и Евгений Сидоров, Команда информационной безопасности Яндекса
-
-
## Исправлено в релизе ClickHouse 1.1.54131, 2017-01-10 {#fixed-in-clickhouse-release-1-1-54131-2017-01-10}
### CVE-2018-14670 {#cve-2018-14670}
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_add_superset_detail.md b/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_add_superset_detail.md
index 8023aa8fc19..cf6ebf871d2 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_add_superset_detail.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_add_superset_detail.md
@@ -13,7 +13,6 @@ Superset 提供了[使用 Docker Compose 在本地安装 Superset](https://super
以下命令需要在 GitHub 代码仓库 `superset` 的根目录下运行。
:::
-
## 官方 ClickHouse Connect 驱动程序 {#official-clickhouse-connect-driver}
要在 Superset 部署中启用 ClickHouse Connect 驱动程序,请将其添加到本地 requirements 文件中:
@@ -22,7 +21,6 @@ Superset 提供了[使用 Docker Compose 在本地安装 Superset](https://super
echo "clickhouse-connect" >> ./docker/requirements-local.txt
```
-
## Mapbox {#mapbox}
此步骤是可选的。你可以在不提供 Mapbox API 密钥的情况下在 Superset 中绘制地理位置信息,但你会看到一条提示信息,建议你添加密钥,而且地图的背景图像会缺失(你只能看到数据点,而看不到地图底图)。如果你想使用,Mapbox 提供了免费套餐。
@@ -35,7 +33,6 @@ echo "clickhouse-connect" >> ./docker/requirements-local.txt
echo "MAPBOX_API_KEY=pk.SAMPLE-Use-your-key-instead" >> docker/.env-non-dev
```
-
## 部署 Superset 2.0.0 版本 {#deploy-superset-version-200}
要部署 2.0.0 版本,请运行:
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_users-and-roles-common.md b/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_users-and-roles-common.md
index 16ab1257673..5c6d43d660b 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_users-and-roles-common.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_users-and-roles-common.md
@@ -32,7 +32,6 @@ DROP TABLE db1.table1;
DROP DATABASE db1;
```
-
## 非管理员用户 {#non-admin-users}
用户应具备必要的权限,而非全部设为管理员用户。本文档的其余部分提供了示例场景及所需的角色配置。
@@ -172,14 +171,12 @@ CREATE USER row_user IDENTIFIED BY 'password';
ON db1.table1 FOR SELECT USING 1 TO clickhouse_admin, column1_users;
```
-
:::note
将策略附加到表时,系统将应用该策略,仅允许已定义的用户和角色对表执行操作,其他所有用户的任何操作都将被拒绝。为避免将限制性行策略应用于其他用户,必须定义另一个策略,以允许其他用户和角色进行常规访问或其他类型的访问。
:::
-
## 验证 {#verification}
### 使用列受限用户测试角色权限 {#testing-role-privileges-with-column-restricted-user}
@@ -293,8 +290,6 @@ CREATE USER row_user IDENTIFIED BY 'password';
-
-
## 修改用户和角色 {#modifying-users-and-roles}
可以为用户分配多个角色,以组合满足需求的权限。当使用多个角色时,系统会合并这些角色来确定最终权限,其结果是各角色的权限会累加生效。
@@ -365,8 +360,6 @@ CREATE USER row_user IDENTIFIED BY 'password';
```
-
-
## 故障排查 {#troubleshooting}
在某些情况下,权限之间会相互交叉或组合,从而产生意外结果。可以使用以下命令配合管理员账号来帮助定位问题。
@@ -429,7 +422,6 @@ Query id: 0d3b5846-95c7-4e62-9cdd-91d82b14b80b
└─────────────────────────────────────────────────────────────────────────────────────────────┘
```
-
## 管理角色、策略和用户的示例命令 {#example-commands-to-manage-roles-policies-and-users}
可以使用以下命令:
@@ -474,7 +466,6 @@ DROP ROLE A_rows_users;
DROP USER row_user;
```
-
## 总结 {#summary}
本文介绍了创建 SQL 用户和角色的基础方法,并提供了为用户和角色设置和修改权限的步骤。若需了解各项内容的更详细信息,请参阅我们的用户指南和参考文档。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md b/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md
index 1ff29bae824..e43d53cc191 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md
@@ -46,7 +46,6 @@ doc_type: 'reference'
{/*AUTOGENERATED_START*/ }
-
## Beta 设置 {#beta-settings}
| 名称 | 默认 |
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/about-us/cloud.md b/i18n/zh/docusaurus-plugin-content-docs/current/about-us/cloud.md
index 41ccd7df7e3..022117ff653 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/about-us/cloud.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/about-us/cloud.md
@@ -8,15 +8,11 @@ keywords: ['ClickHouse Cloud', '云数据库', '托管式 ClickHouse', 'Serverle
doc_type: 'reference'
---
-
-
# ClickHouse Cloud {#clickhouse-cloud}
ClickHouse Cloud 是由广受欢迎的开源 OLAP 数据库 ClickHouse 的原始作者打造的云服务。
您可以通过[开始免费试用](https://console.clickhouse.cloud/signUp)来体验 ClickHouse Cloud。
-
-
## ClickHouse Cloud 的优势 {#clickhouse-cloud-benefits}
下面是使用 ClickHouse Cloud 的部分优势:
@@ -28,8 +24,6 @@ ClickHouse Cloud 是由广受欢迎的开源 OLAP 数据库 ClickHouse 的原始
- **总体拥有成本更低**:提供极佳的性价比,并将运维管理开销降至最低。
- **广泛的生态系统**:可以继续使用你偏好的数据连接器、可视化工具、SQL 和各类语言客户端。
-
-
{/*
## OSS 与 ClickHouse Cloud 对比
@@ -51,7 +45,6 @@ ClickHouse Cloud 是由广受欢迎的开源 OLAP 数据库 ClickHouse 的原始
| **Managed services** | 借助云托管服务,团队可以专注于业务成果、加速产品上市,而无需操心 ClickHouse 的容量规划、部署和维护等运维开销。 | ❌ | ✅ |
*/ }
-
## ClickHouse Cloud 使用的是哪个版本的 ClickHouse? {#what-version-of-clickhouse-does-clickhouse-cloud-use}
ClickHouse Cloud 会持续将您的服务升级到更新的版本。在开源社区发布一个核心数据库版本之后,我们会在云端预发布环境中进行额外验证,这通常需要 6–8 周时间,然后才会推送到生产环境。版本发布会按云服务提供商、服务类型和区域分阶段逐步进行。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/about-us/distinctive-features.md b/i18n/zh/docusaurus-plugin-content-docs/current/about-us/distinctive-features.md
index 0003a94cecc..6286fbc9b08 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/about-us/distinctive-features.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/about-us/distinctive-features.md
@@ -8,12 +8,8 @@ keywords: ['压缩', '二级索引','列式']
doc_type: 'guide'
---
-
-
# ClickHouse 的独特特性 {#distinctive-features-of-clickhouse}
-
-
## 真正的列式数据库管理系统 {#true-column-oriented-database-management-system}
在真正的列式 DBMS 中,值本身不会附带存储任何额外数据。这意味着必须支持定长值,以避免在值旁边额外存储一个表示其长度的“数值”。例如,十亿个 `UInt8` 类型的值在未压缩时应大约只占用 1 GB,否则会对 CPU 的使用造成明显影响。即使在未压缩的情况下,也必须以紧凑的方式存储数据(没有任何“垃圾”),因为解压缩速度(CPU 占用)主要取决于未压缩数据的体积。
@@ -22,38 +18,28 @@ doc_type: 'guide'
最后,ClickHouse 是一个数据库管理系统,而不是单一的数据库。它允许在运行时创建表和数据库、加载数据以及执行查询,而无需重新配置和重启服务器。
-
-
## 数据压缩 {#data-compression}
有些列式 DBMS 不使用数据压缩。然而,数据压缩在实现卓越性能方面起着关键作用。
除了在磁盘空间与 CPU 消耗之间具有不同权衡的高效通用压缩编解码器之外,ClickHouse 还为特定类型的数据提供了[专用编解码器](/sql-reference/statements/create/table.md#specialized-codecs),使 ClickHouse 不仅能够与更小众的数据库(例如时序数据库)竞争,还能在性能上超越它们。
-
-
## 数据的磁盘存储 {#disk-storage-of-data}
按主键对数据进行物理排序,可以在几十毫秒内以极低延迟按特定值或值范围提取数据。一些列式 DBMS,例如 SAP HANA 和 Google PowerDrill,只能依赖内存运行。这种方式需要投入远高于实时分析实际需求的硬件预算。
ClickHouse 被设计为能够在普通硬盘上工作,这意味着每 GB 数据存储成本较低,但如果有 SSD 和额外内存,也会被充分利用。
-
-
## 在多核上进行并行处理 {#parallel-processing-on-multiple-cores}
大型查询会自动并行执行,充分利用当前服务器上所有可用资源。
-
-
## 在多台服务器上的分布式处理 {#distributed-processing-on-multiple-servers}
上文提到的列式 DBMS 几乎都不支持分布式查询处理。
在 ClickHouse 中,数据可以分布在不同的分片上。每个分片可以由一组用于容错的副本组成。所有分片都会参与并行执行查询,对用户而言是透明的。
-
-
## SQL 支持 {#sql-support}
ClickHouse 支持一种基于 SQL 的 [声明式查询语言](/sql-reference/),该语言在很大程度上兼容 ANSI SQL 标准。
@@ -62,40 +48,28 @@ ClickHouse 支持一种基于 SQL 的 [声明式查询语言](/sql-reference/)
在撰写本文时,尚不支持关联(依赖)子查询,但未来可能会提供支持。
-
-
## 向量计算引擎 {#vector-engine}
数据不仅按列存储,还以向量(列的一部分)为单位进行处理,从而实现很高的 CPU 利用效率。
-
-
## 实时数据插入 {#real-time-data-updates}
ClickHouse 支持带有主键的表。为了能够快速在主键范围内执行查询,数据会通过 MergeTree 以增量方式排序。得益于这种机制,数据可以持续不断地写入到表中。在摄取新数据时不会对表加锁。
-
-
## 主键索引 {#primary-index}
将数据按主键进行物理排序,可以以低至几十毫秒的延迟,根据特定值或取值范围提取数据。
-
-
## 二级索引 {#secondary-indexes}
与其他数据库管理系统不同,ClickHouse 中的二级索引并不指向特定的行或行范围。相反,它们使数据库能够预先判断某些数据部分中的所有行都不满足查询过滤条件,从而完全不读取这些数据部分,因此它们被称为[数据跳过索引(data skipping indexes)](../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-data_skipping-indexes)。
-
-
## 适用于在线查询 {#suitable-for-online-queries}
大多数 OLAP 数据库管理系统并不以支持延迟低于一秒的在线查询为目标。在其他系统中,生成报表耗时几十秒甚至几分钟通常被认为是可以接受的。有时耗时甚至更长,从而迫使系统改为离线生成报表(预先生成,或者通过返回“稍后再来”来延后处理)。
在 ClickHouse 中,“低延迟”意味着查询可以在没有额外等待时间、也无需尝试提前准备结果的情况下完成处理,恰好在用户界面页面加载的那一刻返回结果——换句话说,就是 *在线*。
-
-
## 对近似计算的支持 {#support-for-approximated-calculations}
ClickHouse 提供多种在准确性和性能之间进行权衡的方式:
@@ -104,28 +78,20 @@ ClickHouse 提供多种在准确性和性能之间进行权衡的方式:
2. 基于部分数据([SAMPLE](../sql-reference/statements/select/sample.md))运行查询并获取近似结果。在这种情况下,从磁盘读取的数据量会按比例减少。
3. 仅对有限数量的随机键执行聚合,而不是对所有键执行聚合。在数据中键的分布满足特定条件的情况下,这种方式在使用更少资源的前提下,仍可提供足够精确的结果。
-
-
## 自适应 JOIN 算法 {#adaptive-join-algorithm}
ClickHouse 会自适应地选择多表 [JOIN](../sql-reference/statements/select/join.md) 的方式:优先使用哈希 JOIN,当存在多个大表时则退回为合并 JOIN。
-
-
## 数据复制与数据完整性支持 {#data-replication-and-data-integrity-support}
ClickHouse 使用异步多主复制。数据写入任一可用副本后,其余所有副本都会在后台拉取该数据的副本。系统会在不同副本上维护一致的数据。在大多数故障情况下可以自动恢复,在复杂场景下则可以通过半自动方式完成恢复。
有关更多信息,请参阅[数据复制](../engines/table-engines/mergetree-family/replication.md)一节。
-
-
## 基于角色的访问控制 {#role-based-access-control}
ClickHouse 通过 SQL 查询实现用户账号管理,并支持 [基于角色的访问控制配置](/guides/sre/user-management/index.md),其工作方式类似于 ANSI SQL 标准以及常见关系型数据库管理系统中的实现。
-
-
## 可能被视为缺点的特性 {#clickhouse-features-that-can-be-considered-disadvantages}
1. 不支持完整的事务。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/_snippets/_async_inserts.md b/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/_snippets/_async_inserts.md
index 42d97c3c81b..9e9d163e786 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/_snippets/_async_inserts.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/_snippets/_async_inserts.md
@@ -43,7 +43,6 @@ import async_inserts from '@site/static/images/bestpractices/async_inserts.png';
在实践中,如果开启了去重并对同一插入执行重试——例如由于超时或网络中断——ClickHouse 可以安全地忽略重复记录。这有助于保持幂等性并避免数据被写入两次。不过,仍需注意,插入验证和 schema 解析仅在缓冲刷新时执行——因此错误(例如类型不匹配)只会在那个时间点才会暴露出来。
-
### 启用异步插入 {#enabling-asynchronous-inserts}
可以为特定用户或特定查询启用异步插入:
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/json_type.md b/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/json_type.md
index dc2af27747d..523e92caf69 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/json_type.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/json_type.md
@@ -11,8 +11,6 @@ doc_type: 'reference'
ClickHouse 现在提供了一种原生的 JSON 列类型,用于处理半结构化和动态数据。需要特别说明的是,**这是一种列类型,而不是一种数据格式**——可以将 JSON 作为字符串插入到 ClickHouse 中,或者通过诸如 [JSONEachRow](/interfaces/formats/JSONEachRow) 之类的受支持格式进行插入,但这并不意味着在使用 JSON 列类型。只有当数据结构本身是动态的,而不是只是碰巧以 JSON 形式存储时,才应使用 JSON 列类型。
-
-
## 何时使用 JSON 类型 {#when-to-use-the-json-type}
在以下情况下使用 JSON 类型:
@@ -29,8 +27,6 @@ ClickHouse 现在提供了一种原生的 JSON 列类型,用于处理半结构
也可以混合使用多种方式——例如,为可预测的顶层字段使用静态列,同时为负载中动态变化的部分使用单个 JSON 列。
-
-
## 使用 JSON 的注意事项和技巧 {#considerations-and-tips-for-using-json}
`JSON` 类型通过将路径展平成子列,实现了高效的列式存储。但更高的灵活性也意味着需要承担相应的责任。要高效地使用它:
@@ -43,8 +39,6 @@ ClickHouse 现在提供了一种原生的 JSON 列类型,用于处理半结构
类型提示不仅仅是避免不必要类型推断的一种方式——它还能彻底消除存储和处理过程中的间接层。带有类型提示的 JSON 路径始终与传统列以相同方式存储,从而不再需要在查询时依赖[**判别器列(discriminator columns)**](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse#storage-extension-for-dynamically-changing-data)或进行动态解析。也就是说,在类型提示定义完善的情况下,嵌套的 JSON 字段可以获得与从一开始就建模为顶层字段几乎相同的性能和效率。因此,对于大多数结构相对稳定、但仍希望保留 JSON 灵活性的数据集,类型提示提供了一种便捷方式,在无需重构模式(schema)或摄取管道的前提下,保持性能。
:::
-
-
## 高级功能 {#advanced-features}
* JSON 列**可以像其他任意列一样用于主键**。不能为子列指定编解码器(codec)。
@@ -54,8 +48,6 @@ ClickHouse 现在提供了一种原生的 JSON 列类型,用于处理半结构
如需更多指导,请参阅 [ClickHouse JSON 文档](/sql-reference/data-types/newjson),或查看我们的博文 [A New Powerful JSON Data Type for ClickHouse](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse)。
-
-
## 示例 {#examples}
请看以下 JSON 示例,它表示来自 [Python PyPI 数据集](https://clickpy.clickhouse.com/) 的一行数据:
@@ -159,7 +151,6 @@ ORDER BY update_date
同样,我们可以以 JSON 格式插入数据:
-
```sql
INSERT INTO arxiv FORMAT JSONEachRow
{"id":"2101.11408","submitter":"Daniel Lemire","authors":"Daniel Lemire","title":"Number Parsing at a Gigabyte per Second","comments":"Software at https://github.com/fastfloat/fast_float and\n https://github.com/lemire/simple_fastfloat_benchmark/","journal-ref":"Software: Practice and Experience 51 (8), 2021","doi":"10.1002/spe.2984","report-no":null,"categories":"cs.DS cs.MS","license":"http://creativecommons.org/licenses/by/4.0/","abstract":"With disks and networks providing gigabytes per second ....\n","versions":[{"created":"Mon, 11 Jan 2021 20:31:27 GMT","version":"v1"},{"created":"Sat, 30 Jan 2021 23:57:29 GMT","version":"v2"}],"update_date":"2022-11-07","authors_parsed":[["Lemire","Daniel",""]]}
@@ -236,7 +227,6 @@ ORDER BY doc.update_date
我们可以向该表插入数据,并使用 [`JSONAllPathsWithTypes`](/sql-reference/functions/json-functions#JSONAllPathsWithTypes) 函数和 [`PrettyJSONEachRow`](/interfaces/formats/PrettyJSONEachRow) 输出格式查看后续推断出的 schema:
-
```sql
INSERT INTO arxiv FORMAT JSONAsObject
{"id":"2101.11408","submitter":"Daniel Lemire","authors":"Daniel Lemire","title":"每秒千兆字节的数字解析","comments":"软件位于 https://github.com/fastfloat/fast_float 和\n https://github.com/lemire/simple_fastfloat_benchmark/","journal-ref":"Software: Practice and Experience 51 (8), 2021","doi":"10.1002/spe.2984","report-no":null,"categories":"cs.DS cs.MS","license":"http://creativecommons.org/licenses/by/4.0/","abstract":"随着磁盘和网络提供每秒千兆字节的速度....\n","versions":[{"created":"Mon, 11 Jan 2021 20:31:27 GMT","version":"v1"},{"created":"Sat, 30 Jan 2021 23:57:29 GMT","version":"v2"}],"update_date":"2022-11-07","authors_parsed":[["Lemire","Daniel",""]],"tags":{"tag_1":{"name":"ClickHouse user","score":"A+","comment":"值得一读,适用于 ClickHouse"},"28_03_2025":{"name":"professor X","score":10,"comment":"收获不大","updates":[{"name":"professor X","comment":"Wolverine 觉得更有趣"}]}}}
@@ -305,7 +295,6 @@ INSERT INTO arxiv FORMAT JSONEachRow
{"id":"2101.11408","submitter":"Daniel Lemire","authors":"Daniel Lemire","title":"Number Parsing at a Gigabyte per Second","comments":"Software at https://github.com/fastfloat/fast_float and\n https://github.com/lemire/simple_fastfloat_benchmark/","journal-ref":"Software: Practice and Experience 51 (8), 2021","doi":"10.1002/spe.2984","report-no":null,"categories":"cs.DS cs.MS","license":"http://creativecommons.org/licenses/by/4.0/","abstract":"With disks and networks providing gigabytes per second ....\n","versions":[{"created":"Mon, 11 Jan 2021 20:31:27 GMT","version":"v1"},{"created":"Sat, 30 Jan 2021 23:57:29 GMT","version":"v2"}],"update_date":"2022-11-07","authors_parsed":[["Lemire","Daniel",""]],"tags":{"tag_1":{"name":"ClickHouse 用户","score":"A+","comment":"值得一读,适用于 ClickHouse"},"28_03_2025":{"name":"professor X","score":10,"comment":"收获不大","updates":[{"name":"professor X","comment":"金刚狼认为更有意思"}]}}}
```
-
现在我们就可以推断出子列 `tags` 的类型了。
```sql
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/sizing-and-hardware-recommendations.md b/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/sizing-and-hardware-recommendations.md
index 98ba76c1f76..4a0e07e27da 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/sizing-and-hardware-recommendations.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/sizing-and-hardware-recommendations.md
@@ -8,8 +8,6 @@ doc_type: 'guide'
keywords: ['容量规划', '硬件', '规格评估', '最佳实践', '性能']
---
-
-
# 容量规划与硬件建议 {#sizing-and-hardware-recommendations}
本指南介绍我们针对开源用户在硬件、计算资源、内存和磁盘配置方面的一般性建议。如果您希望简化部署,我们推荐使用 [ClickHouse Cloud](https://clickhouse.com/cloud),因为它能够根据您的工作负载自动扩缩并自适应调整,同时将与基础设施管理相关的成本降到最低。
@@ -23,8 +21,6 @@ keywords: ['容量规划', '硬件', '规格评估', '最佳实践', '性能']
- 硬件成本
- 维护成本
-
-
## 磁盘 {#disk}
在 ClickHouse 中应使用哪种类型的磁盘,取决于数据量以及对延迟或吞吐量的要求。
@@ -39,8 +35,6 @@ keywords: ['容量规划', '硬件', '规格评估', '最佳实践', '性能']
还可以结合使用 SSD 和 HDD,构建[冷热分层(热/暖/冷)架构](/guides/developer/ttl#implementing-a-hotwarmcold-architecture)。另一种选择是使用 [AWS S3](https://aws.amazon.com/s3/) 作为存储后端,以实现计算与存储分离。请参阅我们关于在开源 ClickHouse 中实现计算与存储分离的指南[此处](/guides/separation-storage-compute)。在 ClickHouse Cloud 中,计算与存储分离功能默认已提供。
-
-
## CPU {#cpu}
### 我应该使用哪种 CPU? {#which-cpu-should-i-use}
@@ -75,8 +69,6 @@ ClickHouse 并没有统一的 CPU 利用率目标。请使用 [iostat](https://l
例如,在使用 M 型 CPU 时,我们建议每 25 个 CPU 核心预留 100 GB 内存。要确定适合你的应用的内存大小,需要对内存使用情况进行分析。你可以阅读[这篇关于调试内存问题的指南](/guides/developer/debugging-memory-issues),或使用[内置可观测性仪表板](/operations/monitoring)来监控 ClickHouse。
-
-
## 内存 {#memory}
与 CPU 的选择类似,内存与存储的比例以及内存与 CPU 的比例应根据具体用例来确定。
@@ -96,8 +88,6 @@ ClickHouse 并没有统一的 CPU 利用率目标。请使用 [iostat](https://l
对于访问频繁的用例,例如面向客户的在线工作负载,我们建议使用更多内存,采用 1:30 到 1:50 的内存与存储比例。
-
-
## 副本 {#replicas}
我们建议每个分片至少配置三个副本(或在使用 [Amazon EBS](https://aws.amazon.com/ebs/) 时配置两个副本)。此外,我们建议在增加额外副本(水平扩展)之前,先对所有副本进行纵向扩容。
@@ -106,8 +96,6 @@ ClickHouse 不会自动分片,对数据集重新分片将需要大量计算资
可以考虑使用 [ClickHouse Cloud](https://clickhouse.com/cloud),它可以自动伸缩,并允许根据具体用例轻松控制副本数量。
-
-
## 大规模工作负载示例配置 {#example-configurations-for-large-workloads}
ClickHouse 的配置高度取决于具体应用程序的需求。如果您希望我们协助在成本和性能方面优化架构,请[联系销售](https://clickhouse.com/company/contact?loc=docs-sizing-and-hardware-recommendations)。
@@ -178,8 +166,6 @@ ClickHouse 的配置高度取决于具体应用程序的需求。如果您希望
### Fortune 500 电信运营商(日志用例){#fortune-500-telecom-operator-for-a-logging-use-case}
-
-