【问题标题】:pub/sub on daily table每日餐桌上的 pub/sub
【发布时间】:2020-04-09 05:19:45
【问题描述】:

我希望实现从我的 AppEngine 到 Bigquery 的 pub/sub&Dataflow 连接 因为我试图了解如何准确定义它

我的问题是我有一个每日表,Bigquery 上的一个新表每天打开一次, 当我尝试设置数据流时,它只给了我一个选择一个表的选项

【问题讨论】:

  • 你能详细说明你想要做什么吗?您想每天从 BigQuery 或 BigQuery 构建管道并将其保存在新表中吗?我需要更好的理解,这样我才能进一步帮助你。
  • 我今天将大约 1000 个事件记录流式传输到 bigquery,为了更好地管理服务,我决定使用 pub/sub 和来自服务器的数据流流式传输数据意味着服务器 -> pub/sub -> dataflow -> bigquery 现在我们今天构建大查询的方式是我们每天打开一个新表,例如 table20200409 现在当你设置一个新的数据流时,你需要定义将获取数据的表, 但是我们的表每天都在变化,只有表前缀可用

标签: google-cloud-dataflow google-cloud-pubsub


【解决方案1】:

根据您在评论部分所说的,您可以使用Daily Sharded tablesTime/day Partitioned tables

根据documentation,您可以流式传输两种类型。但是,我必须指出一些差异,您必须考虑。

时间/日期分区表:

  • 这些表在内部分为段/分区,更易于管理和提高查询性能。您可以在here 获得更多信息。

  • quotas,比如每个表的最大分区数,你必须检查它们是否满足你的需求。

  • 查询 Day/Time 分区表时,您可以使用伪列 _PARTITIONTIME 或 _PARTITIONDATE,每个都有自己的格式,您可以阅读更多here

  • 您可以使用insertAll 请求流式传输各个行。

  • 根据documentation,分区表的性能优于分片表,因为您不需要元数据的副本并验证每个表的权限。

每日分片表:

  • 没有可用于管理/查询数据库的伪列。

  • 您可以创建的表数量没有限制,您可以阅读有关配额的更多信息here

  • create daily tables using templates,例如 <targeted_table_name> + <templateSuffix>,都具有相同的架构。

如果您选择分区表,您可以创建一个日期分区表并流入其中。不过,如果您更喜欢分片表,您可以使用模板来创建表。

此外,我鼓励您阅读更多关于here 中每一个的差异和特征的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-13
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    相关资源
    最近更新 更多