游戏
哔哩哔哩
UP 主
B 站百大 UP 主

B站数据平台有哪些?

如题。
关注者
49
被浏览
269,706

11 个回答

官号出没,注意护体!!强烈建议大家可以体验一下iFans数据B站版的19.9元7天SVIP试用,没有19.9元没有关系,免费版也有很多数据,还可以联系客服帮你免费开通哦!!

iFans数据(B站版),是一款优质的大数据监测分析平台,为您提供UP主数据、视频数据、品牌数据的监测分析服务。iFans数据通过全方位数据洞察,助力品牌和号主们更高效地完成达人投放、账号运营、视频创作等内容。

UP主数据

iFans(B站版)在【UP主趋势】版块通过监测全站UP主数据为您提供多维度的UP主榜单、UP主查询、UP主详情分析和UP主对比功能,帮助品牌方找到合适的UP主,助力创作者对标账号、MCN机构了解B站流量趋势

UP主榜单:指数榜、粉丝榜、充电榜、涨粉榜、掉粉榜、视频播放榜

榜单数据更加细化。还可以根据频道分区查看到B站二级分区下的UP主排行。统计周期分为日榜、周榜、月榜,并支持榜单列表导出功能。
全方位的榜单数据,帮助您对标账号、了解B站流量趋势,寻找优质UP主、潜力up主!

UP主查询

另外,在选号时,还可利用UP主查询工具
除关键词检索,您也可以通过多维商业筛选匹配合适的UP主。我们在频道分区、账号类型、性别、粉丝数、视频数、充电数、其它平均互动指标七大基础筛选分类条件外,另外iFans还有UP主报价、联系方式、橱窗、直播等商业化查询条件,帮您从商业化角度定位心仪UP主!

UP主详情分析

点击UP主头像或右侧详情分析操作按钮,您将得到该UP主数据概览、参考报价、视频作品统计分析、粉丝分析、投放查询、相似UP主的直观展示,帮助您全方位判断账号投放价值。
UP主详情共包括:数据概览、作品统计、作品分析、粉丝分析、推广分析、舆情分析、相似UP主等七大功能。

数据概览页
作品分析页
推广分析页

在达人的推广分析页可以快速了解之前达人推广内容、商品渠道、商品信息等。可以依据商品价格分布、商品价格走势,最低价格、最高价格,平均价格等。关于UP主详情还有更多宝藏功能等待大家探索哦~

视频数据

视频榜单

热门视频互动榜,提供了日榜-周榜-月榜,帮助用户快速了解B站平台最新热点,巧妙借助热点融入内容创作中,往往有可能获得更大流量。

视频详情

视频详情包括:数据概览、舆情分析、推广分析三个模块,可以帮助运营者快速了解视频舆情情况和商业合作情况。

品牌数据

品牌植入查询

在这里,您可以通过搜索框输入品牌/产品名直接检索相关植入视频,也可以同时结合搜索类型、频道分区、互动数量(点赞评论等)、发布时间多条件筛选更加精准地定位目标植入视频。

品牌植入查询

品牌详情

品牌详情的内容也非常丰富,包括:基础趋势、相关作品、相关UP主、覆盖粉丝分析、作品分析

(这里就不一一展示啦,大家可以到产品里面具体去看)


iFans平台分为红书版、B站版和抖音版。作为爱点击旗下专业的一站式内容营销服务平台,我们将iFans平台AI大数据分析能力与爱点击专业的MCN服务能力紧密结合,提供SAAS+X服务,除了提供上文所述的数据监测服务外,还为您提供数据报告、策略定制、整合营销、事件营销、创新栏目、直播营销、账号运营、线下活动等九大解决方案,助力用户全面提升其在平台的内容营销效果。
赶快登录爱点击iFans官网( ifans.i-click.cn),体验更多功能吧!

发布于 2022-07-29 18:46

目前在使用B站数据平台是飞瓜B站,功能是各平台中最多的,数据维度比较丰富,可以作为一个比较好数据参考平台。

工具: 飞瓜数据B站版

适用对象:UP主、品牌方、媒介、MCN机构

功能:UP主查找、UP主排行榜、UP主详情分析、视频分析、热门素材、数据监控、电商分析、品牌分析、手游分析、直播分析

编辑于 2021-03-24 11:15

飞瓜数据-B站版(飞瓜B站),是一款社交媒体大数据开放平台,依托专业的数据挖掘团队与AI智能机器人,构建多种维度的数据算法模型。目前拥有UP主排行榜、热门视频、品牌推广、商品分析等数据分析和查询功能,对热门视频和优质账号利用大数据追踪热度趋势及流量趋向,助力哔哩哔哩创作者账号运营内容定位、粉丝增长、粉丝画像优化及流量变现。

一、热门视频功能

飞瓜B站的热门视频,是提供B站24小时最新热门视频,帮助用户快速了解B站平台最新热点,巧妙借助热点融入内容创作中,往往有可能获得更大流量。

通过不同的时间范围、不同核心指标排序来展示视频内容、播主信息、点赞数和评论数。还可以运用视频标题+简介、视频标签、视频评论来搜索热门视频,也可以通过搜索条件如视频分类、播放数、视频时长、男女粉丝比例来检索想要的视频。

二、UP主搜索功能

通过UP主的昵称或账号ID进行搜索你想要找的UP主,也可利用不同指标排序来搜索UP主的信息。通过不同行业类型、粉丝数、集均播放、男女粉丝比例等来检索想要了解的UP主。


(1)【UP主排行榜】分为行业排行榜和涨粉排行榜。每日及时更新UP各类排行榜数据,让你更快找到业内KOL王牌UP主和新晋达人,学习借鉴他们的成长经验和专业内容。

行业排行榜:根据播主发文内容分成21个类,用户可以通过选择时间范围查找排行,还可以直接点击日、周、月榜切换查看排行情况。

涨粉排行榜:根据各个播主不同时间范围内粉丝增量大小排行,可以快速了解账号粉增量的情况。

三、数据监控功能

视频监控功能分为即时监控、预约监控和批量即时监控三个,都可对B站视频进行监控,提供分钟级的视频播放数、点赞数、投币数等数据监测,掌握up主视频热度走向和投放效果。

四、品牌推广功能

飞瓜数据B站版【品牌推广】功能,里面的品牌排行榜提供家具家纺、日用百货、护肤、彩妆、母婴等十几个不同行业分类的品牌数据。让用户快速的了解什么样的品牌适合在B站营销,哪些品牌又在B站比较热门。

五、电商分析

商品排行榜帮助用户快速发现近期B站上的热销爆款商品,筛选来自淘宝、B站平台、京东、有赞四个平台的20个品类的商品,还可以同步查看商品近30天的关联视频数、关联UP主数、关联视频点赞数以及全网销量增量等数据,快速发现近期同品类的爆款商品。

六、直播分析

提供B站UP主直播排行的数据为用户提供优质播主作参考,直播排行榜拥有人气排行榜榜单和礼物排行榜榜单,为用户提供日榜和周榜的相关数据方便用户了解周期内UP主直播间的情况。

看完了这些,你就已经开始迈向自媒体运营高手的第一步。专业的数据、专业的平台—飞瓜数据B站版。量身打造的数据分析产品,提供B站商家和用户提升内容能力的高效率全方位解决方案,用大数据分析运营策略创造价值,让你的运营之路从此不再迷茫。

发布于 2020-09-16 17:34

小小数据 - B站数据分析平台,希望有一天我们会做到全媒体社交大数据 · 营销平台,

我们不如其他花里胡哨的平台,拥有的功能,通过多维度算法你可以看到,热门作品、UP主的分析、UP主排行榜、热门话题、热门活动等等。

简约而不简单的数据呈现,你想找什么,一眼看到不好吗?

基础数据? 有

粉丝分析? 有

作品?精度完美吊打其他。

增长趋势?

图多就不貼了,粉丝排名、粉丝趋势排名、播放增长趋势、点赞增长趋势、投币增长趋势、弹幕增长趋势、收藏增长趋势、分享增长趋势。

排行榜什么的就不提了。


这些不够吗,那有一点,目前是全免费,未来90%的功能也会免费。

不远的将来,我们会上线达人投放中心,希望这个将来不会太久。

发布于 2020-09-16 20:48

上面几个回答,不做评论。但是基本都是付费的,个别费用还不低。
我推荐一个免费而实用的:
BiliOB233 - 哔哩哔哩数据统计分析网站

BiliOB233是一个开源社区项目。提供B站不同维度的排行榜单;强大的Up主等搜索功能;还有依据主题等共性做的Up主分组。

发布于 2021-08-16 11:29

火烧云数据是 B站(Bilibili)第三方大数据分析平台,收录800万个UP主资源,可以看UP主排名,找UP主看报价投广告,查品牌植入和带货数据,监测投放效果等;同时提供UP主辅助运营功能,广告主投后账号管理。为Up主、商家和品牌方提供精确的数据服务。

一.B站流量分析

(1)大盘数据

了解B站的的整体流量分布,快速洞察B站的全局动态。

(2)B站分区流量分析

涵盖B站各分区的数据趋势——播放量以及发布量。通过选择分区,查看近两天和两周,全站或不同分区视频发布量、播放量的增量数据及总量数据趋势。

二.查找UP主

UP主、品牌方、商家可以在UP主查找模块,搜索UP主,或者查看UP主排行榜以及涨掉粉排行榜。

(1)UP主搜索

可以用账号名称搜索想要分析或投放的UP主,也可以根据分区、粉丝量区间、UP主认证类型来筛选账号,找到需要的UP主。

(2)UP主排行榜

粉丝量排行榜

商业价值排行榜

企业号排行榜

三、热点、素材

(1)全网热点

汇集各平台的热门话题和热点事件

(2)视频素材/爆款视频

为自己的视频选题提供帮助,紧跟热点

(3)热榜分析

分析进入B站热门视频排行榜的100部视频作品

5大数据分析维度:作品高频词 作品分区占比 视频时长区间分布 视频播放量分布 视频发布时间分布

(4)热门活动

参与官方活动获得流量支持

(5)热门标签

为制作视频的标签有一个参考,选择热门关注度高的标签从而获得更多流量

火烧云数据还有其他好用的功能,帮助用户和商家提升视频的内容质量,分析视频数据,还可以帮助分析进行广告投放。功能齐全,查找简便。

发布于 2021-06-16 11:55

导读 今天的介绍会围绕下面四点展开:

1. 大数据元仓背景

2. 元仓技术选型及方案

3. 元仓与诊断效果

4. 总结与未来规划

分享嘉宾|杨洋 bilibili 高级开发工程师

编辑整理|马信宏

内容校对|李瑶

出品社区|DataFun

01大数据元仓背景



首先介绍一下大数据元仓的背景,在大数据引擎运行的过程中,由于缺乏一些运行时的切面数据,我们难以实时观测引擎的运行情况。另外,由于缺乏作业维度的统计信息,我们也难以推动用户对大作业进行治理。为了满足这些需求,B 站构建了大数据元仓系统。

大数据元仓主要指的是内部离线的一些大数据组件,例如 Yarn、Presto、Spark 等。未来,还计划将 StarRocks 的相关信息纳入到大数据元仓的体系中。



先以 Presto 元仓为例,来介绍一下整个元仓的结构和功能。对于 Presto 元仓,主要分为三个维度进行分析:集群维度、队列维度和 query 维度。

在集群维度下,可以细分为以下几个方面:

  • 节点汇总信息:主要包括节点资源情况,例如 CPU、内存、扫描数据量等。
  • 集群 query 汇总信息:主要包括各种 query 状态的统计信息,例如正在运行的作业数量、失败的作业数量、已完成的作业数量等。

队列维度主要展示队列的一些维度信息,包括队列的资源信息和水位信息。而 query 维度则是对前面的query汇总信息的一个补充。通过 query 维度,可以获取更详细的信息,例如查询的失败次数,但有时候除了知道失败次数之外,我们还想具体了解导致查询失败的异常情况。

