SlideShare a Scribd company logo
© 2022 Altinity, Inc.
Adventures with the ClickHouse
ReplacingMergeTree Engine
Mirroring data from OLTP databases to ClickHouse
Robert Hodges & Altinity Engineering
1
14 December 2022
© 2022 Altinity, Inc.
Let’s make some introductions
ClickHouse support and services including Altinity.Cloud
Authors of Altinity Kubernetes Operator for ClickHouse
and other open source projects
Robert Hodges
Database geek with 30+ years
on DBMS systems. Day job:
Altinity CEO
Altinity Engineering
Database geeks with centuries
of experience in DBMS and
applications
2
© 2022 Altinity, Inc.
How do different database types arise?
3
eCommerce
Inventory management
and purchasing
vs
Funnel analysis and
fraud detection
Digital Marketing Campaign management vs Campaign evaluation
Software Defined
Networking
Network topology and
micro-segment
definition
vs
Access patterns
analysis
MySQL - OLTP ClickHouse - Analytics
© 2022 Altinity, Inc.
OLTP vs OLAP – Key difference is storage organization
4
ClickHouse
Read only selected columns
Rows minimally or not compressed Columns highly compressed
PostgreSQL, MySQL
Read all columns in row
© 2022 Altinity, Inc. 5
Some data just
needs a copy in
a column store
WordPress
dynamic site data
eCommerce
transactions
Ad bidding
transactions
Online auction
transactions
Chat messages Mobile
provisioning
requests
Credit card
transactions
Financial market
transactions
© 2022 Altinity, Inc.
Mirroring copies data and keeps it up-to-date
6
Initial Dump/Load
MySQL ClickHouse
OLTP App Analytic App
MySQL
Binlog Real-time Replication
© 2022 Altinity, Inc.
So…What’s the problem?
7
Mutating Rows
© 2022 Altinity, Inc.
© 2022 Altinity, Inc.
Basics of
ReplacingMergeTree
8
© 2022 Altinity, Inc.
Let’s consider a source table in MySQL
CREATE TABLE `film` (
`film_id` smallint unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(128) NOT NULL,
. . .
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`film_id`),
KEY `idx_title` (`title`),
. . .
) ENGINE=InnoDB
9
Primary key
© 2022 Altinity, Inc.
CREATE TABLE sakila.film (
`film_id` UInt16,
`title` String,
`description` Nullable(String),
`release_year` Nullable(String),
. . .
`last_update` DateTime,
`_version` UInt64 DEFAULT 0,
`_sign` Int8 DEFAULT 1
)
ENGINE = ReplacingMergeTree(_version)
ORDER BY language_id, studio_id, film_id
Create a ClickHouse table to contain the mirrored data
10
© 2022 Altinity, Inc.
How ReplacingMergeTree works
11
0
3
3
1001 . . . . . .
1001 . . . . . .
1001
INSERT
_version
+1
-1
+1
_sign
(Other data columns)
fiilm
_id
UPDATE
DELETE
language_id
5 1001 . . . . . .
-1
studio_id
Eventually
consistent
replacement
of rows
© 2022 Altinity, Inc.
INSERT INTO sakila.film VALUES
(1001,'Blade Runner','Best. Sci-fi. Film. Ever.',
'1982',1,NULL,6,'0.99',117,'20.99','PG',
'Deleted Scenes,Behind the Scenes',now()
,0,1)
SELECT title, release_year
FROM film WHERE film_id = 1001
┌─title────────┬─release_year─┐
│ Blade Runner │ 1982 │
└──────────────┴──────────────┘
Adding a row to RMT table
12
© 2022 Altinity, Inc.
INSERT INTO sakila.film VALUES (1001,'Blade Runner',
'Best. Sci-fi. Film. Ever.',...,3,-1),
(1001,'Blade Runner - Director''s Cut','Best. Sci-fi. Film.
Ever.',...,3,1)
SELECT title, release_year
FROM film WHERE film_id = 1001
┌─title─────────────────────────┬─release_year─┐
│ Blade Runner - Director's Cut │ 1982 │
└───────────────────────────────┴──────────────┘
┌─title────────┬─release_year─┐
│ Blade Runner │ 1982 │
└──────────────┴──────────────┘
Updating a row in the RMT table
13
Unmerged
rows!
© 2022 Altinity, Inc.
Rows are replaced when merges occur
14
0
3
3
1001 1 . . .
1001 1 . . .
1001 2
+1
-1
+1
Part
Part
Merged Part
3 1001 1
-1
3 1001 2
+1
X
Pro tip: never assume rows
will merge full
?
© 2022 Altinity, Inc.
SELECT film_id, title
FROM sakila.film FINAL
WHERE film_id = 1001
┌─title─────────────────────────┬─release_year─┐
│ Blade Runner - Director's Cut │ 1982 │
└───────────────────────────────┴──────────────┘
FINAL keyword merges data dynamically
15
Adds initial scan to
merge rows
© 2022 Altinity, Inc.
INSERT INTO sakila.film VALUES
(1001,'Blade Runner - Director''s Cut',
'Best. Sci-fi. Film. Ever.',...,5,-1)
SELECT title, release_year, _version, _sign
FROM sakila.film FINAL
WHERE film_id = 1001
┌─title─────────────────────────┬─release_year─┬─_version─┬─_sign─┐
│ Blade Runner - Director's Cut │ 1982 │ 5 │ -1 │
└───────────────────────────────┴──────────────┴──────────┴───────┘
Deleting a row in RMT table
16
Deleted row!
© 2022 Altinity, Inc.
CREATE ROW POLICY
sakila_film_rp ON sakila.film
FOR SELECT USING sign != -1 TO ALL
SELECT title, release_year, _version, _sign
FROM sakila.film FINAL
WHERE film_id = 1001
Ok.
0 rows in set. Elapsed: 0.005 sec.
Row policies prevent deleted rows from showing up
17
Predicate automatically
added to queries
© 2022 Altinity, Inc.
SELECT inventory_id, film_id, title
FROM sakila.inventory AS i
INNER JOIN sakila.film AS f ON i.film_id = f.film_id
WHERE film.film_id = 1001
┌─inventory_id─┬─film_id─┬─title─────────────────────────┐
│ 1 │ 1001 │ Blade Runner - Director's Cut │
│ 1 │ 1001 │ Blade Runner │
└──────────────┴─────────┴───────────────────────────────┘
JOINs are tricky with RMT
18
Right side table does
not have FINAL!
© 2022 Altinity, Inc.
SELECT inventory_id, f.film_id, title
FROM sakila.inventory AS i
INNER JOIN (
SELECT film_id, title FROM sakila.film FINAL
)
AS f ON i.film_id = f.film_id
WHERE f.film_id = 1001
┌─inventory_id─┬─film_id─┬─title─────────────────────────┐
│ 1 │ 1001 │ Blade Runner - Director's Cut │
└──────────────┴─────────┴───────────────────────────────┘
Use a subquery with FINAL for right hand side table
19
Not elegant, but we can
work with it
© 2022 Altinity, Inc.
© 2022 Altinity, Inc.
Performance
tips
20
© 2022 Altinity, Inc.
CREATE TABLE sakila.film (
`film_id` UInt16,
`title` String,
. . .
`_version` UInt64 DEFAULT 0,
`_sign` Int8 DEFAULT 1
)
ENGINE = ReplacingMergeTree(_version)
ORDER BY language_id, studio_id, film_id
ORDER BY is critical for MergeTree performance
21
Row key goes
on right
Other cols go
to left
Pro tip: Use PRIMARY KEY to
prefix a long ORDER BY
© 2022 Altinity, Inc.
Use care on updates when ORDER BY has > 1 column
INSERT INTO sakila.film VALUES
(1001,'Blade Runner','Best. Sci-fi. Film. Ever.',
'1982',1,NULL,6,'0.99',117,'20.99','PG',
'Deleted Scenes,Behind the Scenes',now()
,3,-1),
(1001,'Blade Runner - Director''s Cut',
'Best. Sci-fi. Film. Ever.',
'1982',2,NULL,6,'0.99',120,'20.99','PG',
'Deleted Scenes,Behind the Scenes',now()
,3,1)
22
Must delete row if
ORDER BY
columns change!
© 2022 Altinity, Inc.
CREATE TABLE sakila.film (
`film_id` UInt16,
`title` String,
. . .
`_version` UInt64 DEFAULT 0,
`_sign` Int8 DEFAULT 1
)
ENGINE = ReplacingMergeTree(_version)
PARTITION BY intDiv(film_id, 10000000)
ORDER BY language_id, studio_id, film_id
Partitioning is important for large tables
23
Choose a partition
key that keeps row
changes local to
single partitions
© 2022 Altinity, Inc.
SELECT release_year, count()
FROM sakila.film FINAL
GROUP BY release_year
ORDER BY release_year
SETTINGS
do_not_merge_across_partitions_select_final = 1
Restrict FINAL merge scope to single partitions
24
Run faster;
parallelize across
partitions
Note: Run ClickHouse
22.10+ to use this feature*
* https://github.com/ClickHouse/ClickHouse/issues/43296
© 2022 Altinity, Inc.
© 2022 Altinity, Inc.
Current work to
improve
ReplacingMergeTree
25
© 2022 Altinity, Inc.
Just update from my side: the param min_age_to_force_merge_on_partition_only
works
Alexandr DubovikovSETTINGS min_age_to_force_merge_seconds = 120,
min_age_to_force_merge_on_partition_only = true;
Alexandr Dubovikovit will merge all parts at once
26
© 2022 Altinity, Inc.
# https://github.com/ClickHouse/ClickHouse/pull/40945
SET force_select_final = 1
SELECT inventory_id, film_id, title
FROM sakila.inventory AS i
INNER JOIN sakila.film AS f
ON i.film_id = f.film_id
WHERE film.film_id = 1001
┌─inventory_id─┬─film_id─┬─title─────────────────────────┐
│ 1 │ 1001 │ Blade Runner - Director's Cut │
└──────────────┴─────────┴───────────────────────────────┘
Add implicit FINAL at query level (Altinity)
27
Add FINAL
automatically to table
© 2022 Altinity, Inc.
# https://github.com/ClickHouse/ClickHouse/pull/41005
CREATE TABLE sakila.film (
`film_id` UInt16,
. . .
`_version` UInt64 DEFAULT 0,
`_sign` UInt8 DEFAULT 1
)
ENGINE = ReplacingMergeTree(_version, _sign)
ORDER BY language_id, studio_id, film_id
Eliminate deleted rows automatically (ContentSquare)
28
Delete column
processed by
RMT engine
© 2022 Altinity, Inc.
© 2022 Altinity, Inc.
Wrap up
29
© 2022 Altinity, Inc.
Fully wired, continuous replication based on RMT
30
Table Engine(s)
Initial Dump/Load
MySQL ClickHouse
OLTP App Analytic App
MySQL
Binlog
Debezium
Altinity Sink
Connector
Kafka*
Event
Stream
*Including Pulsar and RedPanda
ReplacingMergeTree
© 2022 Altinity, Inc.
Where is the documentation?
ClickHouse official docs – https://clickhouse.com/docs/
Altinity Blog – https://altinity.com/blog/
Altinity Sink Connector for ClickHouse –
https://github.com/Altinity/clickhouse-sink-connector
Altinity Knowledge Base – https://kb.altinity.com/
31
© 2022 Altinity, Inc.
Thank you!
Questions?
rhodges at altinity dot com
https://altinity.com
32
Ad

More Related Content

What's hot (20)

Webinar: Secrets of ClickHouse Query Performance, by Robert Hodges
Webinar: Secrets of ClickHouse Query Performance, by Robert HodgesWebinar: Secrets of ClickHouse Query Performance, by Robert Hodges
Webinar: Secrets of ClickHouse Query Performance, by Robert Hodges
Altinity Ltd
 
Tricks every ClickHouse designer should know, by Robert Hodges, Altinity CEO
Tricks every ClickHouse designer should know, by Robert Hodges, Altinity CEOTricks every ClickHouse designer should know, by Robert Hodges, Altinity CEO
Tricks every ClickHouse designer should know, by Robert Hodges, Altinity CEO
Altinity Ltd
 
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareClickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Altinity Ltd
 
ClickHouse Keeper
ClickHouse KeeperClickHouse Keeper
ClickHouse Keeper
Altinity Ltd
 
All about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdfAll about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdf
Altinity Ltd
 
Your first ClickHouse data warehouse
Your first ClickHouse data warehouseYour first ClickHouse data warehouse
Your first ClickHouse data warehouse
Altinity Ltd
 
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
Altinity Ltd
 
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEOClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
Altinity Ltd
 
ClickHouse Materialized Views: The Magic Continues
ClickHouse Materialized Views: The Magic ContinuesClickHouse Materialized Views: The Magic Continues
ClickHouse Materialized Views: The Magic Continues
Altinity Ltd
 
High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouse
Altinity Ltd
 
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander ZaitsevMigration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Altinity Ltd
 
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
HostedbyConfluent
 
Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...
Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...
Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...
Altinity Ltd
 
Webinar slides: MORE secrets of ClickHouse Query Performance. By Robert Hodge...
Webinar slides: MORE secrets of ClickHouse Query Performance. By Robert Hodge...Webinar slides: MORE secrets of ClickHouse Query Performance. By Robert Hodge...
Webinar slides: MORE secrets of ClickHouse Query Performance. By Robert Hodge...
Altinity Ltd
 
ClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, CloudflareClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
Altinity Ltd
 
Better than you think: Handling JSON data in ClickHouse
Better than you think: Handling JSON data in ClickHouseBetter than you think: Handling JSON data in ClickHouse
Better than you think: Handling JSON data in ClickHouse
Altinity Ltd
 
Altinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouseAltinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouse
Altinity Ltd
 
ClickHouse Unleashed 2020: Our Favorite New Features for Your Analytical Appl...
ClickHouse Unleashed 2020: Our Favorite New Features for Your Analytical Appl...ClickHouse Unleashed 2020: Our Favorite New Features for Your Analytical Appl...
ClickHouse Unleashed 2020: Our Favorite New Features for Your Analytical Appl...
Altinity Ltd
 
ClickHouse Intro
ClickHouse IntroClickHouse Intro
ClickHouse Intro
Yegor Andreenko
 
Materialize: a platform for changing data
Materialize: a platform for changing dataMaterialize: a platform for changing data
Materialize: a platform for changing data
Altinity Ltd
 
Webinar: Secrets of ClickHouse Query Performance, by Robert Hodges
Webinar: Secrets of ClickHouse Query Performance, by Robert HodgesWebinar: Secrets of ClickHouse Query Performance, by Robert Hodges
Webinar: Secrets of ClickHouse Query Performance, by Robert Hodges
Altinity Ltd
 
Tricks every ClickHouse designer should know, by Robert Hodges, Altinity CEO
Tricks every ClickHouse designer should know, by Robert Hodges, Altinity CEOTricks every ClickHouse designer should know, by Robert Hodges, Altinity CEO
Tricks every ClickHouse designer should know, by Robert Hodges, Altinity CEO
Altinity Ltd
 
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareClickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Altinity Ltd
 
All about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdfAll about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdf
Altinity Ltd
 
Your first ClickHouse data warehouse
Your first ClickHouse data warehouseYour first ClickHouse data warehouse
Your first ClickHouse data warehouse
Altinity Ltd
 
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
Altinity Ltd
 
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEOClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
ClickHouse Query Performance Tips and Tricks, by Robert Hodges, Altinity CEO
Altinity Ltd
 
ClickHouse Materialized Views: The Magic Continues
ClickHouse Materialized Views: The Magic ContinuesClickHouse Materialized Views: The Magic Continues
ClickHouse Materialized Views: The Magic Continues
Altinity Ltd
 
High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouse
Altinity Ltd
 
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander ZaitsevMigration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Altinity Ltd
 
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
HostedbyConfluent
 
Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...
Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...
Introduction to the Mysteries of ClickHouse Replication, By Robert Hodges and...
Altinity Ltd
 
Webinar slides: MORE secrets of ClickHouse Query Performance. By Robert Hodge...
Webinar slides: MORE secrets of ClickHouse Query Performance. By Robert Hodge...Webinar slides: MORE secrets of ClickHouse Query Performance. By Robert Hodge...
Webinar slides: MORE secrets of ClickHouse Query Performance. By Robert Hodge...
Altinity Ltd
 
ClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, CloudflareClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
Altinity Ltd
 
Better than you think: Handling JSON data in ClickHouse
Better than you think: Handling JSON data in ClickHouseBetter than you think: Handling JSON data in ClickHouse
Better than you think: Handling JSON data in ClickHouse
Altinity Ltd
 
Altinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouseAltinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouse
Altinity Ltd
 
ClickHouse Unleashed 2020: Our Favorite New Features for Your Analytical Appl...
ClickHouse Unleashed 2020: Our Favorite New Features for Your Analytical Appl...ClickHouse Unleashed 2020: Our Favorite New Features for Your Analytical Appl...
ClickHouse Unleashed 2020: Our Favorite New Features for Your Analytical Appl...
Altinity Ltd
 
Materialize: a platform for changing data
Materialize: a platform for changing dataMaterialize: a platform for changing data
Materialize: a platform for changing data
Altinity Ltd
 

Similar to Adventures with the ClickHouse ReplacingMergeTree Engine (20)

Altinity Quickstart for ClickHouse-2202-09-15.pdf
Altinity Quickstart for ClickHouse-2202-09-15.pdfAltinity Quickstart for ClickHouse-2202-09-15.pdf
Altinity Quickstart for ClickHouse-2202-09-15.pdf
Altinity Ltd
 
A day in the life of a click house query
A day in the life of a click house queryA day in the life of a click house query
A day in the life of a click house query
CristinaMunteanu43
 
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...
Altinity Ltd
 
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
zuevevgn
 
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
zuevevgn
 
Guido Baron, CMC (DELL Technologies)
Guido Baron, CMC (DELL Technologies)Guido Baron, CMC (DELL Technologies)
Guido Baron, CMC (DELL Technologies)
Praxistage
 
“Optimization Techniques with Intel’s OpenVINO to Enhance Performance on Your...
“Optimization Techniques with Intel’s OpenVINO to Enhance Performance on Your...“Optimization Techniques with Intel’s OpenVINO to Enhance Performance on Your...
“Optimization Techniques with Intel’s OpenVINO to Enhance Performance on Your...
Edge AI and Vision Alliance
 
Dell opti plex-3020-spec-sheet
Dell opti plex-3020-spec-sheetDell opti plex-3020-spec-sheet
Dell opti plex-3020-spec-sheet
Dharmabuddhi Anak Agung Lanang Oka
 
Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...
Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...
Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...
Altinity Ltd
 
UG204_MDE_GettingStarted_2_0_Beta_1
UG204_MDE_GettingStarted_2_0_Beta_1UG204_MDE_GettingStarted_2_0_Beta_1
UG204_MDE_GettingStarted_2_0_Beta_1
Alane Levy
 
Optimizing Direct X On Multi Core Architectures
Optimizing Direct X On Multi Core ArchitecturesOptimizing Direct X On Multi Core Architectures
Optimizing Direct X On Multi Core Architectures
psteinb
 
Dell Vostro 3671 datasheet
Dell Vostro 3671 datasheetDell Vostro 3671 datasheet
Dell Vostro 3671 datasheet
Mr Cuong
 
External should that be a microservice
External should that be a microserviceExternal should that be a microservice
External should that be a microservice
Rohit Kelapure
 
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...
Intel® Software
 
New ThousandEyes Product Features and Release Highlights
New ThousandEyes Product Features and Release HighlightsNew ThousandEyes Product Features and Release Highlights
New ThousandEyes Product Features and Release Highlights
ThousandEyes
 
2022 SF Summit - Improving Developer Experience with CDK
2022 SF Summit - Improving Developer Experience with CDK2022 SF Summit - Improving Developer Experience with CDK
2022 SF Summit - Improving Developer Experience with CDK
Casey Lee
 
Creating Virtual Infrastructure
Creating Virtual InfrastructureCreating Virtual Infrastructure
Creating Virtual Infrastructure
Jake Weston
 
From zero to SYSTEM on full disk encrypted windows system
From zero to SYSTEM on full disk encrypted windows systemFrom zero to SYSTEM on full disk encrypted windows system
From zero to SYSTEM on full disk encrypted windows system
Nabeel Ahmed
 
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
YUCHENG HU
 
Database Development Replication Security Maintenance Report
Database Development Replication Security Maintenance ReportDatabase Development Replication Security Maintenance Report
Database Development Replication Security Maintenance Report
nyin27
 
Altinity Quickstart for ClickHouse-2202-09-15.pdf
Altinity Quickstart for ClickHouse-2202-09-15.pdfAltinity Quickstart for ClickHouse-2202-09-15.pdf
Altinity Quickstart for ClickHouse-2202-09-15.pdf
Altinity Ltd
 
A day in the life of a click house query
A day in the life of a click house queryA day in the life of a click house query
A day in the life of a click house query
CristinaMunteanu43
 
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...
Big Data and Beautiful Video: How ClickHouse enables Mux to Deliver Content a...
Altinity Ltd
 
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
zuevevgn
 
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
2021_3DX_SimUnits_Internal_Presentation_Tillet.pptx
zuevevgn
 
Guido Baron, CMC (DELL Technologies)
Guido Baron, CMC (DELL Technologies)Guido Baron, CMC (DELL Technologies)
Guido Baron, CMC (DELL Technologies)
Praxistage
 
“Optimization Techniques with Intel’s OpenVINO to Enhance Performance on Your...
“Optimization Techniques with Intel’s OpenVINO to Enhance Performance on Your...“Optimization Techniques with Intel’s OpenVINO to Enhance Performance on Your...
“Optimization Techniques with Intel’s OpenVINO to Enhance Performance on Your...
Edge AI and Vision Alliance
 
Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...
Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...
Building High Performance Apps with Altinity Stable Builds for ClickHouse | A...
Altinity Ltd
 
UG204_MDE_GettingStarted_2_0_Beta_1
UG204_MDE_GettingStarted_2_0_Beta_1UG204_MDE_GettingStarted_2_0_Beta_1
UG204_MDE_GettingStarted_2_0_Beta_1
Alane Levy
 
Optimizing Direct X On Multi Core Architectures
Optimizing Direct X On Multi Core ArchitecturesOptimizing Direct X On Multi Core Architectures
Optimizing Direct X On Multi Core Architectures
psteinb
 
Dell Vostro 3671 datasheet
Dell Vostro 3671 datasheetDell Vostro 3671 datasheet
Dell Vostro 3671 datasheet
Mr Cuong
 
External should that be a microservice
External should that be a microserviceExternal should that be a microservice
External should that be a microservice
Rohit Kelapure
 
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...
Intel® Software
 
New ThousandEyes Product Features and Release Highlights
New ThousandEyes Product Features and Release HighlightsNew ThousandEyes Product Features and Release Highlights
New ThousandEyes Product Features and Release Highlights
ThousandEyes
 
2022 SF Summit - Improving Developer Experience with CDK
2022 SF Summit - Improving Developer Experience with CDK2022 SF Summit - Improving Developer Experience with CDK
2022 SF Summit - Improving Developer Experience with CDK
Casey Lee
 
Creating Virtual Infrastructure
Creating Virtual InfrastructureCreating Virtual Infrastructure
Creating Virtual Infrastructure
Jake Weston
 
From zero to SYSTEM on full disk encrypted windows system
From zero to SYSTEM on full disk encrypted windows systemFrom zero to SYSTEM on full disk encrypted windows system
From zero to SYSTEM on full disk encrypted windows system
Nabeel Ahmed
 
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
2012 09 MariaDB Boston Meetup - MariaDB 是 Mysql 的替代者吗
YUCHENG HU
 
Database Development Replication Security Maintenance Report
Database Development Replication Security Maintenance ReportDatabase Development Replication Security Maintenance Report
Database Development Replication Security Maintenance Report
nyin27
 
Ad

More from Altinity Ltd (20)

Building an Analytic Extension to MySQL with ClickHouse and Open Source.pptx
Building an Analytic Extension to MySQL with ClickHouse and Open Source.pptxBuilding an Analytic Extension to MySQL with ClickHouse and Open Source.pptx
Building an Analytic Extension to MySQL with ClickHouse and Open Source.pptx
Altinity Ltd
 
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
Altinity Ltd
 
Building an Analytic Extension to MySQL with ClickHouse and Open Source
Building an Analytic Extension to MySQL with ClickHouse and Open SourceBuilding an Analytic Extension to MySQL with ClickHouse and Open Source
Building an Analytic Extension to MySQL with ClickHouse and Open Source
Altinity Ltd
 
Fun with ClickHouse Window Functions-2021-08-19.pdf
Fun with ClickHouse Window Functions-2021-08-19.pdfFun with ClickHouse Window Functions-2021-08-19.pdf
Fun with ClickHouse Window Functions-2021-08-19.pdf
Altinity Ltd
 
Cloud Native Data Warehouses - Intro to ClickHouse on Kubernetes-2021-07.pdf
Cloud Native Data Warehouses - Intro to ClickHouse on Kubernetes-2021-07.pdfCloud Native Data Warehouses - Intro to ClickHouse on Kubernetes-2021-07.pdf
Cloud Native Data Warehouses - Intro to ClickHouse on Kubernetes-2021-07.pdf
Altinity Ltd
 
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Altinity Ltd
 
Own your ClickHouse data with Altinity.Cloud Anywhere-2023-01-17.pdf
Own your ClickHouse data with Altinity.Cloud Anywhere-2023-01-17.pdfOwn your ClickHouse data with Altinity.Cloud Anywhere-2023-01-17.pdf
Own your ClickHouse data with Altinity.Cloud Anywhere-2023-01-17.pdf
Altinity Ltd
 
ClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom AppsClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom Apps
Altinity Ltd
 
Building a Real-Time Analytics Application with Apache Pulsar and Apache Pinot
Building a Real-Time Analytics Application with  Apache Pulsar and Apache PinotBuilding a Real-Time Analytics Application with  Apache Pulsar and Apache Pinot
Building a Real-Time Analytics Application with Apache Pulsar and Apache Pinot
Altinity Ltd
 
Altinity Webinar: Introduction to Altinity.Cloud-Platform for Real-Time Data.pdf
Altinity Webinar: Introduction to Altinity.Cloud-Platform for Real-Time Data.pdfAltinity Webinar: Introduction to Altinity.Cloud-Platform for Real-Time Data.pdf
Altinity Webinar: Introduction to Altinity.Cloud-Platform for Real-Time Data.pdf
Altinity Ltd
 
OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...
OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...
OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...
Altinity Ltd
 
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdf
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdfOSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdf
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdf
Altinity Ltd
 
OSA Con 2022 - Using ClickHouse Database to Power Analytics and Customer Enga...
OSA Con 2022 - Using ClickHouse Database to Power Analytics and Customer Enga...OSA Con 2022 - Using ClickHouse Database to Power Analytics and Customer Enga...
OSA Con 2022 - Using ClickHouse Database to Power Analytics and Customer Enga...
Altinity Ltd
 
OSA Con 2022 - Tips and Tricks to Keep Your Queries under 100ms with ClickHou...
OSA Con 2022 - Tips and Tricks to Keep Your Queries under 100ms with ClickHou...OSA Con 2022 - Tips and Tricks to Keep Your Queries under 100ms with ClickHou...
OSA Con 2022 - Tips and Tricks to Keep Your Queries under 100ms with ClickHou...
Altinity Ltd
 
OSA Con 2022 - The Open Source Analytic Universe, Version 2022 - Robert Hodge...
OSA Con 2022 - The Open Source Analytic Universe, Version 2022 - Robert Hodge...OSA Con 2022 - The Open Source Analytic Universe, Version 2022 - Robert Hodge...
OSA Con 2022 - The Open Source Analytic Universe, Version 2022 - Robert Hodge...
Altinity Ltd
 
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...
Altinity Ltd
 
OSA Con 2022 - Streaming Data Made Easy - Tim Spann & David Kjerrumgaard - St...
OSA Con 2022 - Streaming Data Made Easy - Tim Spann & David Kjerrumgaard - St...OSA Con 2022 - Streaming Data Made Easy - Tim Spann & David Kjerrumgaard - St...
OSA Con 2022 - Streaming Data Made Easy - Tim Spann & David Kjerrumgaard - St...
Altinity Ltd
 
OSA Con 2022 - State of Open Source Databases - Peter Zaitsev - Percona.pdf
OSA Con 2022 - State of Open Source Databases - Peter Zaitsev - Percona.pdfOSA Con 2022 - State of Open Source Databases - Peter Zaitsev - Percona.pdf
OSA Con 2022 - State of Open Source Databases - Peter Zaitsev - Percona.pdf
Altinity Ltd
 
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...
Altinity Ltd
 
OSA Con 2022 - Signal Correlation, the Ho11y Grail - Michael Hausenblas - AWS...
OSA Con 2022 - Signal Correlation, the Ho11y Grail - Michael Hausenblas - AWS...OSA Con 2022 - Signal Correlation, the Ho11y Grail - Michael Hausenblas - AWS...
OSA Con 2022 - Signal Correlation, the Ho11y Grail - Michael Hausenblas - AWS...
Altinity Ltd
 
Building an Analytic Extension to MySQL with ClickHouse and Open Source.pptx
Building an Analytic Extension to MySQL with ClickHouse and Open Source.pptxBuilding an Analytic Extension to MySQL with ClickHouse and Open Source.pptx
Building an Analytic Extension to MySQL with ClickHouse and Open Source.pptx
Altinity Ltd
 
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
Altinity Ltd
 
Building an Analytic Extension to MySQL with ClickHouse and Open Source
Building an Analytic Extension to MySQL with ClickHouse and Open SourceBuilding an Analytic Extension to MySQL with ClickHouse and Open Source
Building an Analytic Extension to MySQL with ClickHouse and Open Source
Altinity Ltd
 
Fun with ClickHouse Window Functions-2021-08-19.pdf
Fun with ClickHouse Window Functions-2021-08-19.pdfFun with ClickHouse Window Functions-2021-08-19.pdf
Fun with ClickHouse Window Functions-2021-08-19.pdf
Altinity Ltd
 
Cloud Native Data Warehouses - Intro to ClickHouse on Kubernetes-2021-07.pdf
Cloud Native Data Warehouses - Intro to ClickHouse on Kubernetes-2021-07.pdfCloud Native Data Warehouses - Intro to ClickHouse on Kubernetes-2021-07.pdf
Cloud Native Data Warehouses - Intro to ClickHouse on Kubernetes-2021-07.pdf
Altinity Ltd
 
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Application Monitoring using Open Source - VictoriaMetrics & Altinity ClickHo...
Altinity Ltd
 
Own your ClickHouse data with Altinity.Cloud Anywhere-2023-01-17.pdf
Own your ClickHouse data with Altinity.Cloud Anywhere-2023-01-17.pdfOwn your ClickHouse data with Altinity.Cloud Anywhere-2023-01-17.pdf
Own your ClickHouse data with Altinity.Cloud Anywhere-2023-01-17.pdf
Altinity Ltd
 
ClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom AppsClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom Apps
Altinity Ltd
 
Building a Real-Time Analytics Application with Apache Pulsar and Apache Pinot
Building a Real-Time Analytics Application with  Apache Pulsar and Apache PinotBuilding a Real-Time Analytics Application with  Apache Pulsar and Apache Pinot
Building a Real-Time Analytics Application with Apache Pulsar and Apache Pinot
Altinity Ltd
 
Altinity Webinar: Introduction to Altinity.Cloud-Platform for Real-Time Data.pdf
Altinity Webinar: Introduction to Altinity.Cloud-Platform for Real-Time Data.pdfAltinity Webinar: Introduction to Altinity.Cloud-Platform for Real-Time Data.pdf
Altinity Webinar: Introduction to Altinity.Cloud-Platform for Real-Time Data.pdf
Altinity Ltd
 
OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...
OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...
OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...
Altinity Ltd
 
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdf
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdfOSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdf
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdf
Altinity Ltd
 
OSA Con 2022 - Using ClickHouse Database to Power Analytics and Customer Enga...
OSA Con 2022 - Using ClickHouse Database to Power Analytics and Customer Enga...OSA Con 2022 - Using ClickHouse Database to Power Analytics and Customer Enga...
OSA Con 2022 - Using ClickHouse Database to Power Analytics and Customer Enga...
Altinity Ltd
 
OSA Con 2022 - Tips and Tricks to Keep Your Queries under 100ms with ClickHou...
OSA Con 2022 - Tips and Tricks to Keep Your Queries under 100ms with ClickHou...OSA Con 2022 - Tips and Tricks to Keep Your Queries under 100ms with ClickHou...
OSA Con 2022 - Tips and Tricks to Keep Your Queries under 100ms with ClickHou...
Altinity Ltd
 
OSA Con 2022 - The Open Source Analytic Universe, Version 2022 - Robert Hodge...
OSA Con 2022 - The Open Source Analytic Universe, Version 2022 - Robert Hodge...OSA Con 2022 - The Open Source Analytic Universe, Version 2022 - Robert Hodge...
OSA Con 2022 - The Open Source Analytic Universe, Version 2022 - Robert Hodge...
Altinity Ltd
 
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...
Altinity Ltd
 
OSA Con 2022 - Streaming Data Made Easy - Tim Spann & David Kjerrumgaard - St...
OSA Con 2022 - Streaming Data Made Easy - Tim Spann & David Kjerrumgaard - St...OSA Con 2022 - Streaming Data Made Easy - Tim Spann & David Kjerrumgaard - St...
OSA Con 2022 - Streaming Data Made Easy - Tim Spann & David Kjerrumgaard - St...
Altinity Ltd
 
OSA Con 2022 - State of Open Source Databases - Peter Zaitsev - Percona.pdf
OSA Con 2022 - State of Open Source Databases - Peter Zaitsev - Percona.pdfOSA Con 2022 - State of Open Source Databases - Peter Zaitsev - Percona.pdf
OSA Con 2022 - State of Open Source Databases - Peter Zaitsev - Percona.pdf
Altinity Ltd
 
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...
Altinity Ltd
 
OSA Con 2022 - Signal Correlation, the Ho11y Grail - Michael Hausenblas - AWS...
OSA Con 2022 - Signal Correlation, the Ho11y Grail - Michael Hausenblas - AWS...OSA Con 2022 - Signal Correlation, the Ho11y Grail - Michael Hausenblas - AWS...
OSA Con 2022 - Signal Correlation, the Ho11y Grail - Michael Hausenblas - AWS...
Altinity Ltd
 
Ad

Recently uploaded (20)

04302025_CCC TUG_DataVista: The Design Story
04302025_CCC TUG_DataVista: The Design Story04302025_CCC TUG_DataVista: The Design Story
04302025_CCC TUG_DataVista: The Design Story
ccctableauusergroup
 
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Abodahab
 
183409-christina-rossetti.pdfdsfsdasggsag
183409-christina-rossetti.pdfdsfsdasggsag183409-christina-rossetti.pdfdsfsdasggsag
183409-christina-rossetti.pdfdsfsdasggsag
fardin123rahman07
 
Molecular methods diagnostic and monitoring of infection - Repaired.pptx
Molecular methods diagnostic and monitoring of infection  -  Repaired.pptxMolecular methods diagnostic and monitoring of infection  -  Repaired.pptx
Molecular methods diagnostic and monitoring of infection - Repaired.pptx
7tzn7x5kky
 
Deloitte Analytics - Applying Process Mining in an audit context
Deloitte Analytics - Applying Process Mining in an audit contextDeloitte Analytics - Applying Process Mining in an audit context
Deloitte Analytics - Applying Process Mining in an audit context
Process mining Evangelist
 
03 Daniel 2-notes.ppt seminario escatologia
03 Daniel 2-notes.ppt seminario escatologia03 Daniel 2-notes.ppt seminario escatologia
03 Daniel 2-notes.ppt seminario escatologia
Alexander Romero Arosquipa
 
chapter 4 Variability statistical research .pptx
chapter 4 Variability statistical research .pptxchapter 4 Variability statistical research .pptx
chapter 4 Variability statistical research .pptx
justinebandajbn
 
IAS-slides2-ia-aaaaaaaaaaain-business.pdf
IAS-slides2-ia-aaaaaaaaaaain-business.pdfIAS-slides2-ia-aaaaaaaaaaain-business.pdf
IAS-slides2-ia-aaaaaaaaaaain-business.pdf
mcgardenlevi9
 
Conic Sectionfaggavahabaayhahahahahs.pptx
Conic Sectionfaggavahabaayhahahahahs.pptxConic Sectionfaggavahabaayhahahahahs.pptx
Conic Sectionfaggavahabaayhahahahahs.pptx
taiwanesechetan
 
VKS-Python Basics for Beginners and advance.pptx
VKS-Python Basics for Beginners and advance.pptxVKS-Python Basics for Beginners and advance.pptx
VKS-Python Basics for Beginners and advance.pptx
Vinod Srivastava
 
How iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost FundsHow iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost Funds
ireneschmid345
 
Secure_File_Storage_Hybrid_Cryptography.pptx..
Secure_File_Storage_Hybrid_Cryptography.pptx..Secure_File_Storage_Hybrid_Cryptography.pptx..
Secure_File_Storage_Hybrid_Cryptography.pptx..
yuvarajreddy2002
 
Just-In-Timeasdfffffffghhhhhhhhhhj Systems.ppt
Just-In-Timeasdfffffffghhhhhhhhhhj Systems.pptJust-In-Timeasdfffffffghhhhhhhhhhj Systems.ppt
Just-In-Timeasdfffffffghhhhhhhhhhj Systems.ppt
ssuser5f8f49
 
Geometry maths presentation for begginers
Geometry maths presentation for begginersGeometry maths presentation for begginers
Geometry maths presentation for begginers
zrjacob283
 
Minions Want to eat presentacion muy linda
Minions Want to eat presentacion muy lindaMinions Want to eat presentacion muy linda
Minions Want to eat presentacion muy linda
CarlaAndradesSoler1
 
DPR_Expert_Recruitment_notice_Revised.pdf
DPR_Expert_Recruitment_notice_Revised.pdfDPR_Expert_Recruitment_notice_Revised.pdf
DPR_Expert_Recruitment_notice_Revised.pdf
inmishra17121973
 
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
gmuir1066
 
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptxmd-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
fatimalazaar2004
 
CTS EXCEPTIONSPrediction of Aluminium wire rod physical properties through AI...
CTS EXCEPTIONSPrediction of Aluminium wire rod physical properties through AI...CTS EXCEPTIONSPrediction of Aluminium wire rod physical properties through AI...
CTS EXCEPTIONSPrediction of Aluminium wire rod physical properties through AI...
ThanushsaranS
 
Ppt. Nikhil.pptxnshwuudgcudisisshvehsjks
Ppt. Nikhil.pptxnshwuudgcudisisshvehsjksPpt. Nikhil.pptxnshwuudgcudisisshvehsjks
Ppt. Nikhil.pptxnshwuudgcudisisshvehsjks
panchariyasahil
 
04302025_CCC TUG_DataVista: The Design Story
04302025_CCC TUG_DataVista: The Design Story04302025_CCC TUG_DataVista: The Design Story
04302025_CCC TUG_DataVista: The Design Story
ccctableauusergroup
 
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Abodahab
 
183409-christina-rossetti.pdfdsfsdasggsag
183409-christina-rossetti.pdfdsfsdasggsag183409-christina-rossetti.pdfdsfsdasggsag
183409-christina-rossetti.pdfdsfsdasggsag
fardin123rahman07
 
Molecular methods diagnostic and monitoring of infection - Repaired.pptx
Molecular methods diagnostic and monitoring of infection  -  Repaired.pptxMolecular methods diagnostic and monitoring of infection  -  Repaired.pptx
Molecular methods diagnostic and monitoring of infection - Repaired.pptx
7tzn7x5kky
 
Deloitte Analytics - Applying Process Mining in an audit context
Deloitte Analytics - Applying Process Mining in an audit contextDeloitte Analytics - Applying Process Mining in an audit context
Deloitte Analytics - Applying Process Mining in an audit context
Process mining Evangelist
 
chapter 4 Variability statistical research .pptx
chapter 4 Variability statistical research .pptxchapter 4 Variability statistical research .pptx
chapter 4 Variability statistical research .pptx
justinebandajbn
 
IAS-slides2-ia-aaaaaaaaaaain-business.pdf
IAS-slides2-ia-aaaaaaaaaaain-business.pdfIAS-slides2-ia-aaaaaaaaaaain-business.pdf
IAS-slides2-ia-aaaaaaaaaaain-business.pdf
mcgardenlevi9
 
Conic Sectionfaggavahabaayhahahahahs.pptx
Conic Sectionfaggavahabaayhahahahahs.pptxConic Sectionfaggavahabaayhahahahahs.pptx
Conic Sectionfaggavahabaayhahahahahs.pptx
taiwanesechetan
 
VKS-Python Basics for Beginners and advance.pptx
VKS-Python Basics for Beginners and advance.pptxVKS-Python Basics for Beginners and advance.pptx
VKS-Python Basics for Beginners and advance.pptx
Vinod Srivastava
 
How iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost FundsHow iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost Funds
ireneschmid345
 
Secure_File_Storage_Hybrid_Cryptography.pptx..
Secure_File_Storage_Hybrid_Cryptography.pptx..Secure_File_Storage_Hybrid_Cryptography.pptx..
Secure_File_Storage_Hybrid_Cryptography.pptx..
yuvarajreddy2002
 
Just-In-Timeasdfffffffghhhhhhhhhhj Systems.ppt
Just-In-Timeasdfffffffghhhhhhhhhhj Systems.pptJust-In-Timeasdfffffffghhhhhhhhhhj Systems.ppt
Just-In-Timeasdfffffffghhhhhhhhhhj Systems.ppt
ssuser5f8f49
 
Geometry maths presentation for begginers
Geometry maths presentation for begginersGeometry maths presentation for begginers
Geometry maths presentation for begginers
zrjacob283
 
Minions Want to eat presentacion muy linda
Minions Want to eat presentacion muy lindaMinions Want to eat presentacion muy linda
Minions Want to eat presentacion muy linda
CarlaAndradesSoler1
 
DPR_Expert_Recruitment_notice_Revised.pdf
DPR_Expert_Recruitment_notice_Revised.pdfDPR_Expert_Recruitment_notice_Revised.pdf
DPR_Expert_Recruitment_notice_Revised.pdf
inmishra17121973
 
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
gmuir1066
 
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptxmd-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
fatimalazaar2004
 
CTS EXCEPTIONSPrediction of Aluminium wire rod physical properties through AI...
CTS EXCEPTIONSPrediction of Aluminium wire rod physical properties through AI...CTS EXCEPTIONSPrediction of Aluminium wire rod physical properties through AI...
CTS EXCEPTIONSPrediction of Aluminium wire rod physical properties through AI...
ThanushsaranS
 
Ppt. Nikhil.pptxnshwuudgcudisisshvehsjks
Ppt. Nikhil.pptxnshwuudgcudisisshvehsjksPpt. Nikhil.pptxnshwuudgcudisisshvehsjks
Ppt. Nikhil.pptxnshwuudgcudisisshvehsjks
panchariyasahil
 

Adventures with the ClickHouse ReplacingMergeTree Engine

  • 1. © 2022 Altinity, Inc. Adventures with the ClickHouse ReplacingMergeTree Engine Mirroring data from OLTP databases to ClickHouse Robert Hodges & Altinity Engineering 1 14 December 2022
  • 2. © 2022 Altinity, Inc. Let’s make some introductions ClickHouse support and services including Altinity.Cloud Authors of Altinity Kubernetes Operator for ClickHouse and other open source projects Robert Hodges Database geek with 30+ years on DBMS systems. Day job: Altinity CEO Altinity Engineering Database geeks with centuries of experience in DBMS and applications 2
  • 3. © 2022 Altinity, Inc. How do different database types arise? 3 eCommerce Inventory management and purchasing vs Funnel analysis and fraud detection Digital Marketing Campaign management vs Campaign evaluation Software Defined Networking Network topology and micro-segment definition vs Access patterns analysis MySQL - OLTP ClickHouse - Analytics
  • 4. © 2022 Altinity, Inc. OLTP vs OLAP – Key difference is storage organization 4 ClickHouse Read only selected columns Rows minimally or not compressed Columns highly compressed PostgreSQL, MySQL Read all columns in row
  • 5. © 2022 Altinity, Inc. 5 Some data just needs a copy in a column store WordPress dynamic site data eCommerce transactions Ad bidding transactions Online auction transactions Chat messages Mobile provisioning requests Credit card transactions Financial market transactions
  • 6. © 2022 Altinity, Inc. Mirroring copies data and keeps it up-to-date 6 Initial Dump/Load MySQL ClickHouse OLTP App Analytic App MySQL Binlog Real-time Replication
  • 7. © 2022 Altinity, Inc. So…What’s the problem? 7 Mutating Rows
  • 8. © 2022 Altinity, Inc. © 2022 Altinity, Inc. Basics of ReplacingMergeTree 8
  • 9. © 2022 Altinity, Inc. Let’s consider a source table in MySQL CREATE TABLE `film` ( `film_id` smallint unsigned NOT NULL AUTO_INCREMENT, `title` varchar(128) NOT NULL, . . . `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`film_id`), KEY `idx_title` (`title`), . . . ) ENGINE=InnoDB 9 Primary key
  • 10. © 2022 Altinity, Inc. CREATE TABLE sakila.film ( `film_id` UInt16, `title` String, `description` Nullable(String), `release_year` Nullable(String), . . . `last_update` DateTime, `_version` UInt64 DEFAULT 0, `_sign` Int8 DEFAULT 1 ) ENGINE = ReplacingMergeTree(_version) ORDER BY language_id, studio_id, film_id Create a ClickHouse table to contain the mirrored data 10
  • 11. © 2022 Altinity, Inc. How ReplacingMergeTree works 11 0 3 3 1001 . . . . . . 1001 . . . . . . 1001 INSERT _version +1 -1 +1 _sign (Other data columns) fiilm _id UPDATE DELETE language_id 5 1001 . . . . . . -1 studio_id Eventually consistent replacement of rows
  • 12. © 2022 Altinity, Inc. INSERT INTO sakila.film VALUES (1001,'Blade Runner','Best. Sci-fi. Film. Ever.', '1982',1,NULL,6,'0.99',117,'20.99','PG', 'Deleted Scenes,Behind the Scenes',now() ,0,1) SELECT title, release_year FROM film WHERE film_id = 1001 ┌─title────────┬─release_year─┐ │ Blade Runner │ 1982 │ └──────────────┴──────────────┘ Adding a row to RMT table 12
  • 13. © 2022 Altinity, Inc. INSERT INTO sakila.film VALUES (1001,'Blade Runner', 'Best. Sci-fi. Film. Ever.',...,3,-1), (1001,'Blade Runner - Director''s Cut','Best. Sci-fi. Film. Ever.',...,3,1) SELECT title, release_year FROM film WHERE film_id = 1001 ┌─title─────────────────────────┬─release_year─┐ │ Blade Runner - Director's Cut │ 1982 │ └───────────────────────────────┴──────────────┘ ┌─title────────┬─release_year─┐ │ Blade Runner │ 1982 │ └──────────────┴──────────────┘ Updating a row in the RMT table 13 Unmerged rows!
  • 14. © 2022 Altinity, Inc. Rows are replaced when merges occur 14 0 3 3 1001 1 . . . 1001 1 . . . 1001 2 +1 -1 +1 Part Part Merged Part 3 1001 1 -1 3 1001 2 +1 X Pro tip: never assume rows will merge full ?
  • 15. © 2022 Altinity, Inc. SELECT film_id, title FROM sakila.film FINAL WHERE film_id = 1001 ┌─title─────────────────────────┬─release_year─┐ │ Blade Runner - Director's Cut │ 1982 │ └───────────────────────────────┴──────────────┘ FINAL keyword merges data dynamically 15 Adds initial scan to merge rows
  • 16. © 2022 Altinity, Inc. INSERT INTO sakila.film VALUES (1001,'Blade Runner - Director''s Cut', 'Best. Sci-fi. Film. Ever.',...,5,-1) SELECT title, release_year, _version, _sign FROM sakila.film FINAL WHERE film_id = 1001 ┌─title─────────────────────────┬─release_year─┬─_version─┬─_sign─┐ │ Blade Runner - Director's Cut │ 1982 │ 5 │ -1 │ └───────────────────────────────┴──────────────┴──────────┴───────┘ Deleting a row in RMT table 16 Deleted row!
  • 17. © 2022 Altinity, Inc. CREATE ROW POLICY sakila_film_rp ON sakila.film FOR SELECT USING sign != -1 TO ALL SELECT title, release_year, _version, _sign FROM sakila.film FINAL WHERE film_id = 1001 Ok. 0 rows in set. Elapsed: 0.005 sec. Row policies prevent deleted rows from showing up 17 Predicate automatically added to queries
  • 18. © 2022 Altinity, Inc. SELECT inventory_id, film_id, title FROM sakila.inventory AS i INNER JOIN sakila.film AS f ON i.film_id = f.film_id WHERE film.film_id = 1001 ┌─inventory_id─┬─film_id─┬─title─────────────────────────┐ │ 1 │ 1001 │ Blade Runner - Director's Cut │ │ 1 │ 1001 │ Blade Runner │ └──────────────┴─────────┴───────────────────────────────┘ JOINs are tricky with RMT 18 Right side table does not have FINAL!
  • 19. © 2022 Altinity, Inc. SELECT inventory_id, f.film_id, title FROM sakila.inventory AS i INNER JOIN ( SELECT film_id, title FROM sakila.film FINAL ) AS f ON i.film_id = f.film_id WHERE f.film_id = 1001 ┌─inventory_id─┬─film_id─┬─title─────────────────────────┐ │ 1 │ 1001 │ Blade Runner - Director's Cut │ └──────────────┴─────────┴───────────────────────────────┘ Use a subquery with FINAL for right hand side table 19 Not elegant, but we can work with it
  • 20. © 2022 Altinity, Inc. © 2022 Altinity, Inc. Performance tips 20
  • 21. © 2022 Altinity, Inc. CREATE TABLE sakila.film ( `film_id` UInt16, `title` String, . . . `_version` UInt64 DEFAULT 0, `_sign` Int8 DEFAULT 1 ) ENGINE = ReplacingMergeTree(_version) ORDER BY language_id, studio_id, film_id ORDER BY is critical for MergeTree performance 21 Row key goes on right Other cols go to left Pro tip: Use PRIMARY KEY to prefix a long ORDER BY
  • 22. © 2022 Altinity, Inc. Use care on updates when ORDER BY has > 1 column INSERT INTO sakila.film VALUES (1001,'Blade Runner','Best. Sci-fi. Film. Ever.', '1982',1,NULL,6,'0.99',117,'20.99','PG', 'Deleted Scenes,Behind the Scenes',now() ,3,-1), (1001,'Blade Runner - Director''s Cut', 'Best. Sci-fi. Film. Ever.', '1982',2,NULL,6,'0.99',120,'20.99','PG', 'Deleted Scenes,Behind the Scenes',now() ,3,1) 22 Must delete row if ORDER BY columns change!
  • 23. © 2022 Altinity, Inc. CREATE TABLE sakila.film ( `film_id` UInt16, `title` String, . . . `_version` UInt64 DEFAULT 0, `_sign` Int8 DEFAULT 1 ) ENGINE = ReplacingMergeTree(_version) PARTITION BY intDiv(film_id, 10000000) ORDER BY language_id, studio_id, film_id Partitioning is important for large tables 23 Choose a partition key that keeps row changes local to single partitions
  • 24. © 2022 Altinity, Inc. SELECT release_year, count() FROM sakila.film FINAL GROUP BY release_year ORDER BY release_year SETTINGS do_not_merge_across_partitions_select_final = 1 Restrict FINAL merge scope to single partitions 24 Run faster; parallelize across partitions Note: Run ClickHouse 22.10+ to use this feature* * https://github.com/ClickHouse/ClickHouse/issues/43296
  • 25. © 2022 Altinity, Inc. © 2022 Altinity, Inc. Current work to improve ReplacingMergeTree 25
  • 26. © 2022 Altinity, Inc. Just update from my side: the param min_age_to_force_merge_on_partition_only works Alexandr DubovikovSETTINGS min_age_to_force_merge_seconds = 120, min_age_to_force_merge_on_partition_only = true; Alexandr Dubovikovit will merge all parts at once 26
  • 27. © 2022 Altinity, Inc. # https://github.com/ClickHouse/ClickHouse/pull/40945 SET force_select_final = 1 SELECT inventory_id, film_id, title FROM sakila.inventory AS i INNER JOIN sakila.film AS f ON i.film_id = f.film_id WHERE film.film_id = 1001 ┌─inventory_id─┬─film_id─┬─title─────────────────────────┐ │ 1 │ 1001 │ Blade Runner - Director's Cut │ └──────────────┴─────────┴───────────────────────────────┘ Add implicit FINAL at query level (Altinity) 27 Add FINAL automatically to table
  • 28. © 2022 Altinity, Inc. # https://github.com/ClickHouse/ClickHouse/pull/41005 CREATE TABLE sakila.film ( `film_id` UInt16, . . . `_version` UInt64 DEFAULT 0, `_sign` UInt8 DEFAULT 1 ) ENGINE = ReplacingMergeTree(_version, _sign) ORDER BY language_id, studio_id, film_id Eliminate deleted rows automatically (ContentSquare) 28 Delete column processed by RMT engine
  • 29. © 2022 Altinity, Inc. © 2022 Altinity, Inc. Wrap up 29
  • 30. © 2022 Altinity, Inc. Fully wired, continuous replication based on RMT 30 Table Engine(s) Initial Dump/Load MySQL ClickHouse OLTP App Analytic App MySQL Binlog Debezium Altinity Sink Connector Kafka* Event Stream *Including Pulsar and RedPanda ReplacingMergeTree
  • 31. © 2022 Altinity, Inc. Where is the documentation? ClickHouse official docs – https://clickhouse.com/docs/ Altinity Blog – https://altinity.com/blog/ Altinity Sink Connector for ClickHouse – https://github.com/Altinity/clickhouse-sink-connector Altinity Knowledge Base – https://kb.altinity.com/ 31
  • 32. © 2022 Altinity, Inc. Thank you! Questions? rhodges at altinity dot com https://altinity.com 32