繁体   English   中英

在 Dataflow 中从 BigQuery 写入云存储时如何设置文件大小而不是分片数

How to set file size instead of number of shards when writing from BigQuery to Cloud Storage in Dataflow

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

目前使用 Dataflow 从 BigQuery 读取表数据,并使用一定数量的分片写入 Cloud Storage。

//Read Main Input
PCollection<TableRow> input = pipeline.apply("ReadTableInput",
    BigQueryIO.readTableRows().from("dataset.table"));

// process and write files
input.apply("ProcessRows", ParDo.of(new Process())
    .apply("WriteToFile", TextIO.write()
        .to(outputFile)
        .withHeader(HEADER)
        .withSuffix(".csv")
        .withNumShards(numShards));

为了管理文件大小,我们估计了将文件保持在一定大小下所需的总分片数。

有没有办法代替设置分片数量,设置文件大小并让分片是动态的?

1 个回复

按照设计,这是不可能的。 如果您深入了解 Beam 的核心,您会以编程方式定义执行图,然后运行它。 该过程在同一节点或多个节点/VM 上是大规模并行的( ParDo表示“并行执行”)。

在这里,分片的数量只是并行工作以写入文件的“作者”的数量。 然后 PCollection 将被拆分为所有工作人员写入。

大小是非常可变的(例如消息的大小,文本编码,压缩与否以及压缩因子,......)并且 Beam 不能依赖它来构建它的图形。

3 在将数据从bigquery导出到Google Cloud Storage时控制文件大小

我正在将大型数据集从bigquery导出到Goolge云存储为压缩格式。 在Google云存储中,我有文件大小限制(每个文件最大文件大小为1GB)。 因此,我在导出时使用拆分和同伴技术拆分数据。 示例代码如下: 该代码将大型数据集拆分并压缩为.gz格式,但它返回的多个压缩文件的大小 ...

4 在 Dataflow 管道中写入 BigQuery 时捕获失败

我有一个 Dataflow 管道从 PubSub 主题读取事件数据。 收到消息时,我会执行一个转换步骤,以使事件数据适合我想要的 BigQuery 架构。 但是,如果我创建的输入不符合模式,我就会遇到问题。 显然,它会无限重试写入 BigQuery: 目前我正在做很多手动检查输入是否符合模式,但 ...

5 在Python中从视频流写入数据时执行write()时如何限制文件大小

我正在提取未知长度的视频流,并使用Python中的.write()将该文件写入光盘。 我的基本需求是,始终将2-3分钟的视频滚动记录到该文件中,而VS会使该文件增长到很大的大小。 另一方面,我正在使用FFMPEG从正在写入的.dat文件中抓取剪辑。 或者,如果您知道一种方法,那么我可 ...

6 即使将区域设置为 BigQuery 数据集的区域,Dataflow 作业也无法写入不同区域的 BigQuery 数据集

我们正在编写一个 Dataflow 作业来将数据从存储桶中的JSON写入 BigQuery 数据集。 存储桶和 BigQuery 数据集都在区域X 。 但是,数据流端点在区域X不可用。 最近的区域是Y 。 因此,我已将 Dataflow 作业区域设置为Y ,但将区域设置为X 。 因此,所有计算实例都 ...

7 使用批处理DataFlow作业中数据中存在的日期来写入分区的bigQuery的日期

我有许多文本文件,这些文件的数据要从以批处理模式运行的DataflowPipelineRunner导入到按日期分区的BigQuery表中。 我不想在运行时插入到当天的分区中,而是要根据每一行中提到的日期插入到分区中。 我正在下面的程序中执行,但收到​​错误消息“ BigQuery.IO.Wr ...

8 通过本地DataFlow作业写入BigQuery

我在计算机上本地设置了DataFlow管道。 它需要一个装满JSON对象的示例新行分隔文件,执行此操作,并在TableRow格式化最终结果。 是时候写BigQuery了,我不知道如何进行身份验证。 在Dataflow的文档或示例中,我找不到任何使用本地管道写入BigQuery的示例。 如 ...

9 使用 Dataflow 的 DLP 从 GCS 读取并写入 BigQuery - 只有 50% 的数据写入 BigQuery

我最近启动了一个 Dataflow 作业,从 GCS 加载数据,并通过 DLP 的标识模板运行它,并将屏蔽数据写入 BigQuery。 我找不到 Google 提供的批处理模板,因此使用了流式处理模板(参考: 链接)。 我看到只有 50% 的行被写入目标 BigQuery 表。 即使管道处于运行状态 ...

10 Elasticsearch分片文件大小必须小于JVM大小

Elsticsearch博客文章指出,绝对最大分片大小应在30-32BG左右: https://qbox.io/blog/optimizing-elasticsearch-how-many-shards-per-index 无论如何,能否就为什么存在这样的限制分享一些见解? 分片大 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM