Amazon Redshift non supporterà più la creazione di nuovi Python a UDFs partire dal 1° novembre 2025. Se vuoi usare Python UDFs, crea la UDFs data precedente a quella data. Python esistente UDFs continuerà a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog
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à.
Dati semistrutturati in Amazon Redshift
Usando il supporto per dati semistrutturati in Amazon Redshift, puoi importare ed archiviare i dati semistrutturati nei data warehouse Amazon Redshift. Utilizzando il tipo di dati SUPER e il linguaggio PartiQL, Amazon Redshift espande la capacità di data warehouse per integrarsi con le origini dati SQL e NoSQL. In questo modo Amazon Redshift consente di analizzare in modo efficiente i dati archiviati relazionali e semistrutturati come JSON. Per informazioni sull’integrazione di Amazon Redshift con PartiQL, consulta PartiQL: un linguaggio di query compatibile con SQL per Amazon Redshift.
Amazon Redshift offre due formati di supporto per i dati semistrutturati: il tipo di dati SUPER e Amazon Redshift Spectrum.
Puoi eseguire query sui dati semistrutturati importandoli in Amazon Redshift e archiviandoli nel tipo di dati SUPER oppure utilizzare Amazon Redshift Spectrum per eseguire query sui dati archiviati in Amazon S3.
Best practice per l’utilizzo di dati semistrutturati
Considera le best practice seguenti quando utilizzi i dati semistrutturati:
Consigliamo di impostare le opzioni di configurazione
enable_case_sensitive_super_attributeeenable_case_sensitive_identifiersu true quando utilizzi i dati SUPER. Per ulteriori informazioni, consultare enable_case_sensitive_super_attribute e enable_case_sensitive_identifier.Utilizza il comando COPY per caricare i dati dai bucket Amazon S3 nelle colonne SUPER di Amazon Redshift.
Utilizza la digitazione dinamica PartiQL e la sintassi permissiva per eseguire query ad hoc sui valori dei dati SUPER senza la necessità di imporre uno schema prima dell’esecuzione delle query. Per informazioni sulla digitazione dinamica, consulta Digitazione dinamica. Per informazioni sulla semantica permissiva, consulta Semantica permissiva.
Suddividi i dati senza schema e semistrutturati in viste materializzate utilizzando PartiQL se prevedi di eseguire frequentemente query sui dati. Quando si esegue un'analisi sui dati ridotti, l'organizzazione a colonne delle viste materializzate di Amazon Redshift offre prestazioni migliori. Inoltre, gli utenti e gli strumenti di Business Intelligence (BI) che richiedono uno schema convenzionale per i dati importati possono utilizzare viste (materializzate o virtuali) come presentazione convenzionale dello schema dei dati.
Dopo che le viste materializzate PartiQL hanno estratto i dati trovati in JSON o SUPER in viste materializzate a colonne convenzionali, è possibile eseguire una query sulle viste materializzate. Per informazioni sulle viste materializzate, consulta Viste materializzate in Amazon Redshift. Per ulteriori informazioni sul funzionamento del tipo di dati SUPER con le viste materializzate, consultare Tipo di dati SUPER e viste materializzate.
Concetti per l'utilizzo del tipo di dati SUPER
Di seguito, sono riportati alcuni concetti sul tipo di dati SUPER di Amazon Redshift.
Capire qual è il tipo di dati SUPER in Amazon Redshift: il tipo di dati SUPER è un tipo di dati Amazon Redshift che consente l'archiviazione di array e strutture senza schemi che contengono dati scalari Amazon Redshift ed eventualmente array e strutture nidificate. Il tipo di dati SUPER può archiviare in modo nativo diversi formati di dati semistrutturati, come JSON o i dati provenienti da origini orientate ai documenti. Puoi aggiungere una nuova colonna SUPER per archiviare i dati semistrutturati e scrivere query che accedono alla colonna SUPER, insieme alle solite colonne scalari. Per ulteriori informazioni sui tipi di dati SUPER, consultare Tipo SUPER.
Importa JSON senza schema in SUPER: con il tipo di dati SUPER semistrutturati flessibile, Amazon Redshift può ricevere e importare JSON senza schema in colonne con il tipo di dati SUPER. Ad esempio, puoi importare il valore JSON [10.5, “first”] in una colonna di tipo di dati SUPER utilizzando il comando COPY. La colonna conterrebbe un valore SUPER di [10.5, ‘first’]. Puoi anche importare JSON utilizzando Funzione JSON_PARSE. Sia COPY che il JSON di importazione json_parse utilizzano la sintassi di analisi rigorosa per impostazione predefinita. È inoltre possibile costruire valori SUPER che includono array e strutture utilizzando i dati stessi del database.
La colonna SUPER non richiede modifiche allo schema durante l’importazione delle strutture irregolari di JSON senza schema. Ad esempio, durante l'analisi di un click-stream, inizialmente nella colonna SUPER vengono archiviati strutture di "click" con gli attributi "IP" e "time". È possibile aggiungere un attributo "customer id" senza modificare lo schema al fine di importare tali modifiche.
Il formato nativo utilizzato per il tipo di dati SUPER è un formato binario che richiede meno spazio rispetto al valore JSON nella sua forma testuale. Ciò consente un'importazione più veloce e l'elaborazione in runtime dei valori SUPER sulla query.
Interroga i dati SUPER con PartiQL — PartiQL è un'estensione retrocompatibile di SQL-92 attualmente utilizzata da molti servizi. AWS Con l’uso di PartiQL, i costrutti SQL familiari combinano perfettamente l’accesso sia ai classici dati SQL tabulari che ai dati semistrutturati di SUPER. È possibile eseguire la navigazione di oggetti e array e annullare la nidificazione degli array. PartiQL estende il linguaggio SQL standard per esprimere dichiarativamente ed elaborare dati nidificati e multivalore.
PartiQL è un'estensione di SQL in cui i dati nidificati e senza schema delle colonne SUPER sono elementi prioritari. PartiQL non richiede che tutte le espressioni di query vengano controllate dal tipo durante il tempo di compilazione della query. Questo approccio abilita espressioni di query che contengono il tipo di dati SUPER durante l'esecuzione della query quando si accede ai tipi effettivi dei dati all'interno delle colonne SUPER. Inoltre, PartiQL opera in una modalità permissiva in cui le incongruenze di tipo non causano errori ma restituiscono null. La combinazione dei dati senza schema e dell’elaborazione di query permissiva rende PartiQL ideale per le applicazioni di estrazione, caricamento, trasformazione (ELT) in cui la query SQL valuta i dati JSON che vengono importati nelle colonne SUPER.
Per ulteriori informazioni su PartiQL per Amazon Redshift, consulta PartiQL: un linguaggio di query compatibile con SQL per Amazon Redshift. Per informazioni sulla digitazione dinamica, consulta Digitazione dinamica. Per informazioni sull’elaborazione di query permissiva, consulta Semantica permissiva.
Integrazione con Redshift Spectrum: Amazon Redshift supporta più aspetti di PartiQL durante l'esecuzione di query Redshift Spectrum su JSON, Parquet e altri formati con dati nidificati. Redshift Spectrum supporta solo i dati nidificati con schemi. Ad esempio, con Redshift Spectrum puoi dichiarare che i dati JSON hanno l’attributo nested_schemaful_example nello schema ARRAY<STRUCT<a:INTEGER, b:DECIMAL(5,2)>>. Lo schema di questo attributo determina che i dati contengono sempre un array che a sua volta contiene una struttura con numero intero a e decimale b. Se i dati vengono modificati in modo da includere più attributi, viene modificato anche il tipo. Al contrario, il tipo di dati SUPER non richiede alcuno schema. È possibile memorizzare array con elementi della struttura che hanno attributi o tipi diversi. Inoltre i valori possono essere archiviati all’esterno degli array.
Considerazioni sull’utilizzo di dati di tipo SUPER
Quando si utilizzano i dati SUPER, tenere in considerazione quanto riportato di seguito:
Utilizza il driver JDBC versione 2.x, il driver ODBC versione 2.x o il driver Python versione 2.0.872 o successiva per Amazon Redshift. Il driver ODBC versione 1.x non è supportato.
Per ulteriori informazioni sui driver JDBC, consulta Configurazione di una connessione per il driver JDBC versione 2.x per Amazon Redshift nella Guida alla gestione di Amazon Redshift.
Per ulteriori informazioni sui driver ODBC, consulta Configurazione di una connessione per il driver ODBC versione 2.x per Amazon Redshift nella Guida alla gestione di Amazon Redshift.
Per informazioni sui driver Python, consulta Connettore Python Amazon Redshift nella Guida alla gestione di Amazon Redshift.
Per ulteriori informazioni sulle configurazioni SUPER, consultare Configurazioni di SUPER.