質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

0回答

1095閲覧

Google Apps Scriptからbigqueryにcsvデータをインサートしたい

majin

総合スコア11

BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

1クリップ

投稿2019/10/03 06:55

編集2019/10/03 06:57

やりたいこと。

ASPのレポート(大概はCSVファイル)をBigQueryのテーブルに日々インサートしたい。

現状

現状はGASを使って一度スプレッドシートにレポート内容を転記。
そのスプレッドシートをbigqueryのテーブルと連携させ、データポータル(データスタジオ)でレポート生成に必要なバッチ処理を行っています。
ですが定期的(週1くらい)にスプレッドシート側のエラーでバッチ処理がコケているようで、手動実行をする日があり、解消するために直接レポートデータをBigQueryのテーブルに保存していきたいです。

テストコード

function bq_test() { // 必要データ準備 var projectId = "ほげほげほげほ" // var select_query = 'SELECT * FROM [テーブル名] LIMIT 10;' var insert_query2 = '#standardSQL\n INSERT INTO `テーブル名` (text1 , text2 ) VALUES ("あいうえお","サンゴ礁");' // 多分オプションとかqueryとか色々入りそう。 var resource = { "query" : insert_query2 } // query実行 BigQuery.Jobs.query(resource, projectId); }

上記のソース自体は動いており、SELECTやINSERTはできています。

現状いちいち「#StandardSQL」をオプションで付けているのでこれもなんだかなぁと思っています。
おそらくresourcesにオプションでなに書けるのかなぁとは思うのですが、resourcesの中身にどういう項目が有るのかわからず、現状はクエリのみを渡しています。

さて、本題ですが、このままレポートのデータを流し込もうとするとなが~いSQLを生成して流し込む形になってしまうのでいやだなぁと思い、CSVのデータを比較的簡単に流し込む方法があればそちらを採用したいです。

 …(略 //CSV仮データ var test = "\"aaa\",bbb\r\nuuu,ooo\r\n" var csv = Utilities.newBlob(test).setContentType('application/octet-stream'); // insert実行 BigQuery.Jobs.insert(resource, projectId,csv);

↑こんな感じでできそうっぽいところまではわかったのですが、resourcesの中身に何を用意してやればいいのかわからず…
一応リファレンスや参考になりそうな記事も目を通したのですが、理解できず…お助け願いたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問