JSON-Felder in Redshift abfragen

8

Wir planen, Redshift bald zu verwenden, und eines unserer Felder (Spalten) ist ein JSON-Wert. Es ist ein flacher JSON (dh definitionsgemäß keine verschachtelten Ebenen) und der Grund, warum wir JSON verwenden müssen, ist, dass jeder Datensatz eine unterschiedliche Anzahl von verschiedenen Schlüssel / Wert-Elementen hat, die sehr von 0 bis 10 oder mehr reichen können Feld pro Paar oder so).

Beispielsweise kann ein solches Feld {"Schlüssel1": "Wert1", "Schlüssel2": "Wert2", ..., "Schlüssel5": "Wert5"}

sein

Ich möchte alle Datensätze mit einem bestimmten Schlüssel abfragen und zählen und sie möglicherweise nach Wert gruppieren. Im obigen Beispiel möchte ich etwas wie "Select count (*) where Feld hat Schlüssel 'key1' Gruppe durch seinen Wert".

Unterstützt Redshift die Abfrage nach Werten innerhalb des JSON? Wie kann dies erreicht werden?

    
user2339344 28.10.2014, 15:59
quelle

2 Antworten

7

Haben Sie versucht, Redshifts Funktion JSON_EXTRACT_PATH_TEXT zu verwenden?

    
Pop 28.10.2014, 16:40
quelle
14

Ja, Amazon Redshift unterstützt mit „JSON_EXTRACT_PATH_TEXT“ -Funktion innerhalb einer Spalte JSON-String-Parsing, und Sie können diese Funktion aufrufen, auch in where-Klausel oder eine Gruppe von-Klausel. Es ist besser, das folgende Beispiel, um zu sehen, zu verstehen, wie es funktioniert.

%Vor% Siehe

Redshift Dev Guide - JSON_EXTRACT_PATH_TEXT Funktion für die Details von "JSON_EXTRACT_PATH_TEXT" -Funktion . Sie können auch andere JSON Funktionen in Redshift Dev Guide -. JSON Funktionen

    
Masashi Miyazaki 29.10.2014 20:38
quelle

Tags und Links