湖仓架构中联邦查询和数据虚拟化有什么区别?

摘要:在湖仓架构中,需要实现联邦查询,而实现跨多个数据源进⾏查询和分析时,有两种不同的实现方式:开源联邦查询引擎和数据虚拟化,那么他们有哪些区别了?虽然它们的⼯作原理不同,但是它们都可以⽀持复杂的联邦查询操作。



  • 联邦查询引擎的工作原理
  • 数据虚拟化的工作原理
  • 两者的区别?



01

联邦查询的引擎的工作原理


在开源的湖仓架构中,通常需要一个能够执行联邦查询的开源引擎,以便在分布式环境中有效地查询和合并来自不同数据源的数据。

当这样的联邦查询引擎接收到一个SQL查询请求时,它会首先对查询计划进行解析。接着,根据各个目标数据源的特性,引擎会将原始的SQL语句转换成适合这些数据源的特定SQL语句。在转换过程中,引擎可能还会执行一些优化措施,以确保生成的查询语句在性能和效率上都是最优的。

完成优化后,联邦查询引擎会生成符合目标数据源要求的原生SQL查询语句,并将这些语句直接发送到各个数据源执行。查询完成后,引擎将收集来自不同数据源的结果,并进行整合,最终为用户提供一个统一的查询结果集。
以下是⼀些常⽤于湖仓架构的开源数据联邦查询引擎:
• Presto(即 PrestoDB):PrestoDB 是由 Facebook 开发的⼀个开源、灵活、可扩展的分布式 SQL 查询引擎,⽀持连接多种数据源,包括关系型数据库(如MySQL、PostgreSQL)、NoSQL 数据库(如 Cassandra、MongoDB)、数据湖(如 Apache Hive、AmazonS3)等,这种多数据源的⽀持使得 PrestoDB 成为⼀个适⽤于复杂数据⽣态系统的查询引擎。同时它也⽀持⽤⼾在多个数据源中执⾏联邦查询。因此,PrestoDB 的灵活性和⾼性能使其成为企业和⽤⼾在 Open Lakehouse 架构中的⼀个强⼤选择。

• Trino(即原 PrestoSQL):Trino 是 ⼀个开源的分布式 SQL 查询引擎。它是PrestoDB 的分⽀,继续发展和维护 Presto 的开源项⽬,并提供了许多改进和新功能。Trino 内置了多种 Connector ⽀持多种数据源连接,Trino 的灵活性和性能使其成为⼤数据处理和分析领域的⼀个重要⼯具,特别适⽤于需要在分布式环境中查询各种数据源的场景,在 Lakehouse 架构中被⼴泛应⽤。
•Dremio:Dremio 是⼀款开源的新⼀代⾃助服务的数据湖引擎。它是⼀款完整的产品,通过界⾯化的 SQL 输⼊查询数据湖的数据。Dremio ⽀持连接多种数据源,包括数据湖(如 AmazonS3、Azure Data Lake Storage)、关系型数据库(如MySQL、PostgreSQL)、NoSQL 数据库(如 MongoDB、Cassandra)等,也⽀持多数据源的联邦查询功能,使⽤⼾能够轻松访问和整合不同类型的数据。
•ApacheDrill:Apache Drill 是⼀个开源的分布式 SQL 查询引擎, 具有敏捷性、灵活性和易⽤性,专为 Hadoop,NoSQL 和云存储设计。它⽀持多种类型的NoSQL 数据库(⼏乎可以查询任何类型的 NoSQL 数据库)和⽂件系统查询,它⽀持联邦查询,⽤⼾可以通过 SQL 查询语⾔整合不同类型和位置的数据。




02

数据虚拟化的工作原理


数据虚拟化平台是一种先进的数据集成技术,它通过建立一个抽象层来统一数据访问,允许用户通过单一接口访问来自不同数据源的数据,这些数据源可能包括关系型数据库、NoSQL数据库、文件系统以及云存储等。这种技术屏蔽了数据的物理存储和格式细节,使用户无需深入了解底层数据结构即可进行数据查询和操作。


当用户通过数据虚拟化平台发起一个SQL查询请求时,平台首先会将这个请求转化为一个逻辑查询计划。利用虚拟数据视图和元数据,平台会进行查询优化,这可能包括查询计划的重写、选择最优的执行策略,并应用缓存和索引技术来提升查询效率。


