diff --git a/content/en/altinity-kb-functions/array-like-memory-usage.md b/content/en/altinity-kb-functions/array-like-memory-usage.md
index 86cebfafe2..69dbedf0f5 100644
--- a/content/en/altinity-kb-functions/array-like-memory-usage.md
+++ b/content/en/altinity-kb-functions/array-like-memory-usage.md
@@ -2,7 +2,7 @@
title: "arrayMap, arrayJoin or ARRAY JOIN memory usage"
linkTitle: "arrayMap, arrayJoin or ARRAY JOIN memory usage"
description: >
- Why arrayMap, arrayFilter, arrayJoin use so much memory?
+ Why do arrayMap, arrayFilter, and arrayJoin use so much memory?
---
## arrayMap-like functions memory usage calculation.
diff --git a/content/en/altinity-kb-integrations/ClickHouse_python_drivers.md b/content/en/altinity-kb-integrations/ClickHouse_python_drivers.md
index 6e339d42cf..08c8bc89df 100644
--- a/content/en/altinity-kb-integrations/ClickHouse_python_drivers.md
+++ b/content/en/altinity-kb-integrations/ClickHouse_python_drivers.md
@@ -6,8 +6,6 @@ description: >-
Python main drivers/clients for ClickHouse®
---
-## ClickHouse® python drivers
-
There are two main python drivers that can be used with ClickHouse. They all have their different set of features and use cases:
### ClickHouse driver AKA [clickhouse-driver](https://clickhouse-driver.readthedocs.io/en/latest/)
diff --git a/content/en/altinity-kb-integrations/Spark.md b/content/en/altinity-kb-integrations/Spark.md
index c3a16d96f4..b1813c40cd 100644
--- a/content/en/altinity-kb-integrations/Spark.md
+++ b/content/en/altinity-kb-integrations/Spark.md
@@ -2,12 +2,8 @@
title: "ClickHouse® + Spark"
linkTitle: "Spark"
weight: 100
-description: >-
- Spark
---
-## ClickHouse® + Spark
-
### jdbc
The trivial & natural way to talk to ClickHouse from Spark is using jdbc. There are 2 jdbc drivers:
diff --git a/content/en/altinity-kb-integrations/altinity-cloud/_index.md b/content/en/altinity-kb-integrations/altinity-cloud/_index.md
index b857fc0794..94f729920e 100644
--- a/content/en/altinity-kb-integrations/altinity-cloud/_index.md
+++ b/content/en/altinity-kb-integrations/altinity-cloud/_index.md
@@ -1,7 +1,81 @@
---
-title: "Cloud Services"
-linkTitle: "Cloud Services"
+title: "Altinity Cloud Access Management"
+linkTitle: "Altinity Cloud Access Management"
description: >
- Tips and tricks for using ClickHouse® with different cloud services.
-weight: 4
+ Enabling access_management for Altinity.Cloud databases.
+weight: 5
+alias: /altinity-kb-integrations/altinity-cloud
---
+Organizations that want to enable administrative users in their Altinity.Cloud ClickHouse® servers can do so by enabling `access_management` manually. This allows for administrative users to be created on the specific ClickHouse Cluster.
+
+{{% alert title="WARNING" color="warning" %}}
+Modifying the ClickHouse cluster settings manually can lead to the cluster not loading or other issues. Change settings only with full consultation with an Altinity.Cloud support team member, and be ready to remove settings if they cause any disruption of service.
+{{% /alert %}}
+
+To add the `access_management` setting to an Altinity.Cloud ClickHouse Cluster:
+
+1. Log into your Altinity.Cloud account.
+1. For the cluster to modify, select **Configure -> Settings**.
+
+ {{< figure src="/assets/altinity-cloud-cluster-settings-configure.png" width="400" title="Cluster setting configure" >}}
+
+1. From the Settings page, select **+ADD SETTING**.
+
+ {{< figure src="/assets/altinity-cloud-cluster-add-setting.png" title="Add cluster setting" >}}
+
+1. Set the following options:
+ 1. **Setting Type**: Select **users.d file**.
+ 1. **Filename**: `access_management.xml`
+ 1. **Contents**: Enter the following to allow the `clickhouse_operator` that controls the cluster through the `clickhouse-operator` the ability to set administrative options:
+
+ ```xml
+
+
+
+ 1
+
+
+ 1
+
+
+
+ ```
+
+ access_management=1 means that users `admin`, `clickhouse_operator` are able to create users and grant them privileges using SQL.
+
+1. Select **OK**. The cluster will restart, and users can now be created in the cluster that can be granted administrative access.
+
+1. If you are running ClickHouse 21.9 and above you can enable storing access management in ZooKeeper. in this case it will be automatically propagated to the cluster. This requires yet another configuration file:
+ 1. **Setting Type**: Select **config.d file**
+ 2. **Filename**: `user_directories.xml`
+ 3. **Contents**:
+
+ ```xml
+
+
+
+ /etc/clickhouse-server/users.xml
+
+
+ /clickhouse/access/
+
+
+ /var/lib/clickhouse/access/
+
+
+
+ ```
+
+[//]: # (---)
+
+[//]: # (title: "Cloud Services")
+
+[//]: # (linkTitle: "Cloud Services")
+
+[//]: # (description: >)
+
+[//]: # ( Tips and tricks for using ClickHouse® with different cloud services.)
+
+[//]: # (weight: 4)
+
+[//]: # (---)
diff --git a/content/en/altinity-kb-integrations/altinity-cloud/altinity-cloud-access-management.md b/content/en/altinity-kb-integrations/altinity-cloud/altinity-cloud-access-management.md
index a4fabc3385..b34ea1e85c 100644
--- a/content/en/altinity-kb-integrations/altinity-cloud/altinity-cloud-access-management.md
+++ b/content/en/altinity-kb-integrations/altinity-cloud/altinity-cloud-access-management.md
@@ -4,6 +4,8 @@ linkTitle: "Altinity Cloud Access Management"
description: >
Enabling access_management for Altinity.Cloud databases.
weight: 5
+alias: /altinity-kb-integrations/altinity-cloud
+draft: true
---
Organizations that want to enable administrative users in their Altinity.Cloud ClickHouse® servers can do so by enabling `access_management` manually. This allows for administrative users to be created on the specific ClickHouse Cluster.
diff --git a/content/en/altinity-kb-integrations/altinity-kb-google-s3-gcs.md b/content/en/altinity-kb-integrations/altinity-kb-google-s3-gcs.md
index 10accb14d9..eb1f5b99c1 100644
--- a/content/en/altinity-kb-integrations/altinity-kb-google-s3-gcs.md
+++ b/content/en/altinity-kb-integrations/altinity-kb-google-s3-gcs.md
@@ -1,9 +1,8 @@
---
title: "Google S3 (GCS)"
linkTitle: "Google S3 (GCS)"
-description: >
- "Google S3 GCS"
---
+
GCS with the table function - seems to work correctly for simple scenarios.
Essentially you can follow the steps from the [Migrating from Amazon S3 to Cloud Storage](https://cloud.google.com/storage/docs/aws-simple-migration).
diff --git a/content/en/altinity-kb-integrations/altinity-kb-rabbitmq/_index.md b/content/en/altinity-kb-integrations/altinity-kb-rabbitmq/_index.md
index a5c448064d..93ca8288d0 100644
--- a/content/en/altinity-kb-integrations/altinity-kb-rabbitmq/_index.md
+++ b/content/en/altinity-kb-integrations/altinity-kb-rabbitmq/_index.md
@@ -2,7 +2,7 @@
title: "RabbitMQ"
linkTitle: "RabbitMQ"
description: >
- RabbitMQ engine -> 24.3+
+ RabbitMQ engine in ClickHouse® 24.3+
---
### Settings
diff --git a/content/en/altinity-kb-integrations/mysql-clickhouse.md b/content/en/altinity-kb-integrations/mysql-clickhouse.md
index b4056adf3c..34a7d4b9c5 100644
--- a/content/en/altinity-kb-integrations/mysql-clickhouse.md
+++ b/content/en/altinity-kb-integrations/mysql-clickhouse.md
@@ -2,8 +2,6 @@
title: "MySQL"
linkTitle: "Integrating ClickHouse® with MySQL"
weight: 100
-description: >-
- Integrating ClickHouse® with MySQL
---
### Replication using MaterializeMySQL.
diff --git a/content/en/altinity-kb-queries-and-syntax/altinity-kb-parameterized-views.md b/content/en/altinity-kb-queries-and-syntax/altinity-kb-parameterized-views.md
index 4b6af703c8..27b1a53b7b 100644
--- a/content/en/altinity-kb-queries-and-syntax/altinity-kb-parameterized-views.md
+++ b/content/en/altinity-kb-queries-and-syntax/altinity-kb-parameterized-views.md
@@ -5,10 +5,8 @@ description: >
Parameterized views
---
-## ClickHouse® version 23.1+
-
-(23.1.6.42, 23.2.5.46, 23.3.1.2823)
-Have inbuilt support for [parametrized views](https://clickhouse.com/docs/en/sql-reference/statements/create/view#parameterized-view):
+ClickHouse® versions 23.1+ (23.1.6.42, 23.2.5.46, 23.3.1.2823)
+have inbuilt support for [parametrized views](https://clickhouse.com/docs/en/sql-reference/statements/create/view#parameterized-view):
```sql
CREATE VIEW my_new_view AS
diff --git a/content/en/altinity-kb-queries-and-syntax/array-functions-as-window.md b/content/en/altinity-kb-queries-and-syntax/array-functions-as-window.md
index 0fbbcb42c9..7c91a24fc8 100644
--- a/content/en/altinity-kb-queries-and-syntax/array-functions-as-window.md
+++ b/content/en/altinity-kb-queries-and-syntax/array-functions-as-window.md
@@ -2,8 +2,6 @@
title: "Using array functions to mimic window-functions alike behavior"
linkTitle: "Using array functions to mimic window-functions alike behavior"
weight: 100
-description: >-
- Using array functions to mimic window-functions alike behavior.
---
There are some usecases when you may want to mimic window functions using Arrays - as an optimization step, or to control the memory better / use on-disk spiling, or just if you have old ClickHouse® version.
diff --git a/content/en/altinity-kb-queries-and-syntax/datetime64.md b/content/en/altinity-kb-queries-and-syntax/datetime64.md
index b6beb29aa1..601cf478d6 100644
--- a/content/en/altinity-kb-queries-and-syntax/datetime64.md
+++ b/content/en/altinity-kb-queries-and-syntax/datetime64.md
@@ -2,8 +2,6 @@
title: "DateTime64"
linkTitle: "DateTime64"
weight: 100
-description: >-
- DateTime64 data type
---
## Subtract fractional seconds
diff --git a/content/en/altinity-kb-queries-and-syntax/distinct-vs-group-by-vs-limit-by.md b/content/en/altinity-kb-queries-and-syntax/distinct-vs-group-by-vs-limit-by.md
index 7e9bcc2a18..20779629b2 100644
--- a/content/en/altinity-kb-queries-and-syntax/distinct-vs-group-by-vs-limit-by.md
+++ b/content/en/altinity-kb-queries-and-syntax/distinct-vs-group-by-vs-limit-by.md
@@ -2,8 +2,6 @@
title: "DISTINCT & GROUP BY & LIMIT 1 BY what the difference"
linkTitle: "DISTINCT & GROUP BY & LIMIT 1 BY what the difference"
weight: 100
-description: >-
- Page description for heading and indexes.
---
## DISTINCT
diff --git a/content/en/altinity-kb-queries-and-syntax/group-by/_index.md b/content/en/altinity-kb-queries-and-syntax/group-by/_index.md
index fad38b457d..5a79605fad 100644
--- a/content/en/altinity-kb-queries-and-syntax/group-by/_index.md
+++ b/content/en/altinity-kb-queries-and-syntax/group-by/_index.md
@@ -6,7 +6,7 @@ keywords:
- clickhouse group by
- clickhouse memory
description: >
- Learn about GROUP BY clause in ClickHouse®.
+ Learn about the GROUP BY clause in ClickHouse®
weight: 1
---
diff --git a/content/en/altinity-kb-queries-and-syntax/joins/joins-tricks.md b/content/en/altinity-kb-queries-and-syntax/joins/joins-tricks.md
index 4f12dd1808..26468cee0b 100644
--- a/content/en/altinity-kb-queries-and-syntax/joins/joins-tricks.md
+++ b/content/en/altinity-kb-queries-and-syntax/joins/joins-tricks.md
@@ -1,8 +1,6 @@
---
title: "JOIN optimization tricks"
linkTitle: "JOIN optimization tricks"
-description: >
- JOINs
---
All tests below were done with default `hash` join. ClickHouse joins are evolving rapidly and behavior varies with other join types.
diff --git a/content/en/altinity-kb-queries-and-syntax/row_policy_using_dictionary.md b/content/en/altinity-kb-queries-and-syntax/row_policy_using_dictionary.md
index 379875491e..1c945c79ae 100644
--- a/content/en/altinity-kb-queries-and-syntax/row_policy_using_dictionary.md
+++ b/content/en/altinity-kb-queries-and-syntax/row_policy_using_dictionary.md
@@ -3,7 +3,7 @@ title: "Row policies overhead (hiding 'removed' tenants)"
linkTitle: "Row policies overhead"
weight: 100
description: >
- one more approach how to hide (delete) rows in ClickHouse®.
+ One more approach to hide (delete) rows in ClickHouse®
---
## No row policy
diff --git a/content/en/altinity-kb-queries-and-syntax/sampling-example.md b/content/en/altinity-kb-queries-and-syntax/sampling-example.md
index 252351f226..b270199107 100644
--- a/content/en/altinity-kb-queries-and-syntax/sampling-example.md
+++ b/content/en/altinity-kb-queries-and-syntax/sampling-example.md
@@ -1,9 +1,8 @@
---
title: "Sampling Example"
linkTitle: "Sampling Example"
-description: >
- ClickHouse® table sampling example
---
+
The most important idea about sampling that the primary index must have **LowCardinality**. (For more information, see [the Altinity Knowledge Base article on LowCardinality](../../altinity-kb-schema-design/lowcardinality) or [a ClickHouse® user\'s lessons learned from LowCardinality](https://altinity.com/blog/2020-5-20-reducing-clickhouse-storage-cost-with-the-low-cardinality-type-lessons-from-an-instana-engineer)).
The following example demonstrates how sampling can be setup correctly, and an example if it being set up incorrectly as a comparison.
diff --git a/content/en/altinity-kb-queries-and-syntax/skip-indexes/skip-index-bloom_filter-for-array-column.md b/content/en/altinity-kb-queries-and-syntax/skip-indexes/skip-index-bloom_filter-for-array-column.md
index f38fadb147..610b44093f 100644
--- a/content/en/altinity-kb-queries-and-syntax/skip-indexes/skip-index-bloom_filter-for-array-column.md
+++ b/content/en/altinity-kb-queries-and-syntax/skip-indexes/skip-index-bloom_filter-for-array-column.md
@@ -1,11 +1,10 @@
---
title: "Skip index bloom_filter Example"
linkTitle: "Skip index bloom_filter Example"
-description: >
- Example: skip index bloom_filter & array column
aliases:
/altinity-kb-queries-and-syntax/skip-indexes/example-skip-index-bloom_filter-and-array-column
---
+
tested with ClickHouse® 20.8.17.25
[https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree/\#table_engine-mergetree-data_skipping-indexes](https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree/#table_engine-mergetree-data_skipping-indexes)
diff --git a/content/en/altinity-kb-queries-and-syntax/slow_select_count.md b/content/en/altinity-kb-queries-and-syntax/slow_select_count.md
index 6a2c80934d..c8a51412e7 100644
--- a/content/en/altinity-kb-queries-and-syntax/slow_select_count.md
+++ b/content/en/altinity-kb-queries-and-syntax/slow_select_count.md
@@ -5,8 +5,6 @@ weight: 100
description: >-
---
-## Why is simple `SELECT count()` Slow in ClickHouse®?
-
ClickHouse is a columnar database that provides excellent performance for analytical queries. However, in some cases, a simple count query can be slow. In this article, we'll explore the reasons why this can happen and how to optimize the query.
### Three Strategies for Counting Rows in ClickHouse
diff --git a/content/en/altinity-kb-queries-and-syntax/trace_log.md b/content/en/altinity-kb-queries-and-syntax/trace_log.md
index 3ed147b60e..5ef49ddc7a 100644
--- a/content/en/altinity-kb-queries-and-syntax/trace_log.md
+++ b/content/en/altinity-kb-queries-and-syntax/trace_log.md
@@ -2,12 +2,8 @@
title: "Collecting query execution flamegraphs using system.trace_log"
linkTitle: "trace_log"
weight: 100
-description: >-
- Collecting query execution flamegraph using trace_log
---
-## Collecting query execution flamegraph using system.trace_log
-
ClickHouse® has embedded functionality to analyze the details of query performance.
It's `system.trace_log` table.
diff --git a/content/en/altinity-kb-queries-and-syntax/troubleshooting.md b/content/en/altinity-kb-queries-and-syntax/troubleshooting.md
index f72d9b7b2b..4d1498bf67 100644
--- a/content/en/altinity-kb-queries-and-syntax/troubleshooting.md
+++ b/content/en/altinity-kb-queries-and-syntax/troubleshooting.md
@@ -2,14 +2,12 @@
title: "Troubleshooting"
linkTitle: "Troubleshooting"
description: >
- Troubleshooting
+ Tips for ClickHouse® troubleshooting
---
-Tips for ClickHouse® troubleshooting
-
### Query Execution Logging
-When troubleshooting query execution in ClickHouse, one of the most useful tools is logging the query execution details. This can be controlled using the session-level setting `send_logs_level`. Here are the different log levels you can use:
+When troubleshooting query execution in ClickHouse®, one of the most useful tools is logging the query execution details. This can be controlled using the session-level setting `send_logs_level`. Here are the different log levels you can use:
Possible values: `'trace', 'debug', 'information', 'warning', 'error', 'fatal', 'none'`
This can be used with [clickhouse-client](https://docs.altinity.com/altinitycloud/altinity-cloud-connections/clickhouseclient/) in both interactive and non-interactive mode.
diff --git a/content/en/altinity-kb-queries-and-syntax/ttl/modify-ttl.md b/content/en/altinity-kb-queries-and-syntax/ttl/modify-ttl.md
index 01c14a14ba..7b524ca1a4 100644
--- a/content/en/altinity-kb-queries-and-syntax/ttl/modify-ttl.md
+++ b/content/en/altinity-kb-queries-and-syntax/ttl/modify-ttl.md
@@ -3,7 +3,7 @@ title: "MODIFY (ADD) TTL"
linkTitle: "MODIFY (ADD) TTL"
weight: 100
description: >-
- What happening during MODIFY or ADD TTL query.
+ What happens during a MODIFY or ADD TTL query.
---
*For a general overview of TTL, see the article [Putting Things Where They Belong Using New TTL Moves](https://altinity.com/blog/2020-3-23-putting-things-where-they-belong-using-new-ttl-moves).*
diff --git a/content/en/altinity-kb-queries-and-syntax/variable-partitioning.md b/content/en/altinity-kb-queries-and-syntax/variable-partitioning.md
index 47eff17be2..8fbd8c5c3b 100644
--- a/content/en/altinity-kb-queries-and-syntax/variable-partitioning.md
+++ b/content/en/altinity-kb-queries-and-syntax/variable-partitioning.md
@@ -3,7 +3,7 @@ title: "Adjustable table partitioning"
linkTitle: "Adjustable table partitioning"
weight: 100
description: >-
- Approach, which allow you to redefine partitioning without table creation.
+ An approach that allows you to redefine partitioning without table creation
---
In that example, partitioning is being calculated via `MATERIALIZED` column expression `toDate(toStartOfInterval(ts, toIntervalT(...)))`, but partition id also can be generated on application side and inserted to ClickHouse® as is.
diff --git a/content/en/engines/altinity-kb-atomic-database-engine/how-to-convert-ordinary-to-atomic.md b/content/en/engines/altinity-kb-atomic-database-engine/how-to-convert-ordinary-to-atomic.md
index 296a2c44f8..935ebba6f7 100644
--- a/content/en/engines/altinity-kb-atomic-database-engine/how-to-convert-ordinary-to-atomic.md
+++ b/content/en/engines/altinity-kb-atomic-database-engine/how-to-convert-ordinary-to-atomic.md
@@ -2,8 +2,6 @@
title: "How to Convert Ordinary to Atomic"
linkTitle: "How to Convert Ordinary to Atomic"
weight: 100
-description: >-
- ClickHouse® How to Convert Ordinary to Atomic
---
## New, official way
diff --git a/content/en/engines/mergetree-table-engine-family/collapsing-vs-replacing.md b/content/en/engines/mergetree-table-engine-family/collapsing-vs-replacing.md
index 054944ffed..171a131215 100644
--- a/content/en/engines/mergetree-table-engine-family/collapsing-vs-replacing.md
+++ b/content/en/engines/mergetree-table-engine-family/collapsing-vs-replacing.md
@@ -2,8 +2,6 @@
title: "CollapsingMergeTree vs ReplacingMergeTree"
linkTitle: "CollapsingMergeTree vs ReplacingMergeTree"
weight: 100
-description: >-
- CollapsingMergeTree vs ReplacingMergeTree.
---
## CollapsingMergeTree vs ReplacingMergeTree
diff --git a/content/en/engines/mergetree-table-engine-family/merge-performance-final-optimize-by.md b/content/en/engines/mergetree-table-engine-family/merge-performance-final-optimize-by.md
index 990d434b36..84be6bb892 100644
--- a/content/en/engines/mergetree-table-engine-family/merge-performance-final-optimize-by.md
+++ b/content/en/engines/mergetree-table-engine-family/merge-performance-final-optimize-by.md
@@ -1,8 +1,6 @@
---
title: "Merge performance and OPTIMIZE FINAL"
linkTitle: "Merge performance and OPTIMIZE FINAL"
-description: >
- Merge performance and OPTIMIZE FINAL DEDUPLICATE BY expr
---
## Merge Performance