openLooKeng datacenter connector跨域查询实现原理浅析

article/2025/9/23 5:35:17

前言

当公司发展到了一定的规模之后,一般都会有多个数据中心,或者多个机房,在大数据场景下就会涉及到数据会存放在不同的数据中心HDFS上,有时又需要使用多个数据中心的数据一起计算某些业务逻辑,我们可以称之为东数西算,说简单点就是跨机房读取数据。但是跨机房读取数据就会涉及到需要消耗大量昂贵的带宽资源,同时容易影响查询的性能,为此openlookeng 基于移动数据不如移动计算的理念,可以把计算逻辑发送到远端机房集群,让计算更靠近数据,预先在远端机房计算一部分逻辑,再传输少量的数据到本地机房集群进行后续计算,通过 openlookeng(presto / trino) 的connector plugin机制设计了一个可以跨域查询的datacenter connector,同时对于用户侧来说,只要写自己的业务SQL,不需要关心底层数据的分布。下面让我们一起来看一下openlookeng是如何实现datacenter connector的:

架构设计

贴一张官方的图,大体思想就是把远端集群当作一个connector来使用,执行具体的查询操作。
在这里插入图片描述

实现原理

在讲实现原理之前我们可以通过下面这张图来回顾一下openlookeng大体的架构和执行流程
presto架构图
datacenter connector同样是通过Plugin接口进行注册的connector,而connector内部的执行流程和已有connector的实现思路也差不多,都是获取Page数据进行计算,不同的是获取Page的方式是DC client发送一条由openlookeng生成的SQL到另外一个集群获取Page数据。
在这里插入图片描述
Page获取的方式大概是下面这样的,其实和用户自己使用presto client提交SQL获取数据的流程是类似的。
在这里插入图片描述
Page的生成是这样的,Remote 的Coordinator接收到SQL之后会提交执行,同时由PageProducer生产Page放到Queue里面,PageConsumer会负责异步返回Page数据,采用的是生产者消费者模式,中间使用的是一个固定大小的Queue。
在这里插入图片描述

总结

datacenter connector相对于原来直接跨机房读取数据的好处是可以将计算下推到另一个数据中心所在的集群,从而实现本数据中心读取数据和计算数据,然后将已经下推计算后的数据跨IDC传输到原来的集群,这样做就减少了跨IDC的网络数据传输。实现思路就是上面讲的这样,但是具体实现细节方面包括如何自动兼容dc connector的四段式语法和实现有关语法,如何注册dc 有关的catalog,如何生成需要发送到remote集群的SQL,如何进行下推操作将计算尽可能的下推到remote集群,以及其他的类似execution plan cache,metadata cache,如何提高网络数据传输效率等等很多,后续可以再逐一和大家一起学习一下代码细节。

参考

https://openlookeng.io/docs/docs/connector/datacenter.html
https://github.com/openlookeng/hetu-core


http://chatgpt.dhexx.cn/article/igQZXcAm.shtml

相关文章

最简单的Consul集群配置, 双datacenter

官方Doc and API在这儿: https://www.consul.io/docs/internals/architecture.html API操作我一般用curl, 这个附一个命令 curl -H "Content-Type: application/json" -X PUT --data {"Datacenter":"dc1","Node":"[Nodename]&qu…

记一次实战windows 2008 R2 Datacenter 提权

前景:拿到某个站 getshell 上传马后发现权限低,然后就是漫长的提权过程 蚁剑连接到aspx 的马后进入终端先进行信息收集一波,使用命令whoami 可以发现是iis 的权限 使用命令 systeminfo 查看操作系统和打了哪些补丁等等,windows 2…

服务器2019系统无法添加.net3.5,Windows Server 2019 Datacenter 无法安装.Net Framework 3.5

打开应用程序,遇到这样的错误提示,只能说太操蛋了,都2020年了,还有人在使用.Net Framework 3.5这样的版本,按道理讲,.Net Framework 高版本应当兼容低版本程序,然而并不是。 看了一下解释: NET Framework 4.0 不兼容NET Framework 3.5; 如果一个程序是 NET Framework …

认识 Atlassian Datacenter 产品

认识 Atlassian Datacenter 产品 云端原本就是群集化的架构,Atlassian 系列产品,应用的开发团队相当广范且行之有年,但是将应用程序作为节点(比如Jira,confluence,bamboo…等應用程式)然后群集化的运维团队却是少之又少…

【vSphere | Python】vSphere Automation SDK for Python Ⅲ—— vCenter Datacenter APIs

目录 5. vCenter Datacenter APIs操作5.1 Create Datacenter5.2 List Datacenter5.3 Get Datacenter5.4 Delete Datacenter 参考资料 5. vCenter Datacenter APIs 数据中心服务(Datacenter service)提供管理 vCenter Server 中数据中心的操作。 操作 …

虚拟机安装Windows server 2019 Datacenter

进入虚拟机,新建虚拟机 选择典型,点击下一步 选择稍后安装,然后下一步 选择第一项Microsoft,版本根据自己映像文件版本来,我是2019,所以这里选择2019,然后下一步 选择位置,名字随便&…

