1

クラウドストレージにデータがあり、そのデータをBigQueryに転送して統計を取得したいと思います。現在、JobConfigurationLoadを使用して単一のファイルを取得しています。コードのサンプルは次のとおりです。

JobConfigurationLoad jobconfigurationqLoad = new JobConfigurationLoad();
jobconfigurationqLoad.setSkipLeadingRows(1); // First line are columns names
    jobconfigurationqLoad.setSourceUris(Lists.newArrayList("gs://my_app/folder_name/test_file.csv"));
jobconfigurationqLoad.setWriteDisposition("WRITE_APPEND");
jobconfigurationqLoad.setEncoding(PlatformConstants.DEFAULT_ENCODING);
jobconfigurationqLoad.setCreateDisposition("CREATE_IF_NEEDED");
jobconfigurationqLoad.setDestinationTable(tableReference);
**tableReference = my table in big query
jobconfigurationqLoad.setSchemaInline("field1:STRING,field2:STRING");

// JobConfiguration
JobConfiguration jobConfiguration = new JobConfiguration();
jobConfiguration.setLoad(jobconfigurationqLoad);

// JobReference
JobReference jobreference = new JobReference();
jobreference.setProjectId(PROJECT_ID);

// Job
Job insertJob = new Job();
insertJob.setConfiguration(jobConfiguration);
insertJob.setJobReference(jobreference);

「setSourceUris」では、フォルダーのみを配置し、そこにあるすべてのファイルを取得したかったのですが、それは機能しないようです。バケットのコンテンツを取得することについてのGoogleAPIのドキュメントを見ましたが、バケット内の1つのフォルダーだけではありません。この回答にも同様のことがあります。私はJavaでGAEを使用しています。

4

2 に答える 2

2

BigQuery APIのsourceUrisメソッドでは、各ソースURIを個別にリストする必要があります(単一のGoogle Cloud StorageバケットURIを提供することはできません)。

ただし、はい、Google CloudStorageAPIを使用してオブジェクトURIのリストを提供できますprefix結果リストをフィルタリングするためのパラメーターを指定します。

1回の読み込みジョブに含めることができるファイルの最大量は500です(1回の読み込みリクエストあたりのデータの最大量は1Tbです。BigQueryの割り当てページをご覧ください)。

于 2012-11-23T07:21:31.067 に答える
0

BigQuery Apisには、1つ以上のファイルを含めることができる配列であるconfiguration.load.sourceUris[]というプロパティがあります。名前は「完全修飾名、例:gs://mybucket/myobject.csv」である必要があります

詳細については、 https ://developers.google.com/bigquery/docs/reference/v2/jobsをご覧ください。

したがって、Michaelが言ったように、「Google Cloud Storage APIを使用して、オブジェクトURIのリストを提供します。結果リストをフィルタリングするためのプレフィックスパラメータを提供します。」

次に、ファイル名をジョブのsourceUris配列に配置します。

于 2012-11-27T08:34:16.180 に答える