流摄取疑难解答指南

本文档提供了有关Adobe Experience Platform上的流式摄取的常见问题解答。 有关其他方面的问题和疑难解答 Platform 服务,包括所有服务所遇到的 Platform API,请参阅 Experience Platform疑难解答指南.

Adobe Experience Platform Data Ingestion 提供可用于将数据摄取到的RESTful API Experience Platform. 摄取的数据用于近乎实时地更新各个客户配置文件,使您能够跨多个渠道提供个性化、相关的体验。 请阅读 数据引入概述 以了解有关服务和不同摄取方法的更多信息。 有关如何使用流式引入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?

流式处理事件通常反映在 Real-Time Customer Profile 在60秒内。 实际延迟可能因数据量、消息大小和带宽限制而异。

我是否可以在同一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 以了解有关消息引入失败原因的更多信息。 单击 监控 在左侧导航中,然后查看 端到端的流式传输 制表符,以查看在选定时间段内流式处理的消息批次。

recommendation-more-help
2ee14710-6ba4-4feb-9f79-0aad73102a9a