全部文档
文档中心数据流3.0Q&A

Q&A

本手册列出数据流3.0组件,在使用中的常见问题和对应自查步骤。

当节点运行失败,或没有得到期望结果时,需要用户先自行排查,并确定该问题可稳定复现。

在自己无法解决的情况下,可提交工单至产研团队,产研团队会根据工单优先级和提交时间先后,对工单依次处理。

不论是自行排查问题,还是提交到产研,都需要用户提供尽量详尽和完备的信息,这些信息通常可以在curl中获得。

如果是调试,后端会触发名为debug的接口,请按照以下步骤复制出curl,提供工单时作为说明信息。

其他调后端接口的场景,同样可以用这种方法得到对应接口的curl信息(例如保存数据流元素时,会调用update接口,发布时会调用deploy接口),用户可以举一反三,作为通用的问题排查手段,推荐用户自行了解更多关于浏览器开发者工具的其他知识。

参考步骤:

  1. 按F12打开检查工具;

  2. 切到【NetWork】页签,该页签会记录所有后端接口信息;

  3. 回到系统,复现问题;

  4. 点击最新的名为【debug】的请求,切到【Payload】和【Response】页签,截图,工单上附上截图;

  5. 右键【debug】请求,复制->复制cURL(bash),则得到了cURL,将其粘贴到本地记事本或其他文本处理工具中,工单上附上附件;

参考动图:

若您的节点调用了其他组件服务,这类cURL通过debug请求也无法完全获得,则需求您在公共脚本中添加一段PY代码,以在节点的日志中获得所有的cURL。

代码:

Copy
from deepfos.options import OPTION

OPTION.api.dump_always = True
OPTION.general.log_level = 'DEBUG'

详见章节:全局设置 — 使用手册 | DeepFOS Docs

技术排查问题同时需要您提供数据流服务的版本号,多数问题是已知bug,并且已在最新版本中修复,解决这类问题只需要您进行版本升级即可。

您的环境部署的所有服务的版本号,可以通过您的运维人员获取。

也可以通过以下办法,自行快速获得当前服务的版本号。

  1. 打开数据流元素;

  2. 去掉url中第一个问号后面的所有内容(包括问号),这通常是一些查询参数,例如元素编码、文件夹id等信息;

  3. 在url最后加上/git-version

  4. 回车后,浏览器会直接显示版本信息,或者可能是下载一个文件,打开文件后,也可以显示该服务的版本信息。



元素保存或者发布时,会进行校验,校验不通过的内容会以表格样式展示在底部,点击每一行可以定位至具体配置处。

用户可以根据校验提示的内容进行修改,修改后再保存或发布。



如需查看完整的校验文档(仅供先胜内部成员查看),请联系您的商务人员。

DPL_校验梳理

节点

报错

原因

方案

替代方案

所有

This run has been marked as failed from outside the execution context

grpc服务监听的unix-socket临时文件被操作系统清理了

bugfix,升级至3.0.0.1.13之后版本


前端:element-deep-pipeline-3-0:V3.0.0.1.13

后端:deep-pipeline-3-0:V3.0.0.1.13

重启服务

内存溢出,检查是否本次操作的数据量,检查内存使用情况,当内存使用率突然飙升或过大,则会出现此情况

减少本次操作的数据量,以排查是否数据量级的问题。


增加内存以支持大数据量的场景需求。

连接器查询

