스토리지 및 쿼리 비용 추정

주문형 쿼리는 읽은 바이트 수에 따라 청구됩니다. 현재 주문형 쿼리 가격 책정은 가격 책정 페이지를 참조하세요.

쿼리를 실행하기 전에 추정 비용을 알아보려면 다음 도구 및 방법을 사용하세요.

  • Cloud Console 또는 기본 BigQuery 웹 UI의 쿼리 검사기
  • bq 명령줄 도구의 --dry_run 플래그
  • API를 사용해 쿼리 작업을 제출할 때 dryRun 매개변수
  • Google Cloud 가격 계산기
  • 클라이언트 라이브러리

쿼리 비용 산출

쿼리 비용을 추정하는 방법은 다음과 같습니다.

Console

Cloud Console에 쿼리를 입력하면 쿼리 검사기가 쿼리 구문을 확인하고 읽을 바이트 수를 추정합니다. 이 추정값을 사용하여 가격 계산기에서 쿼리 비용을 계산할 수 있습니다.

쿼리 검사기

기본 UI

Cloud Console 또는 기본 BigQuery 웹 UI에 쿼리를 입력하면 쿼리 검사기가 쿼리 구문을 확인하고 읽을 바이트 수를 추정합니다. 이 추정값을 사용하여 가격 계산기에서 쿼리 비용을 계산할 수 있습니다.

쿼리 검사기

bq

bq 명령줄 도구에서 쿼리를 실행할 때 --dry_run 플래그를 사용하여 읽을 바이트 수를 추정할 수 있습니다. 이 추정값을 사용하여 가격 계산기에서 쿼리 비용을 계산할 수 있습니다.

--dry_run 플래그를 사용하는 bq 도구 쿼리는 다음과 같습니다.

bq query \
--use_legacy_sql=false \
--dry_run \
'SELECT
  column1,
  column2,
  column3
FROM
  `project_id.dataset.table`
LIMIT
  1000'

명령어를 실행하면 응답은 읽을 바이트의 추정값이 응답에 포함됩니다. Query successfully validated. Assuming the tables are not modified, running this query will process 10918 bytes of data.

API

API를 사용하여 연습 실행을 수행하려면 dryRuntrue로 설정하여 쿼리 작업을 제출합니다.

go

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참조 문서를 확인하세요.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
)

// queryDryRun demonstrates issuing a dry run query to validate query structure and
// provide an estimate of the bytes scanned.
func queryDryRun(w io.Writer, projectID string) error {
	// projectID := "my-project-id"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	q := client.Query(`
	SELECT
		name,
		COUNT(*) as name_count
	FROM ` + "`bigquery-public-data.usa_names.usa_1910_2013`" + `
	WHERE state = 'WA'
	GROUP BY name`)
	q.DryRun = true
	// Location must match that of the dataset(s) referenced in the query.
	q.Location = "US"

	job, err := q.Run(ctx)
	if err != nil {
		return err
	}
	// Dry run is not asynchronous, so get the latest status and statistics.
	status := job.LastStatus()
	if err != nil {
		return err
	}
	fmt.Fprintf(w, "This query will process %d bytes\n", status.Statistics.TotalBytesProcessed)
	return nil
}

자바

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 자바 설정 안내를 따르세요. 자세한 내용은 BigQuery 자바 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.JobInfo;
import com.google.cloud.bigquery.JobStatistics;
import com.google.cloud.bigquery.QueryJobConfiguration;

// Sample to run dry query on the table
public class QueryDryRun {

  public static void runQueryDryRun() {
    String query =
        "SELECT name, COUNT(*) as name_count "
            + "FROM `bigquery-public-data.usa_names.usa_1910_2013` "
            + "WHERE state = 'WA' "
            + "GROUP BY name";
    queryDryRun(query);
  }

  public static void queryDryRun(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();

      QueryJobConfiguration queryConfig =
          QueryJobConfiguration.newBuilder(query).setDryRun(true).setUseQueryCache(false).build();

      Job job = bigquery.create(JobInfo.of(queryConfig));
      JobStatistics.QueryStatistics statistics = job.getStatistics();

      System.out.println(
          "Query dry run performed successfully." + statistics.getTotalBytesProcessed());
    } catch (BigQueryException e) {
      System.out.println("Query not performed \n" + e.toString());
    }
  }
}

Node.js

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참조 문서를 확인하세요.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function queryDryRun() {
  // Runs a dry query of the U.S. given names dataset for the state of Texas.

  const query = `SELECT name
    FROM \`bigquery-public-data.usa_names.usa_1910_2013\`
    WHERE state = 'TX'
    LIMIT 100`;

  // For all options, see https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query
  const options = {
    query: query,
    // Location must match that of the dataset(s) referenced in the query.
    location: 'US',
    dryRun: true,
  };

  // Run the query as a job
  const [job] = await bigquery.createQueryJob(options);

  // Print the status and statistics
  console.log('Status:');
  console.log(job.metadata.status);
  console.log('\nJob Statistics:');
  console.log(job.metadata.statistics);
}

