WorksheetsCassanred
Total questions: 23
Worksheet time: 23mins
Você trabalha em uma loja online que utiliza Cassandra para armazenar as vendas. A tabela de vendas é definida assim: CREATE TABLE vendas ( id_venda UUID PRIMARY KEY, produto TEXT, cliente TEXT, data_venda DATE ); Agora, você precisa consultar todas as vendas feitas por um cliente específico. Qual é a solução mais recomendada?
Usar ALLOW FILTERING na consulta para cliente
Criar um índice secundário na coluna cliente
Criar uma nova tabela com cliente como chave primária
Alterar a tabela para tornar cliente a chave primária
Usar GROUP BY com agregação na coluna cliente
Aria é responsável pelo monitoramento de logs em um sistema e utiliza a seguinte tabela: CREATE TABLE logs_sistema ( id UUID PRIMARY KEY, nivel TEXT, mensagem TEXT, timestamp TIMESTAMP ); Ela precisa consultar todos os logs com nível "ERROR" ocorridos em um intervalo de datas. O que ela deve fazer?
Criar um índice secundário nas colunas nivel e timestamp
Usar apenas ALLOW FILTERING com WHERE nivel = 'ERROR' AND timestamp > ? AND timestamp < ?
Criar uma tabela com chave primária composta: (nivel, timestamp)
Usar Materialized View para filtrar por timestamp
Inverter a ordem das colunas na tabela original
Abigail está desenvolvendo um sistema para gerenciar o estoque de uma loja e criou a seguinte tabela de produtos: CREATE TABLE produtos ( id UUID PRIMARY KEY, categoria TEXT, marca TEXT, preco DECIMAL ); Ela precisa consultar produtos pela marca e pela categoria. O que fazer?
Usar índice secundário apenas na coluna marca
Aplicar ALLOW FILTERING na consulta
Criar um índice secundário composto
Criar uma tabela adicional com chave primária (marca, categoria)
Criar uma Materialized View com marca como chave primária
Considere a seguinte consulta: SELECT produto, COUNT(*) FROM vendas_por_dia WHERE data = '2025-06-01' GROUP BY produto; Essa consulta irá funcionar corretamente apenas se:
A tabela possuir índice secundário na coluna data
A tabela tiver como chave primária (produto, data)
A tabela tiver como chave primária (data, produto)
A consulta for feita via API e não via CQL
A tabela possuir índice secundário na coluna produto
Em alguns bancos relacionais, antes de criarmos uma tabela,
precisamos criar um banco de dados no qual a tabela existirá. No
Cassandra, temos uma estrutura semelhante, que é o Keyspace.
Dentro de um Keyspace, criamos as Column Families, o
equivalente às tabelas
Para criar um banco de dados no Cassandra utilizamos:
o comando
CREATE KEYSPACE [nome] WITH REPLICATION = [estratégia
de replicação] . Além do nome, um keyspace precisa de uma
estratégia de replicação, que normalmente é SimpleStrategy
(replica os dados nos próximos servidores sem levar em conta a
topologia da rede), ou NetworkTopologyStrategy (muito mais
complexo, pois permite configurar réplicas por Rack, Data Center
etc.)
o comando
CREATE DATABASE [nome] WITH REPLICATION = [estratégia
de replicação] . Além do nome, um keyspace precisa de uma
estratégia de replicação, que normalmente é SimpleStrategy
(replica os dados nos próximos servidores sem levar em conta a
topologia da rede), ou NetworkTopologyStrategy (muito mais
complexo, pois permite configurar réplicas por Rack, Data Center
etc.)
o comando
CREATE COLLUMN [nome] WITH REPLICATION = [estratégia
de replicação] . Além do nome, um keyspace precisa de uma
estratégia de replicação, que normalmente é SimpleStrategy
(replica os dados nos próximos servidores sem levar em conta a
topologia da rede), ou NetworkTopologyStrategy (muito mais
complexo, pois permite configurar réplicas por Rack, Data Center
etc.)
o comando
CREATE DATABASE [nome] WITH REPLICATION = [estratégia
de replicação] . Além do nome, um keyspace precisa de uma
estratégia de replicação, que normalmente é NetworkTopologyStrateg (replica os dados nos próximos servidores sem levar em conta a
topologia da rede), ou ComplexNetwork (muito mais
complexo, pois permite configurar réplicas por Rack, Data Center
etc.)
Ao executar o select abaixo apareceu a seguinte mensagem de erro:
cqlsh:ligado> SELECT *
FROM musicas
WHERE artista='Beatles';
InvalidRequest: code=2200 [Invalid query]
message="Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute
this query despite the performance unpredictability, use ALLOW FILTERING"
Qual o motivo?
A coluna artista não é um índice
O recurso ALLOW FILTERING não está ativado
a coluna artista não existe
Não foi econtrado uma música com esse artista
Observe abaixo:
cqlsh:ligado> SELECT * FROM playlists;
id |nome |tags
------------------------------------+---------------+------------
c4f408dd-00f3-488e-8800-050d2775bbc7|Beatles forever|{'Beatles', '60s'}
cqlsh:ligado> UPDATE playlists SET tags = tags + {'classic rock'}
WHERE id = c4f408dd-00f3-488e-8800-050d2775bbc7;
Qual será o resultado do comando update acima?
Um erro pois um campo não pode somar texto
Será executado inserindo o item 'classic rock' ao fim da lista
Será executado substituindo o tag por 'classic rock'
Um erro pois não existe a clausula SET
Qual é a utilidade do comando LPUSH no Redis?
Remover valores de uma lista
Ordenar uma lista alfabeticamente
Atualizar valores em uma lista
Adicionar valores ao topo de uma lista
O que o comando LLEN faz no Redis?
Retorna a quantidade de itens em uma lista
Inverte a ordem dos elementos em uma lista
Remove elementos de uma lista
Adiciona elementos a uma lista
Qual é a diferença entre os comandos 'hgetall' e 'hkeys' no Redis?
'hgetall' retorna todos os campos e valores de um hash, enquanto 'hkeys' retorna apenas os campos
'hgetall' retorna apenas os campos de um hash, enquanto 'hkeys' retorna todos os campos e valores
'hgetall' cria um novo hash com todos os campos e valores, enquanto 'hkeys' retorna a interseção dos campos
'hgetall' retorna a união dos campos e valores de um hash, enquanto 'hkeys' cria um novo hash com a união
Como o comando 'sunion' funciona no Redis?
Retorna a união de dois ou mais conjuntos
Retorna a interseção de dois ou mais conjuntos
Remove membros de um conjunto
Adiciona membros a um conjunto
Qual comando é usado para listar todas as chaves no Redis?
keys *
hkeys
lkeys
skeys
só existem dois tipos de dados no
Neo4j
o nó e o relacionamento
o nó e a entidade
char e int
chave e valor
MATCH (dylan:Musico { nome : 'Bob Dylan' })-[rel]-()
DELETE rel, dylan
Apaga o atributo rel e dylan
Mostra o nó e relacionamento nome Jimi Hendrix
Apagamos os nós que representam os músicos Bob
Dylan e Jimi Hendrix juntamente com seus relacionamentos
Apagamos os nós que representam o músico Bob
Dylan e juntamente com seus relacionamentos
Complete: _________ - Todos os clientes veem a mesma visão dos dados, mesmo imediatamente após uma atualização ou exclusão.
Consistência
Disponibilidade
Particionamento
Redundância
Complete: _________ - Todos os clientes podem encontrar uma réplica dos dados, mesmo em caso de falhas parciais de nós.
Disponibilidade
Consistência
Latência
Particionamento
O que a estratégia 'SimpleStrategy' faz no Apache Cassandra?
A estratégia 'SimpleStrategy' é usada quando o cluster Cassandra está em um único datacenter e a replicação é feita de forma síncrona para os nós subsequentes no anel de partições.
A estratégia 'SimpleStrategy' é usada para balanceamento de carga entre múltiplos datacenters.
A estratégia 'SimpleStrategy' permite replicação assíncrona entre diferentes clusters.
A estratégia 'SimpleStrategy' é utilizada para criptografar dados em trânsito entre os nós.
O que são colunas largas no Cassandra?
Colunas que armazenam apenas um atributo por linha
Colunas que permitem armazenar um número variável de atributos ou campos em uma única linha
Colunas que precisam ser definidas antecipadamente
Colunas que não podem ser organizadas em famílias
Complete: A ________ no Cassandra é orientada pelas consultas que serão executadas no sistema. Isso significa que o ________ deve ser projetado em torno das consultas que serão feitas com mais frequência.
modelagem de dados; esquema de dados
indexação; particionamento
replicação; consistência
compactação; armazenamento
