论文解读|TuGraph Analytics 流式图计算论文入选国际顶会 SIGMOD

技术解读 | TuGraph图分析引擎技术剖析 借助TuGraph的 C++ 图分析引擎 API ,用户可以对不同数据来源的图数据快速导出一个待处理的复杂子图,然后在该子图上运行诸如BFS、PageRank、LPA、WCC等迭代式图算法,最后根据运行结果做出相应的对策。参数模块作用于分析引擎中的Standalone模式,用于对图的一般信息(如数据来源,算法名称,数据输入、输出路径,顶点个数等)以及根据不同数据来源、不同算法所配置的不同信息参数进行接受和整理,传输给图算法及各个模块,同时将最终结果模块化展示。一般分为预处理、算法过程、结果分析三个阶段。 阅读详情

6月18日-23日,数据库国际顶会 2023 ACM SIGMOD 在美国西雅图举行,蚂蚁流式图计算团队一篇论文入选。

ACM SIGMOD 数据管理国际会议是由美国计算机协会(ACM) 数据管理专业委员会(SIGMOD) 发起,与 VLDB、ICDE 并称为数据库业界的三大顶级学术会议。其收录论文代表了数据库领域的最高水平,也是未来数据库技术发展的重要风向标。

蚂蚁流式图计算团队本次的论文 《GeaFlow: A Graph Extended and Accelerated Dataflow System》 被 SIGMOD 2023 收录,代表蚂蚁流式图计算团队的成果不仅在工业界有界广泛的应用,同时也在学术界得到进一步认可。

注:GeaFlow 为蚂蚁流式图计算引擎 TuGraph Analytics 内部代号,本文将沿用论文中所用 “GeaFlow”,便于读者对应。

项目代码地址:https://github.com/TuGraph-family/tugraph-analytics

-背景介绍-

伴随着流处理技术的不断发展,它被各大应用领域广泛的使用,例如监控、推荐、广告等。虽然现有的流处理系统已经被证明对处理窗口类型的集合查询非常有效,但当面临更复杂的数据结构,例如图结构数据时,却面临非常多的挑战。

首先在流计算中 join 是一个开销非常大的操作,特别是对于动态变化的数据,因为每来一条数据都需要从另外一条流中找到其所对应的数据,另外还涉及到数据物化和 shuffle。而流式图计算中通常需要成百上千次图迭代才能得到结果,对应流计算就是成百上千次 join 操作。

其次流计算中数据聚集的中间状态,通常在固定窗口或者滑动窗口中,需要维护的数据量是远小于窗口的原始数据大小,且窗口通常不会特别大。而流式图计算中通常需要维持一个较长窗口且动态变化的图,比如在风险识别中需要回溯到几个月甚至几年的数据。

为了解决上述的这些问题,蚂蚁流式图计算团队开发和设计了一款流图计算引擎 Geaflow,它能很好的解决流式动态图分析、遍历和计算的诉求,同时支持长窗口数据图数据状态管理、DSL 化流图任务研发等特性。Geaflow 在蚂蚁的风控、营销等场景也得到了非常广泛的应用,同时也在双十一大促中大放异彩。下面我们来剖析下 Geaflow 的运行场景和内部技术。

-运行场景-

不同于图数据库,Geaflow 解决的问题是高吞吐场景下复杂的图分析和计算问题,例如深度图遍历、子图匹配、全图分析等。Geaflow 使用流式事件驱动的方式进行计算和查询,同时利用查询优化技术进行查询合并和加速。下面我们来描述下 Geaflow 的运行场景。

(图1)

图1 所描述的就是一个典型的 Geaflow 数据流向图。从整体的流水线来看,它在进行流式的构图,构图的数据可以包括多种不同类型的数据,可以是消息队队列,也可以是日志系统。数据可以经过ETL处理,最后转换为点和边写入图存储,图存储会定期的进行 checkpoint 来保障 ExactlyOnce。

