Inserimento in streaming su una vista materializzata - 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à.

Inserimento in streaming su una vista materializzata

L'ingestione di streaming consente l'inserimento di dati a bassa latenza e alta velocità da Amazon Kinesis Data Streams o Amazon Managed Streaming for Apache Kafka verso un database con provisioning di Amazon Redshift o Amazon Redshift Serverless. I dati arrivano in una vista materializzata di Redshift configurata per lo scopo. Ciò si traduce in un accesso rapido ai dati esterni. L'ingestione dello streaming riduce i tempi di accesso ai dati e riduce i costi di archiviazione. Puoi configurarlo per il tuo cluster Amazon Redshift o per il tuo gruppo di lavoro Serverless Amazon Redshift, utilizzando una piccola raccolta di comandi. SQL Dopo la configurazione, ogni aggiornamento della vista materializzata può importare centinaia di megabyte di dati al secondo.

In che modo i dati fluiscono da un servizio di streaming a Redshift

Aiuta a capire come funziona l'ingestione dello streaming e gli oggetti del database utilizzati nel processo. I dati fluiscono direttamente da un provider di flussi di dati a un cluster con provisioning di Amazon Redshift o a un gruppo di lavoro Serverless Amazon Redshift. Non esiste un'area di atterraggio temporanea, come un bucket Amazon S3. Il cluster o il gruppo di lavoro fornito è il consumatore di streaming. Nel database Redshift, i dati letti dallo stream vengono visualizzati in una vista materializzata. I dati vengono elaborati non appena arrivano. Ad esempio, JSON i valori possono essere consumati e mappati alle colonne di dati di una vista materializzata, utilizzando. SQL Quando la vista materializzata viene aggiornata, Redshift utilizza i dati dai data shard Kinesis allocati o dalle partizioni Kafka fino a quando la vista non viene aggiornata con lo stream.

I casi d'uso per l'ingestione dello streaming di Amazon Redshift riguardano dati generati continuamente e devono essere elaborati entro un breve periodo, o latenza, dalla loro origine. Questa è comunemente chiamata analisi quasi in tempo reale. Le fonti possono includere dispositivi IT, dispositivi di telemetria di sistema e dati clickstream provenienti da un sito Web o un'applicazione molto trafficati.

Le migliori pratiche di analisi dei dati per migliorare le prestazioni

Quando configuri l'ingestione dello streaming, sono disponibili opzioni per analizzare i dati in entrata. Le pratiche possono includere l'esecuzione della logica aziendale o la formattazione all'arrivo dei dati. Consigliamo le seguenti best practice per evitare errori o perdite di dati. Queste derivano da test interni e aiutano i clienti a risolvere i problemi di configurazione e analisi.

  • Estrazione di valori dai dati in streaming: se si utilizza la TEXT funzione JSON_ _ EXTRACT PATH _ nella definizione della vista materializzata per analizzare o distruggere lo streaming, ciò può influire in modo significativo su prestazioni e latenza. JSON Per spiegare, per ogni colonna estratta utilizzando JSON _ _ _EXTRACT, la voce in entrata viene nuovamente analizzata. PATH TEXT JSON Successivamente, vengono eseguiti la conversione dei tipi di dati, il filtraggio e i calcoli della logica aziendale. Ciò significa, ad esempio, che se si estraggono 10 colonne dai JSON dati, ogni JSON record viene analizzato 10 volte, il che include una logica aggiuntiva. Ciò si traduce in una maggiore latenza di ingestione. Un approccio alternativo che consigliamo consiste nell'utilizzare la PARSEfunzione JSON _ per convertire i JSON record nel tipo di dati di Redshift. SUPER Dopo che i dati in streaming arrivano nella vista materializzata, usa PartiQL per estrarre singole stringhe dalla rappresentazione dei SUPER dati. JSON Per ulteriori informazioni, consulta Interrogazione di dati semistrutturati.

    Inoltre, tieni presente che JSON _ _ EXTRACT PATH _ TEXT ha una dimensione dei dati massima di 64 KB. Pertanto, se un JSON record è più grande di 64 KB, l'elaborazione con JSON _ _ EXTRACT PATH _ TEXT genera un errore.

  • Mappare uno Amazon Kinesis Data Streams stream o un MSK argomento Amazon su più viste materializzate: non è consigliabile creare più viste materializzate per inserire dati da un singolo flusso o argomento. Questo perché ogni vista materializzata crea un consumatore per ogni shard nel flusso o nella partizione Kinesis Data Streams nell'argomento Kafka. Ciò può comportare una limitazione o un superamento della velocità effettiva dello stream o dell'argomento. Inoltre, può comportare costi più elevati, poiché si inseriscono gli stessi dati più volte. Quando configuri l'acquisizione dello streaming, ti consigliamo di creare una vista materializzata per ogni stream o argomento.

    Se il tuo caso d'uso richiede l'inserimento di dati da un KDS flusso o MSK argomento in più viste materializzate, consulta il blog AWS Big Data, in particolare sulle migliori pratiche per implementare l' near-real-time analisi utilizzando Amazon Redshift Streaming Ingestion with MSK Amazon, prima di farlo.

