-
coll 初学数据Lv2
发表于2023-4-28 12:34
悬赏10
未解决
一、关于excel导入
①excel必须增加一列字段名,用英文;②必须有一列字段与表ID字段对应,且有数值。
上述2个小问题是否正确?
二、关于序号
如何实现表中数据更新插入时,ID在原有数据基础上,自增长?
比如,表中有100条数据,最大ID号100,excel中有5条数据,序号1-5,ETL过程中实现表中D自动从101开始,更新插入5条数据。
8个回答
本帖最后由 豌豆君 于 2023-4-28 15:55 编辑
excel文件输入时,在格式设置中可以设置起始行列,以及首行为字段名称详细可以看:https://help.esensoft.com/doc-view-686.html
1.excel输入时一般是设置首行为字段名,字段名建议是英文;
excel中的字段与数据库表的字段映射关系,可以在表输出组件中设置,没有数据输入就是空的。
2.数据库表已经设置了主键,在表输出时,主键会自增长的;这里可以根据需求设置关键字及更新方式,关键字可以勾选多个。
豌豆君 发表于 2023-4-28 15:48
excel文件输入时,在格式设置中可以设置起始行列,以及首行为字段名称详细可以看:https://help.esensoft.c ...
excel不用设序号列与表ID列对应?已试,删除excel序号列,勾选ID为主键,数据附加,只对应一个字段。报错。error:null value in column "id" violates not-mull constraint
本帖最后由 豌豆君 于 2023-4-28 16:09 编辑
coll 发表于 2023-4-28 16:02
excel不用设序号列与表ID列对应?已试,删除excel序号列,勾选ID为主键,数据附加,只对应一个字段。报错 ...
只对应一个字段,是表输出中只有一个字段?可以截图看看吗?用的是睿治吗,输出的数据库是什么?
豌豆君 发表于 2023-4-28 15:48
excel文件输入时,在格式设置中可以设置起始行列,以及首行为字段名称详细可以看:https://help.esensoft.c ...
已试。excel增加序号列,采用附加方式如果表中ID号与excel序号一致,会把excel表中数据忽略。选择更新插入,会把同序号的数据更新。
个人认为,在ETL设计区中可修改为支持多个输入,一个输入取得表ID的最大值,一个输入是excel,在表达式组件上实现excel序列字段更新
coll 发表于 2023-4-28 16:37
已试。excel增加序号列,采用附加方式如果表中ID号与excel序号一致,会把excel表中数据忽略。选择更新插 ...
etl中支持多个输入组件,再关联;如果一个输入中有多个源,会存在其他取数问题的。
自增长主键不需要赋值,数据导入时,主键会自动增加。
豌豆君 发表于 2023-4-28 16:53
etl中支持多个输入组件,再关联;如果一个输入中有多个源,会存在其他取数问题的。
自增长主键不需要赋值 ...
这是2个问题,针对你说的,一是ETL过程是支持多个输入组件的但表达式组件、最大值组价等中间处理组件只可以对前输入组件字段进行处理,所以对于自动修改序号为最大值加一无法实现。
二是数据库使用的是PG,自增长是没问题的。但是在ETL 过程向表中写入数据时,就会出错,语法要求必须有序列与自增长主键对应,且值不能是NUll,这就会导致原有数据被更新的问题。
从目前现有功能来看,没有成熟解决方法吗?这个问题不会只有我有这个需求吧