当前位置: 首页 > news >正文

Tekion 选择 ClickHouse Cloud 提升应用性能和指标监控

图片

本文字数:4187;估计阅读时间:11 分钟

作者:ClickHouse team

本文在公众号【ClickHouseInc】首发

图片

Tekion 由前 Tesla CIO Jay Vijayan 于 2016 年创立,利用大数据、人工智能和物联网等技术,为其汽车客户解决各种问题。

Tekion 于 2020 年推出了其经销商管理软件 Automotive Retail Cloud (ARC)。作为一个端到端的云平台,ARC 旨在无缝连接整个汽车经销商的业务,为经销商和制造商带来了新的简化、效率和连接体验。Tekion 的平台与架构副总裁 Ved Surtani 解释道:“过去,经销商常常需要使用超过 100 个不同的解决方案来运营业务。Tekion 将其减少到了仅仅 4 个。”

ClickHouse Cloud 已成为一个革命性的工具,Tekion 团队在多个关键用例中享受到了优化、性能提升和成本效益等诸多优势。

Tekion 内部的可观测性堆栈

Tekion 的业务依赖于一个内部构建的可观测性堆栈,包括应用性能监控(APM)和自定义指标分析。这个堆栈对 Tekion 快速执行其在汽车行业的众多 SaaS 产品至关重要——如果这些工具无法正常工作,工程师和数据科学家将无法有效地开发和发布新应用程序。过去,这个堆栈运行在一个知名的搜索提供商上,但随着数据量的增加,变得不再高效,成本也越来越高,维护难度也在增加。

Tekion 的 Dataplatform APM 是一个内部平台,用于应用性能监控(APM),分析软件应用的性能,以确保其高效运行并达到性能目标:“通过自定义仪表板来度量我们自己的性能质量,我们利用 ClickHouse 的功能来改进我们的决策过程,其效率和可扩展性已经变得不可或缺。”另一个内部平台 Dataplatform Custom Metrics 允许用户、应用程序、作业和工具从不同来源发送指标并创建自定义指标。Tekion 能够捕获、跟踪、监控和报告性能或行为的独特方面,识别异常或问题,以便采取适当的行动。

规模和成本的挑战促使寻找替代方案

随着 Tekion 的发展和工程运营的扩展,其内部可观测性堆栈在数据摄取速度和效率、查询性能和成本方面开始面临挑战:“随着我们的数据不断增长,现有技术在可扩展性、速度和成本效益方面的限制变得越来越明显。” Surtani 说。Tekion 考虑只存储聚合数据,认为这能满足大多数用户的需求。然而,无法深入了解单个事务以进行调试仍然是一个持续的挑战:“以前,摄取原始记录并获取详细事务信息的想法令人望而生畏。虽然理论上可以通过投入大量财力资源来建立一个大型集群以实现令人印象深刻的成果,但这种方法既不实际也不经济可持续。” Surtani 解释道。

在之前的架构中,来自应用程序的数据流通过 Kafka 摄取并通过自定义服务处理到数据存储中。这种方法便于执行自定义 Spark 作业以发现复杂的模式和警报。尽管这种方法在分析方面有效,但由于搜索性能缓慢和仪表板功能受限,消费过程受到了影响。

Tekion 评估了包括 Delta Lake 和 HBase 在内的各种选项,以寻找更快的数据检索机制:“我们在寻找一种既能快速摄取又能让我们更快检索单个事务的解决方案。” Surtani 说。他们最终选择了 ClickHouse:“我们看到了革新数据管理流程的潜力。” 他补充道。

概念验证:开源还是 ClickHouse Cloud?

在概念验证(POC)评估中,Tekion 先采用开源 ClickHouse,然后过渡到 ClickHouse Cloud。最初选择开源是 Tekion 的常规做法,旨在评估性能和成本效益后再决定是否采用基于云的解决方案:“这种方法提供了关于迁移益处的宝贵见解,并有助于做出知情的决策。” Surtani 说。POC 显示了令人兴奋的结果——ClickHouse 在处理大数据量方面表现出色:“我们在基本 POC 中意识到了它的优越性和潜力,因此期望值很高。” Surtani 说,这促使 Tekion 探索 ClickHouse Cloud。

能够在不影响性能或增加额外开销的情况下扩展集群的能力非常有吸引力。虽然 Tekion 完全有能力独立管理基础设施,但团队决定将精力集中在客户产品开发上,将维护工作交给 ClickHouse(通过 ClickHouse Cloud)。此外,Surtani 解释道:“ClickHouse Cloud 提供了开源解决方案之外的高级功能,例如无需手动索引的动态集群扩展,提升了操作效率和可扩展性。”最终,专家支持、先进功能和成本效益的结合使 ClickHouse Cloud 成为推动组织前进的最佳选择。

“ClickHouse Cloud 提供了以具有成本效益的方式超越性能目标的能力。”

Ved Surtani,Tekion 工程、平台与架构副总裁

ClickHouse Cloud 在 Tekion 的应用

