数据仓库梳理方案

时间:2021-07-14 23:25:01

第一步:对sql进行建模

1、经过对抽取数据的sql进行观察和通用化建模,发现规律如下:

Sql格式: insert into 结果表 select …..

Select 后面只有三种种情况①from元表表名②leftjoin(链接) 表名或者(select语句) 元表名③union all (select语句),如下图:

数据仓库梳理方案

第二步:对sql进行解析

1、 sql格式要求:

符合抽取数据格式的sql,在一个文件中每一条sql之间用分号分隔。

2、 进行文件处理

先将一个文件切成单独的sql文本,并且用结果表命名如下图:

数据仓库梳理方案

3、 然后将每一个文件转换成一个含有源表的对象如下图建模对象:

数据仓库梳理方案

其中,将文件中没有的源表转成空对象(将所有表都转成一个对象)。

4、 解析关键词into、from、join,再进行一些细节处理和剔除,获得每一条sql中的所有表名,转换成对象。

5、 利用队列的数据结构和特性,将已经得到的对象转换成新的对象(三合一数据结构),如下图:

数据仓库梳理方案

6、 选择任何一个对象,即可以找出相关的所有关系。


第三步:将关系输出到文件中或者展示在界面上

1、还没有更好的方法实现,仍在思考当中。