如何在不更改转换存储库中的语义版本的情况下强制特定数据集以非增量方式构建?
有关我们特定用例的详细信息:
我们有大约 50 个数据集,由单个增量 python 通过手动注册和 for 循环定义。此转换的输入可以是 100 到 10000 个小 gzip 文件,因此当运行较大的数据集时,它最终会将所有这些分区为少数几个大小合适的 parquet 文件,这对于我们的下游工作来说是完美的。但是,在此作业已增量运行数月后(文件每小时到达),输出中还会有大量小型 parquet 文件。我们希望能够强制对单个数据集进行快照构建,而不必改变转换的语义版本,这将触发所有 50 个数据集的快照构建。这可能吗?
我了解一种潜在的解决方法可能是在转换本身中定义“最大输出文件”,读取现有输出中的当前文件数,并在当前超过最大值时强制执行快照。然而,由于这个管道是时间敏感的(需要在一个小时内运行),这会给管道带来一定程度的不可预测性,因为快照构建需要更长的时间。我们希望能够将这些完整的快照构建设置为每月在周末运行一次。