同时,它还基于增量和变化的数据进行驱动图计算,例如反套现场景中不断进行付款的用户id。和其他通用的流计算系统不同的是,由于图计算是迭代计算,GeaFlow 支持流式链路上的迭代图处理。最后可以将图计算的输出数据加工处理,例如上图中进行 Window TopN 计算后输出。

-架构设计-

为了支持以上的场景,Geaflow 做了如下的架构设计:

(图2)

如图2所示,相对于典型的流系统,我们做了如下的扩展和补充。整体架构从上往下包含以下几层:

  • Hybird DSLGeaFlow创新型的融合了表和图语义,利用表 DSL SQL以及图 DSL Gremlin 来描述,用户可以轻松通过类似SQL编程的方式编写实时图计算任务。同时,在 Query Planning 中,我们针对对逻辑执行计划和物理执行计划进行图语义优化;并且对多查询语句还 进行合并查询等优化。

  • Core APIGeaFlow 设计了一套带状态语义的算子,支持多种流、图语义,包括标准的流算子、vertex/edge-centric 的图算子。在图算子中,我们建立了很好的编程模型,支持用户各种不同的图结构,同时引入 session 来处理并发的图查询。

  • Streaming EngineGeaFlow 运行时的分布式DAG执行层,可以灵活的在流图语义间切换,同时可以高效的支持多查询优化。在执行过程中,我们利用 off-heap 内存管理、sharing graph state 和批量执行等技术进行优化,极大的提升了整体的吞吐。

  • GeaFlow StateGeaFlow 的状态存储,用于存取流、图数据。可以使用 KV 语义的状态,也可以使用图语义的状态。在图状态中,我们设计了一套高效的 key layout,加速 vertex 和 edge 存取,兼容多种不同多模 backend。同时我们还开发了一套 graph-native 的 backend,利用类 CSR 的索引结构以及计算和存储分离架构支持更高效的图存取,与灵活的扩缩容。

-实验结果-

我们在这里列举了 Geaflow 和其他流计算引擎的对比。

在 K-Hop Neighborhood 场景中,我们选在 LiveJournal 以及 Twitter-2010两个公开数据集,对比 Geaflow、 Flink 以及 Differential Dataflow。实验是在8个 container 的集群上做测试,其中每个 container 规格为8c16G。

通过实现,我们可以看到:

  1. 在多个 hop 的遍历场景下,GeaFlow 整个的内存保持平稳,并不会随着迭代深度增加而显著增加,而其他通用流式计算引擎,则会有显著的存储空间放大,从而在 hop 数过多是内存溢出。

  2. GeaFlow 针对典型流式图场景,对于基于通用路计算引擎基于 Join 来实现的方式,吞吐显著提升。

(图3)

在图查询仿真场景中,我们验证查询时间和并发执行 query 数的关系。

在图4中我们看到随着批次中并发的查询数据量增大,执行时间增加的并不会特别明显。可以发现融合40个query的时间只增加了22.7%,达到32.6倍的提速效果。

(图4)

-总结及规划-

Geaflow 源于6年前我们在蚂蚁业务场景的尝试,当时我们发现现有的流处理架构并不适合流式图处理,经过两年的孵化,Geaflow 成功的支持蚂蚁反欺诈业务,同时在2018年双十一期间达到每秒处理超过千万级事件的高吞吐量。在这些业务中的流式图查询和分析效果带来的业务效果也非常显著,证明了流式图处理在金融场景中可以提供非常多的帮助。之后我们引入 DSL 的支持,进一步减少用户开发成本,我们选择了 SQL + Gremlin 的组合,并不断改进器查询优化器,于是便有有大量的用户开始使用我们的DSL来查询和分析他们的图计算场景。如今 Geaflow 已成为蚂蚁最受欢迎的计算引擎之一。

