###できていることとコード
GASでBigQueryにSpreadSheetのデータを登録しています。
javascript
1function main() { 2 var projectId = 'my_id'; //プロジェクトID 3 var datasetId = 'my_id_db'; //データセット 4 5 var app = SpreadsheetApp.getActiveSpreadsheet(); 6 var sheet = app.getActiveSheet(); 7 var tableId = "my_db_1";//テーブルID 8 9 var table = { 10 tableReference: { 11 projectId: projectId, 12 datasetId: datasetId, 13 tableId: tableId 14 }, 15 schema: { 16 fields: [ 17 {name:'date', type: 'date'},//★★★★★スキーマはここ(2019-04-04) 18 {name: 'id', type: 'integer'}, 19 {name: 'name', type: 'string'}, 20 {name: 'memo', type: 'string'} 21 ] 22 }, 23 timePartitioning: {//★★★★★ここ 24 'field':'date' 25 } 26 }; 27 try{ 28 BigQuery.Tables.remove(projectId, datasetId, tableId); 29 } catch(e) {} 30 table = BigQuery.Tables.insert(table, projectId, datasetId); 31 32 var range = sheet.getDataRange(); 33 var blob = Utilities.newBlob(convCsv(range)).setContentType('application/octet-stream'); 34 Logger.log(blob); 35 var job = { 36 configuration: { 37 load: { 38 destinationTable: { 39 projectId: projectId, 40 datasetId: datasetId, 41 tableId: tableId 42 }, 43 skipLeadingRows: 1 44 } 45 } 46 }; 47 job = BigQuery.Jobs.insert(job, projectId, blob); 48}
###できないこと
上記の方法でいくと以下のようにBigQueryに登録されます。
↓テーブルの情報
「フィールドで分割」は、設定したスキーマのうち、「date」フィールドを選んでいるんだと解釈しています。間違っていたら指摘してください。
しかし、肝心のデータがUPできていませんでした。
プレビューで「このテーブルは空です」と表示されます。
この部分を正確にすれば解決するのではないか?と推測しているのですが、皆さんの知恵を借りたいと思いました。
javascript
1timePartitioning: { 2 'field':'date'//★★★★★分割テーブルはここ 3 }
ちなみに、「取り込み時間分割テーブルの作成」の場合は上のコードはこのようになります。
javascript
1timePartitioning: { 2 'type':'DAY'//デフォルト的な 3 }
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。