SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
© 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

Contenu connexe

Tendances

ClickHouse Materialized Views: The Magic Continues
ClickHouse Materialized Views: The Magic ContinuesClickHouse Materialized Views: The Magic Continues
ClickHouse Materialized Views: The Magic ContinuesAltinity Ltd
 
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...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 ClickHouseAltinity Ltd
 
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOAltinity 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 CEOAltinity Ltd
 
All About JSON and ClickHouse - Tips, Tricks and New Features-2022-07-26-FINA...
All About JSON and ClickHouse - Tips, Tricks and New Features-2022-07-26-FINA...All About JSON and ClickHouse - Tips, Tricks and New Features-2022-07-26-FINA...
All About JSON and ClickHouse - Tips, Tricks and New Features-2022-07-26-FINA...Altinity Ltd
 
ClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom AppsClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom AppsAltinity Ltd
 
A Fast Intro to Fast Query with ClickHouse, by Robert Hodges
A Fast Intro to Fast Query with ClickHouse, by Robert HodgesA Fast Intro to Fast Query with ClickHouse, by Robert Hodges
A Fast Intro to Fast Query with ClickHouse, by Robert HodgesAltinity 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
 
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
 
Your first ClickHouse data warehouse
Your first ClickHouse data warehouseYour first ClickHouse data warehouse
Your first ClickHouse data warehouseAltinity Ltd
 
Building ClickHouse and Making Your First Contribution: A Tutorial_06.10.2021
Building ClickHouse and Making Your First Contribution: A Tutorial_06.10.2021Building ClickHouse and Making Your First Contribution: A Tutorial_06.10.2021
Building ClickHouse and Making Your First Contribution: A Tutorial_06.10.2021Altinity Ltd
 
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.pdfAltinity Ltd
 
Data Warehouses in Kubernetes Visualized: the ClickHouse Kubernetes Operator UI
Data Warehouses in Kubernetes Visualized: the ClickHouse Kubernetes Operator UIData Warehouses in Kubernetes Visualized: the ClickHouse Kubernetes Operator UI
Data Warehouses in Kubernetes Visualized: the ClickHouse Kubernetes Operator UIAltinity Ltd
 
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander ZaitsevClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander ZaitsevAltinity Ltd
 
ClickHouse Monitoring 101: What to monitor and how
ClickHouse Monitoring 101: What to monitor and howClickHouse Monitoring 101: What to monitor and how
ClickHouse Monitoring 101: What to monitor and howAltinity Ltd
 
10 Good Reasons to Use ClickHouse
10 Good Reasons to Use ClickHouse10 Good Reasons to Use ClickHouse
10 Good Reasons to Use ClickHouserpolat
 
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, AdjustShipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, AdjustAltinity Ltd
 
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster PerformanceWebinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster PerformanceAltinity Ltd
 
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...Altinity Ltd
 

Tendances (20)

ClickHouse Materialized Views: The Magic Continues
ClickHouse Materialized Views: The Magic ContinuesClickHouse Materialized Views: The Magic Continues
ClickHouse Materialized Views: The Magic Continues
 
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...
 
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
 
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
 
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
 
All About JSON and ClickHouse - Tips, Tricks and New Features-2022-07-26-FINA...
All About JSON and ClickHouse - Tips, Tricks and New Features-2022-07-26-FINA...All About JSON and ClickHouse - Tips, Tricks and New Features-2022-07-26-FINA...
All About JSON and ClickHouse - Tips, Tricks and New Features-2022-07-26-FINA...
 
ClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom AppsClickHouse ReplacingMergeTree in Telecom Apps
ClickHouse ReplacingMergeTree in Telecom Apps
 
A Fast Intro to Fast Query with ClickHouse, by Robert Hodges
A Fast Intro to Fast Query with ClickHouse, by Robert HodgesA Fast Intro to Fast Query with ClickHouse, by Robert Hodges
A Fast Intro to Fast Query with ClickHouse, by Robert Hodges
 
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...
 
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...
 
