视频直播:实时数据可视化分析

本文介绍了结合腾讯云CKafka、Oceanus流计算、VPC、MySQL和商业智能BI,实现视频直播行业实时数据可视化分析的方案。通过创建相关集群和数据源,利用Oceanus进行数据处理,将结果存储于MySQL,最后通过BI服务展示实时大屏,包括用户地区分布、会员统计、礼物统计等关键指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


作者:spiderwu,腾讯 CSIG 高级工程师

1 解决方案描述

1.1 概述

本方案结合腾讯云 CKafka、流计算 Oceanus、私有网络 VPC、商业智能分析 BI 等,对视频直播行业数字化运营进行实时可视化分析。分析指标包含观看直播人员的地区分布、各级别会员统计、各模块打赏礼物情况、在线人数等。

视频直播场景

1.2 方案架构及优势

根据以上视频直播场景,设计了如下架构图:

架构图

涉及产品列表:

  • 流计算 Oceanus

  • 私有网络 VPC

  • 消息队列 CKafka

  • 云数据库 MySQL

  • EMR 集群 HBase 组件

  • 商业智能分析服务

2 前置准备

购买并创建相应的大数据组件。

2.1 创建 VPC 私有网络

私有网络是一块您在腾讯云上自定义的逻辑隔离网络空间,在构建 MySQL、EMR,ClickHouse 集群等服务时选择的网络必须保持一致,网络才能互通。否则需要使用对等连接、VPN 等方式打通网络。页面地址:https://console.cloud.tencent.com/vpc/vpc?rid=8

2.2 创建 Oceanus 集群

流计算 Oceanus 服务兼容原生的 Flink 任务。在 Oceanus 控制台的【集群管理】->【新建集群】页面创建集群,选择地域、可用区、VPC、日志、存储,设置初始密码等。VPC 及子网使用刚刚创建好的网络。创建完后 Flink 的集群如下:

Oceanus集群
2.3 创建消息队列 Ckafka

消息队列 CKafka(Cloud Kafka)是基于开源 Apache Kafka 消息队列引擎,提供高吞吐性能、高可扩展性的消息队列服务。消息队列 CKafka 完美兼容 Apache kafka 0.9、0.10、1.1、2.4、2.8 版本接口,在性能、扩展性、业务安全保障、运维等方面具有超强优势,让您在享受低成本、超强功能的同时,免除繁琐运维工作。页面地址:https://cloud.tencent.com/product/ckafka

2.2.1 创建 Ckafka 集群

注意私有网络和子网选择之前创建的网络和子网

Kafka集群
2.2.2 创建 topic



创建topic
2.2.3 模拟发送数据到 topic

1)kafka 客户端

进入同子网的 CVM 下,启动 kafka 客户端,模拟发送数据,具体操作文档参考官网:

https://cloud.tencent.com/document/product/597/56840

2)使用脚本发送

脚本一:Java 参考地址:https://cloud.tencent.com/document/product/597/54834

脚本二:Python 脚本生成模拟数据:

#!/usr/bin/python3
# 首次使用该脚本,需 "pip3 install kafka" 安装kafka模块
import json
import random
import time
from kafka import KafkaProducer

TIME_FORMAT = "%Y-%m-%d %H:%M:%S"
PROVINCES = ["北京", "广东", "山东", "江苏", "河南", "上海", "河北", "浙江", "香港",
             "陕西", "湖南", "重庆", "福建", "天津", "云南", "四川", "广西", "安徽",
             "海南", "江西", "湖北", "山西", "辽宁", "台湾", "黑龙江", "内蒙古",
             "澳门", "贵州", "甘肃", "青海", "新疆", "西藏", "吉林", "宁夏"]

broker_lists = ['172.28.28.13:9092']
topic_live_gift_total = 'live_gift_total'
topic_live_streaming_log = 'live_streaming_log'

producer = KafkaProducer(bootstrap_servers=broker_lists,
                         value_serializer=lambda m: json.dumps(m).encode('ascii'))

# 模拟几天前,几小时前的数据
pre_day_count = 0
pre_hour_count = 0
hour_unit = 3600
day_unit = 3600 * 24

def generate_data_live_gift_total():
    # construct time
    update_time = time.time() - day_unit * pre_day_count
    update_time_str = time.strftime(TIME_FORMAT, time.localtime(update_time))
    create_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值