3

Google Cloud StorageからBigQueryにデータをアップロードしたいのですが、これを行う方法を説明するJavaサンプルコードが見つかりません。誰かがこれを行う方法として私にいくつかのヒントを教えてもらえますか?

私が実際にやりたいのは、Google App EngineテーブルからBigQueryにデータを転送する(そして毎日同期する)ことです。これにより、分析を行うことができます。GoogleAppEngineでGoogleCloudStorage Serviceを使用して、Google Cloud Storageのファイルに(新しい)レコードを書き込みます。不足しているのは、BigQueryのテーブルにデータを追加する(または初めて書き込むために新しいテーブルを作成する)ことだけです。確かに、BigQueryブラウザツールを使用してデータを手動でアップロード/追加できますが、自動にしたいのですが、そうでない場合は、毎日手動で行う必要があります。

4

1 に答える 1

5

Google Cloud Storage から BigQuery にテーブルをロードするための Java サンプルを知りません。とはいえ、ここでクエリ ジョブを実行するための指示に従えば、代わりに次のようにロード ジョブを実行できます。

Job job = new Job();
JobConfiguration config = new JobConfiguration();
JobConfigurationLoad loadConfig = new JobConfigurationLoad();
config.setLoad(loadConfig);

job.setConfiguration(config);

// Set where you are importing from (i.e. the Google Cloud Storage paths).
List<String> sources = new ArrayList<String>();
sources.add("gs://bucket/csv_to_load.csv");
loadConfig.setSourceUris(sources);

// Describe the resulting table you are importing to:
TableReference tableRef = new TableReference();
tableRef.setDatasetId("myDataset");
tableRef.setTableId("myTable");
tableRef.setProjectId(projectId);
loadConfig.setDestinationTable(tableRef);

List<TableFieldSchema> fields = new ArrayList<TableFieldSchema>();
TableFieldSchema fieldFoo = new TableFieldSchema();
fieldFoo.setName("foo");
fieldFoo.setType("string");
TableFieldSchema fieldBar = new TableFieldSchema();
fieldBar.setName("bar");
fieldBar.setType("integer");
fields.add(fieldFoo);
fields.add(fieldBar);
TableSchema schema = new TableSchema();
schema.setFields(fields);
loadConfig.setSchema(schema);

// Also set custom delimiter or header rows to skip here....
// [not shown].

Insert insert = bigquery.jobs().insert(projectId, job);
insert.setProjectId(projectId);
JobReference jobRef =  insert.execute().getJobReference();

// ... see rest of codelab for waiting for job to complete.

ロード構成オブジェクトの詳細については、こちらの javadoc を参照してください。

于 2012-05-21T15:38:07.253 に答える