BigQuery API V2(Java)を使用して、
BigQueryテーブルの行(レコード)を挿入する方法
についてご紹介します。
テーブルにレコードを挿入するには、
適切なIAM権限が付与されている必要があります。
権限付与に関しては
⧉[BigQuery API(V2)] JavaでBigQueryを使う(2.権限付与)
を参照ください。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[BigQuery API(V2)] JavaでBigQueryを使う
を参照ください。
No | 目次 | |
---|---|---|
1 | レコードを挿入 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 |
1. レコードを挿入
指定したテーブルのレコードを挿入します。
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
BigqueryScopes.BIGQUERY
BigqueryScopes.CLOUD_PLATFORM
BigqueryScopes.BIGQUERY_INSERTDATA
⧉[BigQuery API(V2)] JavaでBigQueryを使う(3.2. BigQueryインスタンスを取得)
でスコープを指定してください。
1.2. 実行
public static void main(String[] args) throws Exception{
Bigquery bigquery = getBigquery();
Bigquery.Tabledata tabledata = bigquery.tabledata();
Map<String,Object> row = new HashMap<>();
row.put("field1", "test");
row.put("field2", 1);
TableDataInsertAllRequest.Rows rows = new TableDataInsertAllRequest.Rows();
rows.setJson(row);
TableDataInsertAllRequest content = new TableDataInsertAllRequest();
content.setRows(Arrays.asList(rows));
Bigquery.Tabledata.InsertAll insertAll = tabledata.insertAll("プロジェクトID","データセットID","テーブルID",content);
TableDataInsertAllResponse res = insertAll.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
POST: https://bigquery.googleapis.com/bigquery/v2/projects/{プロジェクトID}/datasets/{データセットID}/tables/{テーブルID}/insertAll
が実行されます。
1.2.2. クエリパラメータ
クエリパラメータはありません。
1.2.3. リクエストボディ
TableDataInsertAllRequestのsetメソッドにより、リクエストボディを追加できます。
メソッド | 引数 | 説明 |
---|---|---|
setSkipInvalidRows | Boolean | 無効な行が存在する場合でもリクエストのすべての有効な行を挿入するか |
setIgnoreUnknownValues | Boolean | スキーマに一致しない値を含む行も挿入するか |
setTemplateSuffix | String | テンプレートテーブルを使用する場合のインスタンステーブル名 |
setRows | List<TableDataInsertAllRequest.Rows> | 挿入する行 |
setTraceId | String | リクエストトレースID デバッグ用途 |
TableDataInsertAllRequest.Rows
メソッド | 引数 | 説明 |
---|---|---|
setJson | Map<String,Object> | 単一行のデータ |
1.3. レスポンスの内容
TableDataInsertAllResponse
メソッド | 戻り値 | 説明 |
---|---|---|
getKind | String | リソースの種類 固定文字列:"bigquery#tableDataInsertAllResponse" |
getInsertErrors | List<TableDataInsertAllResponse.InsertErrors> | リクエストの処理中に発生した特定のエラー |
TableDataInsertAllResponse.InsertErrors
メソッド | 戻り値 | 説明 |
---|---|---|
getIndex | Long | エラーが適用される行のインデックス |
getErrors | List<ErrorProto> | Indexプロパティで示された行のエラー情報 |
ErrorProto
メソッド | 戻り値 | 説明 |
---|---|---|
getReason | String | エラーコード |
getLocation | String | エラーが発生した場所 |
getDebugInfo | String | デバッグ情報 |
getMessage | String | エラーの説明 |
おしまい。。