流摄取疑难解答指南
本文档提供了有关Adobe Experience Platform上的流式摄取的常见问题解答。 有关其他Platform服务(包括在所有Platform API中遇到的服务)的问题和疑难解答,请参阅Experience Platform疑难解答指南。
Adobe Experience Platform Data Ingestion提供可用于将数据摄取到Experience Platform的RESTful API。 摄取的数据用于近乎实时地更新各个客户配置文件,使您能够跨多个渠道提供个性化、相关的体验。 请阅读数据引入概述,了解有关该服务和不同引入方法的更多信息。 有关如何使用流式引入API的步骤,请阅读流式引入概述。
常见问题解答
以下是有关流式摄取的常见问题解答列表。
如何确认我发送的有效负载的格式正确?
Data Ingestion利用Experience Data Model (XDM)架构来验证传入数据的格式。 发送与预定义XDM架构结构不符的数据将导致摄取失败。 有关XDM及其在Experience Platform中的使用的更多信息,请参阅XDM系统概述。
流式摄取支持两种验证模式:同步和异步。 每个验证方法处理失败数据的方式各不相同。
在开发过程中应使用 同步验证。 未通过验证的记录将被丢弃,并返回一条错误消息,说明它们失败的原因(例如:“无效的XDM消息格式”)。
应在生产中使用异步验证。 任何未通过验证的格式错误的数据将作为失败的批处理文件发送到Data Lake,稍后可以在其中检索该数据以供进一步分析。
有关同步和异步验证的详细信息,请参阅流式验证概述。 有关如何查看验证失败的批次的步骤,请参阅有关检索失败的批次的指南。
能否先验证请求有效负荷,然后再将其发送至Platform?
请求有效负载只能在发送到Platform后评估。 执行同步验证时,有效负载会返回填充的JSON对象,而无效负载会返回错误消息。 在异步验证期间,服务会检测任何格式错误的数据并将其发送给Data Lake,以便稍后检索这些数据进行分析。 有关详细信息,请参阅流式验证概述。
在不支持同步验证的边缘上请求同步验证时,会发生什么情况?
当请求的位置不支持同步验证时,将返回501错误响应。 有关同步验证的更多信息,请参阅流式验证概述。
如何确保仅从可信来源收集数据?
Experience Platform支持安全的数据收集。 启用经过身份验证的数据收集后,客户端必须发送JSON Web令牌(JWT)及其组织ID作为请求标头。 有关如何将经过身份验证的数据发送到Platform的更多信息,请参阅经过身份验证的数据收集指南。
将数据流式传输到Real-Time Customer Profile的延迟是多少?
流式处理事件通常在60秒内反映在Real-Time Customer Profile中。 实际延迟可能因数据量、消息大小和带宽限制而异。
我是否可以在同一API请求中包含多条消息?
您可以在单个请求有效负荷中对多个消息进行分组,并将它们流式传输到Platform。 正确使用时,在一个请求中对多个消息进行分组是优化数据操作的绝佳方法。 请阅读有关在请求中发送多条消息的教程,以了解更多信息。
如何知道我发送的数据是否正在接收?
发送到Platform的所有数据(无论成功还是否)在保留到数据集之前都作为批处理文件存储。 批次的处理状态将显示在它们所发送的数据集内。
通过使用Experience Platform用户界面检查数据集活动,您可以验证是否已成功摄取数据。 单击左侧导航中的 数据集 以显示数据集列表。 从显示的列表中选择要流式处理的数据集,以打开其 数据集活动 页面,其中显示选定时间段内发送的所有批次。 有关使用Experience Platform监视数据流的详细信息,请参阅监视流式数据流指南。
如果数据未能摄取,并且要从Platform中恢复它,可以通过将失败批次的ID发送到Data Access API来检索它们。 有关详细信息,请参阅检索失败的批次指南。
为什么我的流数据在数据湖中不可用?
批量摄取可能无法达到Data Lake的原因有很多,例如格式无效、缺少数据或系统错误。 要确定批次失败的原因,您必须使用Data Ingestion Service API检索批次并查看其详细信息。 有关检索失败批次的详细步骤,请参阅检索失败批次指南。
如何解析针对API请求返回的响应?
您可以通过首先检查服务器响应代码来确定您的请求是否被接受,来解析响应。 如果返回成功的响应代码,则可以查看responses
数组对象以确定摄取任务的状态。
成功的单消息API请求返回状态代码200。 成功(或部分成功)的批量消息API请求返回状态代码207。
以下JSON是包含两条消息的API请求的示例响应对象:一条成功一条失败。 成功流式处理的消息返回xactionId
属性。 未能流化的消息返回statusCode
属性和包含更多信息的响应message
。
{
"inletId": "9b0cb233972f3b0092992284c7353f5eead496218e8441a79b25e9421ea127f5",
"batchId": "1565638336649:1750:244",
"receivedTimeMs": 1565638336705,
"responses": [
{
"xactionId": "1565650704337:2124:92:3"
},
{
"statusCode": 400,
"message": "inletId: [9b0cb233972f3b0092992284c7353f5eead496218e8441a
79b25e9421ea127f5]
imsOrgId: [{ORG_ID}]
Message has unknown xdm format"
}
]
}
为什么Real-Time Customer Profile未接收我的已发送消息?
如果Real-Time Customer Profile拒绝消息,则很可能是由于标识信息不正确所致。 这可能是由于为标识提供无效值或命名空间而导致的结果。
有两种类型的身份命名空间:默认和自定义。 使用自定义命名空间时,请确保命名空间已在Identity Service内注册。 有关使用默认和自定义命名空间的更多信息,请参阅身份命名空间概述。
您可以使用Experience Platform UI查看有关消息引入失败原因的更多信息。 在左侧导航中单击 监视,然后查看 流端到端 选项卡,以查看在选定时间段内流式传输的消息批次。