JSON-Funktionen - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

JSON-Funktionen

Anmerkung

Wir empfehlen Ihnen, die folgenden Funktionen für die Arbeit mit JSON zu verwenden:

Mit JSON_PARSE müssen Sie JSON-Text nur einmal bei der Aufnahme in einen Wert vom Typ 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 zur Arbeit mit dem SUPER-Datentyp finden Sie unter. Erfassen und Abfragen von halbstrukturierten 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.

Darüber hinaus können Sie JSON-Zeichenfolgen einfach ändern, um zusätzliche Schlüssel/Wert-Paare zu speichern, wenn sich Ihr JSON-Schema ändert, ohne dass Sie einer Tabelle Spalten hinzufügen 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.

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

      • Wird durch doppelte Anführungszeichen dargestellt

    • Zahl

      • Beinhaltet ganze Zahlen, 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