Comportamento e tipi di dati relativi all'inserimento dello streaming

La tabella seguente descrive i dettagli del comportamento tecnico e i limiti di dimensione per vari tipi di dati. Ti consigliamo di conoscerli bene prima di configurare una vista materializzata per l'ingestione dello streaming.

Caratteristica o comportamento Descrizione
Limite di lunghezza dell'argomento Kafka

Non è possibile utilizzare un nome di un argomento Kafka di lunghezza superiore a 128 caratteri (escluse le virgolette). Per ulteriori informazioni, consulta Nomi e identificatori.

Aggiornamenti incrementali e su una vista materializzata JOINs

La vista materializzata deve essere gestibile in modo incrementale. Il ricalcolo completo non è possibile per Kinesis o MSK Amazon perché, per impostazione predefinita, non conservano la cronologia degli stream o degli argomenti delle ultime 24 ore o 7 giorni. Puoi impostare periodi di conservazione dei dati più lunghi in Kinesis o Amazon. MSK Tuttavia, ciò può comportare una manutenzione maggiore e costi superiori. Inoltre, non JOINs sono attualmente supportate nelle viste materializzate create su uno stream Kinesis o su un argomento AmazonMSK. Dopo aver creato una vista materializzata su un flusso o un argomento, è possibile creare un'altra vista materializzata da utilizzare per connettere la vista materializzata in streaming ad altre viste materializzate, tabelle o viste.

Per ulteriori informazioni, consulta. REFRESHMATERIALIZEDVIEW

Analisi dei record

L'inserimento dello streaming di Amazon Redshift non supporta l'analisi dei record aggregati dalla Kinesis Producer Library (Key Concepts - Aggregation). KPL I record aggregati vengono importati, ma vengono archiviati come dati buffer del protocollo binario. (Consulta la sezione relativa ai Buffer di protocollo per ulteriori informazioni). A seconda di come si esegue il push dei dati su Kinesis, potrebbe essere necessario disabilitare questa funzionalità.

Decompressione

VARBYTEnon supporta la decompressione. Pertanto, non è possibile eseguire query sui record contenenti dati compressi in Redshift. Decomprimi i dati prima di aggiungerli allo stream Kinesis o all'argomento Amazon. MSK

Dimensione massima dei record

La dimensione massima di ogni campo di record che Amazon Redshift può importare da Kinesis o Amazon MSK è leggermente inferiore a 1 MB. I seguenti punti descrivono in dettaglio il comportamento:

  • VARBYTELunghezza massima: per l'ingestione dello streaming, questo VARBYTE tipo supporta dati fino a una lunghezza massima di 1.024.000 byte. Kinesis limita i payload a 1 MB.

  • Limiti dei messaggi: la MSK configurazione predefinita di Amazon limita i messaggi a 1 MB. Inoltre, se un messaggio include intestazioni, la quantità di dati è limitata a 1.048.470 byte. Le impostazioni predefinite non creano problemi di importazione. Tuttavia, puoi modificare la dimensione massima dei messaggi per Kafka, e quindi AmazonMSK, impostandola su un valore maggiore. In questo caso, è possibile che il campo chiave/valore di un record Kafka, o l'intestazione, superi il limite di dimensione. Questi record possono causare un errore e non vengono importati.

Nota

Amazon Redshift supporta una dimensione massima di 1.024.000 byte per l'acquisizione di streaming da Kinesis o Amazon, MSK anche se Amazon Redshift supporta una dimensione massima di 16 MB per il tipo di dati. VARBYTE