Windows Server 2022 Standard标准版和Datacenter数据中心版的区别

微软就 Windows Server 2022 功能提供了相当完整的描述,早在去年 6 月份。微软就对所有版本的 Windows Server 2022 预置了核心和桌面安装选项。该产品遵循微软传统的固定生命周期策略,提供五年的“主流”支持和五年的“扩展”支持。 Windows Server 202…

linux 文件夹拷贝并覆盖

提前结论:覆盖拷贝使用( cp -af /源目录 /目标目录) 踩坑经历 踩了个坑,做一下笔记。。 先了解一下linux 拷贝命令 1:命行 cp man ,如下图所示。 2:从说明大概可以知道,输入 cp -…

linux只复制文件夹下所有文件

仅作为记录,大佬请跳过。 背景 trian文件夹里有很多子文件夹,而博主只想将各子文件夹里的文件复制粘贴(而不是连子文件夹和子文件夹里的文件一起复制粘贴) 使用命令: cp -r /Data4T/hufei/da-fr/citydata/leftImg8b…

linux文件夹不能复制,linux如何复制文件夹

1、copy ,cp,该命令的功能是将给出的文件或目录拷贝到另外一个文件或目录中。 语法: cp [选项] 源文件或目录 目标文件或目录 2、例如;在/TEST目录下新建test1和test2两个子文件夹。 假设复制源文件test1下的test01文件,目标目录为test2。 …

Linux下文件夹的移动与复制

Linux下文件夹的移动与复制 封面图片由文心一格AI生成 在Linux系统中,移动和复制文件夹是常见的任务。无论你是想要备份数据、迁移文件夹到其他位置还是归档数据,掌握文件夹的移动和复制技能都是必要的。 本文将会教你如何使用命令行界面移动和复制Linux系统中的文件夹。我们…

linux(文件、文件夹的复制与移动)

一、cp命令用于文件、文件夹的复制: 1、单个文件的复制: [rootlocalhost lianxi]# touch beautiful.txt ---新建beautiful空文件 [rootlocalhost lianxi]# ls --查看当前目录下的内容 lily.txt beautiful.txt [rootlocalhost lianxi]# mkdir chang…

ARIMA模型概述

ARIMA模型 ARIMA模型(Autoregressive Integrated Moving Average model),差分整合移动平均自回归模型,又称整合移动平均自回归模型(移动也可称作滑动),时间序列预测分析方法之一。ARIMA&#x…

ARIMA模型的介绍

目录 ARIMA模型结构 随机游走模型(random walk) 举例: ARIMA模型的性质 小结 ARIMA模型结构 使用场合:差分平稳序列拟合 模型结构 则有: 随机游走模型(random walk) 模型结构: Karl Pearson(1905)在《自然》杂志上提问:假…

机器学习(五)——时间序列ARIMA模型

ARIMA模型 平稳性: 平稳性就是要求经由样本时间序列所得到的拟合曲线 在未来的一段期间内仍能顺着现有的形态“惯性”地延续下去 平稳性要求序列的均值和方差不发生明显变化 严平稳与弱平稳: 严平稳:严平稳表示的分布不随时间的改变而改…

时间序列分析之ARIMA模型预测

转载自 http://blog.sina.com.cn/s/blog_70f632090101bnd8.html#cmt_3111974 今天学习ARIMA预测时间序列。 指数平滑法对于预测来说是非常有帮助的,而且它对时间序列上面连续的值之间相关性没有要求。但是,如果你想使用指数平滑法计算出预测区间&#x…

ARIMA模型学习笔记

ARIMA模型学习笔记 目录 ARIMA模型学习笔记ARIMA模型时间序列平稳性什么是平稳性严平稳弱平稳 平稳性检验ADF检验(Augmented Dickey-Fuller test)单位根ADF检验的原理ADF检验的python实现 数据平稳化对数变换平滑法移动平均法指数平均法 差分法 ARIMA模型介绍AR(Autoregressive…

什么是 ARIMA模型

转自:https://blog.csdn.net/HHXUN/article/details/79858672 ARIMA模型的全称叫做自回归移动平均模型,全称是(ARIMA, Autoregressive Integrated Moving Average Model)。也记作ARIMA(p,d,q),是统计模型(statistic model)中最常见的一种用来…

时间序列预测——ARIMA(差分自回归移动平均模型)(1))

时间序列预测——ARIMA(差分自回归移动平均模型) ARIMA(p,d,q)中,AR是"自回归",p为自回归项数;I为差分,d为使之成为平稳序列所做的差分次数&#…

ARIMA乘法季节模型

目录 ARIMA乘法季节模型 例题1 例题 2 例题3 ARIMA乘法季节模型 序列的季节效应、长期趋势效应和随机波动之间有着复杂的相互关联性,简单的季节模型不能充分地提取其中的相关关系,这时常采用乘积季节模型。 例题1 我国1949-2008年年末人口总数(单…