【问题标题】:Big query Storage API permission issueBigquery Storage API 权限问题
【发布时间】:2022-10-24 16:03:53
【问题描述】:

我正在使用服务帐户使用 java SDK 使用大查询存储 API 将数据写入大查询,我看到以下错误。我是否需要为服务帐户提供任何其他角色?

错误:00:44:38 |错误:com.google.api.gax.rpc.PermissionDeniedException:io.grpc.StatusRuntimeException:PERMISSION_DENIED:请求的身份验证范围不足。

服务帐号的当前角色:BigQuery 管理员、BigQuery 数据所有者、BigQuery 数据编辑者

代码sn-p:

        Map<String, Object> metadata = new HashMap<>();
        metadata.put("table_name", "MetaData");
        metadata.put("timestamp", Instant.now().toString());
        metadata.put("is_processed", false);
        JSONObject jsonObject = new JSONObject(metadata);
        TableName parentTable = TableName.of("test", "test", "MetaData");

        WriteStream stream = WriteStream.newBuilder().setType(WriteStream.Type.COMMITTED).build();

        CreateWriteStreamRequest createWriteStreamRequest =
                CreateWriteStreamRequest.newBuilder()
                        .setParent(parentTable.toString())
                        .setWriteStream(stream)
                        .build();
        WriteStream writeStream = bigQueryWriteClient.createWriteStream(createWriteStreamRequest);

        // Use the JSON stream writer to send records in JSON format.
        // For more information about JsonStreamWriter, see:
        // https://googleapis.dev/java/google-cloud-bigquerystorage/latest/com/google/cloud/bigquery/storage/v1/JsonStreamWriter.html
        JsonStreamWriter streamWriter = JsonStreamWriter.newBuilder(writeStream.getName(), writeStream.getTableSchema()).build();
        JSONArray arr = new JSONArray();
        arr.put(jsonObject);
        // Append asynchronously for increased throughput.
        ApiFuture<AppendRowsResponse> future = streamWriter.append(arr, 1);
        ApiFutures.addCallback(
                future, new AppendCompleteCallback(), MoreExecutors.directExecutor());

【问题讨论】:

  • 您是否访问了访问 Google Workspace 文档(驱动器或 Google 工作表)的联合表
  • 我没有得到你@guillaumeblaquiere
  • 您只有 BigQuery 原生表吗?
  • 是的,我们只有本地表 @guillaumeblaquiere
  • 您可以参考这个doc 在您的文件中加载服务帐户凭据吗?让我知道它是否有帮助?

标签: google-cloud-platform google-bigquery


【解决方案1】:

@Ravi Teja,正如您在评论中提到的那样,问题出在企业代理上,它阻止了对 BigQuery 的调用。

企业代理是将最终用户与其浏览的网站分开的中间服务器。代理服务器根据您的用例、需求或公司政策提供不同级别的功能、安全性和隐私。

为了将来可能遇到此用例的社区的利益,将答案发布为社区 wiki。

随意编辑此答案以获取更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 2014-06-30
    相关资源
    最近更新 更多