1
私はpostgres 9.5.4を使用しています。Postgres:入れ子になったjsonb列の範囲照会
jsonb列に格納されたサンプルのJSONデータの下から、私は、これは、1つのユーザのレコードのサンプルですo['mid'] > 7000
に一致するレコードを検索したいと思います。そのようなユーザーは何百万人もいるでしょう。
{
"uid": 14105529,
"o": [
{
"mid": 6551,
"ac": 1913,
"ip": "144.36.233.44",
"adw": 5,
"at": 133000,
"ad": 151015,
"aid": 0
},
{
"mid": 7552,
"ac": 1913,
"ip": "144.36.233.44",
"adw": 5,
"at": 133000,
"ad": 151015,
"aid": 0
},
{
"mid": 7553,
"ac": 1913,
"ip": "144.36.233.44",
"adw": 5,
"at": 133000,
"ad": 151015,
"aid": 0
}
]
}
ありがとうKlin。これは私のために働く。あなたが述べたように、大規模なデータセットのパフォーマンスをチェックする必要があります。 – Carbonrock
@ klin、citusクラスタでこのクエリを実行中に問題が発生しました。助けが必要。 postgres =#jsontest、jsonb_array_elements(data - > 'o')からcount(1)を選択します。ここで(value - >> 'mid'):: int> 7000; エラー:このクエリで分散計画を実行できません 詳細:複雑なテーブル式は現在サポートされていません – Carbonrock
残念ながら、これは標準のPostgresエラーメッセージではありません。シータスにはさらなる制限があるようですが、[このシータス問題](https://github.com/citusdata/citus/issues/521)を参照してください。 – klin