【问题标题】:how to get multiple files from cloud storage to big query using java api如何使用java api从云存储中获取多个文件到大查询
【发布时间】:2012-11-11 03:18:02
【问题描述】:

我在云存储中有数据,我想将数据传输到大查询并获取统计信息。 目前我正在使用 JobConfigurationLoad 来获取单个文件,这里是代码示例:

JobConfigurationLoad jobconfigurationqLoad = new JobConfigurationLoad();
jobconfigurationqLoad.setSkipLeadingRows(1); // First line are columns names
    jobconfigurationqLoad.setSourceUris(Lists.newArrayList("gs://my_app/folder_name/test_file.csv"));
jobconfigurationqLoad.setWriteDisposition("WRITE_APPEND");
jobconfigurationqLoad.setEncoding(PlatformConstants.DEFAULT_ENCODING);
jobconfigurationqLoad.setCreateDisposition("CREATE_IF_NEEDED");
jobconfigurationqLoad.setDestinationTable(tableReference);
**tableReference = my table in big query
jobconfigurationqLoad.setSchemaInline("field1:STRING,field2:STRING");

// JobConfiguration
JobConfiguration jobConfiguration = new JobConfiguration();
jobConfiguration.setLoad(jobconfigurationqLoad);

// JobReference
JobReference jobreference = new JobReference();
jobreference.setProjectId(PROJECT_ID);

// Job
Job insertJob = new Job();
insertJob.setConfiguration(jobConfiguration);
insertJob.setJobReference(jobreference);

在“setSourceUris”中,我只想放置文件夹并获取所有存在的文件,但这似乎不起作用。 我在google api中看到了一些关于获取存储桶内容的文档,但不仅仅是存储桶内的一个文件夹。 在这个answer 中有类似的东西。 我在 java 中使用 GAE。

【问题讨论】:

    标签: java google-app-engine google-bigquery google-cloud-storage


    【解决方案1】:

    BigQuery API 具有属性:configuration.load.sourceUris[] 这是一个可以包含一个或多个文件的数组。 名称必须是“完全限定名称,例如:gs://mybucket/myobject.csv”

    有关更多信息,请查看: https://developers.google.com/bigquery/docs/reference/v2/jobs

    所以,正如迈克尔所说: " 使用 Google Cloud Storage API 到 provide a list of object URIs。提供前缀参数来过滤结果列表。"

    然后将文件名放入作业的 sourceUris 数组中。

    【讨论】:

      【解决方案2】:

      BigQuery API 的 sourceUris 方法要求您单独列出每个源 URI(无法提供单个 Google Cloud Storage 存储桶 URI)。

      但是,是的,您可以使用 Google Cloud Storage API 到 provide a list of object URIs。提供prefix 参数来过滤结果列表。

      请注意,您可以在单个加载作业中包含的最大文件数量为 500(每个单个加载请求的最大数据量为 1Tb - 请参阅BigQuery quota page)。

      【讨论】:

      • 你是对的,除了第一部分。看我的回答。无论如何,谢谢,你的回答确实帮助了我。
      猜你喜欢
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2018-12-13
      • 2021-05-23
      • 2019-08-08
      • 2021-12-16
      • 1970-01-01
      相关资源
      最近更新 更多