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 | エラーの説明 |
おしまい。。