基本
配列内のオブジェクト形式変換
概要
このブロックは、配列内の各要素のデータ変換ができます。変換前の配列内の各要素のデータ型は問いません(厳密には決まっている)が、変換後の各要素のデータ型は必ずオブジェクトになります。変換は、配列内の要素ごとに同じパターンの変換規則を使います(変換前後で要素数は変わらない)。
以下に具体例を示します(例示はJSON形式のオブジェクトの配列)。
- 変換前:
[ { "first_name": "夏目", "last_name": "漱石", "book1": "吾輩は猫である", "book2": "坊っちゃん", "book3": "草枕" }, { "first_name": "太宰", "last_name": "治", "book1": "富嶽百景", "book2": "走れメロス", "book3": "津軽" }, { "first_name": "芥川", "last_name": "龍之介", "book1": "羅生門", "book2": "鼻", "book3": "戯作三昧" } ]
- 変換後:
[ { "name": "夏目 漱石", "masterpiece": [ "吾輩は猫である", "坊っちゃん", "草枕" ], "language": "日本語" }, { "name": "太宰 治", "masterpiece": [ "富嶽百景", "走れメロス", "津軽" ], "language": "日本語" }, { "name": "芥川 龍之介", "masterpiece": [ "羅生門", "鼻", "戯作三昧" ], "language": "日本語" } ]
先頭の配列の要素を例に、どのような変換が行われたのかを具体的に示します。
このように、このブロックを使うと、複数の値を一つにまとめたり、新しい値を追加したりできます。この例では示していませんが、値を削除(変換前の値を無視)することなどもできます。
このような変換を行うには、変換後のオブジェクトの形式を変換規則として設定します。
この例の場合は、以下のとおりです。
変換後のオブジェクト形式の「キーと値のペア」を「キー・値の型・値」で指定します。
値の型は、以下の8種類から選択します。
型 | 説明 |
---|---|
String |
文字列です。変換前のオブジェクトのキーを |
String(旧:%形式の文字列書式なし) |
文字列です。ほぼStringと同様ですが、%形式の文字列書式が使えません。 |
Integer |
整数です。 |
Float |
浮動小数点数です。 |
Boolean |
真偽値です。 |
Variable |
変数です。
|
Object |
オブジェクトです。 |
Array |
配列です。 |
プロパティ
プロパティ名 | 説明 |
---|---|
ブロック名 |
編集パネルに配置した当該ブロックの表示名が変更できます。 ブロックリストパネル中のブロック名は変更されません。 |
変換前のオブジェクトの配列が格納された変数 |
変換前の配列形式のデータが格納された変数を指定します。 |
変換結果を格納する変数 |
変換結果を格納する変数を指定します。 |
変換規則 |
変換後のオブジェクトの形式を指定します。 |
ブロックメモ | このブロックに関するメモが記載できます。このブロックの処理に影響しません。 |
使用例
ここでは、GoogleスプレッドシートのデータをBigQueryに登録する方法を例に、「配列内のオブジェクト形式変換」ブロックの使い方を説明します。
想定するGoogleスプレッドシートとBigQueryテーブルは、以下のとおりです。
姓 | 名前 | 年齢 | 購入製品1 | 購入製品2 | 購入製品3 |
---|---|---|---|---|---|
山田 | 太郎 | 30 | ノートPC | スマートフォン | タブレット |
佐藤 | 花子 | 25 | イヤホン | スマートウォッチ | |
田中 | 一郎 | 45 | テレビ | ゲーム機 | |
鈴木 | 絵里 | 35 | カメラ | ||
伊藤 | 次郎 | 40 | ブルーレイレコーダー | スピーカー | ヘッドホン |
name(STRING) | age(INTEGER) | purchased_products(STRING / REPEATED) |
---|---|---|
山田 太郎 | 30 | ノートPC |
スマートフォン | ||
タブレット | ||
佐藤 花子 | 25 | イヤホン |
スマートウォッチ | ||
null | ||
田中 一郎 | 45 | テレビ |
ゲーム機 | ||
null | ||
鈴木 絵里 | 35 | カメラ |
null | ||
null | ||
伊藤 次郎 | 40 | ブルーレイレコーダー |
スピーカー | ||
ヘッドホン |
このように、データ形式が異なるリソース間でデータをやりとりする際に、「配列内のオブジェクト形式変換」ブロックを使用すると便利です。
今回は、「配列内のオブジェクト形式変換」ブロックで以下の変換が実現できれば、GoogleスプレッドシートのデータをBigQueryテーブルへ登録できます。
- フルネームの生成:Googleスプレッドシートの「姓」と「名前」を半角空白で挟んで結合。
- 年齢の転記:Googleスプレッドシートの「年齢」そのまま。
- データ構造の変換:「購入製品1」・「購入製品2」・「購入製品3」を配列にまとめる。
まず、前準備として「スプレッドシートのデータ取得」ブロックを使って、Googleスプレッドシートのデータを変数へ格納します。
プロパティ | 値 |
---|---|
ファイル名 |
Googleスプレッドシートのファイル名もしくはファイルへのURL。 |
結果を格納する変数 |
|
次に、変数に格納されたGoogleスプレッドシートのデータを、「配列内のオブジェクト形式変換」ブロックを使って、BigQueryテーブルの形式に沿った形式に変換します。
プロパティ | 値 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
変換前のオブジェクトの配列が格納された変数 |
|
||||||||||||||||||
変換結果を格納する変数 |
|
||||||||||||||||||
変換規則 |
|
最後に、変換したデータを「変数からテーブルへロード」ブロックでBigQueryテーブルへ格納します。
プロパティ | 値 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
投入データの変数 |
|
|||||||||
投入先のデータセット |
|
|||||||||
投入先のテーブル |
|
|||||||||
スキーマ設定 |
|
完成したフローは以下のとおりです。