Analysis Flashcards
O que é o Kinesis Data Analytics?
Serviço que permite processar e analisar dados de streaming em tempo real com SQL padrão, podendo realizar consultas para agregar, filtrar e juntar dados em fluxo de tempo real.
Como funciona o Kinesis Data Analytics com Lambda?
Permite execução de código personalizado, flexibilidade de pós-processamento para agregações de linhas, conversão de diferentes formatos, transformação e enriquecimento de dados, encriptação.
Integração com outros serviços e destinos: S3, DynamoDB, Aurora, Redshift, SNS, SQS, CloudWatch.
Quais os casos de uso do Kinesis Data Analytics?
Streaming de ETL, criação de métricas contínuas, análise responsiva.
Exemplos de aplicações do Kinesis Data Analytics
Monitoramento e análise de logs, detecção de fraudes, análise de IoT, análise de dados de mídia social.
Resources Kinesis Analytics (ENGLISH)
- Pay only for resources consumed (but it’s not cheap)
- Charged by Kinesis Processing Units (KPU’s) consumed per hour
- 1 KPU = 1 vCPU + 4GB
- Serverless; scales automatically
- Use IAM permissions to access streaming source and
destination(s) - Schema discovery
O que é o RANDOM_CUT_FOREST no Kinesis Data Analytics
Algoritmo em SQL para detecção de anomalias nos dados em tempo real, como dados de sensores, logs de aplicativos, entre outros
What is Opensearch?
- A fork of Elasticsearch and
Kibana - A search engine * An analysis tool * A visualization tool (Dashboards = Kibana)
- A data pipeline * Kinesis replaces Beats & LogStash
- Horizontally scalable
O que é o OpenSearch
Mecanismo de busca rápido e escalável, versão do Lucene e distribuído horizontamente através de muitos nós em um cluster.
Aplicações do OpenSearch
- Pesquisa de texto completo
- Análise de log
- Monitoramento de aplicativos
- Análise de segurança
- Análise de fluxo de cliques
Opensearch applications
- Full-text search
- Log analytics
- Application monitoring
- Security analytics
- Clickstream analytic
OpenSearch conceitos de documentos
Documentos são as coisas que você procura, eles podem ser mais do que texto
– qualquer JSON de dados estruturados funcionam. Todo documento tem um
ID exclusivo e um tipo.
OpenSearch concepts of documents
Documents are the things you’re searching for. They can be more than text
– any structured JSON
data works. Every document has a unique ID, and a type.
OpenSearch conceito de índices.
Um índice permite pesquisar em todos documentos dentro de uma coleção de tipos. Eles contêm índices invertidos que permitem pesquisar tudo dentro deles ao mesmo tempo.
OpenSearch Index concepts
An index powers search into all documents within a collection of types. They contain inverted índices that let you search across everything within them at once.
An index is split into shards
Each shard may be on a different node in a cluster.Every shard is a self-contained Lucene index of its own.
Os documentos são hash para um fragmento específico
Cada shard pode estar em um nó diferente em um cluster.
Cada fragmento é um eu
-contido índice Lucene próprio.
Redundancy
This index has two primary shards and two replicas.
Your application should round-robin requests amongst nodes.
Amazon Opensearch Service
- Fully-managed (but not serverless) * Scale up or down without downtime * But this isn’t automatic * Pay for what you use * Instance-hours, storage, data transfer * Network isolation * AWS integration * S3 buckets (via Lambda to Kinesis) * Kinesis Data Streams * DynamoDB Streams * CloudWatch / CloudTrail * Zone awareness
Amazon Opensearch Service (Port)
- Totalmente gerenciado (mas não sem servidor)
- Ampliar ou reduzir sem tempo de inatividade
- Mas isso não é automático
- Pague pelo que usar
- Instância-hora, armazenamento, transferência de dados
- Isolamento de rede
- Integração AWS
- S3 buckets (via Lambda para Kinesis)
- Kinesis Data Streams
- DynamoDB Streams
- CloudWatch / CloudTrail
- Zone awareness
Amazon Opensearch options
- Dedicated master node(s)
- Choice of count and instance types
- “Domains”
- Snapshots to S3 * Zone Awarenes
Opções do Amazon Opensearch
- Nó(s) principal(is) dedicado(s)
- Escolha de contagem e tipos de instância
- “Domínios”
- Snapshots para S3
- Zone Awarenes
Cold / warm / ultrawarm / hot storage
- Standard data nodes use “hot” storage
- Instance stores or EBS volumes / fastest performance
UltraWarm (warm) storage uses S3 + caching
- Best for indices with few writes (like log data /
immutable data) - Slower performance but much lower cost
- Must have a dedicated master node
Cold storage
- Also uses S3
- Even cheaper
- For “periodic research or forensic analysis on older
data” - Must have dedicated master and have UltraWarm
enabled too. - Not compatible with T2 or T3 instance types on data
nodes - If using fine-grained access control, must map users to
cold_manager role in OpenSearch Dashboards
Integrações OpenSearch com outros serviços AWS
- Buckets S3 (via Lambda para Kinesis)
- Kinesis Data Streams
- Fluxos do DynamoDB
- CloudWatch/CloudTrail
- Conscientização da zona
Index State Management examples
- Delete old indices after a period of time * Move indices into read only state after a period of
time - Move indices from hot
-> UltraWarm
-> cold
storage over time - Reduce replica count over time * Automate index snapshots
SM policies are run every 30
-48 minutes
Random jitter to ensure they don’t all run at once
Exemplos de gerenciamento de estado do índice
Excluir índices antigos após um período de tempo
* Mover índices para o estado somente leitura após um período de tempo
* Mover índices de hot
-> Ultraquente
-> frio
armazenamento ao longo do tempo
* Reduzir a contagem de réplicas ao longo do tempo
* Automatizar instantâneos de índice
More Index Management - Index rollups
- Periodically roll up old data into summarized indices
- Saves storage costs
- New index may have fewer fields, coarser time buckets
More Index Management - Index transforms
- Like rollups, but purpose is to create a different view to analyze data differently.
- Groupings and aggregations
Rollups de índice
- Acumule periodicamente dados antigos em índices resumidos
- Economiza custos de armazenamento
- Novo índice pode pode ter menos campos
Transformações de índice
- Como rollups, mas o objetivo é criar uma visão diferente para analisar os dados de forma diferente.
- Agrupamentos e agregações
Cross-cluster replication
- Replicate indices / mappings / metadata across domains
- Ensures high availability in an outage
- Replicate data geographically for better latency
- “Follower” index pulls data from “leader” index
- Requires fine-grained access control and node-to
-node encryption - “Remote Reindex” allows copying indices from one cluster to another on demand
replicação de cluster cruzado
- Replicar índices/mapeamentos/
metadados entre domínios - Garante alta disponibilidade em uma interrupção
- Replicar dados geograficamente para
melhor latência - O índice “Seguidor” extrai dados de índice de “líder”
- Requer multa-controle de acesso granular e nó-para
-criptografia de nó - “Reindexação Remota” permite copiar índices de um cluster para outro Sob demanda
Opensearch Stability
* 3 dedicated master nodes is best
- Avoids “split brain”
Opensearch Stability - Don’t run out of disk space
Minimum storage requirement is roughly:
Source Data * (1 + Number of Replicas) * 1.45
Choosing the number of shards
- (source data + room to grow) * (1 + indexing
overhead) / desired shard size - In rare cases you may need to limit the number of
shards per node - You usually run out of disk space first
Choosing instance types
- At least 3 nodes
- Mostly about storage requirements
- i.e., m6g.large.search, i3.4xlarge.search,
i3.16xlarge.search
Estabilidade Opensearch - 3 master nodes dedicados é melhor?
Sim, evita split brain
Espaço em disco, qual o requisito mínimo de armazenamento?
Aproximadamente:
Dados de Origem * (1 + Número de Réplicas) * 1,45
Como escolher o número de shards?
- (dados de origem + espaço para crescer) * (1+indexação
sobrecarga) / tamanho de fragmento desejado - Em casos raros, pode ser necessário limitar o número de shards por nó
- Geralmente, você fica sem espaço em disco primeiro.
Como escolher tipo de instância?
- Pelo menos 3 nós
- Principalmente sobre requisitos de armazenamento
- ou seja, m6g.large.search, i3.4xlarge.search,
i3.16xlarge.search
Amazon Opensearch Security
- Resource-based policies
- Identity-based policies
- IP-based policies
- Request signing
- VPC
- Cognito
Securing Dashboards
- Cognito
- Getting inside a VPC from
outside is hard… - Nginx reverse proxy on EC2
forwarding to ES domain - SSH tunnel for port 5601
- VPC Direct Connect
- VPN
Segurança dos dashboards
- Cognito
- Entrando em VPC de fora é difícil…
- Proxy reverso Nginx no EC2
encaminhamento para domínio ES - Túnel SSH para a porta 5601
- Conexão direta VPC
- VPN
Amazon Opensearch anti
-padrões
- OLTP
- Sem transações
- RDS ou DynamoDB é melhor
- Consulta de dados ad-hoc * Athena é melhor *
Lembre-se de que Opensearch é principalmente
para pesquisa e análise
Desempenho do Amazon Opensearch - * Pode ocorrer pressão de memória na JVM se:
- Você tem alocações de shards desequilibradas entre os nós
- Você tem muitos shards em um cluster
Menos shards podem gerar melhor desempenho se houver erros de JVMMemoryPressure
são encontrados qual ação indicada?
Excluir índices antigos ou não utilizados
What is Athena?
- Interactive query service for S3 (SQL) * No need to load data, it stays in S3
Athena support formats:
- CSV (human readable)
- JSON (human readable)
- ORC (columnar, splittable)
- Parquet (columnar, splittable)
- Avro (splittable)
Athena types data:
- Unstructured, semi-structured, or structured
Athena Workgroups:
- Can organize users / teams / apps / workloads into Workgroups
- Can control query access and track costs by Workgroup
- Integrates with IAM, CloudWatch, SNS
In Athena each workgroup can have its own:
- Query history
- Data limits (you can limit how much data queries may scan by workgroup)
- IAM policies
- Encryption settings
Athena cost model Pay-as-you-go
- $5 per TB scanned
- Successful or cancelled queries count, failed queries do not.
- No charge for DDL
(CREATE/ALTER/DROP etc.)
Athena cost model - Save LOTS of money by using
columnar formats
- ORC, Parquet
- Save 30-90%, and get better
performance
Athena Security - Access control
- IAM, ACLs, S3 bucket policies
- AmazonAthenaFullAccess /
AWSQuicksightAthenaAccess
Athena Security - Encrypt results at rest in S3 staging directory
- Server-side encryption with S3-managed key (SSE-S3)
- Server-side encryption with KMS key (SSE-KMS)
- Client-side encryption with KMS key (CSE-KMS)
Athena Security Cross
-account access in S3 bucket policy possible True or False
True
Athena anti-patterns - Highly formatted reports /
visualization
- That’s what QuickSight is for
Athena anti-patterns - ETL
- Use Glue instead
Athena: Optimizing performance
- Use columnar data (ORC, Parquet)
- Small number of large files performs better than large number of small files
- Use partitions
Athena ACID transactions
- Powered by Apache Iceberg
- Just add ‘table_type’ = ‘ICEBERG’ in your CREATE
TABLE command - Concurrent users can safely make row-level modifications
- Compatible with EMR, Spark, anything that
supports Iceberg table format. - Removes need for custom record locking
- Time travel operations
- Recover data recently deleted with a SELECT
statement - Remember governed tables in Lake Formation?
This is another way of getting ACID features in Athena. - Benefits from periodic compaction to preserve
performance
What is Redshift?
- Fully-managed, petabyte scale data warehouse service
- 10X better performance than other DW’s
- Via machine learning, massively parallel query execution, columnar storage
- Designed for OLAP, not OLTP
- Cost effective
- SQL, ODBC, JDBC interfaces * Scale up or down on demand
- Built-in replication & backups
- Monitoring via CloudWatch / CloudTrail
Redshift Use-Cases
- Accelerate analytics workloads
- Unified data warehouse & data lake
- Data warehouse modernization
- Analyze global sales data
- Store historical stock trade data
- Analyze ad impressions & clicks
- Aggregate gaming data
- Analyze social trend
Redshift Spectrum
- Query exabytes of unstructured data in S3 without loading
- Limitless concurrency
- Horizontal scaling
- Separate storage & compute resources
- Wide variety of data formats
- Support of Gzip and Snappy
compression
Redshift Performance
- Massively Parallel Processing (MPP)
- Columnar Data Storage
- Column Compression
Redshift Durability
- Replication within cluster
- Backup to S3
- Asynchronously replicated to another region
- Automated snapshots
- Failed drives / nodes
automatically replaced - However – limited to a single availability zone (AZ)
Scaling Redshift
- Vertical and horizontal scaling on demand
Scaling Redshift - During scaling:
- A new cluster is created while your old one remains available for reads
- CNAME is flipped to new cluster (a few minutes of downtime)
- Data moved in parallel to new compute nodes
Redshift Distribution Styles:
AUTO, EVEN, KEY, ALL
Redshift Distribution AUTO
Redshift figures it out based on size of data
Redshift Distribution EVEN
Rows distributed across slices in round-robin