访问权限
无法将 Timeseries Insights DataSet Owner
添加到服务帐号
界面中可能不会显示“Timeseries Insights DataSet Owner”角色。
您可以在 gcloud 命令中使用角色 ID roles/timeseriesinsights.datasetsOwner
来授予必要的访问权限。
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 尝试查询您希望在数据集中显示的显式切片。这会强制系统返回给定切片及其评估状态的时序。
ForecastResult.label INSUFFICIENT_DATA
在执行 Timeseries Insights API 查询或 evaluateSlice 时,您可能会发现将 INSUFFICIENT_DATA
视为每个切片的 ForecastResultLabel。这意味着我们没有足够的数据来对特定切片进行分类。
状态代码:3. 消息:Got density = xx。最小密度 = yy
在以下代码示例中,如果 90% 的数据点存在于请求的时间间隔 [detectionTime - TimeseriesParams.forecastHistory, detectionTime]
内,则用户要求 Timeseries Insights API 进行分类。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
开始。之后请微调该参数,以提高精确率。
如需了解参数定义,另请参阅时间序列概念。