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.
Tópicos
- Apache CassandraAPIs, operações e tipos de dados
- Criação e exclusão assíncronas de espaços de chave e tabelas
- Autenticação e autorização
- Lote
- Configuração do cluster
- Conexões
- Palavra-chave IN
- CQLajuste da taxa de transferência de consultas
- Coleções FROZEN
- Transações leves
- Balanceamento de carga
- Paginação
- Particionadores
- Instruções preparadas
- Intervalo de exclusão
- Tabelas de sistema
- Carimbos de data/hora
Apache CassandraAPIs, 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 APIs, operações, funções e tipos de dados compatíveis do Cassandra.
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 e tabelas, 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 DDL declarações na referência do CQL idioma, consulteDDLdeclarações (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 do usuário e suporta as 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.
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 CQL consultas por TCP conexão por segundo, mas não há limite no número de conexões que um motorista 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, a taxa de transferência máxima de CQL consultas de um driver usando as configurações padrão é de 27.000 CQL consultas 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 a taxa de transferência máxima do seu driver para 54.000 CQL consultas por segundo.
Como prática recomendada, recomendamos configurar os drivers para usar 500 CQL consultas por segundo por conexão para permitir a sobrecarga e melhorar a distribuição. Nesse cenário, o planejamento de 18.000 CQL consultas 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 VPC endpoints, 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 as melhores práticas para VPC conexões, consulteComo configurar conexões em VPC endpoints 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 em relação ao limite de 3.000 CQL consultas por TCP conexão por segundo. Para obter mais informações, consulte Use o IN operador com a SELECT declaração em uma consulta no Amazon Keyspaces.
CQLajuste da taxa de transferência de consultas
O Amazon Keyspaces suporta até 3.000 CQL consultas por TCP conexão por segundo, mas não há limite no número de conexões que um motorista 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, a taxa de transferência máxima de CQL consultas de um driver usando as configurações padrão será de 27.000 CQL consultas 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 dobrará a taxa de transferência máxima do seu driver para 54.000 CQL consultas 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 VPC endpoints, menos endpoints estão 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 as melhores práticas para conexões de VPC endpoint, consulteComo configurar conexões em VPC endpoints 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é cinco 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 PAGE SIZE 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 Pagine os 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, a probabilidade é maior 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 suporta o 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 chave. DDLas operações devem ser executadas fora das declaraçõ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 DELETE operação usando uma WHERE cláusula. 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-chave do sistema no Amazon Keyspaces.
É necessário acesso somente para leitura às tabelas do sistema, e você pode controlá-lo com políticas de IAM acesso. Para obter mais informações, consulte Gerenciando 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 SDKou API chamadas do 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 VPCendpoints da Amazon, verá entradas na system.peers
tabela para cada VPC endpoint da 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.