Для нашей аналитики почти в реальном времени данные будут перенаправляться в pubsub, а Apache конвейер потока данных луча будет обрабатывать, сначала записывая в bigquery, а затем выполнять агрегированную обработку, снова считывая из bigquery, а затем сохраняя агрегированные результаты в Hbase для OLAP. Вычисление куба.
Вот пример функции ParDo, которая используется для извлечения записи из bigquery
String eventInsertedQuery="Select count(*) as usercount from <tablename> where <condition>";
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
QueryJobConfiguration queryConfig
=QueryJobConfiguration.newBuilder(eventInsertedQuery).build();
TableResult result = bigquery.query(queryConfig);
FieldValueList row = result.getValues().iterator().next();
LOG.info("rowCounttt {}",row.get("usercount").getStringValue());
bigquery.query занимает около 4 секунд. Есть предложения по улучшению? Поскольку это аналитика, близкая к реальной, эта временная длительность недопустима.