【问题标题】:Ingesting Google Analytics data into S3 or Redshift将 Google Analytics 数据提取到 S3 或 Redshift
【发布时间】:2019-02-27 17:37:18
【问题描述】:

我正在寻找将 Google Analytics 数据(以及历史数据)提取到 Redshift 的选项。欢迎任何有关工具、API 的建议。我在网上搜索并发现 Stitch 作为 ETL 工具之一,如果您有,请帮助我更好地了解此选项和其他选项。

【问题讨论】:

  • 免费账户还是GA360?如果是后者,问题可能更多是将 BigQuery 连接到 Redshift(API 数据有些有限,从 GA 获取完整数据的唯一选择是 BigQuery 集成,它仅在付费 GA 版本中可用)。
  • 我们有 GA360,那么我们如何将 BigQuery 连接到 Redshift 或 S3?
  • 另外,我们可以将 Google BigQuery 直接连接到 Tableau 吗?

标签: google-analytics amazon-redshift etl google-analytics-firebase data-ingestion


【解决方案1】:

Google Analytics 有一个 API (Core Reporting API)。这对于获取偶尔的 KPI 很有用,但由于 API 限制,它不适合导出大量历史数据。

对于大数据转储,最好使用 BigQuery 的链接(“链接”,因为我想避免使用“集成”这个词,这意味着比您实际拥有的控制级别更高)。

设置 BigQuery 的链接相当简单 - 您在 Google Cloud Console 中创建一个项目,启用结算(BigQuery 需要付费,它不属于 GA360 合同的一部分),将您的电子邮件地址添加为 BigQuery Owner “IAM&Admin”部分,转到您的 GA 帐户并在 GA Admin 部分的“Property Settings/Product Linking/All Products/BigQuery Link”中输入 BigQuery 项目 ID。这里描述了这个过程:https://support.google.com/analytics/answer/3416092

您可以在标准更新和流式更新之间进行选择 - 后者需要额外付费,但可以为您提供近乎实时的数据。前者每八小时每天更新三次 BigQuery 中的数据。

导出的数据不是原始数据,这已经是会话化的(即,虽然每次点击都会得到一行,但该点击的流量归因将是基于会话的)。

您将支付三种不同的费用 - 一种用于导出到 BigQuery,一种用于存储,另一种用于实际查询。此处记录了定价:https://cloud.google.com/bigquery/pricing

定价取决于地区等。在涉及法律事务时,存储数据的区域可能也很重要 - 例如。如果您必须遵守 GDPR,您的数据应存储在欧盟。确保您获得正确的区域,因为在区域之间移动数据很麻烦(您需要将表导出到 Google Cloud 存储并在适当的区域重新导入它们)并且有点昂贵。

您不能只删除数据并进行新的导出 - 在您第一次导出时,BigQuery 将回填过去 13 个月的数据,但每次视图只会执行一次此操作。所以如果你需要历史数据最好把它弄好,因为如果你删除了 BQ 中的数据,你将无法取回它。

我实际上对 Redshift 了解不多,但根据您的评论,您希望在 Tableau 中显示数据,并且 Tableau 直接连接到 BigQuery。

我们使用自定义 SQL 查询将数据导入 Tableau(Google Analytics 数据存储在日常表格中,自定义 SQL 似乎是查询多个表格数据的最简单方法)。 BigQuery 有一个基于用户的缓存,只要查询不发生变化,它就会持续 24 小时,因此您无需在每次打开报表时都为查询付费。密切关注成本仍然是一个好主意 - 成本不是基于结果大小,而是取决于必须搜索以产生所需结果的数据量,所以如果您在很长一段时间内查询,也许做几个join 单个查询可能会跑到几十欧元(乘以使用查询的用户数量)。

【讨论】:

  • 非常感谢您的解释,这从我的角度清除了一切 :) 我很感激。
  • 上述方法是否有助于在 Big Query 中保留 3 年的 GA 数据?我购买 Redshift 的事实是,我们可以维护历史 3 年的数据,这些数据不会在仓库中丢失。 Big Query 会是这样吗?
  • 没有。 BigQuery 中的历史回填仅涵盖 13 个月。如果您想更进一步,您实际上必须使用 API。然而,API 只会返回聚合数据。
  • 如果我错了,请纠正我,我认为 BigQuery 就像 Redshift 而谷歌云存储就像 S3。所以如果是这种情况,我可以直接从 BigQuery 查询到 Redshift 还是必须通过这条路线:BigQuery -> Google 云存储 -> S3 -> Redshift?
  • 这是一个很好的回应。感谢您抽出宝贵时间解释您的流程,因为它有助于让您更了解您的特定用例。
【解决方案2】:

scitylana.com 有一项服务可以将 Google Analytics 免费数据传送到 S3。 您可以获得 3 年或更长时间。

提取是通过 API 完成的。架构是命中级别的,具有 100 多个维度/指标。 根据您视图中的数据量,我认为这也可以通过 GA360 完成。

【讨论】:

    【解决方案3】:

    另一种选择是使用Stitch自己的规范singer.io和相关的开源包:

    您使用它们的方式是将数据从管道传输到另一个:

    tap-google-analytics -c ga.json | target-redshift -c redshift.json
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多