Your first ClickHouse data warehouse
Your first ClickHouse data warehouseYour first ClickHouse data warehouse
Your first ClickHouse data warehouse
 
Building ClickHouse and Making Your First Contribution: A Tutorial_06.10.2021
Building ClickHouse and Making Your First Contribution: A Tutorial_06.10.2021Building ClickHouse and Making Your First Contribution: A Tutorial_06.10.2021
Building ClickHouse and Making Your First Contribution: A Tutorial_06.10.2021
 
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
 
Data Warehouses in Kubernetes Visualized: the ClickHouse Kubernetes Operator UI
Data Warehouses in Kubernetes Visualized: the ClickHouse Kubernetes Operator UIData Warehouses in Kubernetes Visualized: the ClickHouse Kubernetes Operator UI
Data Warehouses in Kubernetes Visualized: the ClickHouse Kubernetes Operator UI
 
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander ZaitsevClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
 
ClickHouse Monitoring 101: What to monitor and how
ClickHouse Monitoring 101: What to monitor and howClickHouse Monitoring 101: What to monitor and how
ClickHouse Monitoring 101: What to monitor and how
 
10 Good Reasons to Use ClickHouse
10 Good Reasons to Use ClickHouse10 Good Reasons to Use ClickHouse
10 Good Reasons to Use ClickHouse
 
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, AdjustShipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
 
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster PerformanceWebinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
 
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
 

Similaire à Adventures with the ClickHouse ReplacingMergeTree Engine

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 queryCristinaMunteanu43
 
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
 
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_1Alane 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 Architecturespsteinb
 
Dell Vostro 3671 datasheet
Dell Vostro 3671 datasheetDell Vostro 3671 datasheet
Dell Vostro 3671 datasheetMr Cuong
 
External should that be a microservice
External should that be a microserviceExternal should that be a microservice
External should that be a microserviceRohit 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 HighlightsThousandEyes
 
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 CDKCasey Lee
 
Creating Virtual Infrastructure
Creating Virtual InfrastructureCreating Virtual Infrastructure
Creating Virtual InfrastructureJake 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 systemNabeel 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
 
HLC305_How Verge Health Leverages Automation
HLC305_How Verge Health Leverages AutomationHLC305_How Verge Health Leverages Automation
HLC305_How Verge Health Leverages AutomationAmazon Web Services
 
Database Development Replication Security Maintenance Report
Database Development Replication Security Maintenance ReportDatabase Development Replication Security Maintenance Report
Database Development Replication Security Maintenance Reportnyin27
 
Reference architecture xtrem-io-x2-with-citrix-xendesktop-7-16
Reference architecture xtrem-io-x2-with-citrix-xendesktop-7-16Reference architecture xtrem-io-x2-with-citrix-xendesktop-7-16
Reference architecture xtrem-io-x2-with-citrix-xendesktop-7-16Itzik Reich
 
In-Memory Computing Essentials for Architects and Engineers
In-Memory Computing Essentials for Architects and EngineersIn-Memory Computing Essentials for Architects and Engineers
In-Memory Computing Essentials for Architects and EngineersDenis Magda
 

Similaire à Adventures with the ClickHouse ReplacingMergeTree Engine (20)

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
 
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...
 
Guido Baron, CMC (DELL Technologies)
Guido Baron, CMC (DELL Technologies)Guido Baron, CMC (DELL Technologies)
Guido Baron, CMC (DELL Technologies)
 
“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...
 
Dell opti plex-3020-spec-sheet
Dell opti plex-3020-spec-sheetDell opti plex-3020-spec-sheet
Dell opti plex-3020-spec-sheet
 
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...
 
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
 
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
 
Dell Vostro 3671 datasheet
Dell Vostro 3671 datasheetDell Vostro 3671 datasheet
Dell Vostro 3671 datasheet
 
