[英]SnowPlow Analytics Schemas
嘗試使用 arrays 為從性能洞察中檢索到的數據創建一個架構。
{
"$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#",
"description": "Performance Insights",
"self": {
"vendor": "com.acme",
"name": "performance_insights",
"format": "jsonschema",
"version": "1-0-3"
},
"type": "object",
"properties": {
"SeriesStartTime": {
"type": "string",
"format": "date-time",
"description" : "timestamp"
},
"SeriesEndtime": {
"type": "string",
"format": "date-time",
"description" : "timestamp"
},
"Identifier": {
"description": "DataBase",
"type": "string",
"maxLength": 128
},
"MetricList": {
"type": "array",
"items":{
"type": "object",
"properties": {
"Key": {
"type": "object",
"description": "Key Metric",
"properties": {
"Metric": {
"type": "string",
"description": "Load Avg"
},
"Dimensions": {
"properties": {
"tokenized_db": {
"type": "string",
"maxLength": 128
},
"tokenized_id": {
"type": "string",
"maxLength": 128
},
"tokenized_statement": {
"type": "string"
}
}
}
}
},
"DataPoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Timestamp": {
"description" : "timestamp",
"type": "string",
"format": "date-time"
},
"Value": {
"description" : "Value",
"type": "number"
}
}
}
}
}
},
"minItems": 1
}
},
"additionalProperties": false
}
它正常,然后我向它發送數據:
{
"schema": "iglu:com.acme/performance_insights/jsonschema/1-0-3",
"data": {
"SeriesStartTime": "2021-12-09T19:00:00-05:00",
"SeriesEndtime": "2021-12-09T20:00:00-05:00",
"Identifier": "db-5LHLHN5OGHFFFFMHRGDM",
"MetricList": [
{
"Key": {
"Metric": "db.load.avg"
},
"DataPoints": [
{
"Timestamp": "2021-12-09T19:01:00-05:00",
"Value": 0.01818181818181818
},
{
"Timestamp": "2021-12-09T19:25:00-05:00",
"Value": 0.01818181818181818
}
]
}]
}
}
我已經將模式推送到我的回購協議中,我已經推送了其他幾個可以工作但沒有復雜到接收數組數據的模式。
似乎當我故意把類型弄錯時,我在我的壞收集器中看到了錯誤。 當一切都如上正確時,我只看到
schemaKey:"iglu:com.acme/performance_insights/jsonschema/1-0-3"
schemaCriterion:"iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-*"
作為 failure.message
有任何想法嗎?
我正在做這些假設:
tracker_protocol_violations
類型CriterionMismatch
子類型。 當提供的負載是一個有效的 JSON 並且它是一個自我描述的負載時,就會發生這種類型的故障,但它的模式與關聯的模式標准不匹配。 failure.message
向您顯示失敗事件的模式和需要匹配的模式標准。
在您的情況下,模式是com.acme/performance_insights/jsonschema/1-0-3
但匹配的標准是com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-*
。
您看到此錯誤是因為自描述事件需要包含在com.snowplowanalytics.snowplow/payload_data
模式中。 像這樣:
{
"schema": "com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
"data": [
"...": "...",
"ue_px": "<base64-encoded-string>",
"...": "..."
]
}
其中<base64-encoded-string>
是 base64 編碼的 JSON 和com.acme/performance_insights
架構。
您可以在此處的 Snowplow 文檔中閱讀有關此類故障的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.