02元仓技术选型及方案

接下来介绍元仓技术选型。



首先简单介绍一下内部监控架构。其基于 Prometheus 搭建,主要包括三个模块:

  • 数据源层:各个组件通过 export 方式暴露其指标数据。这些指标数据可以是应用程序、服务或者系统的性能指标。
  • 数据归集与处理层:Prometheus 通过 HTTP Pull 的方式从各个 exporter 拉取其对应的指标数据,并将其存储到时序数据库中。
  • 数据应用层:通过 Prometheus Web UI 使用 PromQL 语句向用户展示监控指标数据。此外,还配置了一些阈值来触发监控报警,并发送相应的通知信息。



Prometheus 存在的缺陷是其存储数据量有限,不适合存储长时间的历史数据。通常,Prometheus 存储的数据量仅为一两个月的数据。此外,Prometheus 是基于度量的系统,更多地用于展示趋势性数据,例如集群的 CPU 和内存情况等。但是,对于像元仓这样需要下钻到具体明细数据的需求,Prometheus 则难以满足。

基于以上问题,我们打算设计一个新的架构来构建大数据元仓。我们的大数据元仓应该满足以下特点:

  • 实时观测:能够实时观测到集群的指标数据,并在多维分析场景中实现秒级或亚秒级的查询返回。
  • 复杂逻辑计算:支持复杂的逻辑计算,不需要将数据落库后打成大宽表的形式。有较高的灵活性,以便后期满足不同的需求,并在现有逻辑的基础上进行处理和分析。
  • 存储及回放:能够存储半年甚至更久的数据,并支持数据的回放。



基于以上需求,我们进行了市场调研,发现了一些比较热门的技术,例如数据湖技术。数据湖是一种流行的架构模式,其中一些典型的代表包括 Iceberg、Hudi 和 Delta Lake,它们都建立在 Hadoop 生态系统之上,使用更加廉价的机器来进行大规模数据的存储,通过多副本机制保证其高可靠性。

相对于现有的 Hive 数仓技术,数据湖技术具有更强大的功能。数据湖技术可以支持 ACID 事务,支持 Schema evolution,并为用户提供更好的表格格式。随着数据湖技术的发展,它还支持更丰富的索引,以实现 Data skipping,从而提高查询引擎的查询能力。此外,通过聚类等技术,数据湖可以更好地组织和编排文件格式,以提高查询性能。

除了数据湖技术,我们还调研了市面上一些主流的数仓技术,如 ClickHouse 和 StarRocks。传统的数据湖技术可能在时效性方面存在一定的不足,而像 Hudi 和 Iceberg 等技术虽然可以达到分钟级别的时效性,但要实现秒级别的时效性可能仍然存在一些技术难题。

第二点是关于数据湖和数仓技术的远程 IO 成本。相对而言,数据湖的远程IO成本可能会较高,因为数据湖技术相对不够成熟,一些索引的优化可能还不够完善,导致查询成本相对较高。而数仓技术更多地采用本地 IO,可以更有效地减少远程 IO 的开销。在数仓技术中,有一些成熟的加速手段,例如通过物化视图和索引等方式来提高查询性能。相对于数据湖技术,数仓技术在这方面更加成熟。



基于上述分析,目前更倾向于以数仓技术作为大数据元仓技术的底座,关于采用 StarRocks 还是 ClickHouse,接下来从六个维度进行比较,包括标准 SQL 支持和性能方面。

首先,StarRocks 支持标准 SQL,并兼容 MySQL 协议,这对于应用程序迁移来说是一个优点。而 ClickHouse 在标准 SQL 方面并不完全支持。

其次,从性能方面来看,StarRocks 的读写性能都较好,而 ClickHouse 在单机性能方面可能更强大。StarRocks 是一个全面的向量化引擎,通过多机多核的方式提高并发能力。而 ClickHouse 的并发能力相对较弱,默认的 QPS 大约为 100。在 join 操作方面,StarRocks 的支持较好,而 ClickHouse 的 join 能力相对较弱,通常需要将数据导入 ClickHouse 并进行查询。

从运维的角度来看,StarRocks 相对于 ClickHouse 更为方便。StarRocks 不依赖第三方组件,主要通过 FE 和 BE 节点来构建集群。如果出现资源不足的情况,可以很容易地对 FE 和 BE 进行横向扩展,因此其运维成本相对较低。而 ClickHouse 依赖于第三方组件,如 Zookeeper 来构建集群,因此相对于 StarRocks,其运维成本会更高。

从社区的角度来看,StarRocks 是由国人主导的国产MPP数据库,其社区活跃度相对较高。在我们进行 StarRocks 的调研和测试时,如果遇到问题,社区往往能够快速给出建议和回复。



根据以上分析,我们更倾向于选择 StarRocks 作为大数据元仓技术的底座。为此,这里进行了 StarRocks 内外表与内部 Presto 集群的性能比较,使用了 TPCH 数据集,并随机选择了一些 SQL 进行性能测试。

图中橙色线表示 StarRocks 外表的查询,灰色线表示 Presto 的查询。可以直观地感受到,相对于 Presto,StarRocks 具有更强大的查询性能。据计算,StarRocks 的外表查询时间相对于 Presto 缩短了大约 70% 至 80%。此外,还比较了 StarRocks 内表和外表的查询性能。发现 StarRocks 内表的查询性能比外表更强大。这可能是由于 StarRocks 内表的列表划分为本地 IO,以及各种文件组织格式和索引的查询优化手段所致。

除了查询性能,我们还关注计算引擎的资源消耗。因此,还比较了 StarRocks 和 Presto 的查询资源消耗。



这里特别说明一下,以上对比主要采用内表,主要原因是,StarRocks 的内表在稳定性和性能方面更好,并且在市场上使用内表的情况更为普遍。另外,StarRocks 的外表查询技术可能还不够成熟。考虑到我们的元仓场景更倾向于使用内表进行查询,因此采用内表进行了资源、内存和 CPU 方面的比较。总体而言,相对于 Presto,StarRocks 的资源消耗更小。



