Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java appengine中将大查询结果追加到现有表_Java_Google App Engine_Google Bigquery_Google Cloud Platform - Fatal编程技术网

在java appengine中将大查询结果追加到现有表

在java appengine中将大查询结果追加到现有表,java,google-app-engine,google-bigquery,google-cloud-platform,Java,Google App Engine,Google Bigquery,Google Cloud Platform,基本上,我希望将bigquery中的查询结果附加到现有的大查询表中,而无需对结果进行迭代。 Bigquery结果出现在列表中 BigqueryinsertAll()需要一个TableDataInsertAllRequest方法,该方法具有.setRows()方法,但该方法仅采用列表,因此我必须迭代列表,但由于我查询的结果包含许多行,因此效率低下。 那么如何在查询中配置目标表呢?看看API的属性 特别是--指定目标表已存在时发生的操作。在您的情况下,您应该使用-WRITE\u APPEND查看AP

基本上,我希望将bigquery中的查询结果附加到现有的大查询表中,而无需对结果进行迭代。
Bigquery结果出现在
列表中

Bigquery
insertAll()
需要一个
TableDataInsertAllRequest
方法,该方法具有
.setRows()
方法,但该方法仅采用
列表,因此我必须迭代
列表
,但由于我查询的结果包含许多行,因此效率低下。

那么如何在查询中配置目标表呢?

看看API的属性

特别是--指定目标表已存在时发生的操作。在您的情况下,您应该使用-WRITE\u APPEND查看API的属性


特别是--指定目标表已存在时发生的操作。在你的情况下,你应该使用-WRITE_APPEND

谷歌支持给了我答案。通过使用异步查询,可以如下所示设置目标表

JobConfigurationQuery queryConfig = new JobConfigurationQuery().setQuery(<querySql>);
queryConfig.setDestinationTable(<destination_table>);
queryConfig.setWriteDisposition("WRITE_APPEND");
Job job = new Job().setConfiguration(new JobConfiguration().setQuery(queryConfig));

bigquery.jobs().insert(projectId, job).execute();
jobconfigurationqueryqueryconfig=newjobconfigurationquery().setQuery();
queryConfig.setDestinationTable();
queryConfig.setWriteDisposition(“WRITE_APPEND”);
Job Job=new Job().setConfiguration(new JobConfiguration().setQuery(queryConfig));
bigquery.jobs().insert(projectId,job.execute();

谷歌支持太棒了

谷歌支持给了我答案。通过使用异步查询,可以如下所示设置目标表

JobConfigurationQuery queryConfig = new JobConfigurationQuery().setQuery(<querySql>);
queryConfig.setDestinationTable(<destination_table>);
queryConfig.setWriteDisposition("WRITE_APPEND");
Job job = new Job().setConfiguration(new JobConfiguration().setQuery(queryConfig));

bigquery.jobs().insert(projectId, job).execute();
jobconfigurationqueryqueryconfig=newjobconfigurationquery().setQuery();
queryConfig.setDestinationTable();
queryConfig.setWriteDisposition(“WRITE_APPEND”);
Job Job=new Job().setConfiguration(new JobConfiguration().setQuery(queryConfig));
bigquery.jobs().insert(projectId,job.execute();

谷歌支持太棒了

但是你已经收到了这个结果的列表。加载到内存中。我是说,你在找什么优化?这不是一个流优化是我甚至不必在查询bigquery时通过设置目标表将行加载到内存中。这在异步查询中是可能的。哦,我明白了。我只是觉得您正在寻找表附件的优化,但您已经收到了作为列表的结果。加载到内存中。我是说,你在找什么优化?这不是一个流优化是我甚至不必在查询bigquery时通过设置目标表将行加载到内存中。这在异步查询中是可能的。哦,我明白了。我只是觉得您正在寻找表appendor的优化,看起来这正是我的答案:o)是的,但这个答案特别适用于BigQueryJavaAPI包装器;)看起来这正是我的答案:o)是的,但这个答案特别适用于BigQueryJavaAPI包装器;)