JSON-Funktionen - Amazon Redshift

JSON-Funktionen

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, sodass 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 Erfassen und Abfragen von halbstrukturierten Daten in Amazon Redshift.

JSON verwendet UTF-8-kodierte Textzeichenfolgen. Daher können JSON-Zeichenfolgen als CHAR- oder VARCHAR-Datentypen gespeichert werden. Sie verwenden VARCHAR, wenn die Zeichenfolgen Multibyte-Zeichen enthalten.

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

    • JSON-Array

    • Zeichenfolge in doppelten Anführungszeichen

    • Zahl (Ganzzahl und Gleitkommazahl)

    • 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