Tekion 已成功将 ClickHouse Cloud 集成到其提到的两个平台中。截至 2023 年夏,该系统处理了超过 200TB 的数据,并且随着客户数量的增加,这个数字还在迅速增长。在 APM 解决方案中,ClickHouse Cloud 用于处理由容器生成的应用程序指标。ClickHouse Cloud 简化了数据摄取过程,使得计算指标和警报,包括 Tekion 需求的定制指标成为可能。Tekion 能够更快速地检索单个事务,进行全面的调试和实时数据分析。

此外,他们还开始将 ClickHouse Cloud 集成到高度专业化且通常没有预定义阈值的定制工作流程中。这些工作流程处理关键操作,目标是快速检测和响应异常。通过将这些工作流程迁移到 ClickHouse Cloud,开发人员可以直接摄取自定义指标,从而迅速识别异常和意外情况,并加快响应速度。“尽管涉及到复杂性,但我们适应得很快,过渡过程也很顺利。我们停用了 ATM 系统,只存储一天的数据。” Surtani 解释道。

“ClickHouse 被证明是一个改变游戏规则的工具,推动我们在管理数据基础设施方面变得更加高效和有效。”

Ved Surtani,Tekion 工程、平台与架构副总裁

使用 ClickHouse 的主要好处

存储需求优化

ClickHouse 通过其市场领先的数据压缩能力,大大减少了 Tekion 的存储需求。两个月的数据量从 27TB 减少到仅 2.5TB,实现了 10 倍的存储优化。

数据摄取性能

现在,即使在每分钟 120 万条记录的高峰吞吐量下,Tekion 使用 ClickHouse 也能无滞后地摄取数据。之前,即使尽最大努力,仍有大量事件未能成功处理或记录,但现在这种情况已经消除。此外,所需的 Spark 资源减少了 25%,大大节省了成本。这意味着作业执行时间更快,资源利用效率提高,可以在相同基础设施上处理更大的数据集。

查询性能

ClickHouse 的性能显著加快了查询执行和数据检索速度,即使是大型数据集,也能为用户提供真正的实时互动体验。查询延迟减少了 10 倍以上,而回溯时间增加了一倍——查询最多 14 天的数据时,现在只需 500 毫秒,而在之前的设置中,需要 8 秒,并且在 7 天窗口后超时。用户现在可以查询更长时间范围的数据,并实时分析原始数据,而无需依赖预聚合格式。这意味着更深入的见解,使 Tekion 能够适应不断变化的客户需求和市场趋势。

结论

优化可观测性数据堆栈是一个持续的过程,而持续改进的文化是 Tekion 的核心理念。团队已经开始将 APM 和指标迁移到 ClickHouse Cloud,并计划在未来将日志记录、审计报告和内部规划仪表板也整合进来。Ved 总结道:“我们非常喜欢 ClickHouse,团队对其支持评价很高。我们将继续合作。这是一项非常有前景的技术,已经产生了巨大的影响,我们希望在未来能够更广泛地使用它。”

征稿启示

面向社区长期正文,文章内容包括但不限于关于 ClickHouse 的技术研究、项目实践和创新做法等。建议行文风格干货输出&图文并茂。质量合格的文章将会发布在本公众号,优秀者也有机会推荐到 ClickHouse 官网。请将文章稿件的 WORD 版本发邮件至:Tracy.Wang@clickhouse.com

联系我们

手机号:13910395701

邮箱:Tracy.Wang@clickhouse.com

满足您所有的在线分析列式数据库管理需求

相关文章:

Tekion 选择 ClickHouse Cloud 提升应用性能和指标监控

本文字数:4187;估计阅读时间:11 分钟 作者:ClickHouse team 本文在公众号【ClickHouseInc】首发 Tekion 由前 Tesla CIO Jay Vijayan 于 2016 年创立,利用大数据、人工智能和物联网等技术,为其汽车客户解决…...

mysql之触发器的使用

