2017-03-21 16 views
0

簡単に言えば、データのみを提供する指定の名前のテーブルを作成します。BigQueryでスキーマを持たないテーブルをAPIで作成するにはどうすればよいですか?

私は彼らのために

をテーブルを作成するために、上記のファイルのスキーマを提供に持ってサンプルデータといくつかのJUnitの(jsons)

を持っている私は、は、上記のスキーマを提供する必要はありませんと仮定します。 なぜですか? BigQueryのコンソールで、私は、クエリからテーブルを作成することができます(簡単なようにも、このような:select 1, 'test')のでまたは私は、スキーマの自動検出を使用してテーブルを作成するために、JSONをアップロードすることができます=>おそらく

プログラム的にそれを行う私はhttps://chartio.com/resources/tutorials/how-to-create-a-table-from-a-query-in-google-bigquery/#using-the-apiを見て、それがjsonsを解析でき知ることができデータをクエリに渡し、Jobs.insert APIを使用してそれらを実行しますが、それは設計されており、いくつかの他の短所があります。ボイラープレートコード。


は、いくつかの研究の後、私はその場でテーブルを作成する可能性が簡単な方法を見つけたが、それは私のために動作しません、以下のコード:元データがあるとして使用されている

Insert insert = bigquery.jobs().insert(projectId, 
        new Job().setConfiguration(
          new JobConfiguration().setLoad(
            new JobConfigurationLoad() 
               .setSourceFormat("NEWLINE_DELIMITED_JSON") 
               .setDestinationTable(
                 new TableReference() 
                   .setProjectId(projectId) 
                   .setDatasetId(dataSetId) 
                   .setTableId(tableId) 
               ) 
               .setCreateDisposition("CREATE_IF_NEEDED") 
               .setWriteDisposition(writeDisposition) 
               .setSourceUris(Collections.singletonList(sourceUri)) 
               .setAutodetect(true) 
           ) 
         )); 

Job myInsertJob = insert.execute(); 

JSONファイル"見つかりません:表..."

私は、私はまだエラーが表示さsetCreateDisposition("CREATE_IF_NEEDED")を使用した場合でも

[ 
    { 
    "stringField1": "value1", 
    "numberField2": "123456789" 
    } 
] 

:sourceUriによって指さ、のように見えます

スキーマを除外するための他の方法がありますか?

+0

あなたの入力データをどのような形で入力するのかはあなたの質問からは明らかではありません。自動検出されたテーブルとJSONを作成できるクエリの例を挙げました。しかし、あなたのデータはどのように見えますか? –

+0

@MoshaPasumansky私は自分の質問を編集しました。私は確信していませんが、 "CREATE_IF_NEEDED"が提供されたクエリに対してのみ動作すると仮定します... –

+0

あなたのコードは私によく見えます - 失敗の仕事のIDを共有できますか? –

答えて

0

あなたの質問のコードは完全にうまくあり、存在しなければテーブルを作成します。ただし、テーブルIDの代わりにパーティションIDを使用すると、つまり、宛先テーブルのIDが"table$20170323"の場合は失敗します。パーティションに書き込むには、まずテーブルを作成する必要があります。

+0

ありがとう、それが理由だった。 –

関連する問題