Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
---
title: Deploy ClickHouse on Google Cloud C4A (Arm-based Axion VMs)

draft: true
cascade:
draft: true
title: Deploy ClickHouse on Google Cloud C4A Arm virtual machines

minutes_to_complete: 30

who_is_this_for: This learning path is intended for software developers deploying and optimizing ClickHouse on Linux/Arm64 environments, specifically using Google Cloud C4A virtual machines powered by Axion processors.
who_is_this_for: This is an introductory topic for developers deploying and optimizing ClickHouse on Arm-based Linux environments using Google Cloud C4A virtual machines powered by Axion processors, to evaluate ClickHouse performance and behaviour on Arm-based infrastructure.

learning_objectives:
- Provision an Arm-based SUSE SLES virtual machine on Google Cloud (C4A with Axion processors)
- Install ClickHouse on a SUSE Arm64 (C4A) instance
- Verify ClickHouse functionality by starting the server, connecting via client, and performing baseline data insertion and simple query tests on the Arm64 VM
- Measure ClickHouse query performance (read, aggregation, and concurrent workloads) to evaluate throughput and latency on Arm64 (Aarch64)
- Provision an Arm-based SUSE SLES virtual machine on Google Cloud using C4A instances powered by Axion processors
- Install and start a ClickHouse server on a SUSE Arm64 (C4A) virtual machine
- Verify ClickHouse functionality by connecting to the server and running basic insert and query operations
- Run baseline ClickHouse performance tests to produce throughput and query latency results for evaluating Arm-based deployments on Google Cloud