cr一:创建goods表和orders表; mysql> use mydb16_tirgeer Database changed mysql> create table goods(-> gid char(8) primary key,-> name varchar(10),-> price decimal(8,2),->-> num int); Query OK, 0 rows affected (0.0…...

使用Java和Hazelcast实现分布式数据存储

使用Java和Hazelcast实现分布式数据存储 大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在分布式系统中,实现高效的数据存储和管理是非常重要的。Hazelcast作为一个内存数据网格(IMDG)&…...

Hi3751V560_SELinux

Hi3751V560_SELinux setenforce Enforcing setenforce Permissive(或“setenforce 0”) getenforce V560:demo本身的: [ 13.765161] type=1400 audit(1628821512.905:4): avc: denied { read } for pid=1926 comm="system_server" name="ifindex" d…...

邮件安全篇:邮件反垃圾系统运作机制简介

1. 什么是邮件反垃圾系统? 邮件反垃圾系统是一种专门设计用于检测、过滤和阻止垃圾邮件的技术解决方案。用于保护用户的邮箱免受未经请求的商业广告、诈骗信息、恶意软件、钓鱼攻击和其他非用户意愿接收的电子邮件的侵扰。 反垃圾系统的常见部署形式 2. 邮件反垃圾…...

LoRaWAN设备的两种入网方式(ABP和OTAA)

目录 一、OTAA 1、名词解释 2、入网流程 二、ABP 三、两种入网方式的比较 一、OTAA 1、名词解释 (1)AppEUI:64位(8字节)的唯一标识符,用于标识特定的应用程序或组织(如果用的是chirpstac…...

【Rust光年纪】极致性能与灵活选择:Rust语言数学优化库详解

Rust语言中的数学优化:六大利器汇总 前言 在当今信息时代,数据处理和数学优化成为了各行各业中不可或缺的重要环节。为了满足对高效、快速计算的需求,Rust语言逐渐成为了许多开发者的首选,因其性能优越、并发安全等特点。本文将…...

机器学习 | 回归算法原理——最小二乘法

Hi,大家好,我是半亩花海。很早便想学习并总结一本很喜欢的机器学习图书——立石贤吾的《白话机器学习的数学》,可谓通俗易懂,清晰形象。那就在此分享并作为学习笔记来记录我的学习过程吧!本章的回归算法原理基于《基于…...

.NET Core 中的字符串压缩方法

字符串压缩的概念 字符串压缩通常指的是通过算法减少字符串表示所需的数据量,同时保持字符串的原始信息或能够无损地恢复原始字符串。这种压缩可以是针对文本数据的特定算法,也可以是更通用的数据压缩算法。 .NET Core 中的字符串压缩方法 使用数据压…...

SQL 基础知识

SQL(结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。以下是一些 SQL 的基础知识: 基本概念 数据库(Database): 存储和管理数据的容器。一个数据库可以包含多个表。 表(Table&…...

【数据结构初阶】单链表经典算法题十二道——得道飞升(上篇)

目录 1、移除元素 2、反转链表 3、链表的中间节点 4、合并两个有序链表 Relaxing Time!!! ———————————————— 天气之子幻 ———————————————— 1、移除元素 思路: 创建一个新链表&#xff0…...

Python爬虫技术 第16节 XPath

XPath是一种在XML文档中查找信息的语言,尽管XML和HTML在语法上有区别,但XPath同样适用于HTML文档的解析,尤其是在使用如lxml这样的库时。XPath提供了一种强大的方法来定位和提取XML/HTML文档中的元素和属性。 XPath基础 XPath表达式由路径表…...

本地部署,Whisper: 开源语音识别模型

目录 简介 特点 应用 使用方法 总结 GitHub - openai/whisper: Robust Speech Recognition via Large-Scale Weak SupervisionRobust Speech Recognition via Large-Scale Weak Supervision - openai/whisperhttps://github.com/openai/whisper 简介 Whisper 是一个由 O…...

history,hash缓存那些事

vue-router 中的 createWebHistory,createWebHashHistory两种模式 createWebHistory 是基于 window.history 对象是HTML5提供的用于维护当前标签页浏览历史的对象,主要功能是前进后退和在不刷新页面的情况下,修改地址栏里的URL地址。histor…...

Spring Boot的Web开发

目录 Spring Boot的Web开发 1.静态资源映射规则 第一种静态资源映射规则 2.enjoy模板引擎 3.springMVC 3.1请求处理 RequestMapping DeleteMapping 删除 PutMapping 修改 GetMapping 查询 PostMapping 新增 3.2参数绑定 一.支持数据类型: 3.3常用注解 一.Request…...

Spark 解析嵌套的 JSON 文件

1、什么是嵌套的JSON文件? 嵌套的JSON文件是指文件中包含了嵌套的JSON对象或数组。例如,以下是一个嵌套的JSON文件的示例: {"name": "John","age": 30,"address": {"street": "123…...

VMware虚拟机中CentOS7自定义ip地址并且固定ip

配置固定ip(虚拟机) 前提:虚拟机网络配置成,自定义网络并选择VMnet8(NAT 模式) 操作(如下图):点击虚拟机–》设置–》–》硬件–》网络适配器–》自定义:特定虚拟网络–》选择:VMnet8(NAT 模式) 虚拟机网络设置 需要记…...

CCS(Code Composer Studio 10.4.0)编译软件中文乱码怎么解决

如果是所有文件都出现了中文乱码这时建议直接在窗口首选项中修改:选择"Window" -> "Preferences",找到"General" -> "Workspace",将"Text file encoding"选项设置为"Other&quo…...

Flutter 3 完全支持网页端

Flutter 3 可以用于开发网页端应用。自 Flutter 2.0 起,Flutter 就已经支持 Web 平台,并且在 Flutter 3 中得到了进一步的改进和优化。以下是使用 Flutter 3 开发网页端的一些优势和特点: Flutter 3 开发网页端的优势: 跨平台一致…...

vue.js入门

目录 一. 框架概述 二. vue常用命令 2.1 插值表达式 2.2 v-text 2.3 v-html 2.4 v-on 2.5 v-model 2.6 v-show 2.7 v-if 2.8 v-else 2.9 v-bind 2.10 v-for 三. vue生命周期函数 目录 一. 框架概述 二. vue常用命令 2.1 插值表达式 2.2 v-text 2.3 v-html 2…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...