访问
无法将 Timeseries Insights DataSet Owner
添加到服务账号
“Timeseries Insights DataSet Owner”角色可能不会显示在界面中。
您可以将角色 ID roles/timeseriesinsights.datasetsOwner
与 gcloud 命令结合使用,以授予必要的访问权限。
gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
--member="serviceAccount:${SVC_ACCOUNT}" \
--role=roles/timeseriesinsights.datasetsOwner \
--condition=None
异常值检测
本部分介绍了一些常见的调试步骤,以便在 Timeseries Insights API 响应与预期不符时了解原因。
空切片
在已加载的数据集上执行时间序列数据分析查询时,您可能会收到空响应。
Example empty response, {'name': 'projects/demo-project/datasets/demo-dataset', 'slices': []}
空的 slices
表示请求的时间间隔 [detectionTime - TimeseriesParams.forecastHistory, detectionTime + TimeseriesParams.granularity]
中没有数据点。
或者,您也可以尝试使用 evaluateSlice API 查询您预计存在于数据集中的显式 slice。这会强制系统返回给定 slice 的时序以及其评估状态。
ForecastResult.label INSUFFICIENT_DATA
执行 Timeseries Insights API 查询或 evaluateSlice 时,您可能会发现 INSUFFICIENT_DATA
是每个 slice 的 ForecastResultLabel。这意味着,我们没有足够的数据来对特定 slice 进行分类。
状态代码:3。消息:收到密度 = xx。最小密度 = yy
在以下代码示例中,用户请求 Timeseries Insights API 在 90% 的数据点位于请求的时间间隔 [detectionTime - TimeseriesParams.forecastHistory, detectionTime]
内时进行分类。Timeseries Insights API 无法提供分类,因为时序间隔内只有 1% 的数据点不为空。
"status": { "code": 3, "message": "Got density = 1. Min density = 90" }
尝试在请求中使用以下参数进行实验,以了解数据点可能不存在的原因。
detectionTime 和 TimeseriesParams
确保
[detectionTime - TimeseriesParams.forecastHistory, detectionTime + TimeseriesParams.granularity]
是数据集中所有事件的子范围,以便 Timeseries Insights API 有足够的历史数据可供使用。这可能需要您选择接近时序结束时间的detectionTime
。Timeseries Insights API 会从
detectionTime
回溯时间来构建时序。我们回溯的时间长度以及时序中包含的数据点数量由 TimeseriesParams.forecastHistory 和 TimeseriesParams.granularity 决定,如果不确定数据集中事件的实际密度,请先从
minDensity = 0.0
开始。稍后可以对该参数进行微调,以提高精确度。
此外,如需了解参数定义,请参阅时间序列概念。