Migre do Apache Cassandra para o Bigtable
Este documento explica o processo de migração de dados do Apache Cassandra para o Bigtable com a mínima interrupção. Descreve como usar ferramentas de código aberto, como o adaptador de proxy do Cassandra para o Bigtable ou o cliente do Cassandra para Java, para fazer a migração. Antes de começar, certifique-se de que conhece o Bigtable para utilizadores do Cassandra.
Escolha uma abordagem de migração
Pode migrar do Apache Cassandra para o Bigtable através de uma das seguintes abordagens:
- O adaptador de proxy do Cassandra para o Bigtable permite-lhe ligar aplicações baseadas no Cassandra ao Bigtable sem alterar os controladores do Cassandra. Esta abordagem é ideal para aplicações que requerem alterações mínimas ao código.
- O cliente Cassandra para Bigtable para Java permite-lhe integrar-se diretamente com o Bigtable e substituir os controladores do Cassandra. Esta abordagem é ideal para aplicações que requerem elevado desempenho e flexibilidade.
Adaptador de proxy do Cassandra para o Bigtable
O adaptador de proxy do Cassandra para o Bigtable permite-lhe ligar aplicações baseadas no Cassandra ao Bigtable. O adaptador de proxy funciona como uma interface Cassandra compatível com fios e permite que a sua aplicação interaja com o Bigtable através do CQL. A utilização do adaptador de proxy não requer que altere os controladores do Cassandra e os ajustes de configuração são mínimos.
Para configurar o adaptador de proxy, consulte o artigo Adaptador de proxy do Cassandra para o Bigtable.
Para saber que versões do Cassandra são compatíveis com o adaptador de proxy, consulte o artigo Versões do Cassandra compatíveis.
Limitações
O adaptador de proxy do Cassandra para o Bigtable oferece suporte limitado para determinados tipos de dados, funções, consultas e cláusulas.
Para mais informações, consulte o artigo Proxy do Cassandra para o Bigtable: limitações.
Cassandra keyspace
Um keyspace do Cassandra armazena as suas tabelas e gere os recursos de forma semelhante a uma instância do Bigtable. O adaptador de proxy do Cassandra para o Bigtable processa a nomenclatura do keyspace de forma transparente, para que possa consultar através dos mesmos keyspaces. No entanto, tem de criar uma nova instância do Bigtable para conseguir o agrupamento lógico das suas tabelas. Também tem de configurar a replicação do Bigtable separadamente.
Compatibilidade com LDD
O adaptador de proxy do Cassandra para o Bigtable suporta operações de linguagem de definição de dados (LDD). As operações DDL permitem-lhe criar e gerir tabelas diretamente através de comandos CQL. Recomendamos esta abordagem para configurar o seu esquema, porque é semelhante ao SQL, mas não precisa de definir o esquema em ficheiros de configuração e, em seguida, executar scripts para criar tabelas.
Os exemplos seguintes mostram como o adaptador de proxy do Cassandra para o Bigtable suporta operações de LDD:
Para criar uma tabela do Cassandra com o 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 eliminar uma tabela, execute o comando
DROP TABLE:DROP TABLE keyspace.table;
Para mais informações, consulte o artigo Suporte de DDL para a criação de esquemas (método recomendado).
Apoio técnico para DML
O adaptador de proxy do Cassandra para o Bigtable suporta operações de linguagem de manipulação de dados (DML), como INSERT, DELETE, UPDATE e SELECT.
Para executar as consultas DML não processadas, todos os valores, exceto os numéricos, têm de ter aspas simples, conforme mostrado nos exemplos seguintes:
SELECT * FROM keyspace.table WHERE name='john doe';INSERT INTO keyspace.table (id, name) VALUES (1, 'john doe');
Alcance uma migração sem tempo de inatividade
Pode usar o adaptador de proxy do Cassandra para o Bigtable com a ferramenta de proxy de migração sem tempo de inatividade (ZDM) de código aberto e a ferramenta migrador de dados do Cassandra para migrar dados com um tempo de inatividade mínimo.
O diagrama seguinte mostra os passos para migrar do Cassandra para o Bigtable através do adaptador de proxy:
Para migrar o Cassandra para o Bigtable, siga estes passos:
- Associe a sua aplicação Cassandra à ferramenta de proxy ZDM.
- Ative as escritas duplas no Cassandra e no Bigtable.
- Mova dados em massa com a ferramenta Cassandra data migrator.
- Valide a migração. Depois de validada, pode terminar a ligação ao Cassandra e ligar-se diretamente ao Bigtable.
Quando usar o adaptador de proxy com a ferramenta de proxy ZDM, são suportadas as seguintes capacidades de migração:
- Escritas duplas: mantenha a disponibilidade dos dados durante a migração
- Leituras assíncronas: dimensione e teste a capacidade de resposta da sua instância do Bigtable
- Validação e relatórios de dados automatizados: garanta a integridade dos dados ao longo do processo
- Mapeamento de dados: mapeie os campos e os tipos de dados para cumprir as suas normas 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
Pode fazer a integração diretamente com o Bigtable e substituir os seus controladores do Cassandra. A biblioteca do cliente do Cassandra para Java permite-lhe integrar aplicações Java baseadas no Cassandra com o Bigtable através do CQL.
Para obter instruções sobre como criar a biblioteca e incluir a dependência no código da aplicação, consulte o artigo Cliente do Cassandra para o Bigtable para Java.
O exemplo seguinte mostra como configurar a sua aplicação com o cliente Cassandra para Bigtable para Java:
Compreenda o desempenho
O Bigtable foi concebido para um elevado débito, uma baixa latência e uma escalabilidade massiva. Pode processar milhões de pedidos por segundo em petabytes de dados. Quando migra do Cassandra usando o cliente Cassandra para Bigtable para Java ou o adaptador de proxy Cassandra para Bigtable, compreenda as seguintes implicações de desempenho:
Sobrecarga do cliente e do proxy
Ambas as abordagens de migração introduzem uma sobrecarga de desempenho mínima. Atuam como uma camada de tradução entre o idioma de consulta do Cassandra (CQL) e a API Bigtable Data, que está otimizada para eficiência.
Desempenho com tipos de coleções do Cassandra
Se o seu modelo de dados do Cassandra usar tipos de recolha, como mapas, conjuntos ou listas, para implementar esquemas dinâmicos, o Bigtable pode processar estes padrões de forma eficaz. Tanto o adaptador de proxy como o cliente para Java mapeiam estas operações de recolha para o modelo de dados subjacente do Bigtable, que é adequado para conjuntos de dados esparsos e amplos.
As operações ao nível do elemento nestas coleções são altamente eficientes. Isto inclui as seguintes ações:
- Para ler ou escrever um único valor num mapa.
- Para adicionar ou remover um elemento de um conjunto.
- Para acrescentar ou antepor um elemento a uma lista.
O Bigtable otimiza estes tipos de operações de pontos em elementos de recolha individuais, e o respetivo desempenho é idêntico ao das operações em colunas escalares padrão.
Teste o desempenho da sua carga de trabalho
O desempenho do Bigtable pode variar consoante a carga de trabalho, a estrutura, os padrões de acesso aos dados e a configuração do cluster. Para obter métricas de desempenho precisas para o seu exemplo de utilização e garantir que o Bigtable cumpre os seus requisitos específicos, recomendamos que teste o desempenho das suas cargas de trabalho do Cassandra em comparação com o Bigtable através de uma das abordagens de migração.
Para mais informações sobre as práticas recomendadas de desempenho do Bigtable, consulte o artigo Compreenda o desempenho.
Ferramentas de código aberto do Cassandra adicionais
Devido à compatibilidade de cabos do adaptador de proxy do Cassandra para o Bigtable, pode usar ferramentas adicionais no ecossistema de código aberto do Cassandra. Estas ferramentas incluem o seguinte:
- Cqlsh: A shell CQL permite-lhe ligar-se diretamente ao Bigtable através do adaptador de proxy. Pode usá-la para depuração e pesquisas rápidas de dados através da CQL.
- Cassandra Data Migrator (CDM): Esta ferramenta baseada no Spark é adequada para migrar grandes volumes (até milhares de milhões de linhas) de dados do histórico. A ferramenta oferece validação, relatórios de diferenças e capacidades de repetição, e é totalmente compatível com o adaptador de proxy.