ClickHouse: настоящее и будущееБэкенд Алексей Миловидов ClickHouse: настоящее и будущее Почему ClickHouse — хорошая система Я расскажу 01 Почему ClickHouse — плохая система 02 И что с этим делать 03 3 Impala Spark SQL Presto/Trino jd MariaDB CS Exasol Teradata ClickHouse — хорошая система 4 Это более оптимально ClickHouse не тормозит Доклад «секреты оптимизации производительности ClickHouse» youtube.com/watch?v=ltg8vstuHUU исходя из конкретных сценариев • Внимание к деталям и специализация под сценарии нагрузки ClickHouse — надёжная система 6 • Кросс-ДЦ master-master репликация • Надёжная запись и хранение данных0 码力 | 32 页 | 2.62 MB | 1 年前3
Что нужно знать об архитектуре ClickHouse, чтобы его эффективно использоватьАлексей Зателепин Что нужно знать об архитектуре ClickHouse, чтобы его эффективно использовать Алексей Зателепин › 2010—2016 › 2017—… Знакомство Есть поток событий › Действия пользователей на сайте › … Хотим сохранять эти события и делать из них какие-то выводы Задачи, для которых подходит ClickHouse › Интерактивные запросы по данным, обновляемым в реальном времени › Диалект SQL + расширения Стараемся заранее ничего не агрегировать › Нужны очищенные структурированные данные Идеология ClickHouse Считаем для счётчика топ-10 рефереров за неделю. SELECT Referer, count(*) AS count FROM hits0 码力 | 28 页 | 506.94 KB | 1 年前3
Автоматизация управления ClickHouse-кластерами в KubernetesАвтоматизация управления ClickHouse-кластерами в Kubernetes Владислав Клименко и Валерий Панов K8s? Что это? K8s is the new Linux Это платформа с открытым кодом. позволяющая: • строить системы на развертывание ClickHouse? Что это? ClickHouse - столбцовая система управления базами данных для онлайн обработки аналитических запросов (OLAP), с открытым кодом. Зачем ClickHouse в Kubernetes? • максимальная переносимость. ClickHouse в Kubernetes – это просто? НЕ ОЧЕНЬ! Почему? Потому что ClickHouse + Kubernetes ClickHouse в Kubernetes? Что будем делать? Одна кнопка ClickHouse Оператор? Что это0 码力 | 44 页 | 2.24 MB | 1 年前3
Analyzing MySQL Logs with ClickHouse© 2018 Percona. 1 Peter Zaitsev Analyzing MySQL Logs with ClickHouse CEO, Percona April 27,2018 © 2018 Percona. 2 ClickHouse is my love at the first sight © 2018 Percona. 3 Why ? Fast and Expensive Logs can Consume a lot of Space Logs can be expensive to query © 2018 Percona. 7 Clickhouse Answers • 10x+ times space reduction compared to Raw Text Log Files High Compression MySQL Wire Protocol Compatibility with ProxySQL Extra Bonus © 2018 Percona. 9 Logs to ClickHouse © 2018 Percona. 10 Several Options Logstash (ELK Stack) Kafka Do it yourself © 20180 码力 | 43 页 | 2.70 MB | 1 年前3
sync clickhouse with mysql mongodbSync Clickhouse with MySQL/MongoDB Company: Xiaoxin Tech. Industry: Education Team: Big Data Leader: wangchao@xiaoheiban.cn About 100 billion data this year till now 30 million users We use use Clickhouse in our daily tasks Chanllenges Complex Datasource Chanllenges Frequent Updates Chanllenges Possible Solutions 1. Replay binlog/oplog CRUD directly Can’t update/delete table frequently frequently in Clickhouse Possible Solutions 2. MySQL Engine Not suitable for big tables Not suitable for MongoDB Possible Solutions 3. Reinit whole table every day…… Possible Solutions 4. CollapsingMergeTree0 码力 | 38 页 | 2.25 MB | 1 年前3
C++23: An Overview of Almost All New and Updated FeaturesC++23 Core Language Explicit Object Parameters if consteval Multidimensional Subscript Operator Attributes on Lambda-Expressions Literal Suffix for size_t auto(x): decay-copy in The Language C++23 Core Language Explicit Object Parameters if consteval Multidimensional Subscript Operator Attributes on Lambda-Expressions Literal Suffix for size_t auto(x): decay-copy in The Language C++23 Core Language Explicit Object Parameters if consteval Multidimensional Subscript Operator Attributes on Lambda-Expressions Literal Suffix for size_t auto(x): decay-copy in The Language0 码力 | 105 页 | 759.96 KB | 6 月前3
C++20: An (Almost) Complete Overviewatomic waiting, latches, and barriers std::atomic_ref Designated Initializers Spaceship Operator <=> Range-based for Loop Initializer Non-Type Template Parameters [[likely]] and [[unlikely]] std::string aString; }; Data d { .aString = "Hello" };48 Spaceship Operator <=> Official name: three-way comparison operator Three-way: comparing 2 objects and then comparing result with 0 Similar to C-style strcmp() returning neg. value, 0, or pos. value49 Spaceship Operator <=> Common case: auto X::operator<=>(const Y&) const = default; Compiler generates all 6 comparison operators0 码力 | 85 页 | 512.18 KB | 6 月前3
C++高性能并行编程与优化 - 课件 - 13 C++ STL 容器全解之 vectornoexcept; vector 容器: operator[] • 要访问 vector 里的元素,只需用 [] 运算符 : • 例如 a[0] 访问第 0 个元素(人类的第一 个) • 例如 a[1] 访问第 1 个元素(人类的第二 个) • int &operator[](size_t i) noexcept; • int const &operator[](size_t i) const vector 容器: operator[] • 值得注意的是, [] 运算符在索引超出数组大 小时并不会直接报错,这是为了性能的考虑。 • 如果你不小心用 [] 访问了越界的索引,可能 会覆盖掉别的变量导致程序行为异常,或是访 问到操作系统未映射的区域导致奔溃。 • int &operator[](size_t i) noexcept; • int const &operator[](size_t const; vector 容器: operator[] 和 at • [] 和 at 除了可以读取元素,还可以写入。 • 这是因为他们返回的是元素的引用 int& 。 • 例如给第 i 个元素赋值 val : • a[i] = val; • 读取第 i 个元素并打印: • cout << a[i] << endl; • int &operator[](size_t i) noexcept;0 码力 | 90 页 | 4.93 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串还得套一层壳 string(“hello”) 才能变成安全封装的类型,才能用他 的成员函数。 • 因此, C++14 引入了一项缓解“键盘压力”的新特性: • 写 “ hello”_s 就相当于写 operator“”_s(“hello”, 5) ,就相当于 string(“hello”, 5) 了。 • 为什么还需要指定长度 5 ?其实不指定也可以,就是 “ hello\0world” 会退化 这个特殊的名字空间里包含了所有的 operator“” 函数。 小彭老师锐评:何谓“键盘压力” • 高情商:键盘压力,指的是程序员敲击键盘时产生的心理压力。 • 低情商:键盘压力,指的是 rust 键盘侠对 cpp 标准委员会的压力。 • rust 键盘侠曰:我们有 233_i32 , cpp 做得到吗? • cpp 标准委员会:谢邀,人在 cpp14 ,已经在 operator“”_i32 了。 • allocator 不必占据额外的空间。 • 问题:既然 allocator 往往都是个空类( std::allocator默认就是空类,只有几个 成员函数负责调用 operator new 和 operator delete ),为什么还要把 allocator 对 象存到 string 对象里,最后还要搞什么空基类优化防止他浪费空间,多此一举? • 因为最近开始流行“有状态分配器”了,侯杰老师显然不知道这一点,在他的 0 码力 | 162 页 | 40.20 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 10 从稀疏数据结构到量化数据类型个 bit 用 map 来存储 读取:如果不存在,则读到 0 写入:如果不存在,则创建该表项 用 unordered_map 来存储 map 基于红黑树,会按照键值排序,需要键值具有 operator< 重载,复杂度 O(logn) C++11 新增的 unordered_map 基于哈希表,不保证顺序但更高效,需要键值能被哈希,复杂度 O(1) 用 unordered_map 按 16x16 • 不过效率比我们手写的低很多…… 不推荐使用 std::vector• 不建议使用 vector 的原因:他返回的不是真正的引用,而是一个重载了 operator= 和 operator bool 的 std::_Bit_reference 对象,而且效率很低。 • 如果配合用 decltype 和 auto 的话,他们不会正确推导出 bool ,影响我们正常使用模板元编 0 码力 | 102 页 | 9.50 MB | 1 年前3
共 20 条
- 1
- 2













