SelectDB案例 从 ClickHouse 到 Apache Doris
圈选等内容分 析服务。 数据架构演进 TDW 是腾讯最大的离线数据处理平台,公司内大多数业务的产品报表、运营分析、数据挖 掘等的存储和计算都是在 TDW 中进行,内容库数据平台的数据加工链路同样是在腾讯数据 仓库 TDW 上构建的。截止目前,内容库数据平台的数据架构已经从 1.0 演进到了 4.0 , 经历了分析引擎从 ClickHouse 到 Apache Doris 的替换、经历了数据架构语义层的初步引 据集使用,语义层对 标签和指标透明统一的定义提升了工作效率、降低了使用成本。 存在的问题: 从架构图可知,标签和指标等数据均处于下游位置,虽然标签与指标在语义层被显式定义, 但仍然无法影响上游链路,数仓层有自己的语义逻辑,加速层有自己的导入配置,这样就造 成了数据管理机制的割裂。 数据架构 4.0 在数据架构 3.0 的基础上,我们对语义层进行更深层次的应用,在数据架构 4.0 中,我们 二个实现思路,原因如下: 在 TDW 中生成宽表,虽然链路简单,但是弊端也比较明显。 存储成本较高, TDW 除了要维护离散的 80 +个 Source 表外,还需维护 1 个大 7 宽表、2 份冗余的数据。 实时性比较差,由于每个 Source 表产出的时间不一样,往往会因为某些延迟比较 大的 Source 表导致整个数据链路延迟增大。 开发成本较高,该方案只能0 码力 | 12 页 | 1.55 MB | 1 年前3Apache Doris 在美团外卖数仓中的应用实践
Colocate Join(Local Join)是和Shuffle Join、Broadcast Join相对的概念,即将两表的数据提前按照Join Key Shard,这样在Join执行时就没有数据网络传输的开销,两表可以直接在本地进行Join。 整个Colocate Join在Doris中实现的关键点如下: 数据导入时保证数据本地性。 查询调度时保证数据本地性。 数据Balance后保证数据本地性。 按照下图的方式进行计算,先根据page列和user_id 列group by,最后再Count: 显然,上面的计算方式,当数据量越来越大,到几十亿几百亿时,使用的IO资源、CPU资源、内 存资源、网络资源会变得越来越多,查询也会变得越来越慢。 于是我们在Doris中新增了一种Bitmap聚合指标,数据导入时,相同维度列的数据会使用Bitmap 聚合。有了Bitmap后,Doris中计算精确去重的方式如下: Doris在美团外卖数仓中的应用实践 Spark大数据博客 - https://www.iteblog.com 可以看到,当使用Bitmap之后,之前的PV计算过程会大幅简化,现场查询时的 IO、CPU、内存,网络资源也会显著减少,并且不再会随着数据规模而线性增加。 总结与思考 在外卖运营分析的业务实践中,由于业务的复杂及应用场景的不同,没有哪一种数据生产方案能 够解决所有业务问题。数据库引擎技术的发展,0 码力 | 8 页 | 429.42 KB | 1 年前3百度智能云 Apache Doris 文档
公有云用户必须使用 Compute Node(BE)的 HTTP 协议端口,默认为 8040。 私有化部署用户可以使用 Leader Node(FE)的 HTTP 协议端口,默认为 8030。但须保证客户端所在机器网络能够联通 Compute Node 所在机器。 本文档主要通过 cURL 命令来介绍 Stream Load 的使用方式 HTTP 的请求方式为 扫描-导出 扫描-导出 exec_mem_limit 有两种方式: 1. 指向 FE 的 HTTP 协议端口。这种方式,FE 会直接将请求做 307 转发到随机的一个 BE 节点。最终请求和数据直接和 这个 BE 节点通讯。这种方式需要客户端和 BE 节点的网络能够正常通讯。 2. 指向 BE 的 HTTP 协议端口。则请求直接和 BE 节点交互。 注:百度云 Doris 用户请直接连接 Compute Node 的 HTTP 协议端口即可。 在 URL 语句进行查询即可。 Doris 对于外部表的查询,本质上是通过某一个 Compute Node 节点上的 ODBC Client 对外部数据源进行连接和查询。所以 要求外部数据源和 Compute Node 节点网络是双向连通的。 同时,Doris 查询外部表并不是分布式查询,而是单 Client 方式连接查询。所以性能效率上要远低于查询 Doris 自身存储的 表。外部表比较适用的场景式一些频繁更新的维度表和0 码力 | 203 页 | 1.75 MB | 1 年前3
共 3 条
- 1