如何在GCS中使用相同架构附加文件?

时间:2018-11-26 19:01:03

标签: node.js google-cloud-storage

有没有办法在GCS中附加两个文件,假设一个文件已满   加载,第二个文件是增量加载。那我们可以追加什么   两个吗?
  其次,使用gsutil compose将追加两个文件,包括属性   名称。因此,在最终文件中,我需要两个文件的数据。

1 个答案:

答案 0 :(得分:0)

您可以在Google Cloud Shell中附加两个单独的文件using compose,然后将输出文件重命名为第一个文件,如下所示:

gsutil compose gs://bucket/obj1 [gs://bucket/obj2 ...] gs://bucket/obj1

此命令用于并行上传,其中您将一个较大的对象文件划分为较小的对象。它们被上传到Google Cloud Storage,然后您可以附加它们以获取原始文件。您可以在Composite Objects and Parallel Uploads.

上找到更多信息。

我提出了两种可能的解决方案:

Google Cloud Function解决方案

我要使用的选项是使用Cloud Function。进行如下操作:

  1. 创建一个空的存储桶,如append_bucket。
  2. 上传第一个文件。
  3. triggered by new uploaded files上创建一个Cloud Function 桶。
  4. 上传第二个文件。
  5. 读取第一个和第二个文件(您必须先download them as string)。
  6. 进行追加操作。
  7. 将结果上传到存储桶中。

Google Dataflow解决方案

您也可以使用Dataflow for BigQuery来做到这一点(请记住,它仍处于测试阶段)。

  1. 创建BigQuery数据集和表。
  2. 创建一个数据流实例,从模板“云存储文本”到BigQuery。
  3. 使用逻辑来创建文本的Javascript文件。
  4. 将Json格式的文件上传到存储桶中。
  5. 数据流将读取Json文件,执行Java代码并将新数据附加到BigQuery数据集。
  6. 最后,将BigQuery查询结果导出到Cloud Storage。