prerequisites:
- A [Google Cloud Platform (GCP)](https://cloud.google.com/free) account with billing enabled
- Basic familiarity with [ClickHouse](https://clickhouse.com/)
- An install guide on [how to get started with Google Cloud Platform](/install-guides/gcp/)

author: Pareena Verma

##### Tags
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
---
title: Getting started with ClickHouse on Google Axion C4A (Arm Neoverse-V2)
title: Get started with ClickHouse on Google Cloud C4A Arm virtual machines

weight: 2

layout: "learningpathall"
---

## Google Axion C4A Arm instances in Google Cloud
## Overview

Google Axion C4A is a family of Arm-based virtual machines built on Google’s custom Axion CPU, which is based on Arm Neoverse-V2 cores. Designed for high-performance and energy-efficient computing, these virtual machines offer strong performance for modern cloud workloads such as CI/CD pipelines, microservices, media processing, and general-purpose applications.
This section introduces the Google Axion C4A Arm platform and ClickHouse, providing the context you need before provisioning and deploying ClickHouse on Arm-based Google Cloud virtual machines.

The C4A series provides a cost-effective alternative to x86 virtual machines while leveraging the scalability and performance benefits of the Arm architecture in Google Cloud.
## Explore Google Axion C4A Arm instances

To learn more about Google Axion, refer to the [Introducing Google Axion Processors, our new Arm-based CPUs](https://cloud.google.com/blog/products/compute/introducing-googles-new-arm-based-cpu) blog.
Google Axion C4A is a family of Arm-based virtual machines built on Google's custom Axion CPU, based on Arm Neoverse-V2 cores. These virtual machines are designed for running performance-sensitive workloads on Google Cloud using the Arm architecture.

## ClickHouse
For database and analytics use cases, the C4A series provides a cost-effective alternative to x86 virtual machines while maintaining compatibility with modern Linux software stacks.

ClickHouse is an open-source, columnar OLAP database designed for **high-performance analytics** and real-time reporting. It supports **vectorized execution, columnar storage, and distributed deployments** for fast queries on large datasets. It offers **scalable, fault-tolerant architecture** with support for replication and sharding.
To learn more about Google Axion, see [Introducing Google Axion Processors, our new Arm-based CPUs](https://cloud.google.com/blog/products/compute/introducing-googles-new-arm-based-cpu).

Ideal for analytics, monitoring, and event processing, ClickHouse runs efficiently on both x86 and Arm-based platforms, including AWS Graviton and GCP Arm VMs.
## Explore ClickHouse

Learn more at the [ClickHouse website](https://clickhouse.com/).
ClickHouse is an open-source, columnar OLAP database designed for high-performance analytics and real-time reporting, using vectorized execution and columnar storage to process large datasets efficiently.

ClickHouse runs efficiently on Arm-based platforms, including AWS Graviton and Google Cloud Arm virtual machines, making it a suitable candidate for evaluation on Google Axion C4A instances.

Learn more at the [ClickHouse website](https://clickhouse.com/).
Original file line number Diff line number Diff line change
@@ -1,50 +1,55 @@
---
title: ClickHouse Baseline Testing on Google Axion C4A Arm Virtual Machine
title: Establish a ClickHouse baseline on Arm
weight: 5

### FIXED, DO NOT MODIFY
layout: learningpathall
---
## Establish a ClickHouse baseline

## ClickHouse Baseline Testing on GCP SUSE VMs
This section validates that ClickHouse is functioning correctly and provides a **basic performance baseline** on a SUSE Linux Arm64 VM.

This section shows you how to validate that ClickHouse is functioning correctly and establish a basic performance baseline on your SUSE Linux Arm64 virtual machine.

### Verify ClickHouse is running

Verify that the ClickHouse server is running:

```console
sudo systemctl status clickhouse-server
```

This confirms that the ClickHouse server is running correctly under systemd and ready to accept connections.
The output is similar to:

```output
● clickhouse-server.service - ClickHouse Server
Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2025-11-27 05:07:42 UTC; 18s ago
Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2025-11-27 05:07:42 UTC; 18s ago
Main PID: 4229 (ClickHouseWatch)
Tasks: 814
CPU: 2.629s
CGroup: /system.slice/clickhouse-server.service
├─ 4229 clickhouse-watchdog server --config=/etc/clickhouse-server/config.xml
└─ 4237 /usr/bin/clickhouse server --config=/etc/clickhouse-server/config.xml
Tasks: 814
CPU: 2.629s
CGroup: /system.slice/clickhouse-server.service
├─ 4229 clickhouse-watchdog server --config=/etc/clickhouse-server/config.xml
└─ 4237 /usr/bin/clickhouse server --config=/etc/clickhouse-server/config.xml
```

### Connect to ClickHouse
Client connection ensures that the ClickHouse CLI can successfully communicate with the running server.

Connect to the ClickHouse server using the client:

```console
clickhouse client
```

### Create a test database and table
Database and table creation sets up a dedicated test environment and an analytics-optimized MergeTree table for baseline evaluation.

Create a test database and table to establish a controlled environment for baseline evaluation:

```sql
CREATE DATABASE baseline_test;
USE baseline_test;
```

You should see an output similar to:
The output is similar to:

```output
CREATE DATABASE baseline_test
Query id: bc615167-ecd5-4470-adb0-918d8ce07caf
Expand All @@ -57,7 +62,8 @@ Query id: cd49553a-c0ff-4656-a3e5-f0e9fccd9eba
Ok.
0 rows in set. Elapsed: 0.001 sec.
```
Create a simple table optimized for analytics:

Create a table optimized for analytics:

```sql
CREATE TABLE events
Expand All @@ -70,7 +76,8 @@ ENGINE = MergeTree
ORDER BY (event_time, user_id);
```

You should see an output similar to:
The output is similar to:

```output
Query id: 62ce9b9c-9a7b-45c8-9a58-fa6302b13a88

Expand All @@ -80,8 +87,8 @@ Ok.
```

### Insert baseline test data
Data insertion loads a small, controlled dataset to simulate real event data and validate write functionality.
Insert sample data (10,000 rows):

Data insertion loads a small, controlled dataset to simulate real event data and validate write functionality. Insert sample data (10,000 rows):

```sql
INSERT INTO events
Expand All @@ -92,7 +99,8 @@ SELECT
FROM numbers(10000);
```

You should see an output similar to:
The output is similar to:

```output
Query id: af860501-d903-4226-9e10-0e34467f7675

Expand All @@ -102,15 +110,14 @@ Ok.
Peak memory usage: 3.96 MiB.
```

**Verify row count:**

Row count validation verifies that the inserted data is stored correctly and consistently.
Verify the row count:

```sql
SELECT count(*) FROM events;
```

You should see an output similar to:
The output is similar to:

```output
Query id: 644f6556-e69b-4f98-98ec-483ee6869d6e

Expand All @@ -122,15 +129,19 @@ Query id: 644f6556-e69b-4f98-98ec-483ee6869d6e
```

### Baseline read performance test
Baseline read queries measure basic query performance for filtering, aggregation, and grouping, establishing an initial performance reference on the Arm64 VM.

- Run simple analytical queries:
{{% notice Note %}}
The results below are intended to establish a baseline for this environment and configuration, not to serve as a comprehensive benchmark or comparison.
{{% /notice %}}

Run a simple filtered count query:

```sql
SELECT count(*) FROM events WHERE event_type = 'click';
```

You should see an output similar to:
The output is similar to:

```output
Query id: bd609de4-c08e-4f9f-804a-ee0528c94e4d

Expand All @@ -142,7 +153,7 @@ Query id: bd609de4-c08e-4f9f-804a-ee0528c94e4d
Peak memory usage: 392.54 KiB.
```

- This query groups events by date and counts how many events occurred on each day, returning a daily summary of total events in chronological order.
Run a query that groups events by date and counts occurrences:

```sql
SELECT
Expand All @@ -153,7 +164,8 @@ GROUP BY date
ORDER BY date;
```

You should see an output similar to:
The output is similar to:

```output
Query id: b3db69f8-c885-419f-9900-53d258f0b996

Expand All @@ -168,7 +180,9 @@ Peak memory usage: 785.05 KiB.
Exit the client:

```console
exit;
exit
```

The baseline tests confirm that ClickHouse is stable, functional, and performing efficiently on the Arm64 VM. With core operations validated, the setup is now ready for detailed performance benchmarking.
## What you've accomplished and what's next

You’ve validated that ClickHouse is stable and functional on the Arm64 virtual machine and established a basic performance baseline you can build on.
Loading