AWS Redshiftデータベースにフィールドvarchar(65000)
があります。これはJSON文字列を格納するために使用されます。 JSONのキーと値のペアは頻繁に変更され、カラムからすべてのキー/値のデータを取得するために日次レポートを実行できる必要があります。例えばAWS RedshiftでのJSON文字列のクエリ
:新しい属性が明日追加された場合は、上記のデータと
create table test.json(json varchar(65000));
insert into test.json
select '{"animal_id": 1, "name": "harry", "animal_type": "cat", "age": 2, "location": "oakland"}' union
select '{"animal_id": 2, "name": "louie","animal_type": "dog", "age": 4}' union
select '{"animal_id": 3, "gender": "female"}' union
select '{"animal_id": 4, "size": "large"}' ;
私は私がそこにいることを知っている属性を取得するには、以下のクエリを書くことができますがしかし、私のレポートクエリは、新しいことをピックアップしません。キーと値のペア。このテーブルでSELECT *
タイプのクエリを実行する方法はありますか?
SELECT
json_extract_path_text(JSON,'animal_id') animal_id,
json_extract_path_text(JSON,'name') name,
json_extract_path_text(JSON,'animal_type') animal_type,
json_extract_path_text(JSON,'location') location,
json_extract_path_text(JSON,'age') age,
json_extract_path_text(JSON,'gender') gender,
json_extract_path_text(JSON,'size') size
FROM test.json
ORDER BY animal_id;
GuiSimにお返事ありがとうございます。これは知っておくと良いことです。オプションBは私が必要とするもののために働くでしょう:) – fez