内容来源:2017年5月20日,腾讯高级软件工程师吴友强在“中生代技术沙龙系列之互联网大数据”进行《腾讯云大数据实战》演讲分享。IT 大咖说作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:1954 | 3分钟阅读

嘉宾演讲视频:t.cn/RScDh7A

摘要

腾讯云是腾讯公司倾力打造的面向广大企业和个人的公有云平台。腾讯高级软件工程师吴友强将为我们分享大数据在腾讯云的实践。

一、TDF(数据工坊)简介

TDF简介

源于腾讯云数智大数据套件的轻量云上大数据产品,提供基于SQL的大数据计算框架。

适用于需要动态灵活获取大数据计算能力进行批量计算、日志处理或数据仓库应用的场景。

因为公有云上的用户需要简单,所以要有一个可视化的集成开发环境,在这环境中可以进行数据血缘管理、工程/工作流管理、用户管理和告警/日志。通过一些工具把数据导入到数据存储里面,然后对数据进行处理,最终输出数据。下层的任务和资源调度是用来调度用户的任务在各个资源上运行起来。底层就是腾讯云的基础设施。

二、CDP(数据管道)实现详解

CDP整体架构-设计

上图是我们刚开始在开发之前做的设计。最左边有很多客户的数据点,比如log、DB Binlog、自建的Kafka以及自定义数据。我们会利用一些工具开发一个Flume插件,帮助它把数据上云。

数据到达中间部分,对数据进行校验和处理。处理完成后根据用户的需求通过插件的方式实时导入到TDF、COS或者其它存储里面。

CDP整体架构-目前

上图是目前我们已经实施的工作。我们自己开发了一个Flume插件,把数据实时发送到腾讯公有云的数据接收器endpoint上。数据接收器会根据用户的选择来决定用Kafka还是CKafka。CKafka也是腾讯云内部自行研发的一套兼容转换协议的消息系统,基于C++开发,性能方面会比原生的提升很多。把数据导入到Nifi里进行二次开发,最终导到Hive中。

Flume简介

FlumeNG是一个分布式、可靠、可用的系统。它能够将不同数据源的海量日志进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。由原来的Flume OG到现在的Flume NG,进行了架构重构,并且现在NG版本完全不兼容原来的OG版本。经过架构重构后,Flume NG更像是一个轻量级的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡。

Flume的架构主要有一下几个核心概念:

Event:一个数据单元,带有一个可选的消息头。

Flow:Event从源点到达目的点的迁移的抽象。

Client:操作位于源点处的Event,将其发送到Flume Agent。

Agent:一个独立的Flume进程,包含组件Source、Channel、Sink。

Source:用来消费传递到该组件的Event。

Channel:中转Event的一个临时存储,保存有Source组件传递过来的Event。

Sink:从Channel中读取并移除Event,将Event传递到Flow Pipeline中的下一个Agent(如果有的话)。

Flume插件

Flume支持插件开发,最简单的方法就是直接拷贝已有插件进行改造。

我们提供的endpoint需要权限验证,主要是基于腾讯云的一些帐号,通过这个方式可以实时地在客户端进行加密或格式化的存储。

首先我们是多用户的系统,其次要防止用户数据量过大。通过数据大小限制能够满足90%以上的用户需求,而对于数据大小的限制是根据自身配置来决定的。

在传输过程中我们采用了一些自定义的协议,这个协议基于avro进行格式化,主要是便于对数据进行序列化和反序列化。

Kafka客户端改造支持CKafka

CKafka(Cloud Kafka)是一个分布式的、高吞吐量、高可扩展性的消息系统,100%兼容开源 Kafka API(0.9版本)。Ckafka 基于发布/订阅模式,通过消息解耦,使生产者和消费者异步交互,无需彼此等待。Ckafka 具有数据压缩、同时支持离线和实时数据处理等优点,适用于日志压缩收集、监控数据聚合等场景。

CKafka主要开放给公有云上的部分VIP用户使用,VIP只能绑定对应的虚拟机,这样保证了它的安全性。但我们是直接使用内网IP访问的,所以我们需要调整客户端的交互协议,通过某种手段把VIP替换成真实的IP,以保证数据的通畅。还有自定义的管理API和封装Java SDK。

NiFi

ApacheNiFi 是一个易于使用、功能强大而且可靠的数据处理和分发系统。Apache NiFi 是为数据流设计。它支持强大且可高度配置的基于有向图的数据路由、转换和系统中介逻辑,支持从多种数据源动态拉取数据。Apache NiFi原来是NSA的一个项目,现在开源出来,由Apache基金会进行管理。

主要特性:

基于web的用户界面:无缝体验设计、控制和监控。

高度可配置:数据丢失容错和保证交付;低延迟和高吞吐量;动态优先级;流可以在运行时修改;背压(Back presure)。

数据来源:从始至终跟踪数据流。

为扩展设计:构建自己数据处理器;支持快速开发和有效的测试。

安全:支持SSL、SSH、HTTPS加密内容等等;多租户授权和内部授权/策略管理。

Hive插件

获取元数据:获取Hive表结构信息,是否支持Streaming API写入。

数据写入:insert插入,支持多分区批量插入;支持streaming;可以直接写hdfs。

CDP未来?

1、支持etl功能,对前端进行分组和做一些实时的计算。

2、支持实时的计算和分析。用户需要可以直接拿到结构去在前端进行展示,而不是再到其它系统上去做计算和分析。

