JSONデータ型とは
PostgreSQLによると、「JOSNデータ型はRFC7159で規定されているように、JSON(JavaScript Object Notation)データを格納するためのものです。」というデータ型です。
例えば、'name'、'first_name'、'last_name'のテーブル列を作成する代わりに、これらすべての属性を含む「json」という列の下に1つのJSONオブジェクトを作成できます。
以下はJSONデータ型の例となります。
PostgresDB側に保存している状態です。
JSONデータ型は上記のように表現することができ、次のようにSQLのSelectステートメントで取得することができます。
注意:上記のSelectステートメントでは各作者の'first_name'を取得し、従来のテーブルに格納されているかのように表示しています。
YellowfinはJSONデータ型をサポートしていますか?
ご使用頂いているデータベースJDBCドライバーがJSONデータ型をサポートしている場合、YellowfinもJSONデータ型をサポートしていますが、実際に使用するには少し工夫が必要となります。
まず、データを解凍する必要がございます。SQLの知識が少しあれば、JSONデータ型をYellowfinのレポートで表示することができます。
最初の例のJSONデータをYellowfinのビューで表示した場合、以下のようになります。
JSONデータのフィールドをそのままドラッグ&ドロップでカラム(列)へ追加すると、エラーが表示されます。
JSONデータを正しく表示するためには、ビュー、もしくはレポートレベルで計算フィールドを使用する必要がございます。
ビューレベルで以下のように''last_name'、'name'を計算フィールドにて作成してください。(式タイプは「フリーハンドSQL」で定義する必要があります)
data->'author'->>'first_name'
data->'author'->>'last_name'
data->>'name'
解凍した後のフィールドをレポートに追加すると以下のように表示されます。
上記のように、レポートレベルでも計算フィールドを使用してJSONデータを解凍することができます。
また、フリーハンドSQLレポートでも同じようにJSONデータを解凍することができます。
JSONデータ型を使用する場合、便利な機能となりますので、ぜひお試してください。
参考資料: