企业数据平台常见问题

流数据处理

有关开发流数据处理任务的常见问题如下:

问:在对流数据处理任务进行运行配置时,什么场景选择集群模式,什么场景选择Standalone模式?

答:Standalone模式下,底层资源不可横向扩展,运行资源有限,但其资源使用效率高,适用于处理小流量数据。集群模式下,底层资源可横向扩展,资源充足,适用于处理大流量数据。

问:在申请流数据处理任务资源时,需要申请多少资源?

答:可参考 算子性能说明 文档中给出的每个算子对应的性能指标,结合实际数据流量大小与任务的详细配置,估算出整个任务需要的资源。最推荐的做法是在测试环境中模拟生产数据上送情况,根据运行监控数据对流数据处理任务运行资源进行调整,再将相应的配置应用到生产环境中。

问:启动流数据处理任务时,为什么会启动失败?

答:流数据处理任务启动运行失败,可能有多种原因。请排查以下可能的原因:

  1. 确保网络通信正常,对流数据处理任务进行运维操作时,必须保证网络通信正常。

  2. 确保任务资源配置未超出配额,可对任务运行资源进行调整,使其不超过整体资源配额。

  3. 若流数据处理计算系统出错,可尝试重启任务或者联系EnOS运维人员。

问:流数据处理任务已启动并运行,但是为什么看不到计算数据?

答:当流数据处理任务已正常启动,却无法在监控页面看到计算结果数据,请排查以下可能的原因:

  1. 流数据处理任务配置不正确,比如输入测点填写错误等。

  2. 流数据处理任务需要的输入数据没有正常上送,无法产生计算结果数据。

  3. 相关的系统流任务没有正常启动,导致数据的消费及输出不能正常进行。

  4. 输出测点没有在模型中注册,导致计算结果数据无法正常输出。

问:单个组织下可创建的流数据处理任务数有无限制?

答:单个组织账号可创建50个流数据处理任务。

时序数据管理

有关时序数据管理服务的常见问题如下:

问:在什么时间点需要配置TSDB存储策略?

答:建议在完成设备连接,并且设备开始上送数据到IoT Hub之前,配置TSDB存储策略。否则,设备上送数据不会被默认存储。如需存储经流数据处理之后的数据,需在开启流数据任务之前,配置相应的TSDB存储策略。

问:TSDB存储策略配置完后是否立即生效?

答:存储策略配置完成后,存储策略的生效时间大约为5分钟。

问:单个组织下可创建的存储策略分组有无限制?

答:单个组织账号可创建5个存储策略分组。

问:已被存储策略关联的模型和测点的属性可以更新吗?

答:定义存储策略之后,测点ID、测点类型、和数据类型这些属性关系到数据存储标识、存储位置、和存储空间分配,不能进行变更。否则会导致,否则会导致数据无法正常被存储或者通过数据服务 Open API 无法查询到历史数据。

问:设备已经连接到云端,并且已经开始发送数据,为什么使用数据服务API获取不到数据?

答:完成设备连接之后,必须对设备测点配置相应的存储策略,否则设备上送的原始数据不会被默认存储到TSDB。

问:TSDB中的数据是否支持删除?

答:可通过数据清理功能,删除存储在TSDB中的历史数据,释放存储资源、降低存储成本。详细信息,参见 清理TSDB数据

问:存储在TSDB中的历史数据是否支持归档?

答:支持。可在数据归档产品中对存储在TSDB中的历史数据进行归档。

问:新增的模型测点数据是否会自动存储到TSDB中?

答:不会。需要在存储策略中为新增的模型测点完成配置后,新增的测点数据才会被存储到TSDB中。

问:取消测点存储策略配置,测点数据是否会被自动删除?

答:新产生的测点数据将不会被存储到TSDB,但已经存入TSDB的数据不会被主动删除。这些历史数据只会在存储时间过期后被清理,或者用户可以自主创建数据清理任务,对历史数据进行清理。

数据联邦

有关数据联邦服务的常见问题如下:

问:开启读通道时,跨源分析与非跨源分析配置的区别是什么?

答:开启跨源分析的通道启动时需使用的最小资源比非跨源通道大。跨源分析功能支持通过统一的 SQL 语句访问多个数据源中的数据,且能支持对各数据源中的数据进行联合查询。使用非跨源通道单次只能查询一个数据源中的数据,且可访问的数据源类型只支持 MySQL 和 Hive 数据源,可兼容当前数据源下对应的查询语法。针对 Hive 数据源,除了查询操作,还可以进行数据下载操作。

问:为什么在 Tableau 中使用 JDBC 连接非跨源读通道的 Hive 数据源时,会出现没有响应或者报错?

答:目前不支持使用 JDBC 连接非跨源读通道从 Hive 数据源读取数据。

问:为什么使用 JDBC 连接非跨源读通道的 Hive 数据源时,会出现超时的情况?

答:如果在查询语句中使用如 group bycountorder by 等聚合排序语句,会导致 Hive 启用 mapreduce 任务,因此耗时会增长至分钟级别。推荐使用跨源读通道中的 Hive 数据源或者使用数据下载。

问:在使用类似以下查询语句时,为什么会报错?

SELECT * FROM mysql.test.data LEFT JOIN hive.db.device ON mysql.test.data.dev_id=hive.db.device.dev_id WHERE hive.db.device.dev_id IS NOT NULL
hive


答:因为 hive.db.device.dev_id 这样的结构太长,建议使用别名。可以将 SQL 语句修改成:

SELECT * FROM mysql.test.data m LEFT JOIN hive.db.device h ON m.dev_id=h.dev_id WHERE h.dev_id IS NOT NULL

问:为什么添加数据源后启动通道成功,但查询数据时仍然报 Schema 不存在?