3、支持实时SQL。实时计算对部分用户来说使用成本可能会更高,大部分做数据统计的人员对SQL的掌握度会更高。实时SQL是对数据进行SQL的查询计算。

4、可视化图像操作界面。用户的需求越来越多样化,腾讯云上的很多产品都需要用到数据来做,我们希望以这种方式让用户可以自己选择数据源。

我今天的分享就到这里,感谢聆听!

腾讯云大数据实战案例相关推荐

  1. 腾讯云大数据产品中心总经理刘煜宏:企业全域数据体系建设(附完整PPT)

    背景:5月23-24日,以"焕启"为主题的腾讯"云+未来"峰会在广州召开,广东省各级政府机构领导.海内外业内学术专家.行业大咖及技术大牛等在现场共议云计算与数字 ...

  2. E往无前 | 人人在用的微信支付,腾讯云大数据ES如何让它低成本高可用?

    <E往无前>系列将着重展现腾讯云ES在持续深入优化客户所关心的「省!快!稳!」诉求,能够在低成本的同时兼顾高可用.高性能.高稳定等特性,可以满足微盟.小红书.微信支付等内外部大客户的核心场 ...

  3. 腾讯云大数据获“年度金融科技创新之星”,新一代数据架构首次公布

    在2022第三届银行业数字化创新(中国)峰会上,"华信奖"获奖名单正式公布,腾讯云大数据团队凭借领先的技术优势.丰富的金融科技服务经验,斩获"年度金融科技创新之星&quo ...

  4. 鹏华基金核心系统完成国产化升级,腾讯云大数据TBDS再拓应用新场景

    5月8日,腾讯云联合鹏华基金共同对外宣布,通过双方技术团队以及战略合作伙伴华云中盛共同努力,腾讯云大数据套件TBDS日前已经正式在鹏华基金大数据核心系统落地应用,实现对原有大数据TA(Transfer ...

  5. 腾讯云大数据团队主导Apache社区新一代分布式存储系统Ozone 1.0.0发布

    刚刚获悉,由腾讯云大数据团队主导的Ozone 1.0.0版本在Apache Hadoop社区正式发布.据了解,经过2年多的社区持续开发和内部1000+节点的实际落地验证,Ozone 1.0.0已经具备 ...

  6. 直播预约 | 点“数”成“金”:看腾讯云大数据如何助力金融机构激发海量数据潜能!...

    金融与互联网同作为数据密集型行业,积累了海量的数据. 伴随着业务的创新与扩张,金融机构如何有效将海量数据与大数据技术能力结合,实现数据潜在价值挖掘,进而衍生新的业务形态? 从国有大行到纯互联网银行,从 ...

  7. 腾讯云大数据发布数据生态战略,构建开源开放数仓生态

    2020年12月20日,在腾讯2020 Techo Park开发者大会大数据专场上,腾讯云大数据产品总经理聂晶对数据仓库近30年发展历程做出总结,并分享了他对目前行业的认知以及未来发展的判断.聂晶表示 ...

  8. python爬取基金历史净值_Python学习笔记之抓取某只基金历史净值数据实战案例

    摘要:这篇Python开发技术栏目下的"Python学习笔记之抓取某只基金历史净值数据实战案例",介绍的技术点是"Python学习笔记.Python.历史净值数据.学习笔 ...

  9. 数据宝藏“淘金热”,腾讯云大数据愿做“卖铲人”

    ‍ ‍数据智能产业创新服务媒体 --聚焦数智 · 改变商业 大数据产业作为数字化时代的基础设施之一,正在成为新时代经济发展的重要动能之一.11月30日,在2022腾讯全球数字生态大会大数据专场上,腾讯 ...

最新文章

  1. sqlserver trigger
  2. geohash vs PostGIS
  3. 算法:买卖股票的最佳时机含冷冻期
  4. Hadoop2常用Shell命令
  5. 通信网络基础期末复习-第五章-路由算法
  6. winform checkbox要点击两次_开源C# Winform控件库SunnyUI强力推荐
  7. BUUCTF寒假刷题-Web
  8. 为Angular(2+)开发人员提供带TypeScript的Vue.js
  9. MySQL Buffer Pool缓冲池总结
  10. java crc8_Crc8算法
  11. 【饭谈】谈谈所有人都曾经对测开技术的迷茫和恐惧
  12. 征信不好的看过来:征信黑名单能洗白吗?
  13. 4个方法:提升用户活跃度
  14. Exception 异常和自定义异常
  15. 博雅互动(静态网页)分享
  16. Python代码中的三大常见“愚形”,你中招了吗?
  17. DNA甲基化测序数据的分析流程及相关软件总结
  18. OpenCV+Python识别车牌和字符分割
  19. Scratch官方教程中文版(2)——制作可交互的生日贺卡
  20. 很全面的5G技术基础知识PPT(三)

热门文章

  1. R6025 - pure virtual function call
  2. 【​观察】“Cloud Ready”计划背后 全面云化时代联想的行与思
  3. 我的投资观和投资方法
  4. Microsoft SQL Server 2005 Sp4补丁 中文版(x86、x64)
  5. extjs6.0 动态加载_Extjs入门之动态加载树代码
  6. 计算混响时间的意义_混响时间的计算——
  7. Stata:拉索开心读懂-Lasso入门
  8. excel剔除空格_EXCEL空格删除
  9. 毕设-基于SSM电子标签自动拣货系统
  10. fastjson中对象转换中看到的一些现象