

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á.

# O que é o Amazon Keyspaces (para Apache Cassandra)?
<a name="what-is-keyspaces"></a>

 O Amazon Keyspaces (para Apache Cassandra) é um serviço de banco de dados compatível com Apache Cassandra, escalável, de alta disponibilidade e gerenciado. Com o Amazon Keyspaces, você não precisa provisionar, corrigir ou gerenciar servidores, nem instalar, manter ou operar software. 

O Amazon Keyspaces possui tecnologia sem servidor, então você paga somente pelos recursos que usa, e o serviço aumenta e diminui automaticamente as tabelas em resposta ao tráfego do aplicativo. Você pode criar aplicativos que atendem a milhares de solicitações por segundo com throughput e armazenamento praticamente ilimitados. 

**nota**  
 O Apache Cassandra é um datastore de coluna ampla de código aberto, projetado para lidar com grandes quantidades de dados. Para obter mais informações, consulte [Apache Cassandra](http://cassandra.apache.org/).

O Amazon Keyspaces facilita a migração, a execução e a escalabilidade das workloads do Cassandra no Nuvem AWS. Com apenas alguns cliques no AWS Management Console ou algumas linhas de código, você pode criar espaços chave e tabelas no Amazon Keyspaces, sem implantar nenhuma infraestrutura ou instalar software.

Com o Amazon Keyspaces, você pode executar suas cargas de trabalho existentes do Cassandra AWS usando o mesmo código do aplicativo Cassandra e as mesmas ferramentas de desenvolvedor que você usa atualmente. 

Com a [calculadora de preços do Amazon Keyspaces (para Apache Cassandra)](https://aws-samples.github.io/sample-pricing-calculator-for-keyspaces/#cassandra) disponível no Github, você pode estimar seus custos mensais do Amazon Keyspaces com base na sua carga de trabalho atual do Apache Cassandra. Insira métricas da saída de status do nodetool do Cassandra e da configuração sem servidor pretendida para o Amazon Keyspaces para comparar os custos diretos entre as duas soluções. Observe que essa calculadora se concentra apenas nos custos operacionais do Amazon Keyspaces em comparação com sua implantação atual do Cassandra. Não inclui fatores de custo total de propriedade (TCO), como manutenção da infraestrutura, sobrecarga operacional ou custos de suporte para o Cassandra.

Para obter uma lista de endpoints disponíveis Regiões da AWS , consulte [Endpoints de serviço para Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/programmatic.endpoints.html).

Recomendamos que você comece lendo as seguintes seções:

**Topics**
+ [Amazon Keyspaces: como funciona](how-it-works.md)
+ [Casos de uso do Amazon Keyspaces](use-cases.md)
+ [O que é Cassandra Query Language (CQL)?](what-is-cql.md)

# Amazon Keyspaces: como funciona
<a name="how-it-works"></a>

O Amazon Keyspaces remove a sobrecarga administrativa do gerenciamento do Cassandra. Para entender por que, é útil começar com a arquitetura do Cassandra e depois compará-la com o Amazon Keyspaces.

**Topics**
+ [Arquitetura de alto nível: Apache Cassandra versus Amazon Keyspaces](#how-it-works.cassandra-arch)
+ [Modelo de dados do Cassandra](#how-it-works.data-model)
+ [Como acessar o Amazon Keyspaces a partir de um aplicativo](#how-it-works.keyspaces-arch.accessing)

## Arquitetura de alto nível: Apache Cassandra versus Amazon Keyspaces
<a name="how-it-works.cassandra-arch"></a>

 O Apache Cassandra tradicional é implantado em um cluster composto de um ou mais nós. Você é responsável por gerenciar cada nó e adicionar e remover nós à medida que seu cluster é escalado. 

Um programa cliente acessa o Cassandra conectando-se a um dos nós e emitindo instruções Cassandra Query Language (CQL). O *CQL* é semelhante ao SQL, a linguagem popular usada em bancos de dados relacionais. Embora o Cassandra não seja um banco de dados relacional, o CQL fornece uma interface familiar para consultar e manipular dados no Cassandra.

O diagrama a seguir mostra um cluster Apache Cassandra simples, com quatro nós.

![\[Diagrama de um cluster Apache Cassandra contendo 4 nós e interagindo com o aplicativo cliente.\]](http://docs.aws.amazon.com/pt_br/keyspaces/latest/devguide/images/keyspaces_cassandra-hi-level.png)


Uma implantação de produção do Cassandra pode consistir em centenas de nós, executados em centenas de computadores físicos em um ou mais datacenters físicos. Isso pode causar uma sobrecarga operacional para os desenvolvedores de aplicativos que precisam provisionar, corrigir e gerenciar servidores, além de instalar, manter e operar o software. 

Com o Amazon Keyspaces (para Apache Cassandra), você não precisa provisionar, corrigir ou gerenciar servidores, para que possa se concentrar na criação de aplicativos melhores. O Amazon Keyspaces oferece dois modos de capacidade de throughput para leituras e gravações: sob demanda e provisionada. Você pode escolher o modo de capacidade de throughput da sua tabela para otimizar o preço das leituras e gravações com base na previsibilidade e na variabilidade da sua workload. 

Com o modo sob demanda, você paga apenas pelas leituras e gravações que seu aplicativo realmente executa. Você não precisa especificar com antecedência a capacidade de throughput de sua tabela. O Amazon Keyspaces acomoda o tráfego do seu aplicativo quase instantaneamente à medida que aumenta ou diminui, o que o torna uma boa opção para aplicativos com tráfego imprevisível.

O modo de capacidade provisionada ajuda você a otimizar o preço do throughput se você tiver tráfego previsível de aplicativos e puder prever os requisitos de capacidade da sua tabela com antecedência. Com o modo de capacidade provisionada, você especifica o número de leituras e gravações por segundo que espera que seu aplicativo execute. Você pode aumentar e diminuir automaticamente a capacidade provisionada de sua tabela ativando o [escalonamento automático](https://docs.aws.amazon.com/keyspaces/latest/devguide/autoscaling.html).

Você pode alterar o modo de capacidade da sua tabela uma vez por dia à medida que aprende mais sobre os padrões de tráfego da sua workload ou se espera ter um grande aumento no tráfego, como devido a um grande evento que, segundo sua previsão, gerará muito tráfego na tabela. Para obter mais informações sobre unidades de capacidade de leitura e gravação, consulte [Configurar modos de read/write capacidade no Amazon Keyspaces](ReadWriteCapacityMode.md). 

O Amazon Keyspaces (para Apache Cassandra) armazena três cópias dos seus dados em várias [ Zonas de disponibilidade](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) para maior durabilidade e alta disponibilidade. Além disso, você se contará com um datacenter e uma arquitetura de rede criados para atender aos requisitos das organizações com as maiores exigências de segurança. A criptografia em repouso é ativada automaticamente quando você cria uma nova tabela do Amazon Keyspaces e todas as conexões de clientes exigem Transport Layer Security (TLS). Recursos adicionais AWS de segurança incluem [monitoramento](https://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring.html) e [AWS Identity and Access Management](https://docs.aws.amazon.com/keyspaces/latest/devguide/security_iam_service-with-iam.html)endpoints de [nuvem privada virtual (VPC)](https://docs.aws.amazon.com/keyspaces/latest/devguide/vpc-endpoints.html). Para obter uma visão geral de todos os recursos de segurança disponíveis, consulte [Segurança no Amazon Keyspaces (para Apache Cassandra)](security.md). 

O diagrama a seguir mostra a arquitetura do Amazon Keyspaces.

![\[Diagrama do Amazon Keyspaces interagindo com o aplicativo cliente.\]](http://docs.aws.amazon.com/pt_br/keyspaces/latest/devguide/images/keyspaces-hi-level.png)


Um programa cliente acessa o Amazon Keyspaces conectando-se a um endpoint predeterminado (nome do host e número da porta) e emitindo instruções CQL. Para obter uma lista de endpoints disponíveis, consulte [Endpoints de serviço para Amazon Keyspaces](programmatic.endpoints.md).

## Modelo de dados do Cassandra
<a name="how-it-works.data-model"></a>

A forma como você modela seus dados para seu caso de negócios é fundamental para alcançar o desempenho ideal do Amazon Keyspaces. Um modelo de dados ruim pode degradar significativamente o desempenho.

Embora o CQL seja semelhante ao SQL, os backends do Cassandra e dos bancos de dados relacionais são muito diferentes e devem ser abordados de forma diferente. A seguir estão algumas das questões mais importantes a serem consideradas:

**Armazenamento**  
Você pode visualizar seus dados do Cassandra em tabelas, com cada linha representando um registro e cada coluna um campo dentro desse registro. 

**Design da tabela: consulta primeiro**  
Não há `JOIN`s no CQL. Portanto, você deve criar suas tabelas com a forma dos seus dados e como você precisa acessá-los para seus casos de uso comercial. Isso pode resultar em desnormalização com dados duplicados. Você deve projetar cada uma de suas tabelas especificamente para um padrão de acesso específico.

**Partições**  
 Seus dados são armazenados em partições no disco. O número de partições em que seus dados são armazenados e como eles são distribuídos entre as partições é determinado pela sua *chave de partição*. A forma como você define sua chave de partição pode ter um impacto significativo no desempenho de suas consultas. Para ver as práticas recomendadas, consulte [Como usar chaves de partição de forma eficaz no Amazon Keyspaces](bp-partition-key-design.md).

**Chave primária**  
No Cassandra, os dados são armazenados como um par de chave/valor. Cada tabela do Cassandra deve ter uma chave primária, que é a chave exclusiva para cada linha na tabela. A chave primária é composta por uma chave de partição necessária e uma ou mais colunas de clustering opcionais. Os dados que compõem a chave primária devem ser exclusivos em todos os registros de uma tabela.  
+ **Chave de partição**: a parte da chave de partição da chave primária é necessária e determina em qual partição do cluster os dados são armazenados. A chave de partição pode ser uma única coluna ou um valor composto formado por duas ou mais colunas. Você usaria uma chave de partição composta se uma chave de partição de coluna única resultasse em uma única partição ou em poucas partições com a maioria dos dados e, portanto, suportasse a maioria das I/O operações de disco. 
+ **Coluna de clustering**: a parte opcional da coluna de clustering de sua chave primária determina como os dados são agrupados e classificados em cada partição. Se você incluir uma coluna de clustering em sua chave primária, a coluna de clustering poderá ter uma ou mais colunas. Se houver várias colunas na coluna de clustering, a ordem de classificação será determinada pela ordem em que as colunas são listadas na coluna de clustering, da esquerda para a direita.

Para obter mais informações sobre o design do NoSQL e o Amazon Keyspaces, consulte [Principais diferenças e princípios de design do NoSQL](bp-general-nosql-design.md). Para obter mais informações sobre o Amazon Keyspaces e modelagem de dados, consulte [Melhores práticas de modelagem de dados: recomendações para projetar modelos de dados](data-modeling.md).

## Como acessar o Amazon Keyspaces a partir de um aplicativo
<a name="how-it-works.keyspaces-arch.accessing"></a>

O Amazon Keyspaces (para Apache Cassandra) implementa a API Apache Cassandra Query Language (CQL), para que você possa usar os drivers CQL e Cassandra que você já usa. Atualizar seu aplicativo é tão fácil quanto atualizar o driver ou a configuração `cqlsh` do Cassandra para apontar para o endpoint do serviço Amazon Keyspaces. Para obter mais informações sobre as credenciais necessárias, consulte [Crie e configure AWS credenciais para o Amazon Keyspaces](access.credentials.md). 

**nota**  
Para ajudar você a começar, você pode encontrar exemplos de end-to-end código de conexão com o Amazon Keyspaces usando vários drivers de cliente do Cassandra no repositório de exemplos de código do Amazon Keyspaces em. [GitHub](https://github.com/aws-samples/amazon-keyspaces-examples)

 Considere o seguinte programa Python, que se conecta a um cluster do Cassandra e consulta uma tabela.

```
from cassandra.cluster import Cluster
#TLS/SSL configuration goes here

ksp = 'MyKeyspace'
tbl = 'WeatherData'

cluster = Cluster(['NNN.NNN.NNN.NNN'], port=NNNN)
session = cluster.connect(ksp)

session.execute('USE ' + ksp)

rows = session.execute('SELECT * FROM ' +  tbl)
for row in rows:
    print(row)
```

Para executar o mesmo programa no Amazon Keyspaces, você precisa: 
+  **Adicionar o endpoint e a porta do cluster**: por exemplo, o host pode ser substituído por um endpoint de serviço, como `cassandra.us-east-1.amazonaws.com` e o número da porta por: `9142`. 
+  **Adicione a TLS/SSL configuração**: Para obter mais informações sobre como adicionar a TLS/SSL configuração para se conectar ao Amazon Keyspaces usando um driver Python do cliente Cassandra, consulte. [Como usar um driver de cliente Cassandra Python para acessar o Amazon Keyspaces programaticamente](using_python_driver.md) 

# Casos de uso do Amazon Keyspaces
<a name="use-cases"></a>

A seguir estão apenas algumas das maneiras pelas quais você pode usar o Amazon Keyspaces:
+  **Crie aplicativos que exijam baixa latência** — Processe dados em alta velocidade para aplicativos que exigem single-digit-millisecond latência, como manutenção de equipamentos industriais, monitoramento comercial, gerenciamento de frotas e otimização de rotas. 
+  **Crie aplicativos usando tecnologias de código aberto** — Crie aplicativos AWS usando o Cassandra de código aberto APIs e drivers que estão disponíveis para uma ampla variedade de linguagens de programação, como Java, Python, Ruby, Microsoft.NET, Node.js, PHP, C\$1\$1, Perl e Go. Para obter exemplos de código, consulte [Bibliotecas e ferramentas do Amazon Keyspaces (para Apache Cassandra)](examples-tools.md).
+  **Mova suas workloads do Cassandra para a nuvem**: gerenciar as tabelas do Cassandra sozinho é demorado e caro. Com o Amazon Keyspaces, você pode configurar, proteger e escalar tabelas do Cassandra sem gerenciar a Nuvem AWS infraestrutura. Para obter mais informações, consulte [Como gerenciar os recursos de tecnologia sem servidor no Amazon Keyspaces (para Apache Cassandra)](serverless_resource_management.md).

# O que é Cassandra Query Language (CQL)?
<a name="what-is-cql"></a>

O *Cassandra Query Language* (CQL) é a linguagem principal para comunicação com o Apache Cassandra. O Amazon Keyspaces (para Apache Cassandra) é compatível com a API CQL 3.x (com compatibilidade com versões anteriores à versão 2.x). 

No CQL, os dados são armazenados em tabelas, colunas e linhas. Nesse sentido, o CQL é semelhante ao Structured Query Language (SQL). Aqui estão os principais conceitos do CQL.
+ **Elementos CQL**: os elementos fundamentais do CQL são identificadores, constantes, termos e tipos de dados. 
+ **Data Definition Language (DDL)** — As instruções DDL são usadas para gerenciar estruturas de dados como keyspaces e tabelas, que são recursos AWS no Amazon Keyspaces. As instruções DDL são operações do plano de controle em AWS.
+ **Linguagem de manipulação de dados (DML)**: as instruções DML são usadas para gerenciar dados em tabelas. As instruções DML são usadas para selecionar, inserir, atualizar e excluir dados. Essas são as operações do plano de dados em AWS.
+ **Funções integradas**: o Amazon Keyspaces oferece suporte a uma variedade de funções escalares integradas que você pode usar nas instruções do CQL. 

Para obter mais informações sobre CQL, consulte [Referência de idiomas CQL para Amazon Keyspaces (para Apache Cassandra)](cql.md). Para ver as diferenças funcionais com o Apache Cassandra, consulte [Diferenças funcionais: Amazon Keyspaces versus Apache Cassandra](functional-differences.md).

Para executar consultas CQL, você pode realizar um dos seguintes procedimentos:
+ Usar o editor CQL no Console de gerenciamento da AWS.
+ O uso AWS CloudShell e a expansão do [calsh](programmatic.cqlsh.md#using_cqlsh).
+ Usar um cliente `cqlsh`.
+ Usar um driver de cliente Cassandra licenciado pelo Apache 2.0.

Além do CQL, você pode realizar operações de Data Definition Language (DDL) no Amazon Keyspaces usando o e o. AWS SDKs AWS Command Line Interface

Para obter mais informações sobre como usar esses métodos para acessar o Amazon Keyspaces, consulte [Como acessar o Amazon Keyspaces (para Apache Cassandra)](accessing.md). 