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. Ela descreve como usar ferramentas de código aberto, como o adaptador de proxy do Cassandra para Bigtable ou o cliente do Cassandra para Bigtable em Java, para realizar a migração. Antes de começar, confira o artigo Bigtable para usuários do Cassandra.
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 seu aplicativo interaja com o Bigtable usando a linguagem de consulta do Cassandra (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 e configurar o adaptador de proxy, consulte Adaptador de proxy do Cassandra para o Bigtable.
Para saber quais versões do Cassandra são compatíveis com o adaptador de proxy, consulte Versões compatíveis do Cassandra.
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 Bigtable processa a nomenclatura do keyspace de forma transparente para que você possa consultar usando os mesmos keyspaces. No entanto, é necessário criar uma nova instância do Bigtable para agrupar logicamente suas tabelas. Também é necessário configurar a replicação do Bigtable separadamente.
Tipos de dados compatíveis
A tabela a seguir mostra como os tipos de dados compatíveis do CQL do Cassandra são mapeados para os equivalentes do Bigtable.
Tipo de CQL | Mapeamento do Bigtable |
---|---|
text |
RAW BYTES |
blob |
RAW BYTES |
timestamp |
RAW BYTES |
int |
RAW BYTES |
bigint |
RAW BYTES |
float |
RAW BYTES |
double |
RAW BYTES |
boolean |
RAW BYTES |
MAP<key, value> |
O nome da coluna no Cassandra é usado como o nome do grupo de colunas no Bigtable. O key do mapa é usado como o qualificador de coluna, e o value do mapa é armazenado como o valor da célula. |
SET<item> |
O nome da coluna no Cassandra é usado como o nome do grupo de colunas no Bigtable. Cada item no SET é usado como um qualificador de coluna, e o valor da célula fica vazio. |
LIST<item> |
O nome da coluna no Cassandra é usado como o nome do grupo de colunas no Bigtable. O carimbo de data/hora atual é usado como o qualificador de coluna, e os itens da lista são armazenados como o valor da célula. |
Para mais informações sobre o mapeamento de tipos de dados no Bigtable, consulte Visão geral do GoogleSQL para Bigtable.
Tipos de dados não compatíveis
Os seguintes tipos de dados do Cassandra não são compatíveis:
counter
date
decimal
duration
frozen
inet
smallint
time
timeuuid
tinyint
US-ASCII
user-defined
tipos (UDT)uuid
varint
Suporte a DDL
O adaptador de proxy do Cassandra para Bigtable é compatível com operações de linguagem de definição de dados (DDL). Com as operações de DDL, é possível criar e gerenciar tabelas diretamente com comandos CQL. Recomendamos essa abordagem para configurar seu 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 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 é compatível com operações da 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
Use o adaptador de proxy do Cassandra para Bigtable com a ferramenta de proxy de migração sem inatividade (ZDM, na sigla em inglês) de código aberto e a ferramenta Migrador de dados do Cassandra para migrar dados com tempo de inatividade mínimo.
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 seu aplicativo Cassandra à ferramenta de proxy do ZDM.
- Ative gravações duplas no Cassandra e no Bigtable.
- Mova dados em massa usando a ferramenta Cassandra Data Migrator.
- Valide sua migração. Depois da validação, encerre a conexão com o Cassandra e conecte-se diretamente ao Bigtable.
Ao usar o adaptador de proxy com a ferramenta de proxy ZDM, as seguintes funcionalidades de migração são compatíveis:
- Gravações duplas: mantêm a disponibilidade de dados durante a migração.
- Leituras assíncronas: escalone e teste a capacidade da sua instância do Bigtable.
- Verificação e geração de relatórios de dados automatizadas: garante a integridade dos dados durante todo o processo.
- Mapeamento de dados: mapeie 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 Bigtable em Java
Se você quiser fazer a integração diretamente com o Bigtable e substituir os drivers do Cassandra, a biblioteca de cliente do Cassandra para Bigtable em Java permitirá 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 Bigtable em Java.
O exemplo a seguir mostra como configurar seu aplicativo com o cliente Cassandra para Bigtable em Java:
Outras ferramentas de código aberto do Cassandra
A compatibilidade de fio do adaptador de proxy do Cassandra para Bigtable com CQL permite usar outras ferramentas no ecossistema de código aberto do Cassandra. Essas ferramentas incluem:
- Cqlsh: o shell CQL permite que você se conecte diretamente ao Bigtable pelo adaptador de proxy. É possível usar esse recurso 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 repetição, além de ser totalmente compatível com o adaptador de proxy.