Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
JSON-Funktionen
Themen
Anmerkung
Wir empfehlen die Verwendung der folgenden Funktionen für die Arbeit mit JSON:
Mit JSON_PARSE müssen Sie JSON-Text nur einmal bei der Aufnahme in einen Wert des Typs SUPER konvertieren. Danach können Sie mit den SUPER-Werten arbeiten. Amazon Redshift analysiert SUPER-Werte effizienter als VARCHAR, die Ausgabe für die textbasierten JSON-Funktionen. Weitere Informationen zum Arbeiten mit dem Datentyp SUPER finden Sie unter Halbstrukturierte Daten in Amazon Redshift.
Wenn Sie einen vergleichsweise kleinen Satz von Schlüssel-Wert-Paaren speichern müssen, können Sie vielleicht Platz sparen, indem Sie die Daten im JSON-Format speichern. Da JSON-Zeichenfolgen in einer einzigen Spalte gespeichert werden können, kann die Verwendung von JSON effizienter als das Speichern Ihrer Daten im Tabellenformat sein. Angenommen, Sie haben eine Sparse-Tabelle, in der zahlreiche Spalten alle möglichen Attribute vollständig darstellen müssen, die meisten Spaltenwerte für eine bestimmte Zeile oder Spalte jedoch NULL sind. Wenn Sie zum Speichern JSON verwenden, können Sie die Daten für eine Zeile in Schlüssel:Wert-Paaren ein einer einzelnen JSON-Zeichenfolge speichern und die kaum ausgefüllten Tabellenspalten beseitigen.
Zusätzlich können Sie JSON-Zeichenfolgen leicht ändern, so dass diese weitere Schlüssel:Wert-Paare speichern, ohne einer Tabelle Spalten hinzufügen zu müssen.
Sie sollten JSON nur in bestimmten Fällen verwenden. JSON ist keine gute Wahl, wenn es um das Speichern größerer Datensätze geht, da JSON aufgrund der Tatsache, dass disparate Daten in einer einzigen Spalte gespeichert werden, die Spaltenspeicherarchitektur von Amazon Redshift nicht nutzt. Obwohl Amazon Redshift JSON-Funktionen über CHAR- und VARCHAR-Spalten unterstützt, empfehlen wir, SUPER für die Verarbeitung von Daten im JSON-Serialisierungsformat zu verwenden. SUPER verwendet eine schemalose Post-Parse-Darstellung, die hierarchische Daten effizient abfragen kann. Weitere Informationen zum SUPER-Datentyp finden Sie unter Halbstrukturierte Daten in Amazon Redshift.
JSON verwendet UTF-8-kodierte Textzeichenfolgen. Daher können JSON-Zeichenfolgen als CHAR- oder VARCHAR-Datentypen gespeichert werden.
JSON-Zeichenfolgen müssen ein korrektes JSON-Format aufweisen, das den folgenden Regeln entspricht:
-
Der JSON-Wert kann auf Stammverzeichnisebene ein JSON-Objekt oder ein JSON-Array sein. Ein JSON-Objekt ist ein nicht geordneter Satz von durch Komma getrennten Schlüssel:Wert-Paaren, eingeschlossen in geschweiften Klammern.
Beispiel: ,
{"one":1, "two":2} -
Ein JSON-Array ist ein geordneter Satz von durch Komma getrennten Werten, eingeschlossen in eckigen Klammern.
Ein Beispiel ist folgendes:
["first", {"one":1}, "second", 3, null] -
JSON-Arrays verwenden einen nullbasierten Index. Das erste Element in einem Array befindet sich an Position 0. In einem Schlüssel:Wert-Paar in JSON ist der Schlüssel eine Zeichenfolge in doppelten Anführungszeichen.
-
Ein JSON-Wert kann jeder der folgenden Werte sein:
-
JSON-Objekt
-
Array
-
Zeichenfolge
Mit doppelten Anführungszeichen dargestellt
-
Zahl
Beinhaltet Ganzzahlen, Dezimalzahlen und Gleitkommazahlen
-
Boolesch
-
Null
-
-
Leere Objekte und leere Arrays sind gültige JSON-Werte.
-
JSON-Felder unterscheiden zwischen Groß- und Kleinschreibung.
-
Leerzeichen zwischen JSON-Strukturelementen (wie
{ }, [ ]) werden ignoriert.
Die Amazon-Redshift-JSON-Funktionen und der Amazon-Redshift-COPY-Befehl verwenden dieselben Methoden, um mit Daten im JSON-Format zu arbeiten. Weitere Informationen zur Arbeit mit JSON finden Sie unter . COPY von JSON-Format