Nano Hash - криптовалюты, майнинг, программирование

Разница в статистике из отчета Google Analytics и данных BigQuery в таблице Hive

У меня есть премиум-аккаунт Google Analytics, настроенный для отслеживания активности пользователей на веб-сайте и в мобильном приложении.

Необработанные данные из GA хранятся в таблицах BigQuery.

Однако я заметил, что статистика, которую я вижу в отчете GA, сильно отличается от статистики, которую я вижу при запросе таблиц BigQuery.

Насколько я понимаю, в отчетах GA отображаются сводные данные и, возможно, выборочные данные. И что необработанные данные в таблицах Bigquery — это данные на уровне сеанса/обращения.

Но я все еще не уверен, понимаю ли я причину, по которой статистика может отличаться.

Был бы очень признателен, если бы кто-нибудь разъяснил мне это.

Заранее спасибо.

ОБНОВЛЕНИЕ 1:

Я экспортировал необработанные данные из Bigquery в свой кластер Hadoop. Данные хранятся в таблице куста. Перед экспортом я сгладил все вложенные и повторяющиеся поля.

Вот запрос куста, который я выполнил для необработанных данных в таблице Hive:

SELECT
   date as VisitDate,
   count(distinct fullvisitorid) as CountVisitors,
   SUM(totals_visits) as SumVisits,
   SUM(totals_pageviews) AS PVs
FROM
   bigquerydata 
WHERE 
   fullvisitorid IS NOT NULL
GROUP BY 
   date
ORDER BY
   VisitDate DESC

A) Взяв 9 февраля в качестве даты посещения, я получаю следующие результаты от этого запроса:

i) CountVisitors= 1,074,323
ii) SumVisits= 48,990,198
iii) PVs= 1,122,841,424 

Vs

Б) Берем тот же VisitDate и получаем ту же статистику из отчета GA:

i) Users count = 1,549,757
ii) Number of pageviews = 11,604,449 (Huge difference when compared to A(iii))  

В приведенном выше запросе hive я использую какие-либо неправильные поля или неправильно обрабатываю поля? Просто пытаюсь понять, почему у меня такая разница в цифрах.

ОБНОВЛЕНИЕ 2 (по предложению @Felipe Hoffa):

Вот как я сглаживаю таблицы в своем коде Python перед экспортом результата в GCS, а затем в кластер Hadoop:

queryString = 'SELECT * FROM flatten(flatten(flatten(flatten(flatten(flatten([' + TABLE_NAME + '],hits),hits.product),hits.promotion),hits.customVariables), hits.customDimensions), hits.customMetrics)'

Я понимаю, что вы говорите о выравнивании, вызывающем повторные просмотры страниц, и каждое повторение приводит к окончательному неправильному добавлению.

Я попробовал тот же запрос (из Update1) для таблицы Bigquery вместо моей таблицы Hive. Цифры совпали с цифрами на панели инструментов Google Analytics.

Однако, если предположить, что таблица Hive - это все, что у меня есть, и в ней есть эти повторяющиеся поля из-за выравнивания. НО Могу ли я исправить свой запрос hive, чтобы он соответствовал статистике из панели инструментов Google Analytics?

Логически говоря, если повторяющиеся поля появились из-за выравнивания... не могу ли я отменить то же самое в своей таблице Hive? Если вы думаете, что я могу развернуться, у вас есть какие-либо предложения относительно того, как я могу действовать дальше?

Огромное спасибо заранее!


  • Не могли бы вы поделиться некоторыми цифрами и запросом, которые вы использовали для такого вывода. Без конкретной информации мы не знаем, написан ли запрос неправильно или происходит что-то еще. Также вы можете обратиться в платную службу поддержки. 03.03.2015
  • @ Pentium10 Приношу свои извинения за неполную информацию. Я обновил свой вопрос. Спасибо! 03.03.2015
  • Обратите внимание, что возвращаемое значение для DISTINCT является статистическим приближением и не гарантируется его точность. Кроме этого, я не вижу явного промаха. Чтение количества различных здесь cloud.google.com/bigquery/query-reference 03.03.2015

Ответы:


1

Можно ли выполнить тот же запрос в BigQuery вместо данных, экспортированных в Hive?

Мое предположение: «Данные хранятся в таблице куста. Перед экспортом я сгладил все вложенные и повторяющиеся поля». При выравнивании — повторяете ли вы просмотры страниц несколько раз, при этом каждое повторение попадает в финальное неправильное дополнение?

Обратите внимание, как данные могут дублироваться при выравнивании строк:

SELECT col, x FROM (
  SELECT "wrong" col, SUM(totals.pageviews) x
  FROM (FLATTEN ([google.com:analytics-bigquery:LondonCycleHelmet.ga_sessions_20130910], hits))
), (
  SELECT "correct" col, SUM(totals.pageviews) x
  FROM [google.com:analytics-bigquery:LondonCycleHelmet.ga_sessions_20130910]
)


col     x    
wrong   2262     
correct 249 

Обновление с учетом «обновления 2» на вопрос:

Поскольку BigQuery работает правильно, и это проблема Hive, вам следует добавить этот тег, чтобы получить соответствующие ответы.

Тем не менее, вот как я правильно дедуплицирую ранее дублированные строки с помощью BigQuery:

SELECT SUM(pv)
FROM (
  SELECT visitId, MAX(totals.pageviews) pv
  FROM (FLATTEN ([google.com:analytics-bigquery:LondonCycleHelmet.ga_sessions_20130910], hits))
  GROUP EACH BY 1
)
04.03.2015
  • Пожалуйста, проверьте мое обновление № 2 в моем вопросе выше. Спасибо. @Фелипе Хоффа 04.03.2015
  • Спасибо за оперативную помощь. Я понял, что даже с распломбированием запросов у меня были проблемы со статистикой, потому что в моей таблице куста были встроенные запятые и символы новой строки. Я мог убрать встроенные запятые, и теперь у меня действительно очень близкая статистика. Я убрал встроенные запятые, используя CSV SerDe в своем запросе улья. 07.03.2015
  • Можно ли как-то удалить эти встроенные запятые и/или новые строки на этапе, когда я экспортирую свою целевую таблицу из BigQuery в GCS? В идеале я хотел бы заменить эти встроенные запятые и новые строки пользовательскими разделителями, которые не будут неправильно анализироваться Hive при загрузке этих данных в таблицу Hive. 07.03.2015
  • Я бы сделал это другим вопросом - нужно больше контекста. 07.03.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..