External should that be a microservice
External should that be a microserviceExternal should that be a microservice
External should that be a microservice
 
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...
 
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
 
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
 
Creating Virtual Infrastructure
Creating Virtual InfrastructureCreating Virtual Infrastructure
Creating Virtual Infrastructure
 
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
 
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 的替代者吗
 
HLC305_How Verge Health Leverages Automation
HLC305_How Verge Health Leverages AutomationHLC305_How Verge Health Leverages Automation
HLC305_How Verge Health Leverages Automation
 
Database Development Replication Security Maintenance Report
Database Development Replication Security Maintenance ReportDatabase Development Replication Security Maintenance Report
Database Development Replication Security Maintenance Report
 
Reference architecture xtrem-io-x2-with-citrix-xendesktop-7-16
Reference architecture xtrem-io-x2-with-citrix-xendesktop-7-16Reference architecture xtrem-io-x2-with-citrix-xendesktop-7-16
Reference architecture xtrem-io-x2-with-citrix-xendesktop-7-16
 
In-Memory Computing Essentials for Architects and Engineers
In-Memory Computing Essentials for Architects and EngineersIn-Memory Computing Essentials for Architects and Engineers
In-Memory Computing Essentials for Architects and Engineers
 

Plus de 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.pptxAltinity 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 SourceAltinity 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.pdfAltinity 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.pdfAltinity 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.pdfAltinity 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 PinotAltinity 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.pdfAltinity 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.pdfAltinity 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.pdfAltinity 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
 
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdf
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdfOSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdf
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdfAltinity Ltd
 

Plus de 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
 
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...
 
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
 
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
 
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
 
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...
 
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
 
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 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
 
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...
 
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
 
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...
 
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...
 
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...
 
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...
 
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...
 
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
 
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...
 
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...
 
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdf
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdfOSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdf
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdf
 

Dernier

Aspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraAspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraGovindSinghDasila
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Researchmichael115558
 
20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdf20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdfkhraisr
 
Dubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls DubaiDubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls Dubaikojalkojal131
 
Kings of Saudi Arabia, information about them
Kings of Saudi Arabia, information about themKings of Saudi Arabia, information about them
Kings of Saudi Arabia, information about themeitharjee
 
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制vexqp
 
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...Bertram Ludäscher
 
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...HyderabadDolls
 
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...gajnagarg
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1ranjankumarbehera14
 
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...nirzagarg
 
7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.pptibrahimabdi22
 
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...gajnagarg
 
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book nowVadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book nowgargpaaro
 
Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...
Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...
Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...gragchanchal546
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
Fun all Day Call Girls in Jaipur 9332606886 High Profile Call Girls You Ca...
Fun all Day Call Girls in Jaipur   9332606886  High Profile Call Girls You Ca...Fun all Day Call Girls in Jaipur   9332606886  High Profile Call Girls You Ca...
Fun all Day Call Girls in Jaipur 9332606886 High Profile Call Girls You Ca...kumargunjan9515
 
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...gajnagarg
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...nirzagarg
 

Dernier (20)

Aspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraAspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - Almora
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdf20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdf
 
Dubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls DubaiDubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls Dubai
 
Kings of Saudi Arabia, information about them
Kings of Saudi Arabia, information about themKings of Saudi Arabia, information about them
Kings of Saudi Arabia, information about them
 
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
 
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
 
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
 
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
 
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1
 
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
 
7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt
 
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Vadodara [ 7014168258 ] Call Me For Genuine Models ...
 
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book nowVadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
 
Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...
Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...
Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
 
Fun all Day Call Girls in Jaipur 9332606886 High Profile Call Girls You Ca...
Fun all Day Call Girls in Jaipur   9332606886  High Profile Call Girls You Ca...Fun all Day Call Girls in Jaipur   9332606886  High Profile Call Girls You Ca...
Fun all Day Call Girls in Jaipur 9332606886 High Profile Call Girls You Ca...
 
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
 

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