答:由于网络原因或者依赖组件原因,添加数据源不及时或者报错,可通过重启通道解决。

问:为什么在 Tableau 或者 IDE 中使用 JDBC 对数据进行拖拽时,会出现非法 SQL 提示?

答:由于数据联邦 SQL 对数据源、库、表名描述的特殊性,无法完全适配 Tableau 或 IDE。推荐使用自定义 SQL 或者在 IDE Console 中输入 SQL 进行查询。

数据订阅

有关数据订阅服务的常见问题如下:

问:单个组织下可创建的数据订阅任务数量有无限制?

答:单个组织下最多可创建15个数据订阅任务。

问:一条订阅任务对应能创建几个 Consumer Group?一个 Consumer Group 允许创建几个 Consumer?

答:一条订阅任务可支持创建无数个 Consumer Group 对其进行独立消费;一个 Consumer Group 只允许2个 Consumer 进行数据均摊消费。

问:实时数据产生多久后还可以被订阅消费?

答:订阅数据在Topic中的存储时长默认为3天,所以订阅任务停止3天之内,是可以接着上一次的消费位置继续消费订阅数据的。

数据归档

问:数据归档任务支持自动或手动方式吗?

答:数据归档任务的运行是规则驱动的,需根据业务归档数据的需求(如归档到哪里、归档哪些数据、间隔多久归档一次等),完成数据归档规则配置。归档任务正常启动及运行后,数据将按所配规则自动进行归档,无需人为干预。


目前数据归档支持 实时归档离线归档 两种模式。若选择实时归档方式,归档任务将一直运行,一旦数据源有数据生产,系统便会依据归档任务的配置自动进行数据归档;若选择离线归档方式,归档任务只会运行一次,配置中所涉及的数据全部归档完毕后,任务就会停止运行。

问:运行中的归档任务的属性或配置被修改后,有何影响?

答:修改数据归档任务的配置并提交成功后,任务将会按新的配置进行数据归档,已归档的数据不受影响。例如:修改配置前,存储归档数据的路径为 /tds/ods/alarm1/,将其修改为 /tds/ods/alarm2/ 并提交成功后,新的配置会立即生效。大约延迟 1-2 分钟后,归档数据会开始被存入 alarm2 目录。修改配置前已被归档至 alarm1 目录中的数据不受影响。

问:数据被归档至目标存储后,如何查询归档数据?

答:数据归档产品支持用户将数据从数据源归档至目标存储中,它是一套归档任务配置及管理工具,并不提供目标存储系统的管理,也不提供归档后数据的查询能力。用户需自行使用目标存储系统对应的管理工具进行数据查询。例如:

  1. 若将数据归档至 EnOS HDFS,可使用 企业数据平台 > 智能实验室 产品中的 Notebook 实例查询存储在 HDFS 中的数据。详细信息,参见 管理Notebook实例

  2. 若将数据归档至 Azure Blob,可直接使用 Azure 平台提供的客户端工具查询存储在 Blob Storage 中的数据。

问:归档任务运行失败并重启后,任务是否会重新归档运行失败时的数据?

答:分为以下两种情况:

  1. 针对实时归档任务,任务失败并重启后,系统可自动对最近3天的所有失败数据重新归档。若任务失败时间超过3天,系统也仅可处理最近3天的数据。数据归档任务失败会触发短信/邮件告警通知告警接收人,在收到告警后,请及时处理。

  2. 针对离线归档任务,任务失败并重启后,系统会自动对本次归档的所有数据重新归档。

数据同步、批数据处理

问:数据同步除了支持结构化数据同步,是否也支持非结构化数据同步?

答:支持。数据同步产品同时支持结构化数据同步和文件流同步两种方式。非结构化数据可通过文件流传输方式进行同步。

问:数据同步和批数据处理是否支持系统变量?

答:支持。数据同步和批数据处理支持触发时间和业务日期变量、时间相关变量、以及非时间相关的变量,以可实现动态参数传递。详细信息,参见 系统变量列表

问:数据同步和批数据处理是否支持资源隔离?

答:支持。当前数据同步和批数据处理以及调度功能使用的资源按需动态申请,任务运行完成后会释放资源,且资源完全隔离,互不影响。

问:批数据处理是否支持多任务分布式运行?

答:支持。在配置批数据处理任务时,为任务节点配置分布键后,可实现批数据处理多任务分布式运行,提升运行效率。

问:数据同步和批数据处理是否提供告警功能?

答:提供。为数据同步和批数据处理任务配置告警服务后,告警信息可通过邮件或短信发送至告警接收人。

问:批数据处理任务是否支持被外部应用调用?

答:支持。目前批数据处理支持提供对外的 REST API 服务,可支持与外部应用的调度集成。

问:从 MySQL、SQL Server、或 Oracle 同步数据至 EnOS Hive 时,在源端只能通过条件做行级过滤吗?是否可以做列级过滤或复杂的组合查询来过滤数据?

答:除了在源端配置过滤条件做行级过滤,也可以通过点击 切换到 SQL 后,直接输入查询语句来过滤数据。但需要注意源端自定义 SQL 查询的性能取决于源端关系数据库本身的性能,运行时可能会对源端关系数据库性能有一定影响,不建议输入过于复杂的自定义 SQL 语句。

问:为什么任务流实例运行日志显示任务流运行已完成,但其状态显示仍为运行状态?

答:当任务流的最后一个任务节点运行完成后,任务流的状态并不会立即从 运行中 变为任务运行结束的状态。任务流状态的变化是由另外一个进程的任务去监控并触发的,存在短暂的延时。

问:为什么在数据同步里无法正常显示 MySQL 库里的表?

答:MySQL 数据库需要设置时区为 UTC,否则在数据同步里无法正常显示 MySQL 库里的表。