0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[BigQuery API(V2)] JavaでBigQueryのジョブの実行結果を取得する

Posted at

BigQuery API V2(Java)を使用して、
BigQueryのジョブの実行結果を取得する方法
についてご紹介します。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[BigQuery API(V2)] JavaでBigQueryを使う
を参照ください。

No 目次
1 ジョブの実行結果を取得
1 スコープ
2 実行
3 レスポンスの内容

1. ジョブの実行結果を取得

ジョブの実行結果を取得します。
ジョブが未実行や実行エラーにより実行結果がない場合は例外が発生します。

1.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

BigqueryScopes.BIGQUERY
BigqueryScopes.CLOUD_PLATFORM
BigqueryScopes.DEVSTORAGE_READ_ONLY
https://www.googleapis.com/auth/cloud-platform.read-only

⧉[BigQuery API(V2)] JavaでBigQueryを使う(3.2. BigQueryインスタンスを取得)
でスコープを指定してください。

1.2. 実行

public static void main(String[] args) throws Exception{
    Bigquery bigquery = getBigquery();
    Bigquery.Jobs jobs = bigquery.jobs();
    
    Bigquery.Jobs.GetQueryResults result = jobs.getQueryResults("プロジェクトID","ジョブID");
    result.setLocation("ロケーションID");
    
    GetQueryResultsResponse res = result.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

GET: https://bigquery.googleapis.com/bigquery/v2/projects/{プロジェクトID}/queries/{ジョブID}
が実行されます。

1.2.2. クエリパラメータ

Bigquery.Jobs.GetQueryResultsのsetメソッドにより、クエリパラメータを追加できます。

メソッド 引数 説明
setLocation String 【必須(US、EUマルチリージョンの場合は不要】
ロケーションID
setStartIndex BigInteger 開始行のインデックス(0〜)
setPageToken String 次ページのトークン
setMaxResults Integer 取得する最大行数
setTimeoutMs Integer クライアントがクエリの完了を待機する最大時間(ミリ秒)
setFormatOptions DataFormatOptions 出力フォーマットの調整

DataFormatOptions

メソッド 引数 説明
setUseInt64Timestamp Boolean タイムスタンプをusec int64として出力するか

1.3. レスポンスの内容

QueryResponse

メソッド 戻り値 説明
getKind String リソースの種類
固定文字列:"bigquery#getQueryResultsResponse"
getPageToken String 次ページのトークン
getEtag String ハッシュ値
getSchema ⧉TableSchema 結果のスキーマ
getJobReference JobReference クエリを実行するために作成されたジョブへの参照
getTotalRows BigInteger クエリ結果セットの合計行数
getRows List<TableRow> クエリの実行結果
getTotalBytesProcessed Long 処理された合計バイト数
getJobComplete Boolean クエリが完了したか
getErrors List<ErrorProto> ジョブの実行中に発生した最初のエラー
getCacheHit Boolean クエリ結果がクエリ キャッシュからフェッチされたか
getNumDmlAffectedRows Long DMLステートメントの影響を受ける行の数

JobReference

メソッド 戻り値 説明
getProjectId String プロジェクトID
getJobId String ジョブID
getLocation String ロケーション

TableRow

メソッド 戻り値 説明
get("フィールド名") Object 引数で指定したフィールド名の値

ErrorProto

メソッド 戻り値 説明
getReason String エラーコード
getLocation String エラーが発生した場所
getDebugInfo String デバッグ情報
getMessage String エラーの説明


おしまい。。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?