数据,是互联网公司的核心资产之一。那么,这些核心资产背后,是哪些人在收集数据、存储数据、处理数据、管理数据、使用数据、保证数据安全的呢?——是“数据工匠”们!
2020年7月28日~8月6日,云+社区(腾讯云官方开发者社区)主办的线上技术沙龙——数据工匠,已圆满落幕。10位技术大咖现身分享,与开发者互动交流,深度讲解了有赞技术中台、腾讯云Elasticsearch、数据安全中台、ClickHouse、腾讯云数据库MySQL 8.0、云原生消息队列、数据库自治服务等多个专题。另有三位嘉宾同台,就“如何成为优秀架构师”这一开放命题,展开多维探讨。
有赞数据中台成本治理实践
随着直播电商行业的兴盛,有赞业务高速发展。但同时数据仓库中存储资源和计算资源消耗也非常高,甚至一度超过了整个平台业务的增速,这显然不是一个可持续发展的态势。
有赞技术副总裁沈淦首先带我们一起回顾了去年有赞业务高速发展时遇到的困境,并向大家分享了他们在数据中台成本治理上的实践。
针对原数据中台资源水位低、扩缩容成本高、存储瓶颈、离线计算浪费、成员缺少成本意识等问题,有赞从五个方面出发进行了成本的综合治理。
1. 提升资源利用率
首先是制定利用率标准,确认利用率在什么水位是合理的,根据不同的集群和环境来设定不同的水位。其次根据水位来决定缩容或者降配,充分利用机器资源。接着对机型进行优化,统一集群机型。最后是延时启动,削峰填谷,任务分级,避免在高峰期争抢资源,在空闲时间做数据重刷。
2. 容器化改造
容器化在很多方面会提供非常好的支撑,首先在扩缩容方面。有赞和腾讯云合作,把采购的 API 打通,这样就可以通过调度策略来进行扩缩容,比以前按月的采购方式效率更高、成本更低。另外通过容器化,也可以很方便的实现存储与计算分离。
3. 存储优化
冷备数据分离,存储到腾讯云COS上,比起独立集群存储,节省80%的成本。启用Hive数据生命周期管理,90%以上的分区表,可以做历史分区清理,节省20%以上的存储空间。同时优化存储压缩倍率,依据 hadoop3.x 版本 EC编码特征,3备份仅需要 1.5倍的空间。
4. 离线任务优化
从数据下线、任务调优、高转低频、数据替换、小文件合并、延迟启动这六个方面对离线任务进行优化,有赞团队形象称之为“六脉神剑”。
5. 成本运营机制
针对团队成员资源使用大手大脚、缺乏成本意识等问题,有赞技术团队创新了成本运营机制。建立成本量化模型,对于不同资源设立不同的成本单价,通过Spark
采集计算资源和运营宣导等方式,让团队每个成员切实感受到资源的损耗,下意识开始加强成本意识。
经过此番成本治理实践,有赞数据中台不管是在整体资源的利用率还是计算性能上都有很大的提升,同时极大降低了存储成本,帮助团队成员提升了成本意识,自主降本比例超过了25%,取得了积极的进展。
海量挑战:腾讯云Elasticsearch可用性及性能优化实践
为了帮助腾讯会议质量团队快速精准地定位分析问题,需要大量运行时的会议质量数据支撑,如网络相关的入网类型、码率、丢包率等。另一方面,借助多维分析,可以在实时数据中挖掘出异常情况,通过dashboard或数据报表的形式,帮助会议质量团队及时掌控全局情况,快速发现潜在问题。
但是随着腾讯会议用户激增,在高压力、高吞吐的环境下,基于ES的会议服务质量分析系统承受了极大的压力,并且写入性能出现了不足......腾讯云Elasticsearch技术专家张彬面向广大在线听众,分享了他们在腾讯会议服务质量分析系统上的优化实践。
针对高并发场景的优化方案是服务限流。除了要能控制并发请求数量,还要能精准地控制内存资源,因为内存资源不足是主要的矛盾。另外通用性要强,能作用于各个层级实现全链限流。
具体是基于内存资源的漏桶策略,将节点 JVM 内存作为漏桶的资源,当内存资源足够的时候,请求可以正常处理;当内存使用量到达一定阈值的时候分区间阶梯式平滑限流。如下图中浅黄色的区间限制写入,深黄色的区间限制查询,底部红色部分作为预留 buffer,预留给处理中的请求、merge 等操作,以保证节点内存的安全性。
除此之外,腾讯云ES还在大聚合查询、多可用区部署、数据合并策略以及大吞吐写入方面,结合原生方案和社区调研,做出了独具一格的优化。除了在高可用和性能方面的调优,腾讯云ES在低成本解决方案上也给出了自己的答卷。
腾讯云自身的监控系统也是ES 做的,对于一些特别大的地域集群,写入速度高达千万级每秒,需要承担1500台物理机的成本预算。通过冷热分离、生命周期管理、多盘策略、COS冷备等方式,极大降低了存储成本,原本需要1500台机器才能完成的工作优化后仅需要两三百台。
原生加密:腾讯云数据安全中台解决方案
随着企业上云和数字化转型升级的深化,数据正在成为企业的核心资产之一,在生产过程中发挥的价值越来越大。腾讯安全云鼎实验室专家姬生利在直播间为大家细数了企业数据安全风险以及国内密码应用现状,除了业务上的安全挑战,还有安全合规方面的要求。
企业数据安全面临着诸多难题:
从数据安全生命周期来看,有着分类、治理和策略方面的难点;从开发运营过程中来看,数据有容易泄露的风险,比如开发意识疏忽,泄露源代码中包含的敏感凭据和密钥、测试暴露高风险的测试数据库访问端口和弱账号等。测试:暴露高风险的测试数据库访问端口和弱账号等。
从应用服务的构成来看,数据从产生、传输、存储、处理,到共享展示,每一个环节都存在数据泄露的风险,涉及数据安全保障:
本地敏感数据存储安全、网络通道的安全、配置文件和硬编码敏感信息的安全、密钥的安全管理、云上数据的存储安全、金融支付等敏感应用的安全合规问题、数据的共享、展示脱敏的问题等。此外,云架构下数据加密及密钥管理也面临多种挑战。
腾讯云数据安全中台具备三大能力,全数据生命周期支持、完整的云产品生态集成、国密与 FIPS 标准的支持。腾讯云数据安全中台还能提供极简的加密 API 和 SDK 服务,让用户得以使用最小的工作量,极简地实现对云上数据的加密保护。
对于云上数据安全应用方案,需要保管的核心内容就是密钥,密钥存放在硬编码配置文件里面,是写在代码里面的,这种情况下配置文件泄漏或者代码泄漏,密钥也会随之泄漏,密钥的丢失导致数据的密文不再安全,因此使用加密算法需要使用密钥管理系统(KMS)来对密钥进行统一管理。
KMS是云平台和产品合规的基础安全组件,海外用户需要满足FIPS-140-2标准,国内用户需要支持国密。KMS能为用户提供安全合规的密钥保障、敏感数据加密、高性能本地数据加密等能力,支持BYOK、白盒密钥管理,还能无缝集成云产品,实现云上数据透明加密。
除了KMS之外,腾讯云数据安全中台还集成了凭据管理系统、云加密机、数据库加密等能力,为用户的数据安全保驾护航。
彪悍性能:腾讯云ClickHouse性能调优及实践
ClickHouse是俄罗斯开源的OLAP数据库,以彪悍的性能著称。开源5年以来,以性能优异、简单易用的特点,吸引了大量的用户群体。腾讯云ClickHouse研发负责人彭健为大家带来腾讯云ClickHouse在QQ音乐上的应用与调优实践。
QQ音乐用的就是ClickHouse集群,集群的现状是近万核的规模、PB 级的存储,十万亿级别的记录量,每天过千亿级的数据入库,包括实时流水、中间表的计算等等。
通过使用ClickHouse,一方面带来了实时性上的价值,绝大部分查询请求是数秒内完成、部分查询请求在十秒内完成。另一方面是易用性,利用 Superset 可以自主制作各种报表,降低了产品、运营、市场等非数据人员分析使用的门槛。
那么,是如何做到的呢?
1. 合理规划ZooKeeper的集群配置
ClickHouse 集群数据量的增长,在并发写入量较大的情况下,ZooKeeper 的处理能力跟不上,集群的性能也会急剧下降。所以在整个运维过程中,如果集群数据规模超过 TB 级别,建议采用具有 SSD 盘的设备。
2. 数据幂等写入
ClickHouse 的集群是按 Shard 分布的,在向 ClickHouse 导入数据的过程中有时会失败或者超时,就需要重试写入动作。为了防止多个 Shard 出现重复写入,导致数据不一致的情况,在重试的时候需要在相同的 Shard 上进行写入。
3. 合理规划表分区数
通常可以将数据按天、按月做分区,根据具体情况来操作。官方建议分区数量不要超过一千,通常这个分区数对大部分业务场景都够用,过多分区数量会导致查询性能的降低。
4. 读写分离
借助临时集群,预先将准备好的数据在临时集群中构建、写入,等待 Merge 完成后 AB 切换,或者通过数据拷贝的方式将数据复制到在线集群的服务器上,做到读写分离。从而让数据的写入不会影响线上的查询,或者是把影响降到最低。
5. 跨表查询的本地化
ClickHouse 集群分布式查询通常采用 GLOBAL IN/GLOBAL JOINS 类似的词语,这些词句的性能相对比较低,使用后再查询时会生成临时表,并跨节点读取数据,从而降低查询速度,也会占用更多的内存,甚至导致查询失败。
通过合理组织数据,使用本地化的 IN/JOINS 代替,比如根据数据的 UN、VID 将相同 ID 的数据写入到相同的 Shard 中,结果是等效的,但可以极大的提升性能,将复杂的操作编程定型化的操作。
除此以外,彭健还对ClickHouse常见的实时分析场景进行了分析,为大家细致剖析了ClickHouse的原理,以及腾讯云ClickHouse是如何在原生的基础上做出优化的。不久的未来,更加完善、性能也更高的腾讯云ClickHouse服务也将会上线提供服务,敬请大家期待。
极致性能:腾讯云数据库MySQL 8.0
“腾讯云数据库 MySQL 8.0版本于2020年7月正式发布,QPS达到70w+。腾讯云基于官方8.0版本新增什么特性和功能,这些新能力能为大家带来哪些实际的价值和帮助?”,直播间里,腾讯云数据库产品专家黄稚禹为大家做出了细致的解析。
腾讯MySQL 8.0 新推出了八大特性:数据加密、SQL审计、线程池、强一致性、新硬件支持、轻量级AP、热点更新、SQL限流。
MySQL 开源社区版是不支持企业级审计功能的,只有商业版里才提供。而腾讯云 MySQL 8.0实现了内核级别的审计功能,并且结合了云产品进一步提升了 SQL 审计功能,让用户拥有更好的体验。
用户连接 session 产生的审计记录,由专门的写盘线程( Flush thread )将内存中的审计记录写入审计文件中( Audit File ),直接落盘。而审计代理( Audit Agent )则会读取审计文件,将审计记录发送到审计日志中心。
同时采用 JSON 格式对审计日志进行存储。记录的审计内容有时间戳、影响行数、执行时间、主机、来源IP、实例名、用户名、数据库名,包括具体的 SQL 语句和类型等。在产品层面上也提供了审计规则的过滤。
针对互联网高并发业务场景,腾讯云 MySQL 8.0 进行了线程模式的改进。当客户端发起连接后,由空闲的线程先对请求进行处理,减少上下文切换的消耗和创建销毁的消耗。同时引入了多队列的机制,可以按照业务的访问走不同的队列。
在数据加密方面,通过 KMS和 TDE 的深度集成,实现了二者的结合,为腾讯云 MySQL 用户提供了一整套安全解决方案。
KMS 采用的是两层密钥体系,海量的业务数据在存储或通信过程中使用数据密钥以对称加密的方式加密,而数据密钥又通过用户主密钥采用非对称加密方式加密保护。通过两层密钥体系,确保数据在在内存和文件中都进行加密。
在直播的最后,黄稚禹为大家分享了腾讯MySQL 8.0 在电商、游戏、金融、新零售这四大行业里的应用,也和大家畅想一番他对数据库未来的发展趋势看法。
金融级别:新一代消息队列在腾讯计费的实践
云原生场景,多语言、多种协议兼容,任意多的消息 Topic、任意多的消费者,性能的按需快速扩展成为消息队列基本的要求。而在金融场景下,对交易数据的强一致性、跨地域数据高可用性、系统的性能方面都有着极高的要求。
腾讯TEG技术委员会专家工程师刘德志为大家分享了基于 Apache Pulsar 的新一代存储计算分离设计的消息队列 TDMQ在腾讯计费上的技术实践。
腾讯计费是孵化于支撑腾讯内部业务千亿级营收的互联网计费平台,其核心是帮助用户与产品,安全、便捷的完成支付和收款。平台承载了腾讯公司每天数亿收入的大盘,为 180+ 个国家(地区)、100W+ 计算商户提供服务,托管账户总量 300 多亿,是一个全方位一站式计费平台。
1. 存储分离架构
TDMQ 是基于 Pulsar 内核,同样采用了计算和存储分离的 2 层架构:
Broker 提供消息的生产、发送和管理服务,本身并不存储任何状态信息和消息内容。Bookie 提供存储层服务,采用逻辑分片存储模式,也就是 Ledger,一个 Topic 实际上是一个Ledgers 流,Ledger里面存储了具体的消息也就是 entry。
基于存储分离的架构,可以很友好的支持系统的扩缩容。如果是计算层资源不足,可以非常方便的进行 Broker 扩容,同时 Broker 也可以用相对比较廉价的机器来支撑。如果是存储层资源不足,添加 bk 节点也是非常简单的,新加的机器会在后续的 Ledger 写入使用,基本不需要额外的数据迁移动作。
2. 跨城容灾
随着业务的发展,异地多活成为必然选择。TDMQ 提供两种跨城容灾模式:跨地域异步复制、跨地域同步复制。
对于跨地域异步复制,TDMQ 的 geo-repilcation可以实现跨地域复制的能力,通过一些配置化手段实现多中心的数据同步,减少了业务的负担。
对于跨地域异步复制, 由于TDMQ 采用计算存储分离的架构,存储是 bookie 集群组成,Broker 在写消息时,首先会从 bookie 中选出一组 bookie 节点,选取的策略可以根据 bookie 部署的机架信息,由同城和跨城节点组成,其中机架信息可以通过配置进行指定。这样就可以保证副本是在多地存储,在等待ack策略上,可以根据机架信息保证等待异地的 ack 应答,可以实现真正意义上跨城容灾。
与此同时,在保障数据高一致方面,刘德志也为直播间的听众详细剖析了TDMQ 的一致性模型,在DB数据同步上也有很多创新的实践。目前TDMQ还处在腾讯云的内测阶段,主要应用于腾讯计费等场景下,未来也将开放到更多应用场景下使用。
前沿探索:腾讯云数据库自治服务最佳实践
腾讯云数据库高级产品经理刘迪为大家分享了腾讯云在数据库自治方面的最新实践。他先从数据库自治的演进开始讲起,为大家娓娓道来数据库运维各个发展阶段的面貌和特点。
从数据库技术诞生伊始,数据库运维经历了从石器时代、工具时代、专家时代,再到如今智能时代这四个阶段。从依靠纯手工运维到沉淀脚本和工具提升人工效率,再到出现统一的数据库自动化运维管理平台。
在云数据库时代,虽然可以便利使用云上的各种托管能力,但是上云之后也相应产生了黑盒现象。在资源评估、故障诊断恢复、数据库性能优化等方面对数据库运维同学提出了新的挑战。
有没有一种技术能够将数据库能力和专家经验的共享,把之前已经积累好、沉淀好的数据库处理经验自动化,能够让数据库自己处理一些简单的问题,不需要人工干预。面对复杂问题的时候能够提供非常充足的建议,通过专家的干预进行最后的处理呢?数据库自治由此诞生。
经过多年的技术打磨,去年腾讯对外发布的一款强大的数据库自治产品 —— 数据库智能管家DBbrain。DBbrain 提供的自治服务涵盖三个方面:
(1)性能优化
利用机器学习、大数据手段快速复制资深数据库管理员的成熟经验,将大 量数据库问题的诊断优化工作自动化,服务于云上和云下企业。
(2)安全防护
提供从用户行为安全、SQL 安全到数据存储加密安全等多项数据安全服务, 公安部认证的等保合规性安全产品。
(3)数据库管理
提供免安装、免运维、即开即用、多种数据库类型与多种环境统一的 web 数据库管理终端。
DBbrain 提供了宏观用户级别的监控和告警,让用户第一时间内能够发现故障、发现异常。监控页面的易读性非常高,用户不需要从几百个监控指标中找出哪个有问题,DBbrain 会帮助用户筛选、聚合出相同问题触发的监控指标。
DBbrain还提供了7*24小时异常诊断、异常框架诊断、SQL优化、数据库审计与分析、数据库健康评估策略解读、自动性能优化系统 CDBTune等能力。同时提供基于 cost 的分析引擎,能够在用户没有执行优化建议之前就把优化的结果告诉大家,从而在优化前就可以清楚的看到预期的优化效果。
对于容易被运维同学忽略的数据库安全防护问题,DBbrain 也提供了合规审计、安全治理、数据脱敏三大功能,为用户提供更稳定安全的数据库服务。
刘迪还结合了行业客户的案例为大家分享DBbrain在实际生产场景下的应用。谈到数据库自治的未来展望,刘迪表示:“数据库自治在未来应该会朝着自愈、自优化的方向发展,不仅能自主调节索引建议,还可以自主创建索引,自动进行识别、添加和删除,并且在未来还应该可以自动对执行计划进行回归修正,优化策略下沉与引擎融合,让用户需要干预的越来越少,提供的优化服务越来越多”。
如何成为一名优秀数据工匠?
本期沙龙的压轴专场请来了三位大咖,云和恩墨首席架构师 & 腾讯云最具价值专家TVP盖国强、Elastic中文社区深圳负责人 & 腾讯云最具价值专家TVP杨振涛、腾讯数据库负责人丁奇,他们就「如何成为一名优秀数据工匠」这一话题延伸出发,展开了热烈的探讨。
三位大咖先从自身成长经历出发,表达了他们自身对数据工匠的感受和理解,虽然在专长领域和成长经历上有所差别,但是源自相同的热带和坚持,他们最后也都达到了各自领域内的高点。
在谈到当前数据技术的发展现状和趋势这一话题时,盖国强老师首先谈了自己的看法。
他首先认为国产数据库必将崛起,因为分布式数据库已然成为趋势,加上中国拥有庞大的用户市场,所以国产数据库实现弯道超车获得领先优势不是没有可能;第二,云数据库成为新的潮流;第三,数据库自治也是大势所趋,数据库未来一定是会更加自动化和智能化。最后不由感叹道:“很不幸,未来可能不太需要传统意义上的DBA了”。
对于延伸出来的这个话题,丁奇显然来了兴趣。他首先对国强老师的这一观点表示了认同,但同时也有新的理解。他认为未来DBA仍然还会存在,但是形态会发生改变。在数据库发展的早期阶段,DBA其实对业务有很强的主导性,因为他们了解数据库的业务架构。随着云化和自治化的发展,将DBA从基础的运维中解放出来,重新回到原始的价值层面,也即了解和主导业务架构。
对于数据库发展趋势的问题,杨振涛保持着朴素的观点,他认为数据库的发展暗含着合久必分,分久必合的态势。从最早期一个数据库搞定业务系统对数据的读写需求,到现在基于不同业务对数据读取的差异化要求,采用多种产品组合。同时,不同数据库产品也在不断演化,进入了百家争鸣的阶段。包括国产数据库的崛起,更加促进了这个数据时代的多元化。从系统论来说,多元化越强系统蕴含的熵、进化的能力也是越大的。 如果市场上永远是三巨头,就可能不是一个很健康的发展趋势。
对于如何成为一名数据工匠这一话题,三位老师也给出了自己的答案。
盖国强结合自己20年来的工作学习经验,提炼出来8字真言:兴趣、勤奋、坚持、方法。兴趣是你克服苦难,坚持下去的源头;勤奋是要保持对自身的高要求,付出更多的时间精力来做这件事;坚持是不轻易调整方向,学透了某一点再拓展不迟;方法是要灵活借鉴他人的成功经验补足自身。坚持这四点,相信每个人都能做出优秀的成绩。
丁奇也同样分享了他自己的观点,他认为学习数据技术最好从点到线,这样更能获得点滴的成就感,在阅读繁复浩大的技术图书或者手册的时候,应当先把骨架弄清楚,然后有针对性地学习。对于想要在数据技术更进一步的同学,丁奇建议大家应该有意识的增强自己的成本意识、性能意识,以及安全意识。
杨振涛认为在成长为数据工匠的路上,我们需要一直贯彻专业主义,对于认为正确的事情一定要坚定不移的做下去,专业度决定了你最终能走到哪一步。另外杨振涛也鼓励技术人员应该具有利他心理,多多分享自己的知识和经验。在成就他人的同时,往往也能完善自身知识体系,甚至还能收获新的认知,是一件非常值得投入的事情。
在直播的后半段,三位老师同样解答了直播间弹幕提出的诸多问题。
此次技术沙龙涵盖8场深受大家喜爱的数据专题,邀请到10位行业一线大咖分享实践干货。沙龙活动期间不断收到来自直播间观众、技术社群中传递的热烈讨论和提问,收获了一片称赞。
正是源于同样的热爱,让我们在这段时间相约在云+社区沙龙直播间,一齐成长进步。国内外数据技术日新月异,每天都在发生巨大的变革,但无论什么时代,先进的知识始终是优质生产力,坚持、热爱的开发者们永远是推动技术发展、维持技术生态繁荣的最根本因素。感谢国内的开发者,也感谢腾讯云云 + 社区能为广大开发者提供这样一个交流协作的平台。腾讯云愿积极拥抱开发者,愿与开发者携手一起,共建属于数据技术更先进的未来。