首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当模式不断变化时,如何使用Python在Bigquery中创建表?

当模式不断变化时,如何使用Python在Bigquery中创建表?
EN

Stack Overflow用户
提问于 2017-07-11 14:28:28
回答 1查看 1.1K关注 0票数 2

我的数据源是基于第三方工具中发生的事件。customer.createdcustomer.updatedcustomer.plan.updated。每个事件都有不同的json模式。甚至可能是相同的事件,例如:customer.updated可能有与以前的customer.updated事件不同的模式。

我计划将这些数据加载到BigQuery中,但似乎BigQuery不支持动态模式。我正在构建一个数据仓库,并希望将与客户相关的所有事件存储在同一个表中。

bigquery是这类数据的正确工具吗?对于这种类型的数据,GCP、bigtable//cloud等还有其他更好的选择吗?其中一个要求是,如果可能的话,非技术人员可以轻松地查询数据,他们可以执行简单的selectjoin查询。

EN

Stack Overflow用户

发布于 2017-07-11 20:06:09

当您可以将数据放在定义良好的列中时,您将在BigQuery中获得最好的结果,但如果只将JSON对象存储为字符串,也会得到很好的结果。

例如,看看https://www.githubarchive.org/是如何做到的:

  • GitHub存档存储许多类型的GitHub事件。它们中的大多数都具有相同的属性集,因此我们可以将它们存储在预定义的列中。
  • 对于每种类型的事件,有些GitHub事件模式是不同的,而且它们也会随着时间的推移而不断变化。我们不处理模式更改,而是将它们存储为JSON字符串,并实时查询它们。

代码语言:javascript
复制
#standardSQL
SELECT JSON_EXTRACT_SCALAR(payload, '$.pull_request.base.repo.language') lang
  , COUNT(*) c 
FROM `githubarchive.month.201612`
WHERE type='PullRequestEvent'
GROUP BY lang 
HAVING lang IS NOT null
ORDER BY c DESC
LIMIT 10

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45037415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档