在元仓架构上,我们倾向于 StarRocks 作为技术底座,提供存储和查询能力。架构主要包含采集、存储计算及数据服务。我们使用采集模块收集各个集群如 Presto、Yarn 的指标,并将其推送到 Kafka。为了实现这一功能,内部实现了一个代理(agent),该代理封装了从采集器(collector)将数据推送到 Kafka 的逻辑。

对于业务方来说,他们不需要关心底层如何将数据推送到 Kafka,只需要按照规范实现一个 collect 接口,通过实现 collect 方法来收集对应的业务逻辑。具体的推送工作由代理(agent)来处理。一旦数据被写入 Kafka,便可以使用 Routine Load 或 Flink 的方式进行导入。对于 StarRocks 集群中的数据,不会直接对外暴露查询接口,而是通过一个数据服务层(data service)来解耦用户和 StarRocks 之间的关系,并通过数据服务提供对外的查询接口。



在数据导入方面,StarRocks 通常有两种方式:Routine Load 和 Flink。Routine Load 是 StarRocks 自带的一种导入作业方式,可以消费 Kafka 数据并将其写入 StarRocks。使用 Routine Load 相对来说比较简单,用户只需要创建一个 Routine Load 作业,并指定列、Kafka 主题以及一些分区信息即可进行数据消费和写入 StarRocks。所以对于新业务我们首推 Routine Load 方式。

对于存量数据,用户可能已经在 Kafka 端采集了一些度量指标,此时让用户按照之前定义的规范重新将数据写入 Kafka 可能并不合适。对于一些特殊的业务逻辑,Routine Load 可能无法满足需求,这时就需要用到 Flink 来处理。

相比 Routine Load,Flink 通过编码的方式更加灵活,特别适用于处理复杂的多表关联查询。然而,由于 Flink 即使是对于简单的表也需要进行编码,这对于一些不常开发代码的用户来说可能会增加上手成本。因此,在内部我们会将 Routine Load 与 Flink 结合使用。

另外,由于 Routine Load 是 StarRocks 自带组件,通常需要自行完善配套监控和告警。我们线上遇到过一些 Routine Load 的问题。比较常见的是遇到了脏数据导致处于 RUNNING 状态的作业转变为了 PAUSED。对于这种情况,可能需要对 Routine Load 作业进行修改,重新拉取数据并进行处理。但我们也遇到过特殊 Case,发现 Routine Load 无法重新恢复。原因是它的 Kafka 偏移量已经小于当前线上 Kafka 主题的起始偏移量,导致无法将数据拉取到最新状态。对于这种情况,目前只能与业务方进行沟通,是否可以接受一定程度的数据丢失,我们会在后期通过添加监控和告警从而来完善这一部分。

关于 Flink 的监控和告警,公司已经有完备的流计算平台,可以提供相关能力。举个例子,如果线上的一个 Flink 作业由于某些原因失败,它会自动拉起并重试以及通过邮件等方式来告知用户。常见的失败原因为遇到了脏数据。对于这种情况,通常是代码健壮性问题,缺少对脏数据的处理。可以在平台上设置检查点下线作业,待代码修复后,从检查点进行恢复进而保证数据的连续性。



下面分享一下我们在线上使用 Flink 导入数据时遇到的问题。背景是有一些存量数据,是一种日志类型的格式,原先的 Routine Load 并不适合处理这种格式。因此,我们需要使用 Flink 进行转换,进行 ETL 操作,然后将数据导入到 StarRocks 中。此外,我们内部之前有使用 Flink 消费 Kafka 导入其他数据库的例子,再加上 StarRocks 兼容 MySQL 协议,我们认为稍作一些改动,数据应该可以落入 StarRocks 集群。在功能测试阶段,该思路确实可行。但上线后,业务方反馈对于一些简单的查询,StarRocks 平常在一秒左右就能返回计算结果,但在某段时间内可能需要十几秒甚至二十几秒才能返回结果,这显然是不合理的,存在问题。

我们查看了 StarRocks 的GC日志,发现 StarRocks 发生了频繁的 Full GC,大约每几十秒就会发生一次。对于 StarRocks 而言,虽然我们线上设置的堆内存不大,为 8GB 再加上导入数据量不多,但频繁的 Full GC 显然是不太正常的。



我们提出的解决方案首先是对 JVM 参数进行调优。例如,可以增加堆内存的大小。在这个案例中,理论上增加堆内存可以解决问题。然而,随着后续推广 StarRocks,更多的业务方进行接入,频繁 GC 问题可能仍然会出现。

第二个方案是从根本上解决 Flink 导入导致频繁 Full GC 的问题。问题原因可能有两方面,第一是 Flink 作业导入不规范,第二是 StarRocks 自身代码的问题。第二点的可能性不大,因为业界已经有了使用 Flink 进行数据导入的成功案例。因此,我们更倾向于认为,可能是一开始使用 JDBC 方式导入数据到 StarRocks 时,性能不太好导致出现了问题。

我们进一步调研发现,StarRocks 官方已经提供了 Flink 连接器,它可以帮助我们实现数据导入至 StarRocks。其实现原理为在内存中积攒小批数据,然后通过流式加载(Stream Load)的方式进行导入。

具体的思路是,当 Flink 从 Kafka 消费数据并 sink 到 StarRocks 时,它不会立即进行导入,而是将数据写入到一个内存数据结构,比如一个 Map 中。然后启动一个异步线程来扫描这个 Map。通常情况下,每隔 5 秒,会发起一个 Stream Load 请求。当 StarRocks 收到这个请求后,它会将请求重定向到另一台 BE 上进行具体的执行。当我们修改完代码并重新上线后,发现 GC 日志中不再频繁出现 GC 的问题。



刚刚分享了一些数据导入时遇到的问题,现在继续分享一下我们的数据服务。做该服务的目的主要是希望解耦用户与 StarRocks。首先,该做法可以防止用户随意编写 SQL。如果用户随意编写一些大型 SQL 进行执行,可能会影响到 StarRocks 集群的稳定性,从而影响到线上的其他业务作业。

