Hive表结构实时同步到元数据系统

数据仓库的元数据系统需要实时获取最新的Hive表结构,比如用户新建了一张表或新加一个字段,希望能马上在元数据系统里查询到。

实时获取数据,无非是Push或Pull两种模式。考虑几种可能的方案

  • Push
    • 审计消息:前提是审计日志可以记录所有的Hive,并实时分析出里面的DDL语句,把相应的变更记录到元数据里
    • metastore binlog:这个方案实现有点复杂了,binlog的实时消费有较高开发成本
  • Pull
    • Hive jdbc全量同步:单表同步的执行时间不会快于100ms,全库同步时间比对超过10分钟,不能接受
    • 扫描Metastore扫最近DDL表:每次只同步这些表,是一种近实时方案

最终,我们选择了扫描Metastore扫最近DDL表的方案,每半分钟同步一次,可以满足用户查询的实时性要求。为了防止单次同步出错,又在每天凌晨做一次全量同步,这类似于实时计算的Lamda架构。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容