Migrar do Apache Cassandra para o Bigtable
Este documento orienta você no processo de migração de dados do Apache Cassandra para o Bigtable com o mínimo de interrupção. Ele descreve como usar ferramentas de código aberto, como o adaptador de proxy do Cassandra para o Bigtable ou o cliente do Cassandra para o Bigtable para Java, para realizar a migração. Antes de começar, confira se você conhece o Bigtable para usuários do Cassandra.
Escolher uma abordagem de migração
É possível migrar do Apache Cassandra para o Bigtable usando uma das seguintes abordagens:
- O adaptador de proxy do Cassandra para o Bigtable permite conectar aplicativos baseados no Cassandra ao Bigtable sem mudar os drivers do Cassandra. Essa abordagem é ideal para aplicativos que exigem mudanças mínimas no código.
- O cliente do Cassandra para o Bigtable para Java permite integrar diretamente ao Bigtable e substituir os drivers do Cassandra. Essa abordagem é ideal para aplicativos que exigem alto desempenho e flexibilidade.
Adaptador de proxy do Cassandra para o Bigtable
O adaptador de proxy do Cassandra para o Bigtable permite conectar aplicativos baseados no Cassandra ao Bigtable. O adaptador de proxy funciona como uma interface do Cassandra compatível com fio e permite que o aplicativo interaja com o Bigtable usando CQL. O uso do adaptador de proxy não exige que você mude os drivers do Cassandra, e os ajustes de configuração são mínimos.
Para configurar o adaptador de proxy, consulte Adaptador de proxy do Cassandra para o Bigtable.
Para saber quais versões do Cassandra oferecem suporte ao adaptador de proxy, consulte Versões do Cassandra com suporte.
Limitações
O adaptador de proxy do Cassandra para o Bigtable oferece suporte limitado a determinados tipos de dados, funções, consultas e cláusulas.
Para mais informações, consulte Proxy do Cassandra para o Bigtable: limitações.
Keyspace do Cassandra
Um keyspace do Cassandra armazena suas tabelas e gerencia recursos de maneira semelhante a uma instância do Bigtable. O adaptador de proxy do Cassandra para o Bigtable processa a nomenclatura do keyspace de maneira transparente, para que você possa consultar usando os mesmos keyspaces. No entanto, é necessário criar uma nova instância do Bigtable para alcançar o agrupamento lógico das tabelas. Você também precisa configurar a replicação do Bigtable separadamente.
Suporte a DDL
O adaptador de proxy do Cassandra para o Bigtable oferece suporte a operações de linguagem de definição de dados (DDL, na sigla em inglês). As operações de DDL permitem criar e gerenciar tabelas diretamente por comandos CQL. Recomendamos essa abordagem para configurar o esquema porque ela é semelhante ao SQL, mas não é necessário definir o esquema em arquivos de configuração e executar scripts para criar tabelas.
Os exemplos a seguir mostram como o adaptador de proxy do Cassandra para o Bigtable oferece suporte a operações de DDL:
Para criar uma tabela do Cassandra usando CQL, execute o comando
CREATE TABLE:CREATE TABLE keyspace.table ( id bigint, name text, age int, PRIMARY KEY ((id), name) );Para adicionar uma nova coluna à tabela, execute o comando
ALTER TABLE:ALTER TABLE keyspace.table ADD email text;Para excluir uma tabela, execute o comando
DROP TABLE:DROP TABLE keyspace.table;
Para mais informações, consulte Suporte a DDL para criação de esquema (método recomendado).
Suporte a DML
O adaptador de proxy do Cassandra para o Bigtable oferece suporte a operações de linguagem de manipulação de dados (DML, na sigla em inglês), como INSERT, DELETE, UPDATE e SELECT.
Para executar as consultas DML brutas, todos os valores, exceto os numéricos, precisam ter aspas simples, conforme mostrado nos exemplos a seguir:
SELECT * FROM keyspace.table WHERE name='john doe';INSERT INTO keyspace.table (id, name) VALUES (1, 'john doe');
Realizar migração sem inatividade
É possível usar o adaptador de proxy do Cassandra para o Bigtable com a ferramenta de proxy de migração sem inatividade (ZDM, na sigla em inglês) de código aberto e a ferramenta de migração de dados do Cassandra para migrar dados com o mínimo de inatividade.
O diagrama a seguir mostra as etapas para migrar do Cassandra para o Bigtable usando o adaptador de proxy:
Para migrar do Cassandra para o Bigtable, siga estas etapas:
- Conecte o aplicativo do Cassandra à ferramenta de proxy ZDM.
- Ative gravações duplas no Cassandra e no Bigtable.
- Mova dados em massa usando a ferramenta de migração de dados do Cassandra.
- Valide sua migração. Depois de validada, você pode encerrar a conexão com o Cassandra e se conectar diretamente ao Bigtable.
Ao usar o adaptador de proxy com a ferramenta de proxy ZDM, os seguintes recursos de migração são compatíveis:
- Gravações duplas: manter a disponibilidade de dados durante a migração
- Leituras assíncronas: escalonar e testar a instância do Bigtable
- Verificação e relatórios de dados automatizados: garantir a integridade de dados durante todo o processo
- Mapeamento de dados: mapear campos e tipos de dados para atender aos padrões de produção
Para praticar a migração do Cassandra para o Bigtable, consulte o codelab Migração do Cassandra para o Bigtable com um proxy de gravação dupla.
Cliente do Cassandra para o Bigtable para Java
É possível integrar diretamente ao Bigtable e substituir os drivers do Cassandra. O cliente do Cassandra para a biblioteca do Bigtable para Java permite integrar aplicativos Java baseados no Cassandra ao Bigtable usando CQL.
Para instruções sobre como criar a biblioteca e incluir a dependência no código do aplicativo, consulte Cliente do Cassandra para o Bigtable para Java.
O exemplo a seguir mostra como configurar o aplicativo com o cliente do Cassandra para o Bigtable para Java:
Entender o desempenho
O Bigtable foi projetado para alta capacidade de processamento, baixa latência e escalonabilidade massiva. Ele pode processar milhões de solicitações por segundo em petabytes de dados. Ao migrar do Cassandra usando o cliente do Cassandra para o Bigtable para Java ou o adaptador de proxy do Cassandra para o Bigtable, entenda as seguintes implicações de desempenho:
Sobrecarga do cliente e do proxy
Ambas as abordagens de migração introduzem uma sobrecarga mínima de desempenho. Elas atuam como uma camada de tradução entre a linguagem de consulta do Cassandra (CQL) e a API Data do Bigtable, que é otimizada para eficiência.
Desempenho com tipos de coleção do Cassandra
Se o modelo de dados do Cassandra usar tipos de coleção, como mapas, conjuntos ou listas, para implementar esquemas dinâmicos, o Bigtable poderá processar esses padrões de maneira eficaz. O adaptador de proxy e o cliente para Java mapeiam essas operações de coleta para o modelo de dados subjacente do Bigtable, que é adequado para conjuntos de dados esparsos e amplos.
As operações no nível do elemento nessas coleções são altamente eficientes. Isso inclui as seguintes ações:
- Para ler ou gravar um único valor em um mapa.
- Para adicionar ou remover um elemento de um conjunto.
- Para anexar ou adicionar um elemento a uma lista.
O Bigtable otimiza esses tipos de operações de ponto em elementos de coleta individuais, e o desempenho deles é idêntico às operações em colunas escalares padrão.
Fazer benchmark da carga de trabalho
O desempenho do Bigtable pode variar dependendo da carga de trabalho, do design do esquema, dos padrões de acesso aos dados e da configuração do cluster. Para receber métricas de desempenho precisas para seu caso de uso e garantir que o Bigtable atenda aos seus requisitos específicos, recomendamos que você faça o benchmark das cargas de trabalho do Cassandra no Bigtable usando uma das abordagens de migração.
Para mais informações sobre as práticas recomendadas de desempenho do Bigtable, consulte Entender o desempenho.
Outras ferramentas de código aberto do Cassandra
Devido à compatibilidade de fio do adaptador de proxy do Cassandra para o Bigtable com CQL, é possível usar outras ferramentas no ecossistema de código aberto do Cassandra. Essas ferramentas incluem o seguinte:
- Cqlsh: O shell CQL permite conectar diretamente ao Bigtable pelo adaptador de proxy. É possível usá-lo para depuração e pesquisas rápidas de dados usando CQL.
- Migrador de dados do Cassandra (CDM): Essa ferramenta baseada no Spark é adequada para migrar grandes volumes (até bilhões de linhas) de dados históricos. A ferramenta oferece validação, relatórios de diferenças e recursos de reprodução, e é totalmente compatível com o adaptador de proxy.