Record che generano errori

In ogni caso in cui un record non può essere importato su Redshift perché la dimensione dei dati supera il limite massimo, quel record viene ignorato. In questo caso, l'aggiornamento della vista materializzata ha comunque esito positivo e un segmento di ogni record che genera un errore viene scritto nella tabella di sistema SYS_STREAM_SCAN_ERRORS. Gli errori derivanti da logica di business, ad esempio un errore in un calcolo o un errore dovuto alla conversione di un tipo, non vengono ignorati. Verifica attentamente la logica prima di aggiungerla alla definizione della vista materializzata.

MSKConnettività VPC multiprivata Amazon

La connettività MSK VPC multiprivata di Amazon non è attualmente supportata per l'ingestione dello streaming Redshift. In alternativa, puoi utilizzare il VPCpeering per connetterti VPCs o connettere AWS Transit Gatewayreti locali tramite VPCs un hub centrale. Entrambi possono consentire a Redshift di comunicare con un MSK cluster Amazon o con Amazon MSK Serverless in un altro. VPC

Aggiornamento automatico, utilizzo e attivazione

Le interrogazioni di aggiornamento automatico per una o più viste materializzate vengono trattate come qualsiasi altro carico di lavoro dell'utente. L'aggiornamento automatico carica i dati dal flusso non appena arrivano.

L'aggiornamento automatico può essere attivato in modo esplicito per una vista materializzata creata per l'importazione di dati in streaming. A tale scopo, specifica AUTO REFRESH nella definizione della vista materializzata. L'impostazione predefinita è l'aggiornamento manuale. Per specificare l'aggiornamento automatico di una vista materializzata esistente per l'importazione di dati in streaming, puoi eseguire ALTER MATERIALIZED VIEW per attivarlo. Per ulteriori informazioni, consulta o. CREATEMATERIALIZEDVIEWALTERMATERIALIZEDVIEW

Inserimento di streaming e Amazon Redshift Serverless

Le istruzioni di configurazione e configurazione che si applicano all'inserimento di streaming di Amazon Redshift su un cluster fornito si applicano anche all'ingestione di streaming su Amazon Redshift Serverless. È importante specificare il livello necessario per RPUs supportare l'ingestione dello streaming con aggiornamento automatico e altri carichi di lavoro. Per ulteriori informazioni consulta Fatturazione per Amazon Redshift Serverless.

Nodi Amazon Redshift in una zona di disponibilità diversa rispetto al cluster Amazon MSK

Quando configuri l'ingestione dello streaming, Amazon Redshift tenta di connettersi a un cluster MSK Amazon nello stesso cluster di disponibilità, se Amazon Rack Awareness è abilitato. MSK Se tutti i nodi si trovano in zone di disponibilità diverse rispetto al cluster Amazon Redshift, è possibile incorrere in costi di trasferimento dei dati tra zone di disponibilità. Per evitare che ciò accada, mantieni almeno un nodo del cluster di MSK broker Amazon nella stessa zona del cluster o del gruppo di lavoro con provisioning Redshift.

Aggiorna la posizione di partenza

Dopo aver creato una vista materializzata, il suo aggiornamento iniziale inizia dal TRIM_HORIZON flusso Kinesis o dall'offset 0 di un argomento Amazon. MSK

Formati di dati

I formati di dati supportati sono limitati a quelli da cui è possibile convertireVARBYTE. Per ulteriori informazioni, consulta VARBYTEtipo e Operatori VARBYTE.

Aggiungere record a una tabella

È possibile eseguire ALTER TABLE APPEND l'operazione per aggiungere righe a una tabella di destinazione da una vista materializzata di origine esistente. Funziona solo se la vista materializzata è configurata per l'importazione dati in streaming. Per ulteriori informazioni, vedere. ALTERTABLEAPPEND

In esecuzione TRUNCATE o DELETE

Puoi rimuovere i record da una vista materializzata utilizzata per l'acquisizione di streaming, utilizzando quanto segue:

  • TRUNCATE— Ciò elimina tutte le righe da una vista materializzata configurata per l'ingestione dello streaming. Non esegue una scansione della tabella. Per ulteriori informazioni, consulta. TRUNCATE

  • DELETE— Questa operazione elimina tutte le righe da una vista materializzata configurata per l'ingestione dello streaming. Per ulteriori informazioni, consulta. DELETE