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.
SUPERKonfigurationen
Sie können Ihre SUPER Daten für bestimmte Szenarien konfigurieren. In den folgenden Abschnitten finden Sie Einzelheiten zur Auswahl und Anwendung der geeigneten SUPER Konfigurationen auf der Grundlage Ihrer Datenformatanforderungen.
Themen
Laxe und strenge Modi für SUPER
Wenn Sie SUPER Daten abfragen, entspricht der Pfadausdruck möglicherweise nicht der tatsächlichen SUPER Datenstruktur. Wenn Sie versuchen, auf ein nicht vorhandenes Mitglied eines Objekts oder ein Element eines Arrays zuzugreifen, gibt Amazon Redshift einen NULL Wert zurück, wenn Ihre Abfrage im standardmäßigen laxen Modus ausgeführt wird. Wenn Sie Ihre Abfrage im strikten Modus ausführen, gibt Amazon Redshift einen Fehler zurück. Die folgenden Sitzungsparameter können eingestellt werden, um den Lax-Modus ein- oder auszuschalten.
Im folgenden Beispiel werden Sitzungsparameter verwendet, um den Lax-Modus zu aktivieren.
SET navigate_super_null_on_error=ON; --default lax mode for navigation SET cast_super_null_on_error=ON; --default lax mode for casting SET parse_super_null_on_error=OFF; --default strict mode for ingestion
Zugreifen auf JSON Felder mit Feldnamen oder Attributen in Groß- und Kleinschreibung
Wenn Ihre JSON Attributnamen in Großbuchstaben oder in gemischter Schreibweise geschrieben sind, müssen Sie in der Lage sein, zwischen SUPER Typstrukturen zu navigieren, wobei die Groß- und Kleinschreibung beachtet wird. Zu diesem Zweck können Sie festlegenenable_case_sensitive_identifier
, dass die Attributnamen in Großbuchstaben TRUE und in gemischter Groß- und Kleinschreibung in doppelte Anführungszeichen eingeschlossen werden. Sie können auch konfigurieren, dass. enable_case_sensitive_super_attribute
TRUE In diesem Fall können Sie in Ihren Abfragen Attributnamen in Großschreibung und gemischter Groß-/Kleinschreibung verwenden, ohne sie in doppelte Anführungszeichen zu setzen.
Das folgende Beispiel zeigt, wie Sie enable_case_sensitive_identifier
festlegen, um Daten abzufragen.
SET enable_case_sensitive_identifier to TRUE; -- Accessing JSON attribute names with uppercase and mixedcase names SELECT json_table.data."ITEMS"."Name", json_table.data."price" FROM (SELECT json_parse('{"ITEMS":{"Name":"TV"}, "price": 345}') AS data) AS json_table; Name | price ------+------- "TV" | 345 (1 row) RESET enable_case_sensitive_identifier; -- After resetting the above configuration, the following query accessing JSON attribute names with uppercase and mixedcase names should return null (if in lax mode). SELECT json_table.data."ITEMS"."Name", json_table.data."price" FROM (SELECT json_parse('{"ITEMS":{"Name":"TV"}, "price": 345}') AS data) AS json_table; name | price ------+------- | 345 (1 row)
Das folgende Beispiel zeigt, wie Sie enable_case_sensitive_super_attribute
festlegen, um Daten abzufragen.
SET enable_case_sensitive_super_attribute to TRUE; -- Accessing JSON attribute names with uppercase and mixedcase names SELECT json_table.data.ITEMS.Name, json_table.data.price FROM (SELECT json_parse('{"ITEMS":{"Name":"TV"}, "price": 345}') AS data) AS json_table; name | price -----+------- "TV" | 345 (1 row) RESET enable_case_sensitive_super_attribute; -- After resetting enable_case_sensitive_super_attribute, the query now returns NULL for ITEMS.Name (if in lax mode). SELECT json_table.data.ITEMS.Name, json_table.data.price FROM (SELECT json_parse('{"ITEMS":{"Name":"TV"}, "price": 345}') AS data) AS json_table; name | price -----+------- | 345 (1 row)
Parsing-Optionen für SUPER
Wenn Sie die PARSE Funktion JSON _ verwenden, um JSON Zeichenketten in SUPER Werte zu zerlegen, gelten bestimmte Einschränkungen:
Derselbe Attributname kann nicht in demselben Objekt vorkommen, aber in einem verschachtelten Objekt verwendet werden. Die
json_parse_dedup_attributes
Konfigurationsoption ermöglicht es JSON _PARSE, nur das letzte Vorkommen doppelter Attribute beizubehalten, anstatt einen Fehler zurückzugeben.Zeichenfolgenwerte dürfen die maximale Varchar-Größe des Systems von 65535 Byte nicht überschreiten. Die
json_parse_truncate_strings
Konfigurationsoption ermöglicht es JSON _ PARSE (), Zeichenketten, die diesen Grenzwert überschreiten, automatisch zu kürzen, ohne dass ein Fehler zurückgegeben wird. Dieses Verhalten wirkt sich nur auf Zeichenfolgenwerte und nicht auf Attributnamen aus.
Weitere Hinweise zur PARSE Funktion JSON _ finden Sie unterFunktion JSON_PARSE.
Im folgenden Beispiel wird gezeigt, wie Sie für die Konfigurationsoption json_parse_dedup_attributes
das Standardverhalten, also die Rückgabe eines Fehlers bei doppelten Attributen, festlegen.
SET json_parse_dedup_attributes=OFF; --default behavior of returning error instead of de-duplicating attributes
Im folgenden Beispiel wird gezeigt, wie Sie für die Konfigurationsoption json_parse_truncate_strings
das Standardverhalten, also die Rückgabe eines Fehlers bei Zeichenfolgen, die diesen Grenzwert überschreiten, festlegen.
SET json_parse_truncate_strings=OFF; --default behavior of returning error instead of truncating strings