流摄取疑难解答指南

本文档提供了有关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查看有关消息引入失败原因的更多信息。 在左侧导航中单击​ 监视,然后查看​ 流端到端 ​选项卡,以查看在选定时间段内流式传输的消息批次。

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