另外可以增强安全性,我们收回用户的访问路径,统一通过数据服务(Data Service)对外暴露接口。具体实现方面,我们使用了 Spring Boot 框架来搭建元数据服务。鉴于 StarRocks 支持 MySQL 协议,我们可以不必使用 JDBC 方式进行访问,而是可以采用市面上比较成熟的 ORM 框架,例如 Mybatis 框架,来建立应用与 StarRocks 之间的连接。

在研发数据服务的过程中,我们遇到了一个细节问题。前端向数据服务发送请求时,长时间没有响应,导致 Gateway 返回 504 错误。前面提到,我们可以使用元仓查看失败作业的数量,但有时候除了失败量,我们还想深入到具体的明细数据。然而某些明细数据非常庞大,可能有上千万甚至上亿条数据,如果直接拉取全量数据,就可能导致数据服务延迟问题。

我们的数据服务部署在 K8S 集群中,它的 Pod 实例可能会在不同的节点上进行调度和迁移,这样可以实现资源的弹性扩容和容器的自动拉起。在这种情况下,数据服务的访问地址可能会发生变化,因此我们使用 SLB(负载均衡器)通过域名进行访问,以便动态地解析到正确的服务实例。这样可以确保即使服务实例发生迁移或重启,用户仍然可以通过域名访问到服务。

实际上,对于拉取明细数据的 SQL 查询,StarRocks 的查询速度非常快,可能在表级别上只需要大约 1 秒左右就可以完成数据的拉取和返回。然而,真正慢的部分在于数据服务层,主要是由于 Mybatis 的关系映射和 Java Bean 对象的封装。对于大量的明细数据,这个操作可能会比较耗时,导致前端响应超时。

解决方案是分页,因为有时我们并不需要大量的明细数据,可能只是需要查看部分数据。通过分页的方式可以减少查询量,从而提高响应速度。

03元仓与诊断效果



在前面的章节中,我们讨论了大数据元仓的选型、方案和实践。本章将介绍元仓与诊断的效果。首先从 StarRocks 的角度来看,StarRocks 整体的性能表现非常好,在 99 分位延迟方面表现出色,大部分查询都能在几百毫秒内返回结果。



接着从元仓的角度,以 Presto 元仓为例展示其效果。该图为 Presto CPU 资源使用情况的监控。通过 Presto worker CPU 指标(如可用处理器数量和负载等)以及用户选择的时间范围(如 3000 分钟)与时间粒度(分钟、小时或天),对 CPU 使用情况进行分组和聚合,以获取整体 CPU 使用情况的统计数据。



上图展示了 B 站内部 Presto 集群作业的概况。有时用户会反馈 Presto 作业运行较慢或失败较多。在遇到这些问题时,我们可以通过这张图进行量化分析,以确定是否存在排队查询或失败等情况。图中,排队查询量、正在执行的作业成功量以及失败的作业数量等数据主要来源于 Presto Coordinator 的查询信息。通过这些信息,我们可以更好的监控和管理 Presto 集群。



除了了解作业整体失败的数量,我们还希望可以进行细化,下钻到具体的明细数据,知道主要是哪些异常导致。

因此我们采用了 Presto 自身的异常定义,将其分为四大类:用户异常、资源不足、外部异常和内部异常。比如对于用户异常,我们可以进行下钻操作,具体查看哪些用户异常导致了作业失败。常见的用户异常包括列不存在(column not found)、UDF未注册等。此外,用户手动取消作业,状态变为 user cancel,通常是用户认为查询语句有误或查询过程太长



除了上述元仓提供的能力之外,有时用户还会关心作业的执行速度和资源消耗情况,再加上较大的人员值班运维压力,我们急需一套系统能够监控和分析作业的执行情况并且能够诊断用户异常作业同时给出优化建议。

通过市场调研发现,OPPO 的开源项目罗盘是一个功能比较完善的诊断系统,包含了各种规则和功能。因此,我们基于罗盘系统构建了内部的诊断系统。诊断架构如上图所示。

该架构包含了采集模块和多种异常检测模块。有两种采集方式:定时采集和主动采集。定时采集是指定期从 History 中获取需要分析的作业信息,并将其推送至 Kafka;主动采集是指根据用户在 UI 界面上输入的 APP ID,将其需要分析的信息推送至 Kafka。

异常检测模块是整个诊断系统中非常重要的模块。可以订阅 Kafka 消息进行消费,并使用多种诊断规则,如大表扫描、数据倾斜和 OOM 预警等。数据智囊服务会根据之前的诊断信息生成相应的诊断报告,并通过用户界面展示详细的诊断详情。此外,数据智囊服务还可以将诊断信息推送到其他平台,例如公司的治理平台和调度平台,以提供用户更专业的诊断建议。

接下来展示一下诊断效果。



首先,主界面展示了内部作业的异常情况,包括诊断异常任务数、实例数目和资源消耗情况。其次,分享几个诊断规则。



第一个是大表扫描,它的实现逻辑是通过解析计划来分析扫描的数据量。例如,如果扫描的数据量达到 500 亿,我们就认为它是一个大表扫描。并会给出一些建议,比如让用户确认代码逻辑是否添加了分区,是否有一些不必要的数据可以提前过滤。



第二个诊断规则是全局排序异常。我们会关注它 Stage Task 数据量是否达到了阈值。如果达到阈值,就会诊断为全局排序异常。针对排序异常,会建议修改逻辑,减少全局排序。例如,可以将全局排序改为局部排序,通过 ROW_NUMBER 进行分区内排序,从而减少全局排序的数据量,提高排序性能。



还有一个诊断规则是数据倾斜,这是我们经常遇到的一个问题。数据倾斜是指数据分布不均匀,导致大量 Key 集中在个别任务中。对于数据倾斜的诊断,我们会依据 App 与Stage 的运行时长,以及最大 Task 和中位数 Task 所处理的数据量的倍数是否满足阈值来进行判断。