接下来,我们计划在以下几个方面进一步发展 GeaFlow:

  • 融合更多的图语义,例如具有增量语义的图计算算子。

  • 探索更多声明式的图查询语言,例如 OpenCypher、GQL 和 SQL/PGQ 等。同时融入 CBO 优化,自动调参等能力。

  • 探索使用 Rust/C++ 等语言改写我们执行引擎,进一步提高性能。

-欢迎加入 TuGraph Analytics 开源社区

微信扫码入群交流

钉钉扫码入群

欢迎关注 TuGraph 代码仓库

https://github.com/tugraph-family/tugraph-db

https://github.com/tugraph-family/tugraph-analytics

END

往期回顾

→ 蚂蚁图数据库再获LDBC权威测试世界第一

→ 蚂蚁集团开源图数据库TuGraph,成立图计算开源委员会

→ 金融图数据库选型工具“LDBC-FinBench”

▼ 关注蚂蚁图计算技术,了解最新资讯

本文使用 文章同步助手 同步

论文解读|EuroSys 2023《GPC: 基于编译器的面向图神经网络稀疏计算优化》 在这项工作中,我们提出了GPC (General sParse Compiler),一个新的编译器框架,它扩展了流行的Halide编译器,通过编译器驱动的优化和自动调整,使GNN的广义稀疏计算得到有效加速。针对高度优化的最先进的稀疏计算内核以及端到端GNN训练和推理效率的广泛评估表明,我们提出的GPC比最先进的稀疏计算内核实现了4.37倍的速度提升,比三个流行的GNN模型GCN、GraphSAGE和GAT的训练和推理速度提升了1.37~2.25倍。我们的成本模型是一个简单易训练的DNN,如图5所示。 阅读详情

相关推荐

TuGraph Analytics图计算快速上手之弱联通分量算法

弱联通分量图算法(Weakly Connected Components Algorithm)是一种用于找到图中所有弱联通分量的算法。弱联通分量是指在有向图中,如果忽略所有边的方向,相互之间是连通的节点集合。算法的基本思想是通过深度优先搜索(DFS)或广度优先搜索(BFS)遍历图的所有节点,对于每个未访问过的节点,都会生成一个新的联通分量。在遍历过程中,如果当前节点的邻居节点已经被访问过,那么将其加入当前联通分量中,并继续遍历邻居节点。

TuGraph的博客 579

探索数据的奥秘:TuGraph Analytics - 高效且灵活的数据分析工具

探索数据的奥秘:TuGraph Analytics - 高效且灵活的数据分析工具 是一个强大的开源数据分析项目,旨在帮助数据科学家、研究人员和工程师更高效地探索复杂的数据集。它构建在 TuGraph 数据库之上,提供了一系列高级算法和可视化工具,使用户能够挖掘隐藏的模式、关系和趋势。 技术分析 TuGraph Analytics 基于图数据库理论,使用图形模型来表示和存储数据。这种模型对于处理实体...

gitblog_00008的博客 576

深入解读TuGraph计算引擎模型推理系统

TuGraph计算引擎模型推理系统将基于迭代计算的图计算框架与模型推理系统相结合,推理系统可自定义推理依赖环境,图迭代计算与推理链路实现隔离。基于共享内存的跨进程通信方式,提高了推理数据交换效率,满足流图近线推理的时效性。

TuGraph的博客 1534

6月11日,2023开放原子全球开源峰会在北京开幕。本次峰会以“开源赋能,普惠未来”为主题。在高峰论坛上,蚂蚁技术研究院院长、图计算负责人陈文光宣布开源 TuGraph 图计算平台核心成员——工业级流

流式图计算是一种将流式计算和图计算结合的交叉创新,融合了流式计算的高度实效性和图计算的灵活性,攻坚难度极高。此次流式图计算引擎开源,是延续蚂蚁开源核心基础技术的实际动作,希望通过开放成熟的图计算技术,服务更广阔的数字化产业,向世界输出中国科技公司的前沿技术影响力。据了解,蚂蚁从2015年开始探索图计算,布局了图数据库、流式图计算引擎、图学习等相关技术,打造了世界规模领先的图计算集群,于业界首创了工业级流式图计算引擎,多次问鼎图数据库行业权威测试 LDBC 世界冠军并保持世界纪录。

