0

Записи начались в файлах 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.

Я просто не знаю, какой самый умный способ сделать это.

+3

SQL-запрос BigQuery должен быть хорошим для того, что вы хотите сделать. У вас были проблемы с этим подходом? –

+0

+ один для разбивки его на SQL в BigQuery. –

+0

BigQuery, потому что вам не нужно много кода, чтобы выполнять базовую агрегацию – softwarenewbie7331

ответ

1

Надеюсь, некоторые из этих ссылок вам помогут. Создание таблицы https://cloud.google.com/bigquery/docs/tables#creating-a-table

BigQuery Web UI https://cloud.google.com/bigquery/bigquery-web-ui

Как создать таблицу из запроса (блоге от пользователя). Это позволяет предположить, что вы можете использовать BQ WebUI и указать таблицу назначения. Я не мог найти это в официальных документах, поэтому не уверен, что это работает. Если нет, вам нужно настроить API и написать немного кода, как показано в приведенном выше примере. https://chartio.com/resources/tutorials/how-to-create-a-table-from-a-query-in-google-bigquery/