对于数据倾斜,通常的解决方法有两种。从技术角度来看,可以调整一些参数,例如增加 Spark Executor 内存或增加 Spark SQL 的 Shuffle Partition,以提高分区并发性。从业务角度来看,建议用户找出倾斜的 key,通过对 key 进行分组聚合来判断是否存在倾斜。如果找到了倾斜的 key,可以通过加盐打散等方式进行处理。

04总结与未来规划

最后进行一下总结。首先我们在内部完成了 StarRocks 的初步落地,将其应用于公司的元仓场景。另外,构建了一个大数据元仓系统,为用户提供实时的资源观测能力。第三,通过诊断系统推动用户治理异常作业。

未来,会在如下一些方向开展工作:

首先,由于 StarRocks 在大数据元仓场景中表现非常出色,我们希望将其接入更多的业务场景,例如 BI 和 DQC 等。

第二,解决权限、UDF 等问题,与其它引擎对齐。权限方面,目前内部主要通过 Ranger 进行权限管理,因此,如果想要将 StarRocks 与其它业务进行整合,就必须与 Ranger 进行权限打通。在公司内部,我们主要推荐使用 Hive UDF。Spark 和 Hive 之间大部分是兼容的。而对于 Presto,我们进行了一些改造,通过反射等技术使其能够运行 Hive 的 UDF。对于 StarRocks,我们希望在后期能够接入 Hive UDF,与其它计算引擎进行对齐。

第三是关于元仓架构的规划。目前的架构主要是以仓库为中心。但随着原始仓库的推广,更多的组件将被引入,并且数据的生命周期将变得更长。例如,我们计划将半年或者更长时间的数据回流到数据湖中,从而变为湖仓一体的架构。

第四是关于 StarRocks 的加速能力。我们希望能够开启 StarRocks 的一些加速功能,例如物化视图及索引,以提升现有元仓查询的速度。目前元仓主要接入了一些组件的元信息,例如 Presto 和 Spark。在未来,我们希望能够接入更多的组件,例如 HDFS、Kyuubi 的大数据元信息,将其纳入元仓体系中。

第五,诊断系统方面,目前主要以 Spark 诊断为主。未来,我们希望能够支持更多类型的作业诊断,如 Presto 和 Flink 作业的智能诊断。此外,我们还希望将诊断系统与公司内部其他平台打通,为用户提供更专业的诊断建议。

以上就是本次分享的内容。如需更多信息,可以关注B站内部的技术公众号。谢谢大家。



以上就是本次分享的内容,谢谢大家。


发布于 2023-12-12 21:10

物联网、云计算和移动技术的普及,让数据量呈现井喷式增长,建设兼顾效率和质量的大数据体系成为了业界的共同课题。

为此,dbaplus社群携手哔哩哔哩四位大数据专家,围绕“B站大数据体系建设的技术选型与落地实践”这一主题开展线上直播分享,针对离线平台、流式数据集成、OLAP、数据治理等议题进行深入探讨,给大家提供企业级大数据体系建设管理经验参考。

  • 观看方式:线上直播间
  • 直播日期:2023年10月13日(周五)
  • 直播时间:14:30-17:30
  • 直播地址:


活动议程

分享嘉宾及议题

议题要点及收获:

  1. 分享B站大数据离线平台的演进路径、平台建设经验和落地效果;
  2. 分析并解决离线平台高速增长过程中的痛难点;
  3. 思考并规划B站未来的大数据发展方向。


嘉宾介绍:B站大数据架构团队负责人,负责计算平台、OLAP平台、存储系统、资源调度、平台工程等系统的建设工作。10年以上大数据架构和平台产品经验,曾在大众点评、阿里云、携程等多家公司负责大数据平台和架构组件的研发工作,对分布式计算、存储、OLAP引擎、大数据平台产品和系统架构等方面有丰富的研发和落地实践经验。

《B站基于Flink的流式集成架构落地实践》

议题要点及收获:

  1. 万亿数据量场景下,B站如何基于Flink的流式集成架构解决高实时性、高稳定性的需求挑战?
  2. 总结B站数据集成架构的演进历程及生产实践中的稳定性建设经验;
  3. 分享B站流式数据集成服务的建设方式及痛难点解决方案。

嘉宾介绍:大数据集成&存储负责人,支撑公司多部门的数据集成业务及大数据离线存储服务。

议题要点及收获:

  1. 分享B站基于Apache Iceberg支持OLAP分析场景的落地实践,并分析基于Iceberg支撑OLAP业务的可行性;
  2. 如何通过Iceberg索引、预计算等功能进行查询加速?
  3. 如何对Iceberg表进行自动化调优?如何针对日志场景进行优化?

嘉宾介绍:曾就职于Intel、eBay、阿里巴巴等公司,主要从事大数据领域的工作,是Apache Flink Committer以及Apache Hive PMC成员。目前就职于B站基础架构部大数据架构-OLAP平台,负责湖仓一体方向的研发工作。

议题要点及收获:

  1. 介绍并理解DAMA-数据治理运营框架的理论概念;
  2. 从组件建设、降本治理规划两方面,分享B站基于数据治理运营框架的落地实践;
  3. 总结数据治理建设的时间契机、思路及路径;
  4. 阐述元数据的定义及其收集、管理、使用方法。

嘉宾介绍:从事数据一线工作多年,先后在eBay、携程从事数仓、数据分析、数据产品工作,目前在B站实践DAMA数据治理,负责过数据质量、数据成本两大主题 ,参与了B站的数委会、数据治理平台、元数据数仓建设、数据资产归属等一系列数据管理能力提升的项目活动。


报名方式

添加助手dbayuqing获取PPT、加入直播交流群

直播地址:

发布于 2023-09-28 10:37

需求分析

本项目的目的是实现一个 Bilibili 视频下载器,能够根据给定的 Bilibili 视频 ID(bvid)列表,自动下载对应的视频和音频文件。

功能介绍

  1. 读取包含 Bilibili 视频 ID 的 CSV 文件。
  2. 通过 Bilibili API 获取视频和音频的 URL。
  3. 下载视频和音频文件,并将它们保存在本地文件夹中。
  4. 记录成功下载和下载失败的视频 ID。

