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
Utilizzando il supporto per dati semistrutturati in Amazon Redshift, puoi importare e archiviare dati semistrutturati nei tuoi 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 analisi efficienti su dati relazionali e semistrutturati archiviati 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 forme di supporto per dati semistrutturati: il tipo di dati SUPER e Amazon Redshift Spectrum.
Puoi interrogare dati semistrutturati inserendoli in Amazon Redshift e archiviandoli nel tipo di dati SUPER oppure utilizzare Amazon Redshift Spectrum per interrogare i dati archiviati in Amazon S3.
Le migliori pratiche per lavorare con dati semistrutturati
Prendi in considerazione le seguenti best practice quando lavori con dati semistrutturati.
Ti consigliamo di impostare le opzioni
enable_case_sensitive_super_attribute
e dienable_case_sensitive_identifier
configurazione su true quando lavori con 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 Amazon Redshift SUPER.
Usa la tipizzazione dinamica PartiQL e la semantica lassista per eseguire query ad hoc sui valori dei dati SUPER senza dover imporre uno schema prima dell'interrogazione. Digitazione dinamicaPer informazioni sulla digitazione dinamica, vedere. Per informazioni sulla semantica permissiva, vedere. Semantica permissiva
Distruggi i dati senza schema e semistrutturati in viste materializzate utilizzando PartiQL se prevedi di interrogare i dati frequentemente. 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, vedere. 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 nativamente diversi formati di dati semistrutturati, come JSON o dati provenienti da fonti orientate ai documenti. Puoi aggiungere una nuova colonna SUPER per archiviare dati semistrutturati e scrivere query che accedono alla colonna SUPER, oltre alle solite colonne scalari. Per ulteriori informazioni sui tipi di dati SUPER, consultare Tipo SUPER.
Inserisci JSON senza schema in SUPER: con il tipo di dati SUPER semistrutturato flessibile, Amazon Redshift può ricevere e importare JSON senza schema in colonne con il tipo di dati SUPER. Ad esempio, puoi inserire il valore [10.5, “first”]
JSON 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 usando. 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'acquisizione delle strutture flessibili 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 dati SQL tabulari classici 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 di elaborazione delle query senza schema e lassista rende PartiQL ideale per applicazioni di estrazione, caricamento, trasformazione (ELT) in cui la query SQL valuta i dati JSON che vengono inseriti nelle colonne SUPER.
Per ulteriori informazioni su PartiQL for 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 lassista delle query, vedere. 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 tuoi 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 memorizzati 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 Amazon Redshift Python versione 2.0.872 o successiva. La versione 1.x del driver ODBC non è supportata.
Per informazioni sui driver JDBC, consulta Configurazione di una connessione per la versione 2.x del driver JDBC per Amazon Redshift nella Amazon Redshift Management Guide.
Per informazioni sui driver ODBC, consulta Configurazione di una connessione per la versione 2.x del driver ODBC per Amazon Redshift nella Amazon Redshift Management Guide.
Per informazioni sui driver Python, consulta il connettore Amazon Redshift Python nella Amazon Redshift Management Guide.
Per ulteriori informazioni sulle configurazioni SUPER, consultare Configurazioni di SUPER.