dremio SourceMetadataManager 服务简单说明

SourceMetadataManager 对于dremio 来说是一个比较重要的东西,它是包含在ManagedStoragePlugin中的一个能力
所以每个存储扩展都包含了一个SourceMetadataManager,而且ManagedStoragePlugin 会利用SourceMetadataManager
的能力管理系统元数据

SourceMetadataManager 的职责

主要是进行source 元数据的同步,主要包含了即席查询,以及后台刷新,即席查询的主要是在添加source 以及测试场景,后台
是基于任务调度执行的,同时还包含了对于元数据的存储(kvstorage)

类图

 

 

说明:SourceMetadataManager包含了两大类即席刷新以及,后台任务刷新,从上图也可以看出来

即席查询元数据处理

从上图也可以看出依赖关系,实际上就是一个实现RefreshRunner的子类,包含了几个数据刷新,以及存储元数据的方法
注意依赖了一个MetadataBridge 设计比较有意思(实现了一个锁,确保ManagedStoragePlugin与元数据管理的安全)
refreshDatasetNames 的实现就类用了每个存储扩展包的元数据接口定义了,如果实现了SupportsListingDatasets 就可以获取列表了
具体是如下一个接口的实现

 
public interface SupportsListingDatasets {
 
  /**
   * Returns a listing of dataset handles, where each handle represents a dataset in the source.
   *
   * @param options options
   * @return listing of dataset handles, not null
   */
  DatasetHandleListing listDatasetHandles(GetDatasetOption... options)
      throws ConnectorException;
 
}

其他函数功能参考详细参考源码,同时后台任务的处理与类似,只是是基于任务调度执行的

一个参考sql 执行调用链

  • schema 获取的

 

 

说明

以上关于SourceMetadataManager只是简单的介绍,同时比较零碎,后期提供应该会结合组件将功能串起来

参考资料

sabot/kernel/src/main/java/com/dremio/exec/catalog/SourceMetadataManager.java

posted on   荣锋亮  阅读(59)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-03-08 pgspider Citu 副本以及节点移除简单学习
2020-03-08 Citus 官方docker demo 中membership-manager原理简单说明
2020-03-08 pgspider Citus docker 镜像使用
2019-03-08 nginx unit 1.8 支持基于java servlet 的开发模型
2019-03-08 试用 openresty/lua-resty-shell
2018-03-08 grpc rust 项目基本使用
2016-03-08 Jquery使用ajax以及angularjs 动态模板加载并进行渲染

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示