SparkSQL之Catelog体系

按照SQL标准的解释,在SQL环境下Catalog和Schema都属于抽象概念。在关系数据库中,Catalog是一个宽泛的概念,通常可以理解为一个容器或数据库对象命名空间中的一个层次,主要用来解决命名冲突等问题。

在Spark SQL系统中,Catalog主要用于各种函数资源信息和元数据信息(数据库、数据表、数据视图、数据分区与函数等)的统一管理。Spark SQL的Catalog体系涉及多个方面,不同层次所对应的关系如下图所示。

具体来讲,Spark SQL中的Catalog体系实现以SessionCatalog为主体,通过SparkSession(Spark程序入口)提供给外部调用。一般一个SparkSession对应一个SessionCatalog。本质上,SessionCatalog起到了一个代理的作用,对底层的元数据信息、临时表信息、视图信息和函数信息进行了封装。如上图所示,SessionCatalog的构造参数包括6部分,除传入Spark SQL和Hadoop配置信息的CatalystConf与Configuration外,还涉及以下4个方面的内容。

  1. GlobalTempViewManager(全局的临时视图管理):对应DataFrame中常用的createGlobal-TempView方法,进行跨Session的视图管理。GlobalTempViewManager是一个线程安全的类,提供了对全局视图的原子操作,包括创建、更新、删除和重命名等。在GlobalTempViewManager内部实现中,主要功能依赖一个mutable类型的HashMap来对视图名和数据源进行映射,其中的key是视图名的字符串,value是视图所对应的LogicalPlan(一般在创建该视图时生成)。需要注意的是,GlobalTempViewManager对视图名是大小写敏感的。
  2. FunctionResourceLoader(函数资源加载器):在Spark SQL中除内置实现的各种函数外,还支持用户自定义的函数和Hive中的各种函数。这些函数往往通过Jar包或文件类型提供,FunctionResourceLoader主要就是用来加载这两种类型的资源以提供函数的调用。需要注意的是,对于Archive类型的资源,目前仅支持在YARN模式下以spark-submit方式提交时进行加载。
  3. FunctionRegistry(函数注册接口):用来实现对函数的注册(Register)、查找(Lookup)和删除(Drop)等功能。一般来讲,FunctionRegistry的具体实现需要是线程安全的,以支持并发访问。在Spark SQL中默认实现是SimpleFunctionRegistry,其中采用Map数据结构注册了各种内置的函数。
  4. ExternalCatalog(外部系统Catalog):用来管理数据库(Databases)、数据表(Tables)、数据分区(Partitions)和函数(Functions)的接口。顾名思义,其目标是与外部系统交互,并做到上述内容的非临时性存储,同样需要满足线程安全以支持并发访问。如上图所示,ExternalCatalog是一个抽象类,定义了上述4个方面的功能。在Spark SQL中,具体实现有InMemoryCatalog和HiveExternalCatalog两种。前者将上述信息存储在内存中,一般用于测试或比较简单的SQL处理;后者利用Hive原数据库来实现持久化的管理,在生产环境中广泛应用。

总体来看,SessionCatalog是用于管理上述一切基本信息的入口。除上述的构造参数外,其内部还包括一个mutable类型的HashMap用来管理临时表信息,以及currentDb成员变量用来指代当前操作所对应的数据库名称。SessionCatalog在Spark SQL的整个流程中起着重要的作用,在后续逻辑算子阶段和物理算子阶段都会用到。

相关推荐
AIGS00123 分钟前
企业AI落地:Agent OS 治理框架实践
java·大数据·人工智能·机器学习·人工智能ai大模型应用
风途科技~1 小时前
多参数水质在线监测设备—水环境实时管控解决方案
大数据·人工智能
Elastic 中国社区官方博客2 小时前
谁来评判评判者?在 Elasticsearch Workflows 中使用 LLM-as-a-Judge
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索
牛企老板俱乐部2 小时前
2026 年合肥专业 GEO 优化服务商深度测评|分行业精准选型指南
大数据·人工智能
kuankeTech2 小时前
数据驱动替代经验经营,AI外贸ERP从记录工具升级为经营决策助手
大数据·人工智能·开源·软件开发·erp
歪歪歪比巴卜2 小时前
医疗金融千级KOS矩阵短视频违禁词批量检测方案与合规工具测评
大数据·人工智能·物联网·社媒合规管控
SSO_Crown3 小时前
AI 招聘管理系统深度评测与选型指南
大数据·运维·人工智能
cc5725026534 小时前
选物理可以报哪些大数据相关专业
大数据
ACP广源盛139246256734 小时前
破局 PCIe 4.0 交换瓶颈@ACP#IX8024 / ASM58024参数及应用对比
大数据·人工智能·分布式·嵌入式硬件
南讯股份Nascent5 小时前
颖通电商全渠道项目启动会成功举办
大数据·人工智能·物联网