如何缩小数据流作业?

时间:2016-06-08 02:57:42

标签: google-cloud-dataflow

我正在从单个数据集计算大量前n个报告。我的小规模测试工作正常。但是,当我增加前n个报告的数量时,该作业被拒绝为太大。

作业JSON(通过--dataflowJobFile)是19 MB。

此实验适用于200个前n个报告,甚至不包括所有报告类型。在生产规模上,我们将处理来自多个数据集的10,000多个前n个报告。

运行并发作业是不切实际的,因为工作单元需要以笨拙的方式拆分,并发作业限制只有25个。

我可以与GCDF团队私下分享工作ID和工作档案。

1 个答案:

答案 0 :(得分:1)

您要做的是将尺寸问题转移到您的数据中,而不是移动到管道的大小。来自"控制平面"如果您愿意,可以访问"数据平面"

对于要在其上运行报告的数据的每个子集,请为该子集分配密钥。假设每个报告都是按键,您将要构建包含原始密钥和报告密钥的复合密钥。然后,您可以在单个Dog上将所有top n 报告(针对特定的 n )计算为import matplotlib matplotlib.use('TkAgg') import pylab import matplotlib.pyplot as plt from matplotlib import rc plt.clf() plt.rc('text', usetex=True) plt.rcParams["figure.figsize"] = (8, 5) plt.rc('font', **{'family':'serif', 'serif':['Computer Modern Roman'], 'size': 16}) plt.axis("off") plt.text(0.5, 0.5, "Maths $e = mc^2$")

假设您有针对不同阈值的多个top n 报告,例如top-10,top-100等,以及 n 与子集之间的关系你的数据太复杂了,不能运行最大的数据,修剪得到其他数据。然后你可以为每个 n 运行一个单独的变换(仍然不应该太多)或组装一个composed combine来计算它们。