Google bigquery 数据处理-BigQuery与数据处理&x2B;大查询

Google bigquery 数据处理-BigQuery与数据处理&x2B;大查询,google-bigquery,Google Bigquery,我们在BigQuery表中有大量(100亿到4000亿)的原始数据。我们需要处理这些数据,以转换和创建星型模式表(可能是bigquery中的另一个数据集)形式的数据,然后atscale可以访问这些数据 需要在以下两个选项之间权衡利弊: 1。在BigQuery中编写复杂SQL,从源数据集读取数据,然后加载到目标数据集(由Atscale使用)。 2.从Dataproc使用PySpark或MapReduce和BigQuery连接器,然后将数据加载到BigQuery目标数据集 转换的复杂性包括以不同粒度

我们在
BigQuery
表中有大量(100亿到4000亿)的原始数据。我们需要处理这些数据,以转换和创建星型模式表(可能是bigquery中的另一个数据集)形式的数据,然后atscale可以访问这些数据

需要在以下两个选项之间权衡利弊:
1。
BigQuery
中编写复杂SQL,从源数据集读取数据,然后加载到目标数据集(由Atscale使用)。
2.
Dataproc
使用
PySpark
MapReduce
BigQuery
连接器,然后将数据加载到
BigQuery
目标数据集

转换的复杂性包括以不同粒度连接多个表,使用分析功能获取所需信息等。

目前,该逻辑在vertica中使用多个临时表实现,以加快处理速度,我们希望在GCP(大查询或数据处理)中重新编写该处理逻辑,除此之外,您还可以使用时间范围装饰器以增量方式运行它们。请注意,将数据来回传送到BigQuery需要大量的时间和资源。当运行BigQuery时,SQL数据从一开始就不会离开BigQuery,并且您已经拥有了所有原始日志。因此,只要您的问题可以通过一系列SQL解决,我相信这是最好的方法

我们搬出了Vertica reporting集群,去年成功地重写了ETL,选项1

大约一年前,我编写了POC,比较了数据流和一系列BigQuery SQL作业,这些作业是由允许大规模SQL并行化的工作流编排的

我花了整整一个月的时间用Java编写数据流,其中包含200多个数据点和复杂的转换,每次调试能力都很差。 用一周的时间使用一系列SQL和 云函数,用于对临时表进行聚类和并行化。 我知道从那时起,CloudDataFlow有了很大的改进,但有时
数据流仅在百万级上运行良好,在数十亿条记录输入下从未完成(主要原因是洗牌基数在数十亿条记录下几乎没有变化,每条记录有200多列)。SQL方法在2小时内为十几亿美元生成了所有必需的聚合。使用potens.io进行调试和最简单的故障排除也有很大帮助

我成功地使用了选项1:Big Query非常能够使用SQL运行非常复杂的转换,除此之外,您还可以使用时间范围修饰符以增量方式运行它们。请注意,将数据来回传送到BigQuery需要大量的时间和资源。当运行BigQuery时,SQL数据从一开始就不会离开BigQuery,并且您已经拥有了所有原始日志。因此,只要您的问题可以通过一系列SQL解决,我相信这是最好的方法

我们搬出了Vertica reporting集群,去年成功地重写了ETL,选项1

大约一年前,我编写了POC,比较了数据流和一系列BigQuery SQL作业,这些作业是由允许大规模SQL并行化的工作流编排的

我花了整整一个月的时间用Java编写数据流,其中包含200多个数据点和复杂的转换,每次调试能力都很差。 用一周的时间使用一系列SQL和 云函数,用于对临时表进行聚类和并行化。 我知道从那时起,CloudDataFlow有了很大的改进,但有时
数据流仅在百万级上运行良好,在数十亿条记录输入下从未完成(主要原因是洗牌基数在数十亿条记录下几乎没有变化,每条记录有200多列)。SQL方法在2小时内为十几亿美元生成了所有必需的聚合。使用potens.io进行调试和最简单的故障排除也有很大帮助

BigQuery和
DataProc
都可以处理大量复杂数据

我认为你应该考虑两点:

  • 您希望在数据中执行哪种转换

    <> P>两个工具都可以进行复杂的转换,但必须考虑<代码> PySpabs<代码>将为您提供完整的编程语言处理能力,而<代码> BigQue>代码>将为您提供SQL转换和一些脚本结构。如果只有SQL和简单脚本结构可以处理您的问题,
    BigQuery
    是一个选项。如果您需要一些复杂的脚本来转换数据,或者如果您认为将来需要构建一些涉及转换的额外功能,
    PySpark
    可能是一个更好的选择。您可以找到BigQuery脚本参考

  • 定价

    BigQuery
    DataProc
    有不同的定价系统。在
    BigQuery
    中,您需要关心在查询中处理的数据量,而在
    DataProc
    中,您需要关心集群的大小和VM的配置,集群运行的时间以及一些其他配置。您可以找到
    BigQuery
    DataProc
    的定价参考。此外,您还可以在中模拟定价

  • 我建议您在这两种工具中为您的项目创建一个简单的POC,以查看哪种工具对您的成本效益最好


    我希望这些信息能帮助您。

    无论是
    BigQuery
    还是
    DataProc
    都可以处理大量复杂数据

    我认为你应该考虑两点:

  • 您希望在数据中执行哪种转换

    两个工具都可以进行复杂的转换,但必须考虑<代码> PySpabs<代码>将为您提供一个完整的PR。