Domande generali
L'analisi interattiva permette l'esplorazione dei dati in streaming in tempo reale. Con query o programmi ad hoc è possibile ispezionare i flussi da Amazon MSK o Amazon Kinesis Data Streams e visualizzare l'aspetto dei dati all'interno di questi flussi. Per esempio è possibile visualizzare come si comporta un parametro in tempo reale che calcola la media su una finestra temporale e inviare i dati aggregati a una destinazione a scelta. L'analisi interattiva contribuisce inoltre allo sviluppo iterativo delle applicazioni di elaborazione di flussi. Le query create si aggiornano continuamente con l'arrivo di nuovi dati. Con Kinesis Data Analytics Studio è possibile implementare queste query per l'esecuzione continua abilitando autoscaling e backup di stato durevoli.
Utilizzare Apache Beam per creare l’applicazione Kinesis Data Analytics è molto simile a quanto accade quando inizi a usare Apache Flink. Segui le istruzioni nella domanda precedente e assicurati di installare tutti i componenti necessari per eseguire le applicazioni su Apache Beam, come da istruzioni della Guida sviluppatore. Tieni presente che Kinesis Data Analytics supporta solo Java SDK quando esegue Apache Beam.
Puoi iniziare dalla console di Amazon Kinesis Data Analytics e creare un nuovo notebook Studio. Una volta iniziato il notebook, è possibile aprirlo in Apache Zeppelin per scrivere immediatamente linguaggio di programmazione in SQL, Python o Scala. È possibile sviluppare interattivamente applicazioni utilizzando l'interfaccia del notebook per Amazon Kinesis Data Streams, Amazon MSK e Amazon S3 utilizzando le integrazioni incorporate e varie altre fonti con connettori personalizzati. Puoi usare tutti gli operatori che Apache Flink supporta in Flink SQL e l'API della tabella per eseguire query ad hoc sul flusso di dati e sviluppare la tua applicazione di elaborazione del flusso. Quando sei pronto, con pochi clic puoi facilmente spostare il tuo codice in un'applicazione di elaborazione di flussi in esecuzione continua con autoscaling e stato durevole.
Sì, tramite i connettori DataStream di Apache Flink, Amazon Kinesis Data Analytics per le applicazioni Apache Flink può utilizzare il registro degli schemi di AWS Glue, una funzionalità serverless di AWS Glue. È possibile integrare Apache Kafka/Amazon MSK e Amazon Kinesis Data Streams, come sink o origine, con Amazon Kinesis Data Analytics per i carichi di lavoro di Apache Flink. Visitate la documentazione utente del Registro degli schemi per iniziare e per saperne di più.
Concetti chiave
Gestione delle applicazioni
- Monitoraggio di Kinesis Data Analytics nella Guida per lo sviluppatore di Amazon Kinesis Data Analytics per Apache Flink.
- Monitoraggio di Kinesis Data Analytics nella Guida per lo sviluppatore di Amazon Kinesis Data Analytics per Studio.
- Monitoraggio di Kinesis Data Analytics nella Guida per lo sviluppatore di Amazon Kinesis Data Analytics per SQL.
- Autorizzazioni concesse nella Guida per lo sviluppatore di Amazon Kinesis Data Analytics per Apache Flink.
- Autorizzazioni concesse nella Guida per lo sviluppatore di Amazon Kinesis Data Analytics per Studio.
- Autorizzazioni concesse nella Guida per lo sviluppatore di Amazon Kinesis Data Analytics per SQL.
Prezzi e fatturazione
Viene addebitata una tariffa oraria calcolata sul numero medio di unità di elaborazione di Amazon Kinesis o KPU (Kinesis Processing Unit) utilizzate per eseguire l'applicazione di elaborazione dei flussi. Una KPU è un'unità di capacità di elaborazione dei flussi composta da 4 GB di memoria e 1 vCPU. Amazon Kinesis Data Analytics ricalibra automaticamente il numero di KPU richieste dall'applicazione di elaborazione di flussi, in quanto le esigenze di memoria e calcolo variano in risposta alla complessità di elaborazione e al throughput dei dati dei flussi elaborati.
Per le applicazioni Apache Flink e Apache Beam, viene addebitata una singola KPU in più per applicazione, utilizzata per l'orchestrazione delle applicazioni. Alle applicazioni Apache Flink e Apache Beam viene addebitata anche l'esecuzione dello storage delle applicazioni e dei loro backup durevoli. L'esecuzione dello storage delle applicazioni è usata per le funzionalità di elaborazione stateful di Amazon Kinesis Data Analytics e viene addebitata per GB al mese. I backup durevoli delle applicazioni sono opzionali e forniscono un punto di ripristino point-in-time per le applicazioni, con addebito per GB al mese.
Per Amazon Kinesis Data Analytics Studio, in modalità di sviluppo o interattiva, ti viene addebitata una KPU aggiuntiva per l'orchestrazione delle applicazioni e una per lo sviluppo interattivo. Ti viene anche addebitato il costo dello storage delle applicazioni. Non ti vengono addebitati costi per i backup durevoli delle applicazioni.
Creazione di applicazioni Apache Flink
Scrittura del codice dell'applicazione per applicazioni utilizzando Apache Flink
DataStream <GameEvent> rawEvents = env.addSource(
New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId,
event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
.keyBy(1)
.window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
.apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
- Origine di flussi di dati: Amazon Managed Streaming for Apache Kafka (Amazon MSK), Amazon Kinesis Data Streams Destinazioni, o sink: Amazon Kinesis Data Streams
- Amazon Kinesis Data Firehose, Amazon DynamoDB, Amazon Elasticsearch Service e Amazon S3 (tramite integrazioni dei sink di file)
Apache Flink include anche altri connettori fra cui Apache Kafka, Apache Cassandra, Elasticsearch ed altri.
Sì. Puoi usare le applicazioni Apache Flink di Kinesis Data Analytics per replicare i dati fra i flussi di dati di Amazon Kinesis, Amazon MSK e altri sistemi. Un esempio fornito nella nostra documentazione dimostra come leggere da un argomento Amazon MSK e scrivere a un altro.
Creare applicazioni Kinesis Data Analytics Studio
D: Come faccio per sviluppare applicazioni Studio?
Puoi iniziare dalle console Amazon Kinesis Data Analytics Studio, Amazon Kinesis Data Streams o Amazon MSK. Con pochi clic puoi lanciare un notebook serverless per eseguire immediatamente query sui flussi di dati ed eseguire analisi interattive dei dati.
Analisi interattiva dei dati: puoi scrivere codice nel notebook in SQL, Python o Scala per interagire con i tuoi dati in streaming, con tempi di risposta delle query nell'ordine dei secondi. Puoi usare le visualizzazioni incorporate per esplorare i dati e visualizzare approfondimenti in tempo reale sui tuoi dati in streaming dall'interno del notebook e sviluppare facilmente applicazioni di elaborazione di flussi supportate da Apache Flink.
Una volta che il tuo codice è pronto per essere eseguito come applicazione di produzione, puoi passare con un solo clic a un'applicazione di elaborazione di flussi che elabora GB di dati al secondo, senza server.
Applicazione di elaborazione di flussi: una volta che sei pronto a spostare il codice alla produzione, puoi creare il tuo codice con un clic. Puoi fare clic su "Distribuisci come applicazione di elaborazione di flussi" nell'interfaccia del notebook o emettere un singolo comando nella CLI: Studio si occupa di tutta la gestione dell'infrastruttura necessaria per eseguire la tua applicazione di elaborazione di flussi su scala, con autoscaling e stato durevole abilitati, proprio come in un'applicazione Amazon Kinesis Data Analytics per Apache Flink.
D: Qual è l'aspetto del codice dell'applicazione?
Puoi scrivere codice nel notebook nel tuo linguaggio preferito, SQL, Python o Scala, usando la Table API di Apache Flink. La Table API è un'astrazione di alto livello e un'API relazionale che supporta un soprainsieme delle capacità di SQL. Offre operazioni familiari come seleziona, filtra, unisci, raggruppa, aggrega, ecc., insieme a concetti specifici dei flussi come il windowing. Si utilizza %<interpreter> per specificare il linguaggio da usare in una sezione del notebook e puoi passare facilmente da una lingua all'altra. Gli interpreti sono plug-in di Apache Zeppelin che permettono agli sviluppatori di specificare un linguaggio o un motore di elaborazione dati per ogni sezione del notebook. Puoi anche costruire funzioni definite dall'utente e utilizzarle come riferimento per migliorare la funzionalità del codice.
D: Quali operazioni SQL sono supportate?
È possibile eseguire operazioni SQL come Scansiona e Filtra (SELECT, WHERE), Aggregazione (GROUP BY, GROUP BY WINDOW, HAVING), Configura (UNION, UNIONALL, INTERSECT, IN, EXISTS), Ordina (ORDER BY, LIMIT), Unisci (INNER, OUTER, Timed Window –BETWEEN, AND, unendo con tabelle temporali - tabelle che tengono traccia dei cambiamenti nel tempo), Top N, deduplicazione e riconoscimento dei modelli. Alcune di queste query come GROUP BY, OUTER JOIN, e Top N sono in configurazione "results updating" per i dati in streaming, il che significa che i risultati vengono continuamente aggiornati mentre i dati in streaming vengono elaborati. Sono supportate anche altre istruzioni DDL come CREATE, ALTER e DROP. Per un elenco completo di query ed esempi, consulta https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/sql/queries.html.
Q: Come sono supportati Python e Scala?
La Table API di Apache Flink supporta Python e Scala attraverso l'integrazione dei linguaggi usando stringhe Python ed espressioni Scala. Le operazioni supportate sono molto simili a quelle di SQL, tra cui seleziona, ordina, raggruppa, unisci, filtra e windowing. L'elenco completo delle operazioni e degli esempi è incluso nella nostra documentazione qui.
D: Quali versioni di Apache Flink e Apache Zeppelin sono supportate?
Per saperne di più sulle versioni di Apache Flink supportate, consulta la pagina delle note di rilascio di Amazon Kinesis Data Analytics (Analisi dei dati Amazon Kinesis). Questa pagina include anche le versioni Apache Zeppelin, Apache Beam, Java, Python e AWS SDK che Kinesis Data Analytics supporta.
D: Quali integrazioni sono supportate di default in un'applicazione Kinesis Data Analytics Studio?
- Origine dei dati: Amazon Managed Streaming per Apache Kafka (Amazon MSK), Amazon Kinesis Data Streams, Amazon S3
- Destinazioni o sink: Amazon MSK, Amazon Kinesis Data Streams e Amazon S3
D: Le integrazioni personalizzate sono supportate?
È possibile configurare ulteriori integrazioni con pochi passaggi aggiuntivi e linee di codice Apache Flink (Python, Scala o Java) per definire connessioni con tutte le integrazioni supportate da Apache Flink, comprese destinazioni come Amazon Elasticsearch Service, Amazon ElastiCache for Redis, Amazon Aurora, Amazon Redshift, Amazon DynamoDB, Amazon Keyspaces e altri. Puoi allegare gli eseguibili per questi connettori personalizzati quando crei o configuri la tua applicazione Studio.
D: Devo sviluppare con Kinesis Data Analytics Studio o con Kinesis Data Analytics SQL?
Consigliamo di iniziare con Kinesis Data Analytics Studio perché offre un'esperienza di elaborazione di flussi più completa con l'elaborazione "esattamente una volta". Kinesis Data Analytics Studio offre lo sviluppo di applicazioni di elaborazione di flussi nel tuo linguaggio preferito (SQL, Python e Scala), ricalibra fino a GB/s di elaborazione, supporta calcoli di lunga durata per ore o addirittura giorni, esegue aggiornamenti del codice in pochi secondi, gestisce più flussi di input e lavora con una varietà di flussi di input, tra cui Amazon Kinesis Data Streams e Amazon MSK.
Creare applicazioni Amazon Kinesis Data Analytics SQL
Per i nuovi progetti consigliamo di utilizzare il nuovo Kinesis Data Analytics Studio, piuttosto che Kinesis Data Analytics per applicazioni SQL. Kinesis Data Analytics Studio combina facilità d'uso e capacità analitiche avanzate, permettendoti di costruire sofisticate applicazioni di elaborazione di flussi in pochi minuti.
Configurazione dell'input per applicazioni SQL
Scrittura del codice dell'applicazione per applicazioni SQL
- Usa sempre un'istruzione SELECT nel contesto di un'istruzione INSERT. Quando selezioni una riga, inserisci i risultati in un altro flusso in applicazione.
- Usa un'istruzione INSERT nel contesto di un pump.
- Usa un pump per rendere continua un'istruzione INSERT e procedere alla scrittura su un flusso in applicazione.
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
ticker_symbol VARCHAR(4),
change DOUBLE,
price DOUBLE);
CREATE OR REPLACE PUMP "STREAM_PUMP" AS
INSERT INTO "DESTINATION_SQL_STREAM"
SELECT STREAM ticker_symbol, change, price
FROM "SOURCE_SQL_STREAM_001";
Configurazione delle destinazioni nelle applicazioni SQL
Confronto con altre soluzioni di elaborazione di flussi
Contratto sul livello di servizio
D: Che cosa garantisce il contratto sul livello di servizio (SLA) di Amazon Kinesis Data Analytics?
Lo SLA di Amazon Kinesis Data Analytics garantisce una percentuale di tempo di attività mensile di almeno il 99,9% per Amazon Kinesis Data Analytics.
D: Come posso sapere se ho diritto a un credito di assistenza SLA?
Hai diritto a un credito di assistenza SLA per Amazon Kinesis Data Analytics, secondo lo SLA di Amazon Kinesis Data Analytics, se più di una zona di disponibilità in cui stai eseguendo un'attività, all'interno della stessa regione ha una percentuale di tempo di attività mensile inferiore al 99,9% durante un qualsiasi ciclo di fatturazione mensile. Per dettagli completi sui termini e le condizioni del contratto sul livello di servizio e per indicazioni sulla presentazione di una richiesta, consulta la pagina dei dettagli relativa allo SLA di Amazon Kinesis.
Nozioni di base su Amazon Kinesis Data Analytics

Scopri come usare Amazon Kinesis Data Analytics con questa guida dettagliata per SQL o Apache Flink.

Crea la tua prima applicazione di streaming tramite la console di Amazon Kinesis Data Analytics.