As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Diferenças funcionais: Amazon Keyspaces versus Apache Cassandra
A seguir estão as diferenças funcionais entre o Amazon Keyspaces e o Apache Cassandra.
Apache Cassandra APIs, operações e tipos de dados
O Amazon Keyspaces oferece suporte a todas as operações de plano de dados do Cassandra comumente usadas, como criar espaços de chaves e tabelas, ler dados e gravar dados. Para ver o que é compatível no momento, consulte Cassandra APIs, operações, funções e tipos de dados compatíveis.
Criação e exclusão assíncronas de espaços de chave e tabelas
O Amazon Keyspaces executa operações de linguagem de definição de dados (DDL), como criar e excluir espaços de chave, tabelas e tipos de forma assíncrona. Para saber como monitorar o status de criação de recursos, consulte Verifique o status de criação do keyspace no Amazon Keyspaces e Verifique o status de criação da tabela no Amazon Keyspaces. Para obter uma lista de instruções DDL na referência da linguagem CQL, consulte Instruções DDL (linguagem de definição de dados) no Amazon Keyspaces.
Autenticação e autorização
O Amazon Keyspaces (para Apache Cassandra) usa AWS Identity and Access Management (IAM) para autenticação e autorização de usuários e oferece suporte às políticas de autorização equivalentes às do Apache Cassandra. Dessa forma, o Amazon Keyspaces não oferece suporte aos comandos de configuração de segurança do Apache Cassandra.
Lote
O Amazon Keyspaces oferece suporte a comandos em lote não registrados com até 30 comandos no lote. Somente comandos INSERT, UPDATE ou DELETE incondicionais são permitidos em um lote. Os lotes registrados não são compatíveis.
Captura de dados de alteração (CDC)
No Apache Cassandra, a captura de dados de alteração (CDC) copia segmentos de log de confirmação que capturam atualizações da tabela em um diretório especificado no nó. Cada registro de alteração no registro do CDC pode incluir atualizações em vários espaços de chave e tabelas. Quando uma linha é atualizada ou excluída, o log do Apache Cassandra CDC mostra somente as colunas modificadas. O registro não inclui o estado anterior dos dados antes da alteração. Para entender todos os detalhes das modificações de dados, você precisa desserializar esses registros usando ferramentas específicas do Cassandra.
Com os streams CDC do Amazon Keyspaces, você pode selecionar o tipo de informação que o stream do CDC coleta para cada linha. Por padrão, os streams CDC do Amazon Keyspaces capturam a versão da linha antes e depois da alteração. O Amazon Keyspaces CDC fornece registros de alterações desduplicados e ordenados no nível da tabela.
Para obter mais informações sobre o Amazon Keyspaces CDC, consulte. Trabalhando com fluxos de captura de dados de alteração (CDC) no Amazon Keyspaces
Configuração do cluster
O Amazon Keyspaces não tem servidor, portanto, não há clusters, hosts ou máquinas virtuais Java () JVMs para configurar. As configurações do Cassandra de compactação, compressão, armazenamento em cache, coleta de resíduos e filtragem de bloom não são aplicáveis ao Amazon Keyspaces e são ignoradas quando especificadas.
Conexões
Você pode usar os drivers existentes do Cassandra para se comunicar com o Amazon Keyspaces, mas precisa configurar os drivers de forma diferente. O Amazon Keyspaces suporta até 3.000 consultas CQL por conexão TCP por segundo, mas não há limite no número de conexões que um driver pode estabelecer.
A maioria dos drivers de código aberto do Cassandra estabelece um pool de conexões com o Cassandra e balanceia a carga das consultas sobre esse pool de conexões. O Amazon Keyspaces expõe 9 endereços IP de mesmo nível aos drivers, e o comportamento padrão da maioria dos drivers é estabelecer uma única conexão com cada endereço IP de mesmo nível. Portanto, o throughput máximo de consultas CQL de um driver usando as configurações padrão é de 27.000 consultas CQL por segundo.
Para aumentar esse número, recomendamos aumentar o número de conexões por endereço IP que o driver mantém no pool de conexões. Por exemplo, definir o máximo de conexões por endereço IP como 2 dobra o throughput máximo do driver para 54.000 consultas CQL por segundo.
Como prática recomendada, recomendamos configurar os drivers para usar 500 consultas CQL por segundo por conexão para permitir a sobrecarga e melhorar a distribuição. Nesse cenário, o planejamento de 18.000 consultas CQL por segundo requer 36 conexões. A configuração do driver para 4 conexões em 9 endpoints fornece 36 conexões executando 500 solicitações por segundo. Para obter mais informações sobre as práticas recomendadas para conexões, consulte Otimize as conexões do driver do cliente para o ambiente sem servidor.
Ao se conectar com endpoints da VPC, pode haver menos endpoints disponíveis. Isso significa que você precisa aumentar o número de conexões na configuração do driver. Para obter mais informações sobre práticas recomendadas para conexões de VPC, consulte. Como configurar conexões por meio de endpoints da VPC no Amazon Keyspaces
Palavra-chave IN
O Amazon Keyspaces suporta a palavra-chave IN
na instrução SELECT
. O IN
não é compatível com UPDATE
e DELETE
. Ao usar a palavra-chave IN
na instrução SELECT
, os resultados da consulta são retornados na ordem em que as chaves são apresentadas na instrução SELECT
. No Cassandra, os resultados são ordenados lexicograficamente.
Ao usar ORDER BY
, a reordenação completa com paginação desativada não é compatível e os resultados são ordenados em uma página. As consultas slice não são compatíveis com a palavra-chave IN
. Os TOKENS
não são compatíveis com a palavra-chave IN
. O Amazon Keyspaces processa consultas com a palavra-chave IN
criando subconsultas. Cada subconsulta conta como uma conexão para o limite de 3.000 consultas CQL por conexão TCP por segundo. Para obter mais informações, consulte Como usar o operador IN com a Instrução SELECT em uma consulta no Amazon Keyspaces.
Coleções FROZEN
A palavra-chave FROZEN
no Cassandra serializa vários componentes de um tipo de dados de coleção em um único valor imutável que é tratado como um BLOB
. As instruções INSERT
e UPDATE
sobrescrevem toda a coleção.
Por padrão, o Amazon Keyspaces suporta até 8 níveis de aninhamento para coleções congeladas. Para obter mais informações, consulte Service Quotas do Amazon Keyspaces.
O Amazon Keyspaces não suporta comparações de desigualdade que usam toda a coleção congelada em uma condição UPDATE
ou instrução SELECT
. O comportamento de coleções e coleções congeladas é o mesmo no Amazon Keyspaces.
Quando você usa coleções congeladas com timestamps no lado do cliente, caso o timestamp de uma operação de gravação seja o mesmo que o timestamp de uma coluna existente não expirada ou não delimitada, o Amazon Keyspaces não realiza comparações. Em vez disso, ele permite que o servidor determine o gravador mais recente, e o gravador mais recente vence.
Para obter mais informações sobre coleções congeladas, consulte Tipos de coleção.
Transações leves
O Amazon Keyspaces (para Apache Cassandra) oferece suporte total à funcionalidade de comparação e configuração emINSERT,, e DELETE comandosUPDATE, que são conhecidos como transações leves (LWTs) no Apache Cassandra. Como uma oferta de tecnologia sem servidor, o Amazon Keyspaces (para Apache Cassandra) fornece desempenho consistente em qualquer escala, inclusive para transações leves. Com o Amazon Keyspaces, não há penalidade de desempenho pelo uso de transações leves.
Balanceamento de carga
As entradas da tabela system.peers
correspondem aos balanceadores de carga do Amazon Keyspaces. Para obter melhores resultados, recomendamos usar uma política de balanceamento de carga round robin e ajustar o número de conexões por IP para atender às necessidades do seu aplicativo.
Paginação
O Amazon Keyspaces pagina os resultados com base no número de linhas que lê para processar uma solicitação, não no número de linhas retornadas no conjunto de resultados. Como resultado, algumas páginas podem conter menos linhas do que você especifica em TAMANHO DA PÁGINA para consultas filtradas. Além disso, o Amazon Keyspaces pagina os resultados automaticamente após a leitura de 1 MB de dados para fornecer aos clientes um desempenho de leitura consistente de um dígito em milissegundos. Para obter mais informações, consulte Paginar resultados no Amazon Keyspaces.
Em tabelas com colunas estáticas, tanto o Apache Cassandra quanto o Amazon Keyspaces estabelecem o valor da coluna estática da partição no início de cada página em uma consulta de várias páginas. Quando uma tabela tem grandes linhas de dados, como resultado do comportamento de paginação do Amazon Keyspaces, há maior probabilidade de que o resultado de uma operação de leitura de intervalo retorne mais páginas para o Amazon Keyspaces do que para o Apache Cassandra. Consequentemente, há uma probabilidade maior no Amazon Keyspaces de que atualizações simultâneas na coluna estática possam fazer com que o valor da coluna estática seja diferente em páginas diferentes do conjunto de resultados de leitura do intervalo.
Particionadores
O particionador padrão no Amazon Keyspaces é o Murmur3Partitioner
compatível com o Cassandra. Além disso, você tem a opção de usar o DefaultPartitioner
do Amazon Keyspaces ou o RandomPartitioner
compatível com Cassandra.
Com o Amazon Keyspaces, você pode alterar com segurança o particionador da sua conta sem precisar recarregar seus dados do Amazon Keyspaces. Depois que a alteração da configuração for concluída, o que leva aproximadamente 10 minutos, os clientes verão a nova configuração do particionador automaticamente na próxima vez que se conectarem. Para obter mais informações, consulte Como trabalhar com particionadores no Amazon Keyspaces.
Instruções preparadas
O Amazon Keyspaces oferece suporte ao uso de instruções preparadas para operações de linguagem de manipulação de dados (DML), como leitura e gravação de dados. Atualmente, o Amazon Keyspaces não oferece suporte ao uso de instruções preparadas para operações de linguagem de definição de dados (DDL), como a criação de tabelas e espaços de chaves. As operações de DDL devem ser executadas fora das instruções preparadas.
Intervalo de exclusão
O Amazon Keyspaces oferece suporte à exclusão de linhas em um intervalo. Um intervalo é um conjunto contíguo de linhas dentro de uma partição. Você especifica um intervalo em uma operação DELETE usando uma cláusula WHERE. Você pode especificar o intervalo para ser uma partição inteira.
Além disso, você pode especificar um intervalo como um subconjunto de linhas contíguas em uma partição usando operadores relacionais (por exemplo, '>', '<') ou incluindo a chave de partição e omitindo uma ou mais colunas de agrupamento. Com o Amazon Keyspaces, você pode excluir até 1.000 linhas dentro de um intervalo em uma única operação.
As exclusões de intervalos não são isoladas. As exclusões de linhas individuais são visíveis para outras operações enquanto uma exclusão de intervalo está em andamento.
Tabelas de sistema
O Amazon Keyspaces preenche as tabelas do sistema que são exigidas pelos drivers open source do Apache 2.0 para o Cassandra. As tabelas do sistema que são visíveis para um cliente contêm informações exclusivas do usuário autenticado. As tabelas do sistema são totalmente controladas pelo Amazon Keyspaces e são somente para leitura. Para obter mais informações, consulte Espaços de chaves do sistema no Amazon Keyspaces.
O acesso somente para leitura às tabelas do sistema é necessário, e você pode controlá-lo com as políticas de acesso do IAM. Para obter mais informações, consulte Gerenciar o acesso usando políticas. Você deve definir políticas de controle de acesso baseadas em tags para tabelas do sistema de forma diferente, dependendo se você usa o AWS SDK ou as chamadas de API da Cassandra Query Language (CQL) por meio de drivers e ferramentas de desenvolvedor do Cassandra. Para saber mais sobre controle de acesso baseado em tags para tabelas de sistema, consulte Acesso a recursos do Amazon Keyspaces com base em tags.
Se você acessar o Amazon Keyspaces usando endpoints da VPC Amazon, verá entradas na tabela system.peers
para cada endpoint da VPC Amazon que o Amazon Keyspaces tem permissão para ver. Como resultado, seu driver do Cassandra pode emitir uma mensagem de aviso sobre o próprio nó de controle na tabela system.peers
. Você pode ignorar esse aviso com segurança.
Carimbos de data/hora
No Amazon Keyspaces, os timestamps em nível de célula que são compatíveis com os timestamps padrão no Apache Cassandra são um atributo opcional.
A cláusula USING TIMESTAMP
e a função WRITETIME
só estão disponíveis quando os timestamps no lado do cliente estão ativados para uma tabela. Para saber mais sobre os timestamps no lado do cliente no Amazon Keyspaces, consulte Carimbos de data/hora do lado do cliente no Amazon Keyspaces.
Tipos definidos pelo usuário () UDTs
O operador de desigualdade não é suportado UDTs no Amazon Keyspaces.
Para saber como trabalhar com o UDTs Amazon Keyspaces, consulte. Tipos definidos pelo usuário (UDTs) no Amazon Keyspaces
Para analisar quantos UDTs são suportados por espaço de chave, níveis de aninhamento suportados e outros valores e cotas padrão relacionados a UDTs, consulte. Cotas e valores padrão para tipos definidos pelo usuário (UDTs) no Amazon Keyspaces