[英]How to upload multiple files to Google Cloud Storage in a single call using Java API?
[英]how to get multiple files from cloud storage to big query using java api
我在云存储中有数据,我想将数据传输到大查询并获取统计信息。 目前我正在使用 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 上看到了一些关于获取存储桶内容的文档,但不仅仅是存储桶内的一个文件夹。 这个答案中有类似的东西。 我在 Java 中使用 GAE。
BigQuery API 的sourceUris方法要求您单独列出每个源 URI(无法提供单个 Google Cloud Storage 存储分区 URI)。
但是,是的,您可以使用 Google Cloud Storage API 提供对象 URI 列表。 提供一个prefix
参数来过滤结果列表。
请注意,您可以在单个加载作业中包含的最大文件数为 500(每个加载请求的最大数据量为 1Tb - 请参阅BigQuery 配额页面)。
BigQuery APIs 有一个属性:configuration.load.sourceUris[],它是一个可以包含一个或多个文件的数组。 名称必须是“完全限定名称,例如:gs://mybucket/myobject.csv”
有关更多信息,请查看: https : //developers.google.com/bigquery/docs/reference/v2/jobs
所以,正如迈克尔所说:“使用 Google Cloud Storage API 提供对象 URI 列表。提供前缀参数来过滤结果列表。”
然后将文件名放在作业的 sourceUris 数组中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.