Записи начались в файлах AVRO, которые были созданы ежедневно со следующей схемой. Существует 20 различных типов атрибутов, хранящихся в записях «attribute_key» и «attribute_value», метка времени и device_id также включены в каждое измерение.агрегирование и усреднение данных на 200 млрд записей
"fields" : [
{"type":"string", "name":"device_id"},
{"type":"string", "name":"record_date"},
{"type":"string", "name":"attribute_key"},
{"type":"string", "name":"attribute_value"}]
Я смог взять ежедневные файлы и загрузить их в месяц разделенных таблиц в bigquery.
device_attributes201501
device_attributes201502
device_attributes201503
device_attributes201504
device_attributes201505
device_attributes201506
device_attributes201507
device_attributes201508
device_attributes201509
device_attributes201510
device_attributes201511
device_attributes201512
Моя проблема заключается в два раза,
Мне нужно создать таблицу, состоящую всего из уникальных device_ids, собранных через все время, и последнего значения атрибутов для каждого типа значения.
device_id, record_date, attribute_key, attribute_value
abc123 2015-10-11 attribute_1 5
abc123 2015-11-11 attribute_1 5
abc123 2015-12-11 attribute_1 10
abc123 2015-10-11 attribute_1 0
abc456 2015-10-11 attribute_1 0
abc789 2015-10-11 attribute_1 0
abc123 2015-11-11 attribute_1 0
abc456 2015-11-11 attribute_1 0
abc789 2015-11-11 attribute_1 6
abc123 2015-10-11 attribute_2 blue
abc123 2015-11-11 attribute_2 red
abc123 2015-12-11 attribute_2 red
abc456 2015-12-11 attribute_2 blue
abc789 2015-12-11 attribute_2 green
Для некоторых атрибутов также необходимо вычислить еженедельное, ежемесячное и 90-дневное среднее значение. (Attribute_3 средних образцов собирали)
device_id, last_update, attribute_1, attribute_2
abc123 2015-12-11 6 red
abc456 2015-12-11 0 blue
abc789 2015-12-11 3 green
Мне интересно, как лучше взять принять это, и я понятия не имею, куда идти отсюда. Теперь данные в bigquery, у меня есть доступ к полному набору инструментов google clould ... например, поток данных или что-то еще.
Данные изначально были в ведро S3, поэтому я могу обработать его любым из решений на AWS.
Я просто не знаю, какой самый умный способ сделать это.
SQL-запрос BigQuery должен быть хорошим для того, что вы хотите сделать. У вас были проблемы с этим подходом? –
+ один для разбивки его на SQL в BigQuery. –
BigQuery, потому что вам не нужно много кода, чтобы выполнять базовую агрегацию – softwarenewbie7331