Python

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참조 문서를 확인하세요.

Python 클라이언트 라이브러리를 사용해 연습 실행을 수행하려면 QueryJobConfig.dry_run 속성을 True로 설정합니다. 연습 실행 쿼리 구성을 제공하면 Client.query()는 항상 완료된 QueryJob을 반환합니다.
from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

job_config = bigquery.QueryJobConfig(dry_run=True, use_query_cache=False)

# Start the query, passing in the extra configuration.
query_job = client.query(
    (
        "SELECT name, COUNT(*) as name_count "
        "FROM `bigquery-public-data.usa_names.usa_1910_2013` "
        "WHERE state = 'WA' "
        "GROUP BY name"
    ),
    job_config=job_config,
)  # Make an API request.

# A dry run query completes immediately.
print("This query will process {} bytes.".format(query_job.total_bytes_processed))

Google Cloud 가격 계산기를 사용하여 쿼리 비용 추정

Google Cloud 가격 계산기로 주문형 쿼리 비용을 추정하려면 쿼리에서 처리하는 바이트 수를 B, KB, MB, GB, TB, PB 단위로 입력합니다. 쿼리에서 1TB 미만을 처리하는 경우 BigQuery에서는 매달 1TB까지는 주문형 쿼리 처리를 무료로 지원하므로 추정값이 $0입니다.

가격 계산기

가격 계산기를 사용해 쿼리 비용을 추정하는 방법:

  1. Google Cloud 가격 계산기를 열고
  2. BigQuery를 클릭합니다.
  3. 주문형 탭을 클릭합니다.
  4. 테이블 이름에 테이블 이름을 입력합니다. 예를 들면 airports입니다.
  5. 스토리지 가격 책정스토리지 필드에 0을 입력합니다.
  6. 쿼리 가격 책정에 연습 실행 또는 쿼리 검사기로 얻은 읽은 바이트 수 추정값을 입력합니다. 가격 계산기
  7. 추정값에 추가를 클릭합니다.
  8. 추정값이 오른쪽에 나타납니다. 추정값을 저장하거나 이메일로 보낼 수 있습니다. 주문형 계산기

이 경우에는 쿼리에서 읽은 바이트 수가 무료 등급에서 지원되는 주문형 처리 1TB에 미치지 못합니다. 따라서 예상 비용은 $0입니다.

가격 계산기에 고정 요금 가격 포함

결제 계정에 정액제 가격 책정을 적용한 경우 정액제 탭을 클릭하고 정액제를 선택한 후 스토리지 비용을 추정값에 추가할 수 있습니다.

정액제 계산기

자세한 내용은 정액제 가격 책정을 참조하세요.

Google Cloud 가격 계산기를 사용하여 스토리지 비용 추정

Google Cloud 가격 계산기로 스토리지 비용을 추정하려면 바이트 수를 B, KB, MB, GB, TB, PB 단위로 입력합니다. BigQuery는 월 10GB의 스토리지를 무료로 제공합니다.

가격 계산기를 사용해 스토리지 비용을 추정하는 방법:

  1. Google Cloud 가격 계산기를 엽니다.
  2. BigQuery를 클릭합니다.
  3. 주문형 탭을 클릭합니다.
  4. 테이블 이름에 테이블 이름을 입력합니다. 예를 들면 airports입니다.
  5. 스토리지 가격 책정스토리지 필드에 100를 입력합니다. 측정 단위는 GB로 설정된 채로 둡니다.
  6. 추정값에 추가를 클릭합니다.
  7. 추정값이 오른쪽에 나타납니다. 추정값을 저장하거나 이메일로 보낼 수 있습니다. 가격 계산기