代码讲解

导入必要的库

import re
import os
import requests
import json
import time
from lxml import etree
from tqdm import tqdm
import pandas as pd
import random

初始化变量和请求头

fold_path = '/Volumes/SSD/Data'
ERROR_CID_PATH = "/Volumes/SSD/Data/Video/error_bvids.csv"
SUCCESS_CID_PATH = "/Volumes/SSD/Data/Video/successful_bvids.csv"

user_agents = [
    # ...
]

headers = {
    # ...
}

bilibili_url = 'https://www.bilibili.com/video/'
videolist_url = 'https://api.bilibili.com/x/web-interface/web/channel/featured/list?'

这部分代码初始化了一些全局变量,如用于存储视频数据的文件夹路径、错误和成功的视频 ID 文件路径。同时,我们定义了请求头和 Bilibili 的 URL。

读取 CSV 文件

video_list = pd.read_csv('/Volumes/SSD/Data/getVideoinfo/getVideoinfo_byhot_1.csv')
bvid_list = video_list['bvid'].values.tolist()
cid_list = video_list['cid'].values.tolist()

这部分代码读取了包含 Bilibili 视频 ID 的 CSV 文件,并将其中的 bvid 和 cid 分别保存到两个列表中。

下载视频和音频

在以下代码中,我们遍历 bvid_list 中的每个 bvid,获取相应视频页面的 HTML 内容,并从中提取视频和音频的 URL。然后,我们将视频和音频文件分别保存到本地文件夹中。

for bvid in tqdm(bvid_list):
    # ...
    page_url = bilibili_url + bvid
    # ...
    video_content = json.loads(temp)
    # ...
    print(video_url)
    print(audio_url)
    # ...
    with open(vfilename, 'wb') as f:
        # ...
    with open(afilename, 'wb') as f:
        # ...

记录成功和失败的视频 ID

我们将成功下载的视频 ID 记录到 SUCCESS_CID_PATH 指定的文件中,将下载失败的视频 ID 记录到 ERROR_CID_PATH 指定的文件中。

with open(SUCCESS_CID_PATH, "a") as success_file:
    # ...
with open(ERROR_CID_PATH, "a") as error_file:
    # ...

使用方法

  1. 将包含 Bilibili 视频 ID 的 CSV 文件放到指定的文件夹中。
  2. 运行脚本,等待下载完成。

注意:本脚本仅用于个人学习和研究,请勿用于非法用途,尊重 Bilibili 平台的版权规定。

注意事项

  1. 确保你的 Python 环境中已安装 lxml, requests, pandastqdm 库。
  2. 请根据需要更改脚本中的文件路径。
  3. 如果遇到下载速度慢或者失败的情况,可以尝试更换请求头中的 User-Agent 或 cookie 信息。

代码优化建议

  1. 使用函数和类对代码进行模块化,提高代码的可读性和可维护性。
  2. 增加异常处理,以避免程序因网络或其他原因而意外中断。
  3. 可以尝试使用多线程或多进程,以提高下载速度。

总结:本文档详细介绍了一个 Bilibili 视频下载器的需求分析、功能介绍和代码讲解。通过阅读本文档,你可以了解如何实现一个简单的 Bilibili 视频下载器,并根据需要进行扩展和优化。

完整代码(按需进行参考)

import re
import os
import requests
import json
import time
from lxml import etree
from tqdm import tqdm
import pandas as pd
import random

# 定义文件夹路径和错误信息文件路径
fold_path = '/Volumes/SSD/Data'
ERROR_CID_PATH = "/Volumes/SSD/Data/Video/error_bvids.csv"
SUCCESS_CID_PATH = "/Volumes/SSD/Data/Video/successful_bvids.csv"

# 设置请求头
user_agents = [
    # ...(省略部分 User-Agent,可自行添加)
]

headers = {
    'User-Agent': random.choice(user_agents),
    'Referer': 'https://www.bilibili.com/',
    # 添加其他请求头信息,例如 Cookie
    # ...
}

# 定义 Bilibili 视频页面 URL 和生活区视频列表 API URL
bilibili_url = 'https://www.bilibili.com/video/'
videolist_url = 'https://api.bilibili.com/x/web-interface/web/channel/featured/list?'

# 读取 CSV 文件中的 bvid 和 cid
video_list = pd.read_csv('/Volumes/SSD/Data/getVideoinfo/getVideoinfo_byhot_1.csv')
bvid_list = video_list['bvid'].values.tolist()
cid_list = video_list['cid'].values.tolist()

