上海腾科教育干货分享达梦数据库Excel数据的关联合并

本期想分享一下:将分散于一张Excel的多个Sheets中的数据,合并到一张Sheet或数据库表中的方法。

 

准备如下:

Excel表里有Sheet1,Sheet2两个页面。Sheet1里有ID、名称、价格三个字段数据,Sheet2里有ID、售价、型号三个字段数据。

   

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图 1 : Sheet1 及 Sheet2

 

需要想把Excel的两张Sheets数据关联,写入到Excel的一张Sheet或数据库表中。

 

步骤: 

1.    建立Sheet1、Sheet2的数据源 ;

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图2

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图3

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图4 从文件获取列信息后,列名、数据类型、精度可调整

 

上图2~4在数据源中添加了Excel的Sheet1,重复这几步,添加Sheet2。添加完成后,在数据源中会多两个excel文件。

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图5

 

2.    在Sheet2上建立关于ID为查找列,售价、型号为输出列的数据集查找 

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图6 在DMETL工作区增加数据集缓存标签

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图7 新建查找缓存

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图8 设置数据集查找缓存

 

3.    在工程标签下,新建工程及转换,以Sheet1为数据源、Sheet2为查找表,输出表(ID、名称、价格、售价、型号)为目的。 

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图9 转换流程图

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图10 上图添加的工具组件

对三个节点分别配置:

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图11节点一,选择数据集

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图12节点二:数据集查找,选择输入列

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图13节点二:数据集查找,选择输出列

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图14节点三:确认最终输出列及输出路径

 

通过以上的转换执行后就可以把Excel的2张Sheets中的数据按ID关联合并在一张表。

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图15运行

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图16查看结果

 

比较原始Sheet1与Sheet2中的数据,这种方法是在Sheet2中查找与Sheet1中匹配的ID,故查询结果中能看到保留了Sheet1中完整的数据,但是Sheet2中有一条ID为F1的数据没有出现在查询结果中。

 

另外也可以考虑使用工具中的连接组件,将Sheet1、Sheet2都作为源数据。

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图 17

连接组件中有三种连接方式可以选择:内连接、左外连接、全外连接。

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图 18 全外连接后数据合并结果

 

大家可以用前面准备的数据操作下,比较看看不同连接方式处理的结果。

 

另外最后一步的Excel表也可以换成数据库表

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图19

 

上海腾科教育干货分享达梦数据库Excel数据的关联合并

图20 设置数据库表

 

转换执行完成后,可以到数据源的Table_1中浏览数据,结果应该与图16一致。

 

数据量较少时,建议采用上述方法。但如果数据量达到了百万,直接通过Excel去查找关联匹配效率会非常低。 

 

可以使用下述方式改造: 

1.分别以Sheet1、Sheet2为表结构建立2张同构表; 

2.通过转换把Excel的数据抽取到对应表中。 

3.接下来在表上建立数据集查找,这样下来操作对象都是数据库表,效率将会有很大的提高。 

 

以上就是本期Excel数据的关联合并内容。