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
Redshift Distribution KEY
Rows distributed based on one column
Redshift Distribution ALL
Entire table is copied to every node
Redshift Sort Keys
- Rows are stored on disk in sorted order based on the column you designate as a sort key
- Like an index
- Makes for fast range queries
- Choosing a sort key
- Recency? Filtering? Joins?
- Single vs. Compound vs Interleaved sort keys
Explane Importing / Exporting data - COPY command
- Parallelized; efficient
- From S3, EMR, DynamoDB, remote hosts
- S3 requires a manifest file and IAM role
Explane Importing / Exporting data UNLOAD command
Unload from a table into files in S3
True or False - Importing / Exporting data is not enhanced VPC Routing
False
COPY command: More depth
- Use COPY to load large amounts of data from
outside of Redshift - If your data is already in Redshift in another table,
- Use INSERT INTO …SELECT * Or CREATE TABLE AS
- COPY can decrypt data as it is loaded from S3
- Hardware-accelerated SSL used to keep it fast
- Gzip, lzop, and bzip2 compression supported to
speed it up further - Automatic compression option
- Analyzes data being loaded and figures out optimal
compression scheme for storing it - Special case: narrow tables (lots of rows, few columns)
- Load with a single COPY transaction if possible
- Otherwise hidden metadata columns consume too much
space
Redshift copy grants for cross-region snapshot copies
- Let’s say you have a KMS-encrypted Redshift cluster and a snapshot of it
- You want to copy that snapshot to another region for backup
- In the destination AWS region:
- Create a KMS key if you don’t have one already
- Specify a unique name for your snapshot copy grant
- Specify the KMS key ID for which you’re creating the copy grant
- In the source AWS region:
- Enable copying of snapshots to the copy grant you just created
Redshift DBLINK solution
- Connect Redshift to
PostgreSQL (possibly in
RDS) - Good way to copy and
sync data between
PostgreSQL and Redshift
Redshift integration other services:
- S3
- DynamoDB
- EMR / EC2
- Data Pipeline
- Database Migration Service
Redshift Workload Management (WLM)
- Prioritize short, fast queries vs. long, slow queries
- Query queues
- Via console, CLI, or API
Redshift Concurrency Scaling
- Automatically adds cluster capacity to handle increase in concurrent read queries
- Support virtually unlimited concurrent users & queries
- WLM queues manage which queries are sent to the concurrency scaling cluster
Redsift Automatic Workload Management
- Creates up to 8 queues * Default 5 queues with even memory allocation
- Large queries (ie big hash joins) -> concurrency lowered
- Small queries (ie inserts, scans, aggregations)
-> concurrency raised - Configuring query queues
Redshift Topics Automatic Workload Management Configuring query queues
- Priority
- Concurrency scaling mode
- User groups
- Query groups
- Query monitoring rule
Manual Workload Management
- One default queue with concurrency level of 5 (5 queries at once)
- Superuser queue with concurrency level 1
- Define up to 8 queues, up to concurrency level 50
Redshift Manual Workload Management topics of Define up to 8 queues, up to concurrency level 50
- Each can have defined concurrency scaling mode, concurrency level, user groups, query groups, memory, timeout, query monitoring rules
- Can also enable query queue hopping
- Timed out queries “hop” to next queue to try again
Short Query Acceleration (SQA)
- Prioritize short-running queries over longer-running ones
- Short queries run in a dedicated space, won’t wait in queue behind long queries
- Can be used in place of WLM queues for short queries
- Works with:
- CREATE TABLE AS (CTAS)
- Read-only queries (SELECT statements)
- Uses machine learning to predict a query’s execution time
- Can configure how many seconds is “short”
Resizing Redshift Clusters - Elastic resize
- Quickly add or remove nodes of same type * (It can change node types, but not without dropping connections – it creates a whole new cluster)
- Cluster is down for a few minutes
- Tries to keep connections open across the downtime
- Limited to doubling or halving for some dc2 and
ra3 node types.
Resizing Redshift Clusters - classic resize
- Change node type and/or number of nodes
- Cluster is read-only for hours to days
Resizing Redshift Clusters - snapshot, restore, resize
- Used to keep cluster available during a classic
resize - Copy cluster, resize new cluster
Redshift VACUUM COMAND
- Recovers space from deleted rows
- VACUUM FULL * VACUUM DELETE ONLY * VACUUM SORT ONLY * VACUUM REINDEX
Newer Redshift features - RA3 nodes with managed storage
- Enable independent scaling of compute and storage
- SSD-based
Newer Redshift features - Redshift data lake export
- Unload Redshift query to S3 in Apache Parquet format
- Parquet is 2x faster to unload and consumes up to 6X less storage
- Compatible with Redshift Spectrum, Athena, EMR, SageMaker
- Automatically partitioned
Newer Redshift features - Spatial data types
GEOMETRY, GEOGRAPHY
Newer Redshift features - Cross-Region Data Sharing
- Share live data across Redshift clusters without copying
- Requires new RA3 node type
- Secure, across regions and across account
Redshift AQUA advantages:
- Advanced Query Accelerator
- Available on ra3.4xl, ra3.16xl
- Pushes reduction and aggregation queries closer to the data
- Up to 10X faster, no extra cost, no code changes.
- Also benefits from high
-bandwidth connection to S3 - All you have to do is turn it on in your cluster configuration (when using the supported node types)
Redshift anti-patterns Small data-sets
Use RDS instead
Redshift anti-patterns OLTP alternative
Use RDS or DynamoDB instead
Redshift anti-patterns Unstructured data
ETL first with EMR etc.
Redshift anti-patterns BLOB data
Store references to large binary files in S3, not the files themselves.
Redshift security concerns
- Using a Hardware Security Module (HSM)
- Defining access privileges for user or group
Explaine Redshift security concerns
* Using a Hardware Security Module (HSM)
- Must use a client and server certificate to configure a trusted connection between Redshift and the HSM
- If migrating an unencrypted cluster to an HSM-encrypted cluster, you must create the new encrypted cluster and then move data to it.
Explaine Redshift security concerns
* Defining access privileges for user or group
- Use the GRANT or REVOKE commands in SQL
- Example: grant select on table foo to bob;
Redshift Serverless topics:
- Automatic scaling and provisioning for your
workload - Optimizes costs & performance
- Pay only when in use
- Uses ML to maintain performance across
variable & sporadic workloads - Easy spinup of development and test environments
- Easy ad-hoc business analysis
- You get back a serverless endpoint, JDBC/ODBC connection, or just query via the console’s query editor.
Redshift Serverless: Getting Started
- Need an IAM role with this
policy - Define your
- Database name
- Admin user credentials
- VPC
- Encryption settings
- AWS-owned KMS by default
- Audit logging
- Can manage snapshots &
recovery points after creation
Resource Scaling in Redshift Serverless Topics
- Capacity measured in Redshift Processing Units (RPU’s)
- You pay for RPU-hours (per second) plus storage
- Base RPU’s
- Max RPU’s
Resource Scaling in Redshift Serverless - Base RPU’s topics
- You can adjust base capacity
- Defaults to AUTO
- But you can adjust from 32-512 RPU’s to improve query performance
Resource Scaling in Redshift Serverless - Max RPU’s topics
- Can set a usage limit to control costs
- Or, increase it to improve throughput
Redshift Serverless * Does everything Redshift can, except:
- Redshift Spectrum
- Parameter Groups
- Workload Management
- AWS Partner integration
- Maintenance windows / version tracks
Redshift Serverless - No public endpoints (yet)
Must access within a VPC
Redshift Serverless: Monitoring general topics
- Monitoring views
- CloudWatch Logs
- Cloudwatch metrics
Redshift Serverless: Monitoring - Monitoring views:
- SYS_QUERY_HISTORY
- SYS_LOAD_HISTORY
- SYS_SERVERLESS_USAGE
- …and many more
Redshift Serverless:
CloudWatch logs
- Connection & user logs enabled by default
- Optional user activity log data
- Under /aws/redshift/serverless/
Redshift Serverless:
CloudWatch metrics
*QueriesCompletedPerSecond, QueryDuration, QueriesRunning,etc.
* Dimensions: DatabaseName, latency
(short/medium/long), QueryType, stage
What is RDS?
- Hosted relational database
- Amazon Aurora
- MySQL
- PostgreSQL
- MariaDB
- Oracle
- SQL Server
- Not for “big data”
- Might appear on exam as an example of what not to use
- Or in the context of migrating from RDS to Redshift et
ACID * RDS databases offer full ACID compliance
- Atomicity
- Consistency
- Isolation
- Durability
Amazon Aurora
- MySQL and PostgreSQL – compatible
- Up to 5X faster than MySQL, 3X faster than PostgreSQL
- 1/10 the cost of commercial databases
- Up to 64TB per database instance
- Up to 15 read replicas
- Continuous backup to S3
- Replication across availability zones
- Automatic scaling with Aurora Serverless
Aurora Security
- VPC network isolation
- At-rest with KMS
- Data, backup, snapshots, and replicas can be encrypted
- In-transit with SSL
O que é o Athena?
- Serviço de consulta interativa para S3 (SQL)
- Não há necessidade de carregar dados, fica em S3
- Presto sob o capô
- Sem servidor!
- Suporta muitos formatos de dados
- CSV (legível por humanos)
- JSON (legível por humanos)
- ORC (colunar, divisível)
- Parquet (colunar, divisível)
- Avro (divisível)
- Não estruturado, semiestruturado ou estruturado
Athena, alguns exemplos de funções:
- Consultas ad hoc de logs da web
- Consultar dados de preparação antes de carregar no Redshift
- Analisar logs CloudTrail / CloudFront / VPC / ELB etc no S3
- Integração com notebooks Jupyter, Zeppelin, RStudio
- Integração com QuickSight
- Integração via ODBC / JDBC com outras ferramentas de visualização
Grupos de trabalho do Athena:
- Pode organizar usuários/equipes/aplicativos/cargas de trabalho em grupos de trabalho
- Pode controlar o acesso à consulta e acompanhar os custos por grupo de trabalho
- Integra-se com IAM, CloudWatch, SNS
O que cada grupo de trabalho pode ter no Athena?
- Histórico de consultas
- Limites de dados (você pode limitar a quantidade de dados que as consultas podem verificar por grupo de trabalho)
- Políticas de IAM
- Configurações de criptografia
Tópicos de custos do Athena no modelo pague conforme o uso:
- US$ 5 por TB digitalizado
- Consultas bem-sucedidas ou canceladas contam, as consultas com falha não.
- Sem custo para DDL
(CRIAR/ALTER/SOLTAR etc.)
Como economizar no Athena?
- Economize MUITO dinheiro usando formatos colunares
- ORC, Parquet
- Economize 30-90% e obtenha melhor desempenho
- Glue e S3 têm suas próprias cargas
Políticas de Segurança do Athena
- Controle de acesso
- IAM, ACLs, políticas de bucket S3 * AmazonAthenaFullAccess /
AWSQuicksightAthenaAccess - Criptografar resultados em repouso no diretório de preparação do S3 * Criptografia do lado do servidor com chave gerenciada pelo S3 (SSE-S3)
- Criptografia do lado do servidor com chave KMS (SSE-KMS)
- Criptografia do lado do cliente com chave KMS (CSE-KMS)
- Acesso entre contas na política de bucket S3 possível
- Transport Layer Security (TLS) criptografa em trânsito (entre Athena e S3)
Anti-padrões no Athena para relatórios altamente formatados e visualização
- É para isso que serve o QuickSight
Anti-padrões do Athena para ETL
Utilize o Glue ao invés do Athena
Como otimizar o desempenho no Athena?
- Use dados colunares (ORC, Parquet)
- Um pequeno número de arquivos grandes funciona melhor do que um grande número de arquivos pequenos
- Usar partições
Transações Athena ACID
- Desenvolvido por Apache Iceberg
- Basta adicionar ‘table_type’ = ‘ICEBERG’ em seu CREATE
comando TABLE - Os usuários simultâneos podem fazer com segurança no nível da linha
modificações - Compatível com EMR, Spark, qualquer coisa que
suporta formato de tabela Iceberg. - Remove a necessidade de bloqueio de registro personalizado
- Operações de viagem no tempo
- Recuperar dados excluídos recentemente com uma instrução SELECT
- Lembra das tabelas regidas em Lake Formation?
Esta é outra maneira de obter recursos ACID em
Atena. - Benefícios da compactação periódica para preservar
desempenho
O que é o RedShift?
- Serviço de armazenamento de dados em escala de petabytes totalmente gerenciado
- Desempenho 10 vezes melhor do que outros DWs
- Por meio de aprendizado de máquina, execução de consultas massivamente paralelas, armazenamento colunar
- Projetado para OLAP, não OLTP
- Custo-beneficio
- Interfaces SQL, ODBC, JDBC
- Ampliar ou reduzir sob demanda
- Replicação e backups integrados
- Monitoramento via CloudWatch / CloudTrail
Casos de uso do redshift
- Acelere as cargas de trabalho analíticas
- Data warehouse e data lake unificados
- Modernização do data warehouse
- Analisar dados de vendas globais
- Armazenar dados históricos de negociação de ações
- Analisar impressões e cliques de anúncios
- Dados de jogos agregados
- Analisar tendência social
Qual a utilidade do Redshift Spectrum?
- Consultar exabytes de dados não estruturados no S3 sem carregar
- Simultaneidade ilimitada
- Escala horizontal
- Armazenamento separado e recursos de computação
- Grande variedade de formatos de dados
- Suporte de compactação Gzip e Snappy
Pontos fortes de desempenho do Redshift
- Processamento Massivamente Paralelo (MPP)
- Armazenamento de dados em colunas
- Compressão de coluna
Durabilidade no Redshift
- Replicação dentro do cluster
- Backup para S3
- Replicado de forma
assíncrona para outra região
- Replicado de forma
- Instantâneos automatizados
- Unidades/nós com falha substituídos automaticamente
- No entanto - limitado a uma única zona de disponibilidade (AZ)
Modo Scaling no Redshift:
- Dimensionamento vertical e horizontal sob demanda
- Durante o dimensionamento:
* Um novo cluster é criado enquanto o antigo permanece disponível para
lê
* CNAME é invertido para o novo cluster (alguns minutos de inatividade)
* Dados movidos em paralelo para novos nós de computação
Quais os tipos de distribuição no Redshift?
AUTO, EVEN, KEY, ALL (AEKA)
Explique o tipo de distribuição AUTO no Redshift
Redshift descobre com base no tamanho dos dados
Explique o tipo de distribuição EVEN no Redshift
Linhas distribuídas em fatias em round-robin
Explique o tipo de distribuição KEY no Redshift
Linhas distribuídas com base em uma coluna
Explique o tipo de distribuição ALL no Redshift
A tabela inteira é copiada para cada nó
O que são Sort Keys no Redshift?
Técnica de otimização que permite melhorar o desempenho de consultas em tabelas grandes.
Tópicos sobre Sort Keys no Redshift
- As linhas são armazenadas no disco em ordem de classificação com base na coluna que você designar como uma chave de classificação
- Como um índice
- Faz consultas de alcance rápido
- Escolhendo uma chave de classificação
- Recência? Filtros? Joins?
- Chaves de classificação simples x compostas x intercaladas
Importação/Exportação de dados no Redshift:
- Comando COPY
- Paralelizado; eficiente
- Origem S3, EMR, DynamoDB, hosts remotos
- S3 requer um arquivo de manifesto e uma função IAM
- comando UNLOAD
- Descarregar de uma tabela em arquivos no S3
- Roteamento de VPC aprimorado
Como utilizar o comando COPY caso seus dados estejam no Redshift em outra tabela?
- Use INSERT INTO …SELECT
- Ou CREATE TABLE AS
Como COPY pode descriptografar dados à medida que são carregados do S3
Através de SSL acelerado por hardware usado para mantê-lo rápido
O que faz Opção de compressão automática do comando COPY?
Analisa os dados que estão sendo carregados e descobre o esquema de compactação ideal para armazená-los.
Como utilizar o comando COPY em tabelas estreitas (muitas linhas, poucas
colunas)
- Carregue com uma única transação COPY, se possível
- Caso contrário, as colunas de metadados ocultas consomem muito
espaço
- Caso contrário, as colunas de metadados ocultas consomem muito
Concessões de cópia do Redshift para regiões cruzadas cópias instantâneas
- Digamos que você tenha um cluster Redshift criptografado por KMS e um
instantâneo disso - Você deseja copiar esse instantâneo para outra região para backup
- Na região de destino da AWS:
- Crie uma chave KMS se ainda não tiver uma
- Especifique um nome exclusivo para sua concessão de cópia de instantâneo
- Especifique o ID da chave KMS para o qual você está criando a concessão de cópia
- Na região de origem da AWS:
- Ative a cópia de instantâneos para a concessão de cópia que você acabou de criar
O que é DBLINK?
Extensão disponível no PostgreSQL usada como base para o Redshift. No caso do Redshift a extensão dblink permite que os usuários se conectem ao PostgreSQL e realizem consulta entre eles.
Integração do Redshift com outros serviços
- S3
- DynamoDB
- EMR / EC2
- Pipeline de Dados
- Serviço de migração de banco de dados
Propriedades do Redshift Workload Management (WLM)
- Priorize consultas curtas e rápidas em vez de consultas longas e lentas
- Filas de consulta
- Via console, CLI ou AP
O que faz o Dimensionamento de simultaneidade no Redshift
- Adiciona automaticamente a capacidade do cluster para lidar com o aumento nas consultas de leitura simultâneas
- Oferece suporte a consultas e usuários simultâneos virtualmente ilimitados
- Filas WLM gerenciam quais consultas são enviadas para o cluster de dimensionamento de simultaneidade
Quais as operações do gerenciamento automático da carga de trabalho no Redshift?
- Cria até 8 filas
- 5 filas padrão com alocação de memória uniforme
- Grandes consultas (ou seja, grandes hash joins) -> simultaneidade reduzida
- Pequenas consultas (ou seja, inserções, verificações, agregações) -> simultaneidade levantada
- Configuração de filas de consulta
- Prioridade
- Modo de escalonamento de simultaneidade
- Grupos de usuários
- Grupos de consulta
- Regras de monitoramento de consultas
Quais as operações do gerenciamento manual da carga de trabalho no Redshift?
- Uma fila padrão com nível de simultaneidade de 5 (5 consultas em
uma vez) - Fila de superusuário com nível de simultaneidade 1
- Defina até 8 filas, até nível de simultaneidade 50
- Cada um pode ter definido o modo de escalonamento de simultaneidade, nível de simultaneidade, grupos de usuários, grupos de consulta, memória, tempo limite, regras de monitoramento de consulta
- Também pode ativar o salto na fila de consultas
- As consultas com tempo limite “pulam” para a próxima fila para tentar novamente
Qual a utilidade da Short Query Acceleration (SQA) no Redshift?
- Priorizar consultas de execução curta sobre as de execução mais longa
- Consultas curtas são executadas em um espaço dedicado, não esperam na fila
por trás de consultas longas - Pode ser usado no lugar de filas WLM para consultas curtas
- Funciona com:
- CRIAR TABELA COMO (CTAS)
- Consultas somente leitura (declarações SELECT)
- Usa aprendizado de máquina para prever o tempo de execução de uma consulta
- Pode configurar quantos segundos é “curto”
Como funciona o redimensionamento elástico de clusters no Redshift?
- Adicione ou remova rapidamente nós do mesmo tipo
* (Ele pode alterar os tipos de nó, mas não sem eliminar as conexões - cria um cluster totalmente novo)
* O cluster está inativo por alguns minutos * Tenta manter as conexões abertas durante o tempo de inatividade
* Limitado a dobrar ou reduzir pela metade para alguns tipos de nó dc2 e ra3.
Como funciona o redimensionamento clássico no Redshift?
- Alterar tipo de nó e/ou número de nós
* O cluster é somente leitura por horas a dias
No redimensionamento de cluster do Redshift como funciona o snapshot, restore e resize?
- Usado para manter o cluster disponível durante um redimensionamento clássico
* Copie o cluster, redimensione o novo cluster
O que faz o comando VACUUM no Redshift? Quais os comandos contidos no VACUUM?
- Recupera espaço excluído
de linhas - VACUUM FULL
- VACUUM DELETE ONLY
- VACUUM SORT ONLY
- VACUUM REINDEX
Recursos mais recentes do Redshift dos Nós RA3 com armazenamento gerenciado
- Habilite o escalonamento independente de computação e armazenamento
- baseado em SSD
Recursos mais recentes do Redshift - Exportação de data lake do Redshift
- Descarregue a consulta Redshift para S3 no formato Apache Parquet
- Parquet é 2x mais rápido para descarregar e consome até 6X menos armazenamento
- Compatível com Redshift Spectrum, Athena, EMR, SageMaker
- Particionado automaticamente
Recursos mais recentes do Redshift - Tipos de dados espaciais
GEOMETRY, GEOGRAPHY
Recursos mais recentes do Redshift - compartilhamento de dados entre regiões
- Compartilhe dados ao vivo em clusters Redshift sem copiar
- Requer novo tipo de nó RA3
- Seguro, entre regiões e entre contas
O que é o recurso AQUA do Redshift?
- Acelerador de Consulta Avançado
- Disponível em ra3.4xl, ra3.16xl
- Aproxima as consultas de redução e agregação dos dados
- Até 10X mais rápido, sem custo extra, sem alterações de código.
- Também se beneficia da conexão de alta largura de banda para S3
- Tudo o que você precisa fazer é ativá-lo na configuração do cluster (ao usar os tipos de nó suportados)
Cite os principais anti-padrões Redshift:
- Pequenos conjuntos de dados
- Em vez disso, use RDS
- OLTP
- Em vez disso, use RDS ou DynamoDB
- Dados não estruturados
- ETL primeiro com EMR etc.
- Dados BLOB
- Armazene referências a grandes arquivos binários no S3, não os próprios arquivos
Preocupações com a segurança do Redshift
- Usando um Módulo de Segurança de Hardware (HSM)
- Deve usar um certificado de cliente e servidor para configurar um confiável
conexão entre o Redshift e o HSM - Ao migrar um cluster não criptografado para um cluster criptografado por HSM, você
deve criar o novo cluster criptografado e, em seguida, mover os dados para ele. - Definição de privilégios de acesso para usuário ou grupo
- Use os comandos GRANT ou REVOKE no SQL
- Exemplo: conceder select na tabela foo to bob;
Vantagens do Redshift Serverless
- Dimensionamento e provisionamento automáticos para sua carga de trabalho
- Otimiza custos e desempenho
- Pague apenas quando estiver em uso
- Usa ML para manter o desempenho em
cargas de trabalho variáveis e esporádicas - Fácil rotação de desenvolvimento e teste
ambientes - Anúncio fácil
- análise de negócios hoc
- Você recebe de volta um endpoint sem servidor,
conexão JDBC/ODBC, ou apenas consultar através do
editor de consultas do console.
Redshift Serverless Introdução:
- Precisa de uma função IAM com esta política
- Defina seu
* Nome do banco de dados
* Credenciais do usuário administrador
* VPC
* Configurações de criptografia
* KMS de propriedade da AWS por padrão
* Log de auditoria - Pode gerenciar instantâneos e
pontos de recuperação após a criação
Dimensionamento de recursos no Redshift Serverless
- Capacidade medida em Redshift
Unidades de processamento (RPUs) - Você paga por RPU-hora (por segundo)
mais armazenamento - RPUs base
- Você pode ajustar a capacidade de base
- O padrão é AUTO
- Mas você pode ajustar de 32-512 RPUs para
melhorar o desempenho da consulta - Max RPU’s
- Pode definir um limite de uso para controlar os custos
- Ou aumente-o para melhorar o rendimento
Redshift sem servidor
* Faz tudo que o Redshift pode, exceto:
- Redshift Spectrum
- Grupos de Parâmetros
- Gerenciamento de carga de trabalho
- Integração de parceiros da AWS
- Janelas de manutenção / faixas de versão
Redshift Serverless sobre endpoints
- Sem endpoints públicos (ainda)
- Deve acessar dentro de uma VPC
Redshift sem servidor: monitoramento *
Visualizações de monitoramento
SYS_QUERY_HISTORY
SYS_LOAD_HISTORY
SYS_SERVERLESS_USAGE
…e muito mais
Redshift sem servidor - * Registros do CloudWatch
- Registros de conexão e usuário ativados por padrão
- Dados opcionais de log de atividades do usuário
- Em /aws/redshift/sem servidor/
Redshift sem servidor Métricas do Cloudwatch
QueriesCompletedPerSecond, QueryDuration, QueriesRunning, etc.
* Dimensões: DatabaseName, latência (curta/média/longa), QueryType, stage
O que é RDS?
- Banco de dados relacional hospedado
- Aurora Amazônica
- MySQL * PostgreSQL
- MariaDB
- Oráculo
- Servidor SQL
- Não para “big data”
- Pode aparecer no exame como um exemplo do que não usar
- Ou no contexto da migração de RDS para Redshift, etc.
ACID e RDS
- Os bancos de dados RDS oferecem total
Conformidade ACID - Atomicidade * Consistência * Isolamento * Durabilidade
Amazon Aurora
- MySQL e PostgreSQL – compatível
- Até 5 vezes mais rápido que o MySQL, 3 vezes mais rápido que o PostgreSQL
- 1/10 do custo de bancos de dados comerciais
- Até 64 TB por instância de banco de dados
- Até 15 réplicas de leitura
- Backup contínuo para S3
- Replicação entre zonas de disponibilidade
- Dimensionamento automático com Aurora Serverless
Segurança no Aurora
- Isolamento de rede VPC
- Em repouso com KMS
- Dados, backup, snapshots e réplicas podem ser criptografados
- Em trânsito com SSL