Query Service 疑难解答指南

本文档提供了有关查询服务的常见问题解答,并提供了使用查询服务时常见错误代码的列表。 有关Adobe Experience Platform中与其他服务相关的问题和疑难解答,请参阅Experience Platform疑难解答指南

常见问题

以下是有关查询服务的常见问题解答列表。

如何仅获取查询的元数据?

要仅获取查询的元数据,您可以运行返回零行的查询,如下所示:

SELECT * FROM <table> WHERE 1=0

此查询仅返回指定表的元数据。

如何快速地在CTAS(Create Table as Select)查询上进行迭代而不对其进行具体化?

您可以创建临时表,以在对查询进行实物化以供使用之前,快速对该查询进行迭代和实验。 您还可以使用临时表来验证查询是否可正常运行。

例如,您可以创建临时表:

CREATE temp TABLE temp_dataset AS
SELECT *
FROM actual_dataset
WHERE 1 = 0;

然后,您可以按如下方式使用临时表:

INSERT INTO temp_dataset
SELECT a._company AS _company,
a._id AS _id,
a.timestamp AS timestamp
FROM actual_dataset a
WHERE timestamp >= To_timestamp('2021-01-21 12:00:00')
AND timestamp < To_timestamp('2021-01-21 13:00:00')
LIMIT 100;

如何过滤我的时间序列数据?

使用时间序列数据进行查询时,应尽可能使用时间戳筛选器以进行更准确的分析。

使用时间戳过滤器的示例如下所示:

SELECT a._company  AS _company,
       a._id       AS _id,
       a.timestamp AS timestamp
FROM   dataset a
WHERE  timestamp >= To_timestamp('2021-01-21 12:00:00')
       AND timestamp < To_timestamp('2021-01-21 13:00:00')

我是否应使用通配符(如*)从数据集获取所有行?

不能使用通配符从行中获取所有数据,因为查询服务应当被视为​colum-store,而不是传统的基于行的存储系统。

REST API错误

HTTP状态代码 描述 可能的原因
400 错误请求 查询格式错误或非法
401 身份验证失败 身份验证令牌无效
500 内部服务器错误 内部系统故障

PostgreSQL API错误

错误代码和连接状态 描述 可能的原因
28P01 启动 — 身份验证 密码无效 身份验证令牌无效
28000 启动 — 身份验证 授权类型无效 授权类型无效。 必须为AuthenticationCleartextPassword
42P12 启动 — 身份验证 未找到表 未找到要使用的表
42601查 语法错误 命令或语法错误无效
58000 查询 系统错误 内部系统故障
42P01 查询 未找到表 在查询中指定的表未找到
42P07 查询 表存在 已存在同名表(创建表)
53400 查询 LIMIT超出最大值 用户指定的LIMIT子句大于100,000
53400 查询 语句超时 提交的实时声明最多需要10分钟
08P01 不适用 不支持的消息类型 不支持的消息类型

在此页面上