# 遍历 bvid 列表,下载每个视频
for bvid in tqdm(bvid_list):
    bvid_path = f"/Volumes/SSD/Data/Video/{bvid}"

    # 如果已经下载过这个视频,跳过
    if os.path.exists(bvid_path):
        print(f"File for bvid {bvid} already exists. Skipping...")
        with open(SUCCESS_CID_PATH, "a") as success_file:
            success_file.write(f"{bvid}\n")
        continue

    # 请求视频页面
    page_url = bilibili_url + bvid
    response = requests.get(page_url, headers=headers)
    page_content = response.text
    page_tree = etree.HTML(page_content)

    # 提取视频和音频的 URL
    video_content = page_tree.xpath('/html/head/script[5]/text()')
    pattern = r'\<script\>window\.__playinfo__=(.*?)\</script\>'
    no_video_pattern = r'视频去哪了呢?'

    # 如果无法获取视频,记录错误信息并跳过
    if len(re.findall(no_video_pattern, page_content)) != 0:
        with open(ERROR_CID_PATH, "a") as error_file:
            error_file.write(f"{bvid}\n")
            print(f"Cannot get video for bvid {bvid}. Skipping...")
        continue

    try:
        temp = re.findall(pattern, page_content)[0]
    except:
        with open(ERROR_CID_PATH, "a") as error_file:
            error_file.write(f"{bvid}\n")
            print(f"Cannot get video for bvid {bvid}. Skipping...")
        continue

    video_content = json.loads(temp)

    # 提取 Dash 格式的视频和音频 URL
    if video_content['data'] is not None:
        if 'dash' in video_content['data'].keys():
            for item in video_content['data']['dash']['video']:
                if 'baseUrl' in item.keys():
                    video_url = item['baseUrl']
                    continue
            for item in video_content['data']['dash']['audio']:
                if 'baseUrl' in item.keys():
                    audio_url = item['baseUrl']
                    continue

    print(video_url)
    print(audio_    url)

    # 创建视频文件夹
    videofold = fold_path + '/Video/' + str(bvid)

    if not os.path.exists(videofold):
        print(1)
        os.mkdir(videofold)

    # 处理视频标题,移除特殊字符
    title = bvid
    title = title.replace('/', '')
    title = title.replace(' ', '')
    title = title.replace('|', '')
    title = title.replace(':', '')
    title = title.replace(':', '')

    # 定义视频和音频文件名
    vfilename = videofold + '/' + title + '.mp4'
    afilename = videofold + '/' + title + '.mp3'

    # 更新请求头,添加 Origin 和 Referer
    header = headers
    header['Origin'] = 'https://www.bilibili.com'
    header['Referer'] = page_url

    # 下载视频
    with open(vfilename, 'wb') as f:
        with requests.get(url=video_url, headers=header, stream=True) as r:
            for chunk in r.iter_content(chunk_size=512):
                if chunk:
                    f.write(chunk)

    # 下载音频
    with open(afilename, 'wb') as f:
        f.write(requests.get(url=audio_url, headers=header).content)
        with open(SUCCESS_CID_PATH, "a") as success_file:
            success_file.write(f"{bvid}\n")
        continue

    # 添加下载间隔,减轻对服务器的压力
    # time.sleep(3)

该回答使用ChatGPT(GPT 4.0)辅助生成。

发布于 2023-03-23 22:24

我们正式推出B站数据分析平台——新站!

bilibili干杯![]~( ̄▽ ̄)~*(我司B站深度中毒的程序员及产品一同为爱发电)

专业B站数据平台,是新榜旗下的数据平台,专业可靠。

为UP主、商家、MCN机构和广告主等提供多项数据服务。


1. 找up主

新站提供24个视频创作领域分类,可通过选择粉丝数、粉丝画像、up主资料等多项搜索条件,找到喜欢的up主。

&amp;lt;图片来自新站-找up主&amp;gt;

搜索出结果后,还有一些实用功能可使用,例如上图右侧的【账号PK】,用于对比账号信息。此外在账号详情页,新站推出【历史成就】功能,用于查看账号运营数据或官方荣誉等数据。

通过搜索,PK,历史成就等数据,全面了解账号信息,助你找到心仪的up主。

2. 找素材

想知道最近热播的视频有哪些吗?使用【找素材】功能进行搜索,新站提供14个一级分类、若干二级分类、数据表现等多重选择,快速查找感兴趣的视频。

同时可通过【爆款速递】,看到每日新增播放最多的爆款视频,了解全站新出的梗、热点事件或流行风向。

3. 品牌营销

【品牌营销】对涉及到品牌的测评视频或分享视频进行分析,品牌方可通过查看评论分析、弹幕分析等数据了解用户对产品的使用感受和评价,为产品后续的优化提供帮助。

4. 恰饭推广

除了单纯的测评,B站也有很多商务合作的恰饭视频,对这部分视频,我们分为两类进行搜索和展示。一类是视频有关联商品的,另一类则通过弹幕发送“恰饭”的次数来判定是否在视频中有软植入的广告。

商家或品牌方可通过【恰饭推广】功能找到与品牌调性相符的up主,通过合作视频进行品牌的营销或产品的推广。


以上就是新站的一些功能介绍

无论你是普通用户,up主还是品牌方

都能在这找到有用的数据!

答应我一定要来用,好吗?


新榜有数旗下有专为抖音、小红书、视频号、快手、B站打造的数据分析工具,了解详情,可点击下方链接查看。

编辑于 2022-04-12 09:42

Topsocial数播——一站式KOL数据资源平台,提供主流社交平台达人详细数据评估分析等服务,B站也不例外。Topsocial数播囊括近7000个B站优质UP主资源,覆盖平台头部、腰部、尾部KOL资源。

1.UP主分类,基础信息展示

在数播,通过对UP主所属领域、粉丝数量、合作报价、IP所属地、以及性别、更新时间等维度进行分类,方便用户能更快匹配更合适需求的UP主资源。

分类搜索之后,平台会展示关于UP主的一些基础信息,包括Top指数(平台统计近30天周期内的达人发布视频数,粉丝总量级,新增粉丝数,点赞数,评论数,分享数等数据进行分析得出的综合评分,主要用于评估和对比达人的活跃程度,受欢迎程度)、粉丝数、平均播放数、平均点赞数、平均评论数、报价等数据信息,让用户一目了然,对达人有一个最基础的了解。

2.达人画像,快速掌握过往数据

在平台进行搜索之后,用户会最先了解到关于该UP主基础数据变化趋势的图表,反映了其作品相关的获赞数、播放数等等。

其次平台还会直观呈现UP主作品相关的互动数据,以及体现互动趋势的图表。从多个维度统计展示,方便用户判断UP主过往作品在不同维度的多样展现,从而做出更加符合自己预期的选择。

对于UP主账号的基础数据以及互动数据有了一定的了解之后,相信用户已经有了一些自己的预期和判断。下一步就可以具体看看对于UP主发布习惯的分析了。

通过Topsocial平台的文章分析功能,最多可以看到账号近90天的数据;还可以通过发布习惯判断该KOL账号发布信息是否有规律,是否持续稳定的在运营。

而且从发布热词提及品牌词这个维度也可以体现该UP主的擅长领域,为达人与用户进行双向选择提供一些参考依据。

达人画像功能通过对UP主数据多维度的展示分析,可以直截了当地判断出达人的擅长领域以及内容方向,为用户提供更有价值的参考意见。

更多数据分析工具可以进入TopSocial数播网站注册使用~

编辑于 2022-06-07 10:23