thoth
最后更新于
最后更新于
Thoth是古埃及神话智慧之神的含义,对于forchange来说thoth就是数据部门的大数据元数据管理平台的含义,它包含技术元数据(数据源元数据、ETL元数据、数据血缘关系等等)和业务元数据(业务边界、指标口径等等)。
数据源元数据采集器,采集Hive、Pg、Mysql等数据源元数据采集,提供定时和实时元数据采集。
定时数据采集任务
Table信息采集
SQL
处理逻辑
根据DataSource的配置获取SchemaName,调用上述SQL拉取HiveTable相关元数据信息
循环遍历hive table元数据信息构建Table对象,查询当前tableName在table表中最大版本
对象,如果最大版本不存在
,则直接将构建的Table对象插入table表。并且内存中维护instanceName+schemaName+tableName的Hash值和tableId的映射。
如果存在最大版本,比较table表中的相关属性(tableName、扩展属性、OwnerName、lastAccessTime、creationTime),如果该信息发生变化,则替换最大版本Table相关属性,并且将version+1,重新插入instanceSchemaTableNameAndIdMap
内存映射。
Column信息采集
SQL
处理逻辑
根据schemaName调用上述SQL获取其他全部的表名和列信息
从instanceSchemaTableNameAndIdMap
根据instance、schema、table的名称获取tableId(最大版本的),如果tableId不存在则更新table表元数据。
根据tableId和columnName获取已经存在的Column,如果不存在则直接将现有的column元数据插入columns表,并且刷新tableIdAndColumnsMap
缓存。
如果tableIdAndColumnsMap
存在该Column,则比较内存中的column和新查询出来的column信息,如果不相同则新插入一条新的column记录,其版本号+1。