excel文件抽到到数据库表

777
8

coll 初学数据Lv2

发表于2023-4-28 12:34

悬赏10

未解决

楼主
数据工厂版本V2.1.4数据库中已有一张业务表,ID是主键,自增长。现准备把以往excel中数据抽取到数据库中。
一、关于excel导入

①excel必须增加一列字段名,用英文;②必须有一列字段与表ID字段对应,且有数值。

上述2个小问题是否正确?
二、关于序号
如何实现表中数据更新插入时,ID在原有数据基础上,自增长?
比如,表中有100条数据,最大ID号100,excel中有5条数据,序号1-5,ETL过程中实现表中D自动从101开始,更新插入5条数据。

最近看过此主题的会员

esen_4Y3L5ADO80

zly_2960

zhzh

esen_4UUTELF9IV

429661127

mkhang

swx771067

fenglan

ddb

栗子

iluna

esen_4DOOJX3L3FZ

愿你似阳光

chestnut

ESENSOFT官方技术支持

豌豆君

liangchh

8个回答

只看楼主

豌豆君 小试身手Lv3

发表于2023-4-28 15:48

只看该作者

取消 关注该作者的回复

沙发

本帖最后由 豌豆君 于 2023-4-28 15:55 编辑

excel文件输入时,在格式设置中可以设置起始行列,以及首行为字段名称详细可以看:https://help.esensoft.com/doc-view-686.html

1.excel输入时一般是设置首行为字段名,字段名建议是英文;
excel中的字段与数据库表的字段映射关系,可以在表输出组件中设置,没有数据输入就是空的。
2.数据库表已经设置了主键,在表输出时,主键会自增长的;这里可以根据需求设置关键字及更新方式,关键字可以勾选多个。

coll 初学数据Lv2

发表于2023-4-28 16:02

只看该作者

取消 关注该作者的回复

板凳

豌豆君 发表于 2023-4-28 15:48
excel文件输入时,在格式设置中可以设置起始行列,以及首行为字段名称详细可以看:https://help.esensoft.c ...

excel不用设序号列与表ID列对应?已试,删除excel序号列,勾选ID为主键,数据附加,只对应一个字段。报错。error:null value in column "id" violates not-mull constraint

豌豆君 小试身手Lv3

发表于2023-4-28 16:04

只看该作者

取消 关注该作者的回复

地板

本帖最后由 豌豆君 于 2023-4-28 16:09 编辑

coll 发表于 2023-4-28 16:02
excel不用设序号列与表ID列对应?已试,删除excel序号列,勾选ID为主键,数据附加,只对应一个字段。报错 ...

只对应一个字段,是表输出中只有一个字段?可以截图看看吗?用的是睿治吗,输出的数据库是什么?

coll 初学数据Lv2

发表于2023-4-28 16:37

只看该作者

取消 关注该作者的回复

5#

豌豆君 发表于 2023-4-28 15:48
excel文件输入时,在格式设置中可以设置起始行列,以及首行为字段名称详细可以看:https://help.esensoft.c ...

已试。excel增加序号列,采用附加方式如果表中ID号与excel序号一致,会把excel表中数据忽略。选择更新插入,会把同序号的数据更新。

个人认为,在ETL设计区中可修改为支持多个输入,一个输入取得表ID的最大值,一个输入是excel,在表达式组件上实现excel序列字段更新

coll 初学数据Lv2

发表于2023-4-28 16:38

只看该作者

取消 关注该作者的回复

6#

不是,是用的数据工厂。

coll 初学数据Lv2

发表于2023-4-28 16:44

只看该作者

取消 关注该作者的回复

7#

豌豆君 发表于 2023-4-28 16:04
只对应一个字段,是表输出中只有一个字段?可以截图看看吗?用的是睿治吗,输出的数据库是什么?
...

数据工厂,ETL实现数据抽取到数据库中。

豌豆君 小试身手Lv3

发表于2023-4-28 16:53

只看该作者

取消 关注该作者的回复

8#

coll 发表于 2023-4-28 16:37
已试。excel增加序号列,采用附加方式如果表中ID号与excel序号一致,会把excel表中数据忽略。选择更新插 ...

etl中支持多个输入组件,再关联;如果一个输入中有多个源,会存在其他取数问题的。
自增长主键不需要赋值,数据导入时,主键会自动增加。

coll 初学数据Lv2

发表于2023-4-28 17:46

只看该作者

取消 关注该作者的回复

9#

豌豆君 发表于 2023-4-28 16:53
etl中支持多个输入组件,再关联;如果一个输入中有多个源,会存在其他取数问题的。
自增长主键不需要赋值 ...

这是2个问题,针对你说的,一是ETL过程是支持多个输入组件的但表达式组件、最大值组价等中间处理组件只可以对前输入组件字段进行处理,所以对于自动修改序号为最大值加一无法实现。
二是数据库使用的是PG,自增长是没问题的。但是在ETL 过程向表中写入数据时,就会出错,语法要求必须有序列与自增长主键对应,且值不能是NUll,这就会导致原有数据被更新的问题。

从目前现有功能来看,没有成熟解决方法吗?这个问题不会只有我有这个需求吧

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号