使用其他配置在指定位置运行 BigQuery 作业(查询、加载、提取或复制)。
深入探索
如需查看包含此代码示例的详细文档,请参阅以下内容:
代码示例
C#
尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 C# 设置说明进行操作。如需了解详情,请参阅 BigQuery C# API 参考文档。
using Google.Cloud.BigQuery.V2;
using System;
using System.Collections.Generic;
public class BigQueryCreateJob
{
public BigQueryJob CreateJob(string projectId = "your-project-id")
{
string query = @"
SELECT country_name from `bigquery-public-data.utility_us.country_code_iso";
// Initialize client that will be used to send requests.
BigQueryClient client = BigQueryClient.Create(projectId);
QueryOptions queryOptions = new QueryOptions
{
JobLocation = "us",
JobIdPrefix = "code_sample_",
Labels = new Dictionary<string, string>
{
["example-label"] = "example-value"
},
MaximumBytesBilled = 1000000
};
BigQueryJob queryJob = client.CreateQueryJob(
sql: query,
parameters: null,
options: queryOptions);
Console.WriteLine($"Started job: {queryJob.Reference.JobId}");
return queryJob;
}
}
Go
尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Go 设置说明进行操作。如需了解详情,请参阅 BigQuery Go API 参考文档。
import (
"context"
"fmt"
"cloud.google.com/go/bigquery"
"github.com/google/uuid"
)
// createJob demonstrates running an arbitrary SQL statement as a query job.
func createJob(projectID, sql string) error {
// sql := "SELECT country_name from `bigquery-public-data.utility_us.country_code_iso`:"
ctx := context.Background()
client, err := bigquery.NewClient(ctx, projectID)
if err != nil {
return fmt.Errorf("bigquery.NewClient: %v", err)
}
defer client.Close()
// Demonstrate adding a label to the job.
q := client.Query(sql)
q.Labels = map[string]string{"example-label": "example-value"}
// The library will create job IDs for you automatically, but this can be overridden by
// setting the Job ID explicitly. Job IDs are unique within a project and cannot be
// reused.
q.JobID = fmt.Sprintf("my_job_prefix_%s", uuid.New().String())
// Start job execution.
job, err := q.Run(ctx)
if err != nil {
return err
}
status, err := job.Wait(ctx)
if err != nil {
return err
}
if err := status.Err(); err != nil {
return err
}
return nil
}
Java
试用此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Java 设置说明进行操作。如需了解详情,请参阅 BigQuery Java API 参考文档。
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Job;
import com.google.cloud.bigquery.JobId;
import com.google.cloud.bigquery.JobInfo;
import com.google.cloud.bigquery.QueryJobConfiguration;
import com.google.common.collect.ImmutableMap;
import java.util.UUID;
// Sample to create a job
public class CreateJob {
public static void main(String[] args) {
// TODO(developer): Replace these variables before running the sample.
String query = "SELECT country_name from `bigquery-public-data.utility_us.country_code_iso`";
createJob(query);
}
public static void createJob(String query) {
try {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests.
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
// Specify a job configuration to set optional job resource properties.
QueryJobConfiguration queryConfig =
QueryJobConfiguration.newBuilder(query)
.setLabels(ImmutableMap.of("example-label", "example-value"))
.build();
// The location and job name are optional,
// if both are not specified then client will auto-create.
String jobName = "jobId_" + UUID.randomUUID().toString();
JobId jobId = JobId.newBuilder().setLocation("us").setJob(jobName).build();
// Create a job with job ID
bigquery.create(JobInfo.of(jobId, queryConfig));
// Get a job that was just created
Job job = bigquery.getJob(jobId);
if (job.getJobId().getJob().equals(jobId.getJob())) {
System.out.print("Job created successfully." + job.getJobId().getJob());
} else {
System.out.print("Job was not created");
}
} catch (BigQueryException e) {
System.out.print("Job was not created. \n" + e.toString());
}
}
}
Node.js
尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Node.js 设置说明进行操作。如需了解详情,请参阅 BigQuery Node.js API 参考文档。
// Import the Google Cloud client library and create a client
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();
async function createJob() {
// Run a BigQuery query job.
// For all options, see https://cloud.google.com/bigquery/docs/reference/rest/v2/Job
const options = {
// Specify a job configuration to set optional job resource properties.
configuration: {
query: {
query: `SELECT country_name
FROM \`bigquery-public-data.utility_us.country_code_iso\`
LIMIT 10`,
useLegacySql: false,
},
labels: {'example-label': 'example-value'},
},
};
// Make API request.
const response = await bigquery.createJob(options);
const job = response[0];
// Wait for the query to finish
const [rows] = await job.getQueryResults(job);
// Print the results
console.log('Rows:');
rows.forEach(row => console.log(row));
}
Python
尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Python 设置说明进行操作。如需了解详情,请参阅 BigQuery Python API 参考文档。
from google.cloud import bigquery
# Construct a BigQuery client object.
client = bigquery.Client()
query_job = client.query(
"SELECT country_name from `bigquery-public-data.utility_us.country_code_iso`",
# Explicitly force job execution to be routed to a specific processing
# location.
location="US",
# Specify a job configuration to set optional job resource properties.
job_config=bigquery.QueryJobConfig(
labels={"example-label": "example-value"}, maximum_bytes_billed=1000000
),
# The client libraries automatically generate a job ID. Override the
# generated ID with either the job_id_prefix or job_id parameters.
job_id_prefix="code_sample_",
) # Make an API request.
print("Started job: {}".format(query_job.job_id))
后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅 Google Cloud 示例浏览器。