BigQuery APIの利用 (4/5)
作成:2012-06-07 13:33
更新:2012-06-07 13:33
更新:2012-06-07 13:33
■QueryResultsとテーブルデータ
では、テーブル内のデータはどのようにして取り出し処理するのでしょうか。これには、いくつかのやり方があります。まずは「全レコードを取り出して処理する」ということから考えていきましょう。
1. TableDataの取得
テーブルのデータは、BigQueryの「Tabledata」というプロパティでとり出すことができます。これはテーブルのデータを管理するTableDataというオブジェクトが設定されているものです。
2. TableDataListの取得
この中の「list」メソッドを使って、特定のテーブルのデータを取得します。これは以下のように呼び出します。
3. QueryResultsRowsの取得
ここから、「行データ」を取得します。行データは、行(Row)単位でデータを管理するものです。これは「getRows」という引数なしのメソッドで得られます。
4. QueryResultsRowsFの取得
このQueryResultsRows配列から、必要な行データであるQueryResultsRowsを取り出し、そこから「QueryResultsRowsF」というオブジェクトを取得します。これは「getF」という引数なしメソッドで得られます。
5. getVで値を得る
このQueryResultsRowsF配列から利用するフィールドのQueryResultsRowsFを取り出し、そこから「getV」メソッドを呼び出して、そのフィールドの値をとり出すことができます。
――さあ、これでようやく1つ1つのデータを取り出せるところまで来ました。実際の利用例として、簡単なスクリプトを下に掲載しておきます。プロジェクトIDとデータセット名は、例によってそれぞれの環境にあわせて書き換えてください。
ここでは、各レコードのデータを「NAME:○○, MAIL:○○, AGE:○○」といった形式でログに書きだしていきます。
1. TableDataの取得
テーブルのデータは、BigQueryの「Tabledata」というプロパティでとり出すことができます。これはテーブルのデータを管理するTableDataというオブジェクトが設定されているものです。
2. TableDataListの取得
この中の「list」メソッドを使って、特定のテーブルのデータを取得します。これは以下のように呼び出します。
var 変数 = BigQuery.Tabledata.list("…プロジェクトID…",このlistメソッドで返されるのは、「TableDataList」というオブジェクトです。文字通りデーブルのデータをまとめてリストとして管理するためのものです。
"…データセット名…","…テーブル名…");
3. QueryResultsRowsの取得
ここから、「行データ」を取得します。行データは、行(Row)単位でデータを管理するものです。これは「getRows」という引数なしのメソッドで得られます。
var 変数 = 《TableDataList》.getRows();このgetRowsで返されるのは、「QueryResultsRows」というオブジェクトの配列です。QueryResultsRowsが行データを管理するもので、1つ1つの行データがQueryResultsRowsの配列としてまとめられているわけです。
4. QueryResultsRowsFの取得
このQueryResultsRows配列から、必要な行データであるQueryResultsRowsを取り出し、そこから「QueryResultsRowsF」というオブジェクトを取得します。これは「getF」という引数なしメソッドで得られます。
var 変数 = 《QueryResultsRows》.getF();これで返されるのは、QueryResultsRowsFオブジェクトの配列です。つまり、QueryResultsRowsFというのは、行データ内の個々のフィールドを管理するものと考えることができます。
5. getVで値を得る
このQueryResultsRowsF配列から利用するフィールドのQueryResultsRowsFを取り出し、そこから「getV」メソッドを呼び出して、そのフィールドの値をとり出すことができます。
var 変数 = 《QueryResultsRowsF》.getV();
――さあ、これでようやく1つ1つのデータを取り出せるところまで来ました。実際の利用例として、簡単なスクリプトを下に掲載しておきます。プロジェクトIDとデータセット名は、例によってそれぞれの環境にあわせて書き換えてください。
ここでは、各レコードのデータを「NAME:○○, MAIL:○○, AGE:○○」といった形式でログに書きだしていきます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
function showTableData(){ var result = BigQuery.Tabledata.list("…プロジェクトID…","…データセット名…","mytable"); var rows = result.getRows(); for(var i in rows){ var row = rows[i]; var f = row.getF(); var record = "NAME:" + f[0].getV() + ", MAIL:" + f[1].getV() + ", AGE:" + f[2].getV(); Logger.log(record); } Logger.log("-- total " + rows.length + " records."); }
※関連コンテンツ
「Google Apps Scriptプログラミング [中級編]」に戻る