Google Apps Scriptを使用して、BigQuery APIを使用してBigQueryテーブルにデータを追加しようとしています。追加するデータは現在CSV形式です。これまでのところ、stream data into BigQueryを使用してtabledata().insertAll()
を使用することができますが、jsonフォーマットが必要なように見えます。私はそれが必要なことをするとは確信していません。これに私が欠けている簡単な解決策はありますか?私はBigQueryが追加をサポートしていることを知っていますが、私が見つけていることは、本当に新しいテーブルにデータを読み込むことに焦点を当てています。APIを使用してCSVファイルから既存のBigQueryテーブルにデータを追加できますか?
EDIT: tabledata().insertAll()
が実際に(うまくいけば)を使用する権利の方法であるような音。だから、代わりに私のファイルをjsonに変換しましたが、今は実際にどのように使用するかについては固執しています。私はreference page for itの中で何をしているのかを見極めようとしていますが、それはまだ私にとっては本当に混乱しています。現在、コードを実行したときにfetch
コールが発生すると、404
エラーが発生します。私はURLフェッチをしようとしている、多分それは私が物事をやっているとは思わない?私はAPIには本当に新しいので、私はまだ彼らがどのように動作するかを考えています。ここでは、これを引き起こしている私は現在、それを持っているコードです:
var tableId = 'users';
var file = DriveApp.getFileById(jsonId);
//I don't know if a blob is the type that I want or not, but I'm trying it
var data = file.getBlob();
var url = 'https://www.googleapis.com/bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID/tables/tableId/insertAll'
.replace("PROJECT_ID", params.PROJECT_ID)
.replace("DATASET_ID", params.DATASET_ID)
.replace("tableId", tableId);
var response = UrlFetchApp.fetch(url, {
"kind": "bigquery#tableDataInsertAllRequest",
"skipInvalidRows": 0,
"ignoreUnknownValues": 0,
"rows": [
{
"json": data
}
],
headers: {
Authorization: 'Bearer ' + service.getAccessToken()
}
});
var result = JSON.parse(response.getContentText());
Logger.log(JSON.stringify(result, null, 2));
を呼び出すことができますので、文字列の2次元配列を返すステップあなたに問題がありますか?何を試してみましたか –
'insertAll()'メソッドは確かに私が欲しいものですか?私の問題は、CSVファイルをjson(理想的にはGoogle Apps Scriptで)に変換するための適切な方法を見つけることです。さらに実際に関数呼び出しがどのように機能するかを実際に把握します。私はこれが私が探していた正しい方法さえも疑っていました。 –
OK私は今json形式で自分のデータを持っていると思います(うまくいけば正しく)。ここから私は実際にAPIを呼び出すのに苦労しています。私は今質問をもっと詳細で更新することができます。 –