SUPERconfigurazioni - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

SUPERconfigurazioni

È possibile configurare i SUPER dati per scenari specifici. Le sezioni seguenti forniscono dettagli sulla scelta e l'applicazione delle SUPER configurazioni appropriate in base ai requisiti di formato dei dati.

Modalità lassiste e rigorose per SUPER

Quando si eseguono interrogazioni SUPER sui dati, l'espressione del percorso potrebbe non corrispondere alla struttura SUPER dei dati effettiva. Se tenti di accedere a un membro inesistente di un oggetto o elemento di un array, Amazon Redshift restituisce NULL un valore se la query viene eseguita nella modalità lax predefinita. Se si esegue la query in modalità rigorosa, Amazon Redshift restituisce un errore. I seguenti parametri di sessione possono essere impostati per attivare o disattivare la modalità permissiva.

Nell'esempio seguente vengono utilizzati i parametri di sessione per abilitare la modalità permissiva.

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

Accesso a JSON campi con nomi o attributi di campo in maiuscolo e misto

Quando i nomi JSON degli attributi sono in maiuscolo o misto, devi essere in grado di navigare tra SUPER le strutture dei tipi facendo distinzione tra maiuscole e minuscole. A tale scopo, è possibile configurare TRUE e racchiudere i nomi degli enable_case_sensitive_identifier attributi in maiuscolo e misto tra virgolette doppie. Puoi anche configurare su. enable_case_sensitive_super_attribute TRUE In questo caso, puoi utilizzare nomi di attributi in maiuscolo e in maiuscolo e minuscolo nelle query senza racchiuderli tra virgolette doppie.

Nell'esempio seguente viene mostrato come impostare enable_case_sensitive_identifier per eseguire query sui dati.

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)

Nell'esempio seguente viene mostrato come impostare enable_case_sensitive_super_attribute per eseguire query sui dati.

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)

Opzioni di analisi per SUPER

Quando si utilizza la PARSE funzione JSON _ per analizzare le JSON stringhe in SUPER valori, si applicano alcune restrizioni:

  • Lo stesso nome di attributo non può essere visualizzato nello stesso oggetto, ma può essere visualizzato in un oggetto annidato. L'opzione di json_parse_dedup_attributes configurazione consente PARSE a JSON _ di conservare solo l'ultima occorrenza degli attributi duplicati invece di restituire un errore.

  • I valori di stringa non possono superare la dimensione massima varchar del sistema di 65535 byte. L'opzione di json_parse_truncate_strings configurazione consente a JSON _ PARSE () di troncare automaticamente le stringhe più lunghe di questo limite senza restituire un errore. Questo comportamento influisce solo sui valori di stringa e non sui nomi degli attributi.

Per ulteriori informazioni sulla PARSE funzione JSON _, vedere. JSONPARSEfunzione _

Gli esempi seguenti mostrano come configurare l'opzione di configurazione json_parse_dedup_attributes per il comportamento di default di restituire un errore per gli attributi duplicati.

SET json_parse_dedup_attributes=OFF; --default behavior of returning error instead of de-duplicating attributes

Gli esempi seguenti mostrano come impostare l'opzione di configurazione json_parse_truncate_strings per il comportamento di default di restituire un errore per le stringhe più lunghe di questo limite.

SET json_parse_truncate_strings=OFF; --default behavior of returning error instead of truncating strings