SQL

Prestoリファレンス【JSON処理関数】

     
       

JSON処理関数の紹介

PrestoのJSON処理関数についてご紹介します。

 

JSON処理関数はjson,jsonb型を簡単に扱うための関数になります。他もRDBでも新たしいバージョンでは関数があったりしますが、PrestoのJSON処理をここではご紹介いたします。

 

JSON処理関数一覧

凡例

下記一覧で利用している変数などをここに記載します。

 

変数一覧

  • json ・・・  json型
  • array ・・・ 配列型(公式ではjson_arrayとなっている)
    • 例:[“a”,”b”,”c”]
  • search_str ・・・ 検索文字列
  • int ・・・ 数値 ※配列の開始は0から始まります
  • str   ・・・ 文字列
  • path ・・・ json内の場所
  • col   ・・・ カラム名、固定値
  • type  ・・・ 型タイプ(integer, varcharなど)

 

jsonフォーマットについて

シンプルなjsonデータが下記になります。

  

jsonではオブジェクトをネストすることも可能で中に基本的な型(論理型,文字列型,数値型)と2種類の構造体(オブジェクト,配列)で記述ができます。詳細は下記で説明をします。

 

関数一覧

No関数説明
1cast(str AS JSON)他の型からJSON型にする場合に利用します。
返却値:JSON
 
2cast(JSON col AS type)JSON型から他の型にする場合に利用します。
返却値:入力した型と同じ
 
3json_array_contains(array, search_str)配列内にsearch_strが存在するかを真偽で返します。
返却値:boolean
 
4json_array_get(array, int)配列から場所(int)を指定し、その場所の値を返します。
返却値:varchar
 
5json_array_length(array)配列から値の数を返します。
返却値:bigint(integer)
 
6json_format(json)jsonデータを文字列で返します。
返却値:varchar
 
7json_parse(str)文字列からjsonに変換して返します。
文字列の配列はjson形式でないとエラーとなるため、注意してください。
返却値:json
 
8json_extract(json, path)jsonの場所を指定することでその値をかえします。
例)
json ‘{“x”: {“a”: 1, “b”: 2}}’
path ‘$.x.b’
結果としては[2]を返却します。
返却値:json
 
9json_extract_scalar(json, path)json_extractと同様ですが、返却値がjsonではなく、文字列で返却します。
返却値:varchar
 
10json_size(json, path)
jsonの場所を指定するとその中のスカラー値の数を返却します。
※スカラー値:配列,jsonではない値。
正確な表現ではないため、いつか記事書きます。
返却値:bigint(integer)
 

 

備考

多用することはあまりないかもしれませんが、JSONを格納しているカラムの場合ももちろん、配列で格納されているカラムにも利用できる関数があるため、そんなときにお力になれたら幸いです。

 

参照元

https://prestodb.io/docs/0.172/functions/aggregate.html

 

 

 

スポンサードリンク