TuGraph的博客 351

一张图读懂TuGraph Analytics开源技术架构

GeaFlow(TuGraph-Analytics)是蚂蚁集团开源的分布式实时图计算引擎,即流式图计算。通过SQL+GQL融合分析语言对表模型和图模型进行统一处理,实现了流、批、图一体化计算,并支持了Exactly Once语义、高可用以及一站式图研发平台等生产化能力。

TuGraph的博客 767

TuGraph Analytics图计算快速上手之K-core算法

K-Core算法是一种用来在图中找出符合指定核心度的紧密关联的子图结构,在K-Core的结果子图中,每个顶点至少具有k的度数,且所有顶点都至少与该子图中的 k 个其他节点相连。K-Core通常用来对一个图进行子图划分,通过去除不重要的顶点,将符合逾期的子图暴露出来进行进一步分析。K-Core图算法常用来识别和提取图中的紧密连通群组,因具有较低的时间复杂度(线性)及较好的直观可解释性,广泛应用于金融风控、社交网络和生物学等研究领域。

TuGraph的博客 1432

【大图模型】图智能 + 大模型

蚂蚁「大图模型」研究,为图智能迈向AGI铺了一条新通途

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 1187

GeaFlow任务能力增强:通过API定制流图计算逻辑

GeaFlow API是对高阶用户提供的开发接口,用户可以直接通过编写java代码来编写计算作业,相比于DSL,API的方式开发更加灵活,也能实现更丰富的功能和更复杂的计算逻辑。

TuGraph的博客 478

TuGraph Analytics作业监控面板:运行时组件上的高效分析工具

我们在作业进程中内置了一个Dashboard(本地启动/容器启动时自动生效),包括前端页面和后端server,用户可以不需要感知到它们的存在。通过访问Dashboard,用户可以更方便地通过白屏化的方式查看作业的执行进度、组件列表和详情、任意组件内部的指标、日志等。还可以通过Profiler工具对进程状态进行分析,快速定位问题。

TuGraph的博客 662

K-hop算法:GeaFlow图计算快速上手

在每一步中,我们从队列中取出当前节点,如果当前跳数等于K,则将该节点添加到K跳邻居列表中。然后,我们遍历当前节点的所有邻居节点,并将它们添加到队列中,同时更新跳数。这样,我们就可以逐层向外扩展,直到达到K跳为止。K-hop算法是一种基于图的遍历算法,用于查找给定节点的K跳邻居。K-hop算法可以在大规模的图中高效地寻找K跳邻居,提供了快速的图遍历能力。K-hop算法是一种用于图计算的快速算法,可以在图中寻找指定节点的K跳邻居。该函数接受一个图、一个起始节点和一个K值作为参数,并返回找到的K跳邻居节点列表。

PixelNinja的博客 448

用ST25DV芯片+KiCad快速设计NFC标签天线:参数计算/脚本生成/实测优化全流程

本文详细介绍了使用ST25DV芯片和KiCad工具设计NFC标签天线的全流程,包括参数计算、脚本生成和实测优化。通过解析芯片等效工作原理和设计思路,帮助开发者避开常见陷阱,实现高效、可量产的天线设计。文章还提供了Python计算工具和KiCad自动化脚本,大幅提升设计效率和成功率。

jj890的博客 758

从API到Agent:万字长文洞悉LangChain工程化设计

正式开始前,还是有必要从定义(What)开始。LangChain是2022年10月底,由哈佛大学的Harrison Chase发起的基于开源大语言模型的AI工程开发框架。当然也可以问一下AI:我:LangChain是什么?GPT-4:LangChain 是一个开源的语言模型工具链框架,旨在使研究人员和开发人员能够更轻松地构建、实验和部署以自然语言处理(NLP)为中心的应用程序。

Fly2024124的博客 1477

3D Gaussian Splatting环境配置和运行

使用conda命令根据environment.yml文件创建虚拟环境时,安装的pytorch是使用conda install 命令来安装的,实际上并不能成功安装带有gpu的pytorch,而这两个模块的安装依赖于带gpu的pytorch。如果不注释掉这三行,直接安装会报错

m0_46360757的博客 3326

Graph4Stream:基于图的流计算加速

可以看到在一跳、两跳场景中,Flink的性能要好于GeaFlow,这是因为在一跳、两跳场景中参与join计算的数据量比较小,join需要遍历的左表和右表都很小,遍历本身耗时短,而且Flink的计算框架可以缓存join的历史计算结果。流图是图在流场景中的应用,他依据数据流对图的更新将图分成历史图和增量图两个部分。通过结合图计算与流计算,蚂蚁图计算开源的GeaFlow引擎解决了传统流计算引擎在大数据关联关系计算中的性能瓶颈,尤其在多跳场景下性能显著优于Flink,对于实时知识图谱的构建,提供了基础技术底座。

weixin_55010563的博客 867

SwiftUI 5 教程之 SwiftData使用入门(教程含源码)

对我来说,记住日期很难。是的,您可以设置该日期的提醒,但该提醒无法产生紧迫感。让我们创建一个应用程序,我们可以在其中添加将来发生的事件。如果我们可以在主应用程序上看到所有即将发生的活动,那就太好了。也许将它们添加到小部件上以营造紧迫感。对于任何事件,我们需要跟踪哪些事情?我们将在下一篇文章中添加更多属性,其中我们将讨论迁移。现在,这就是我们所需要的。开始吧。

iCloudEnd的博客 987

GStreamer Plugin之Gst-nvdewarper

支持三种投影类型 NVDS_META_SURFACE_FISH_PUSHBROOM, NVDS_META_SURFACE_FISH_VERTCYL 和NVDS_META_SURFACE_PERSPECTIVE_PERSPECTIVE。关于每个平面的NvDewarperSurfaceMeta参数(projection_type, surface_index, and source_id)以及内存中有效的矫正平面(num_filled_surfaces)包含RGBA格式的一帧的缓存。矫正后的RGBA格式。

pvmsmfchcs的博客 368

未来已来:Apache GeaFlow路线图解读与下一代流式图计算技术展望

Apache GeaFlow作为一款领先的流式图计算引擎,正在引领下一代实时图处理技术的发展方向。本文将深入解读Apache GeaFlow的技术路线图,探讨其在性能优化、功能扩展和生态建设等方面的未来规划,帮助开发者和企业更好地把握流式图计算的发展趋势。 ## 一、Apache GeaFlow架构解析:奠定技术基石 Apache GeaFlow采用了先进的分层架构设计,为其未来的技术演进提供

gitblog_00281的博客 333

智能车图像处理12-进阶篇4--环岛辅助判断条件

主函数: 第6行: 含义是当前需要不在坡道和车库状态 第11-12行 : 寻找一下环岛的双断点(在辅助函数中) 第16-66行: 当左右线的方差满足一边很大,一边很小时,truepianfangflag /truepianfangflagforleft 置1,在环岛的判断中使用。 辅助函数: 双断点函数(左与右相似,以做为例): 第13-28行: 第一处断点 第29-40行: 第一处断点后 连续边线 第41-52行: 第一处连续后,第二处断点 第53-64行: 第二处断点后,第二处

taiyuezyh的博客 1万+

Apache Geaflow推理框架Geaflow-infer 解析系列环境初始化流程

本文介绍了geaflow-infer框架中Python推理环境的初始化流程,重点阐述了三个核心机制:1) 采用单例模式确保全局唯一环境实例,通过双重检查锁定和原子操作保证线程安全;2) 虚拟环境创建流程包含上下文初始化、依赖管理、文件锁控制和脚本执行等步骤;3) 基于文件锁的并发控制机制,防止多进程重复初始化。系统通过状态机管理环境生命周期,实现了初始化失败检测和自动恢复功能。整个设计通过异步初始化、原子标志和进程级文件锁,有效解决了环境隔离、并发安全和性能优化等关键问题。

