0

ruby の google-api-client gem を使用して、ストリーミング insert_all メソッドを使用してテーブルにデータを挿入しようとしています。

そこで、Bigquery で次の内容の新しいテーブルを作成することから始めます (読み取り権限と書き込み権限は正しい)。

+-----+-----------+-------------+
| Row | person_id | person_name |
+-----+-----------+-------------+
|   1 |         1 | ABCD        |   
|   2 |         2 | EFGH        |   
|   3 |         3 | IJKL        |   
+-----+-----------+-------------+

これはルビーの私のコードです: (私は今日、tabledata.insert_all が tabledata.insertAll のルビーであることを発見しました - google docs / example を更新する必要があります)

def streaming_insert_data_in_table(table, dataset=DATASET)
    body = {"rows"=>[ 
      {"json"=> {"person_id"=>10,"person_name"=>"george"}},
      {"json"=> {"person_id"=>11,"person_name"=>"washington"}}
    ]}

    result = @client.execute(
      :api_method=> @bigquery.tabledata.insert_all,
      :parameters=> {
          :projectId=> @project_id.to_s,
          :datasetId=> dataset,
          :tableId=>table},
      :body_object=>body,
    )
    puts result.body
end

そのため、コードを初めて実行すると、すべて問題なく表示されます。Bigquery の表に次のように表示されます。

 +-----+-----------+-------------+
 | Row | person_id | person_name |
 +-----+-----------+-------------+
 |   1 |         1 | ABCD        |
 |   2 |         2 | EFGH        |
 |   3 |         3 | IJKL        |
 |   4 |        10 | george      |
 |   5 |        11 | washington  |
 +-----+-----------+-------------+

次に、メソッドのデータを次のように変更します。

body = {"rows"=>[ 
      {"json"=> {"person_id"=>5,"person_name"=>"john"}},
      {"json"=> {"person_id"=>6,"person_name"=>"kennedy"}}
    ]}

メソッドを実行し、Bigquery でこれを取得します。

 +-----+-----------+-------------+
 | Row | person_id | person_name |
 +-----+-----------+-------------+
 |   1 |         1 | ABCD        |
 |   2 |         2 | EFGH        |
 |   3 |         3 | IJKL        |
 |   4 |        10 | george      |
 |   5 |         6 | kennedy     |
 +-----+-----------+-------------+

それで、何が得られますか?I've lost data.... (ID 11 と ID 5 は消えました) リクエストに対する応答にもエラーはありません。

私が何か間違ったことをしているのか、なぜこれが起こっているのか誰か教えてもらえますか?

どんな助けでも大歓迎です。

素晴らしい一日をありがとう。

4

1 に答える 1

0

これはUIに関係しているように見えます(行数がしばらく入力されず、テーブル内のデータを抽出しようとすると、「予期しない。再試行してください。」というエラーが発生します)。ただし、データは実際に保存されており、クエリを実行できます。助けてくれてありがとう ジョーダン

于 2013-12-02T01:58:57.240 に答える