sqlalchemy.exc.OperationalError:(pymysql.err.OperationalError)(1142,”SHOW VIEW command denied to user ‘user_XXX’@’10,20.164.91’for table ‘table_XXX’


[SQL: SHOW CREATE TABLE ‘table_XXX’]

table_XXX是个视图,用户user_XXX没有 show view的权限。


如果数据流使用UI模式来配置查询,运行时需要查询表结构,执行show create table命令,此命令针对于视图要需要show view权限。(如果是表,只需要select权限)。

给用户加show view权限

用SQL模式查询,此模式不需要查询表结构,不需要执行show create table命令。

数据表查询

polars.exceptions.ShapeError: data does not match the number of columns

返回的列有重名,数据库(例如MYSQL)没有处理同名字段(例如加后缀)

需要修改SQL语句,使返回的列不重名,例如不返回重名字段、使用别名

财务模型查询

截取部分报错内容:nested exception is java.sql.SQLException: Thread stack overrun:  246160 bytes used of a 262144 byte stack, and 16000 bytes needed.  Use mysqld –thread_stack=# to specify a bigger stack.

按配置的维度范围,拼出来的查询SQL超长,以本例的报错内容为例,需要262144 byte,但目前的配置只有246160 bytes

方案一:缩小维度范围,尽量精确


方案二:修改数据库配置thread_stack参数的值,调大至需要的量

组件服务类型的节点


(例如PY脚本、变量等)

deepfos.exceptions.APIResponseError: [code: 401] ErrMsg from server: {“code”:500,”message”:”UNAUTHORIZED”,”status”:false}

先胜云其他组件的服务是需要鉴权的,如果是定时调用的,很可能因为cookie/token失效而导致鉴权失败、执行失败

若需要这些组件服务能被成功执行,可以在公共脚本中添加绕过鉴权的代码,详见【启动-定时】章节

定时调用,报错类似:deepfos.api.base:do_request:452 - Call API: http://XX/api/enterprise/list failed because status code is not 2XX. Detail: {“msg”:”拒绝访问”,”path”:”/api/enterprise/list”,”code”:401,”error”:””,”timestamp”:XX}.

如果是调用PY脚本,尝试手动执行PY脚本是否报错,若不报错,尝试手动执行数据流是否报错,如果也不报错,仅定时调用报错,应该是由于对应服务需要指定用户,但定时调用未指定用户导致

功能升级,升级XX之后版本:

前端:

后端:

升级后,在定时配置中,指定流程发起人。

1、如果是调用PY脚本,可在python脚本中通过添加OPTION.api.header[‘user’] = ‘xxx_user_id’ 手动指定用户;


2、在数据流的【设置-PY设置】中,通过上述方式指定用户;

数据转换

Parser Error: syntax error at or near “RENAME”

duckdb版本太低,不支持数据转换底层逻辑

duckdb升级到1.2.2:


pip3 install duckdb==1.2.2

duckdb.duckdb.ConversionExceptlon: Conversion Error: Could not convert string ‘XXX’ to TNT32

1、检查是否包含了【聚合】等有汇总逻辑的步骤;


2、在聚合步骤中识别到了某一列存在【文本】和【数字】这两种不同类型的聚合,例如”ABC”+123;

3、在duckdb将此列所有值转为数字类型时报错。

1、检查抛出的’XXX’这个值属于哪一列;


2、检查这列的字段类型;

3、可以在聚合步骤前加【列类型转换】步骤,将此列指定为同一个数据类型;

财务模型

TypeError: argument of type ‘int’ is not iterable

维度列的数据类型必须是文本,检查是否有列的数据类型是int

使用【数据转换-列类型转换】或其他方式,将此列的类型转为STRING

···

···

···

···

服务异常通常为未定位到具体问题的模糊报错,不同使用情况下报的服务异常通常对应不同问题。

节点

场景

页面报错

接口报错

方案

替代方案

数据表查询

配置数据源,选择数据表类型

服务器拒绝处理当前请求

对不起您暂未被授予`Internal Datasource’的操作权限,请联系管理员解决

bugfix,升级至V3.0.0.0.1之后版本


前端:element-deep-pipeline-3-0:V3.0.0.0.1

后端:deep-pipeline-3-0:V3.0.0.0.1

为当前用户配置【空间管理员】权限

···

···

···

···

···

···

节点

异常

原因

方案

数据表查询

时间类型字段的查询结果,与数据表中的实际数据,有时差。


例如数据表中是【2025-09-16 17:00:00】,数据流的查询结果是【2025-09-16T09:00:00】,慢了8小时。

丢时区信息

bugfix,升级至3.0.0.1.15之后版本


前端:element-deep-pipeline-3-0:V3.0.0.1.15

后端:deep-pipeline-3-0:V3.0.0.1.15

···

···

···

Q:数据表查询节点能否实现多表查询?

A:可以,使用SQL模式,可以在SQL语句中自行拼接多表进行查询。其他数据集查询类型的节点,例如连接器查询DeepModel查询同理。

Q:目前支持哪些类型的数据库?

A:对于【数据表查询】、【数据表操作】、【连接器查询】、【连接器操作】等直连数据库的节点,我们对于数据库的支持规划如下,因此,除了GreenPlun和DB2目前技术上暂未支持外,其余的数据库类型都已经支持,但SapHana、Oracle和SqlServer由于缺乏测试环境,暂未测试,可能会出现未知bug,需谨慎使用,一旦出现bug请联系产品经理处理。

  1. SapHana(支持&暂无环境可测试)

  2. Oracle(支持&暂无环境可测试)

  3. SqlServer(支持&暂无环境可测试)

  4. MySQL(支持&测试通过)

  5. PostgreSQL(支持&测试通过)

  6. Clickhouse(支持&测试通过)

  7. KingBase(支持&测试通过)

  8. DAMENG(支持&测试通过)

  9. GreenPlun(暂不支持)

  10. DB2(暂不支持)

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send