Я изучаю возможность использования BigQuery для хранения данных датчиков во временных рядах. Цель состоит в том, чтобы хранить данные в BQ и обрабатывать их в Pandas ... пока что так хорошо ... Pandas может интерпретировать индекс поля TIMESTAMP и создавать серию.Проект схемы BigQuery для произвольных тегов
Дополнительным требованием является то, что данные поддерживают произвольные теги в виде пар ключ/значение (например, job_id = 1234, task_id = 5678). BigQuery может поддерживать это красиво с повторяющимися полями типа RECORD:
{'fields':
[
{
"mode": "NULLABLE",
"name": "timestamp",
"type": "TIMESTAMP"
},
{
"mode": "REPEATED",
"name": "tag",
"type": "RECORD",
"fields":
[
{
"name":"name",
"type":"STRING"
},
{
"name":"value",
"type":"STRING"
},
{
"mode": "NULLABLE",
"name": "measurement_1",
"type": "FLOAT"
},
{
"mode": "NULLABLE",
"name": "measurement_2",
"type": "FLOAT"
},
{
"mode": "NULLABLE",
"name": "measurement_3",
"type": "FLOAT"
},
]
},
]
}
Это прекрасно работает для хранения данные и даже отлично работает для запроса, если мне нужно только для фильтрации комбинации с одним ключ/значение
SELECT measurement_1 FROM measurements
WHERE tag.name = 'job_id' AND tag.value = '1234'
Однако мне также нужно иметь возможность комбинировать наборы тегов в выражениях запроса, и я не могу заставить эту работу работать. Например, этот запрос не возвращает результат
SELECT measurement_1 FROM measurements
WHERE tag.name = 'job_id' AND tag.value = '1234'
AND tag.name = 'task_id' AND tag.value = '5678'
Вопросы: Можно ли сформулировать запрос, чтобы сделать то, что я хочу с помощью этой схемы? Каков рекомендуемый способ привязать этот тип данных переменных к другой фиксированной схеме в Big Query?
Благодарим за помощь или предложение!
Примечание. Если вы думаете, что это похоже на большое исправление для InfluxDB, это потому, что я до сих пор использую это. По-видимому, непреодолимой проблемой является количество серийной мощности в моем наборе данных, поэтому я ищу альтернативы.
Зачем нужно указывать python, pandas и временные ряды? – Kartik
Важно, что вы можете отметить принятый ответ, используя отметку слева от опубликованного ответа ниже голосования. см. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work#5235, почему это важно. Также важно проголосовать за ответ. Голосовые ответы полезны. Есть еще ... Вы можете проверить, что делать, когда кто-то отвечает на ваш вопрос - http://stackoverflow.com/help/someone-answers. –