質問

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

実際に何をしたいのか、Google App EngineテーブルからBigQueryにデータを転送することです(そして毎日の毎日の同期)、いくつかの分析を実行できます。Google App EngineでGoogle Cloud Storageサービスを使用して、Google Cloud Storageのファイルに(新規)レコードを書き込みます。また、欠けている部分のみがBigQueryのテーブルにデータを追加することです(または、最初の書き込み用の新しいテーブルを作成)。確かに私はBigQueryブラウザツールを使用してデータを手動でアップロード/追加することができますが、それ以外の場合は毎日手動で実行する必要があります。

役に立ちましたか?

解決

Google Cloud StorageからBigQueryにテーブルをロードするためのJavaサンプルを知りません。そうは言っても、Query Jobsの実行の指示に従って を実行できます。次の手順の代わりにロードジョブ:

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 こちら

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top