Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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
带有服务帐户的BigQuery-Java_Java_Oauth 2.0_Google Bigquery_Service Accounts - Fatal编程技术网

带有服务帐户的BigQuery-Java

带有服务帐户的BigQuery-Java,java,oauth-2.0,google-bigquery,service-accounts,Java,Oauth 2.0,Google Bigquery,Service Accounts,是否有使用app engine服务帐户访问BigQuery服务的Java示例?我不想使用OAuth流。获取服务帐户凭据的一行程序: import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.jackson.JacksonFact

是否有使用app engine服务帐户访问BigQuery服务的Java示例?我不想使用OAuth流。

获取服务帐户凭据的一行程序:

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;

import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.jackson.JacksonFactory;
import java.io.File;
import java.util.Arrays;

credential = new GoogleCredential.Builder().setTransport(TRANSPORT)
    .setJsonFactory(JSON_FACTORY)
    .setServiceAccountId(SERVICE_ACCOUNT)
    .setServiceAccountScopes(Arrays.asList(new String[] {SCOPE}))
    .setServiceAccountPrivateKeyFromP12File(new File(P12_KEY))
    .build();
其中:

SERVICE_ACCOUNT = "15-uin9i5@developer.gserviceaccount.com"
P12_KEY = "path/to/private_key.p12"
TRANSPORT = new NetHttpTransport();
SCOPE = "https://www.googleapis.com/auth/bigquery"
JSON_FACTORY = new JacksonFactory()
获得凭据后,可以构建BigQuery服务,并将其与任何其他身份验证方法一起使用:

import com.google.api.services.bigquery.Bigquery;

bigquery = new Bigquery.Builder(
    TRANSPORT, JSON_FACTORY, credential).setApplicationName(
    "BQ-ServAcc/so/0.1").setHttpRequestInitializer(credential).build();
例如,要检查作业,请执行以下操作:

import com.google.api.services.bigquery.model.Job;

while (true) {
  Job job = bigquery.jobs().get(projectId, jobId).execute();
  System.out.println(job.getStatus().toPrettyString());
  if (job.getStatus().getState().equals("DONE")) {
    if (job.getStatus().getErrorResult() != null)
      System.out.println(job.getStatus().getErrorResult().toPrettyString());
    System.out.println(job.getStatistics().toPrettyString());
    break;
  }
  Thread.sleep(1000);
}