Perl中的BigQuery:将查询数据追加到表中

Perl中的BigQuery:将查询数据追加到表中,perl,google-bigquery,Perl,Google Bigquery,我正在使用Perl驱动BigQuery,并尝试插入一个作业,该作业将根据查询结果填充一个表。我得到的错误是“缺少必需的参数”。这是哪个参数?(如果错误消息更具体一些就好了) 代码如下: $response = $bq->request( resource => 'jobs', method => 'insert', content => { configuration => { query => { query =&g

我正在使用Perl驱动BigQuery,并尝试插入一个作业,该作业将根据查询结果填充一个表。我得到的错误是“缺少必需的参数”。这是哪个参数?(如果错误消息更具体一些就好了)

代码如下:

$response = $bq->request(
resource => 'jobs',
method => 'insert',
content => {
    configuration => { 
        query => {
        query => $query,
        destinationTable => {
            project_id => $project_id,
            dataset_id => $dataset_id,
            tableId => $table_id,
        },
        createDisposition => "CREATE_IF_NEEDED",
        writeDisposition => "WRITE_APPEND",
        allowLargeResults =>"TRUE",
        },
    },
},
async => $async,
);
请注意,如果跳过destinationTable部分,代码可以正常工作,但会将结果放入临时表中。所以这是可行的:

$response = $bq->request(
resource => 'jobs',
method => 'insert',
content => {
    configuration => { 
        query => {
        query => $query,
        createDisposition => "CREATE_IF_NEEDED",
        writeDisposition => "WRITE_APPEND",
        },
    },
},
async => $async,
);
有什么想法吗?不要因为这是Perl而感到不快,它的行为方式与Python相同,只是格式不同。

试试:

    destinationTable => {
        projectId => $project_id,
        datasetId => $dataset_id,
        tableId => $table_id,
    },

你有没有尝试过添加结果?另一个选项—检查命名—projectId、datasetId;FlattResults是可选的,因此最近最有可能的猜测是,您要么希望将
destinationTable
中的字段一致地以驼峰形式显示为
projectId
datasetId
tableId
,要么一致地以下划线形式显示为
project\u id
,等等。谢谢;就这样。我一贴出来就意外地发现了它。这只花了我3个小时的沮丧&#$&!$%。我对谷歌甚至没有提供像样的错误信息感到非常恼火。忘记编码示例。明白:o)如果你认为答案回答了你的问题(我认为答案是正确的),那么你仍然可以投票或接受答案,这样以后用户就可以看到正确的答案。不过完全取决于你!感谢您的更新我想知道我是否也可以这样做,即,将输出指向目标表,如果我只是列出表而不是查询的话。区别在于,list命令是免费的。。。