接下来,数据虚拟化平台将逻辑查询计划转换成适用于各个目标数据源的SQL语句,并将这些语句发送到相应的数据源执行查询。查询完成后,平台会收集并整合来自不同数据源的结果,最终向用户提供一个统一且综合的查询结果集。

湖仓架构通常会利⽤多种数据虚拟化平台来实现数据的统⼀管理和查询。⽐如⼀些常⽤的数据虚拟化平台:Denodo、TIBCO Data Virtualization 和 IBM Cloud Pak for Data。 这些平台来⾃不同的供应商,为企业级应⽤⽽设计,提供了可靠的技术⽀持、管理功能和监控能⼒,我们可以根据特定需求和架构设计选择合适的⼀种或多种数据虚拟化平台来实现数据的统⼀管理和查询。



03

两者的区别


开源的联邦查询引擎和数据虚拟化平台都是用于数据集成的技术,但它们在功能和实现方式上存在一些关键区别:

  1. 功能定位

  • 联邦查询引擎主要功能是允许用户通过SQL查询多个异构数据源,而不需要将数据物理地集中到一个位置。它侧重于查询的分发和结果的聚合。

  • 数据虚拟化平台除了查询功能外,还提供了数据抽象和统一访问接口,使用户能够以一种更简单和统一的方式访问和操作来自不同数据源的数据。

  • 查询优化

    • 联邦查询引擎可能进行一些优化步骤,比如转换SQL语句以适应不同数据源的要求,但优化主要集中在查询的执行层面。

    • 数据虚拟化平台除了执行查询优化外,还可能包括数据的逻辑抽象、元数据管理、查询计划的重写、以及使用缓存和索引来提高性能。

  • 数据抽象

    • 联邦查询引擎通常不提供数据抽象层,它直接将查询请求转换为适用于目标数据源的SQL语句。

    • 数据虚拟化平台提供数据抽象层,隐藏了数据的物理位置和格式细节,允许用户通过虚拟视图访问数据。

  • 用户体验

    • 联邦查询引擎用户需要使用SQL语言进行查询,可能需要对不同数据源的SQL方言有所了解。

    • 数据虚拟化平台提供了更高级的抽象,用户可能不需要深入了解底层数据源的细节,可以更简单地进行数据访问和操作。

  • 集成范围

    • 联邦查询引擎主要关注于查询层面的集成,可能不涉及数据的物理移动或转换。

    • 数据虚拟化平台可能提供更全面的集成解决方案,包括数据的虚拟化、转换、清洗和加载等。

  • 技术实现

    • 联邦查询引擎实现上可能更专注于查询的分发和结果的聚合,技术上可能更轻量级。

    • 数据虚拟化平台实现上可能更为复杂,需要处理数据抽象、元数据管理、查询优化等多个方面。

    总的来说,联邦查询是一件简单和轻量级的数据集成查询,还依赖与写代码的人自己完成联邦查询,更为裸的一种集成查询。联邦查询引擎更专注于查询层面的集成,而数据虚拟化平台提供了更全面的集成解决方案,包括数据抽象和更高级的查询优化。是一种商用的数据集成查询方式,用户体验更好,用户不需要关注底层的数据源类型,存储方式,访问方式等。


    欢迎加入【数据行业交流群】社群,长按以下二维码加入专业微信群AIGC应用开发交流入群备注AIGC应用,可以关注视频号,定期举办大数据&AIGC相关主题的直播论坛。视频号:ruby的数据漫谈。




    往期数据平台历史热门文章:

    基于DataOps的数据开发治理:实现数据流程的自动化和规范化

    数据平台:湖仓一体、流批一体、存算分离的核心问题及原因解析

    数据治理体系该怎么建设?

    实时数仓&流批一体技术发展趋势

    数据仓库、数据中台、大数据平台的关系?

    数字化转型如何促进业务的发展

    数据中台中的核心概念解析

    数据治理中的数据标准的作用?

    全面数字化转型:打造全新营销模式

    一图展示数据中台的数据流图

    揭秘数据治理系统的数据流程图

    往期AIGC历史热门文章:

    AIGC系列之一-一文理解什么是Embedding嵌入技术

    十大AIGC文生视频产品介绍

    九大最热门的开源AI Agent框架

    AutoGen零代码构建⾃⼰的智能助理


    请使用浏览器的分享功能分享到微信等