xh2277659985的博客 423

【我的Android进阶之旅】解决android应用使用android:persistent属性带来的系统Launcher应用必须重启设备才生效的问题,大幅度提升开发效率

一、问题描述 我们在开发系统级别应用,比如Launcher桌面的时候,会发现有个问题:每次Launcher修改完代码,重新编译之后,安装到android设备上之后,必须重启才会生效。否则就是使用了之前的Launcher版本的内容。而每次重启设备得一分钟左右,太慢了,太影响效率了! 1.1 痛点 每次更新完代码,重新安装之后,必须重启设备才会生效。效率太TM低了! 二、分析问题 经过一轮代码排查,最终发现是因为src\main\AndroidManifest.xml文件中,定义application使用了an

字节卷动 1714

Oracle EBS GL日记账批“选定以过账”状态数据修复

日记账来源:应收账款。用户操作过账以后,自动提交请求“过账:单一分类账”一直运行中,该请求执行5,6个小时甚至10多个小时无法完成,导致“标准管理器”阻塞大量请求待定,“冲突解决管理器”的待定数量不断增加。系统管理员不得不把该请求强制取消,此时,日记账批的状态处于“选定以过账”(GL_JE_BATCHES.STATUS为S),如下图 检查此日记账批有3千多条日记账题头,由于日记账比较多,日记账的科目余额计算需要大量服务器资源和执行时间比较长。

陈显平的专栏-Oracle EBS 3246

从全球顶级数据库大会 SIGMOD 看数据库发展趋势

全球顶级数据库大会 SIGMOD 数据库大佬云集,从中我们能看到未来的数据库趋势是 AI+,机器学习的应用将持续增长,以及偏硬件发展带来的内存研究,in memory、persistent memory…

weixin_44324814的博客 1012

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

如何利用Apache GeaFlow构建高性能图应用?零基础入门者必看教程

Apache GeaFlow是一款强大的流式图计算引擎,专为构建高性能图应用而设计。本教程将带领零基础入门者快速掌握使用Apache GeaFlow的核心技能,从环境搭建到实际应用开发,让你轻松上手这一终极图计算工具。 ## Apache GeaFlow核心架构解析 Apache GeaFlow采用先进的分层架构设计,确保图计算任务的高效执行。其架构主要分为DSL、Framework、Stat

gitblog_00719的博客 428

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

stripansi 开源项目教程

stripansi 开源项目教程 项目的目录结构及介绍 stripansi 项目的目录结构相对简单,主要包含以下几个部分: stripansi/ ├── LICENSE ├── README.md ├── index.js ├── package.json └── test.js LICENSE: 项目的许可证文件,说明项目的使用条款。 README.md: 项目的说明文档,包含项目的基本信息...

gitblog_00699的博客 338

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

什么是流式计算

一、流式计算的背景 在日常生活中,我们通常会先把数据存储在一张表中,然后再进行加工、分析,这里就涉及到一个时效性的问题。如果我们处理以年、月为单位的级别的数据,那么多数据的实时性要求并不高;但如果我们处理的是以天、小时,甚至分钟为单位的数据,那么对数据的时效性要求就比较高。在第二种场景下,如果我们仍旧采用传统的数据处理方式,统一收集数据,存储到数据库中,之后在进行分析,就可能无法满足时效性的要求。...

Wynne文越的专栏 1590
上一篇: 6月11日,2023开放原子全球开源峰会在北京开幕。本次峰会以“开源赋能,普惠未来”为主题。在高峰论坛上,蚂蚁技术研究院院长、图计算负责人陈文光宣布开源 TuGraph 图计算平台核心成员——工业级流
下一篇: 从大数据到图计算-Graph On Big Data
TuGraph
博客等级 码龄4年 183粉丝 43原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值