Migra de Apache Cassandra a Bigtable
En este documento, se explica el proceso de migración de datos de Apache Cassandra a Bigtable con una interrupción mínima. En ella, se describe cómo usar herramientas de código abierto, como el adaptador de proxy de Cassandra a Bigtable o el cliente de Cassandra a Bigtable para Java, para realizar la migración. Antes de comenzar, asegúrate de conocer Bigtable para usuarios de Cassandra.
Adaptador de proxy de Cassandra a Bigtable
El adaptador de proxy de Cassandra a Bigtable te permite conectar aplicaciones basadas en Cassandra a Bigtable. El adaptador de proxy funciona como una interfaz de Cassandra compatible con cables y permite que tu aplicación interactúe con Bigtable usando el lenguaje de consultas de Cassandra (CQL). El uso del adaptador de proxy no requiere que cambies los controladores de Cassandra, y los ajustes de configuración son mínimos.
Para configurar el adaptador de proxy, consulta Adaptador de proxy de Cassandra a Bigtable.
Para saber qué versiones de Cassandra admiten el adaptador de proxy, consulta Versiones de Cassandra compatibles.
Espacio de claves de Cassandra
Un espacio de claves de Cassandra almacena tus tablas y administra los recursos de manera similar a una instancia de Bigtable. El adaptador de proxy de Cassandra a Bigtable controla la nomenclatura del espacio de claves de forma transparente, por lo que puedes realizar consultas con los mismos espacios de claves. Sin embargo, debes crear una nueva instancia de Bigtable para lograr una agrupación lógica de tus tablas. También debes configurar la replicación de Bigtable por separado.
Tipos de datos admitidos
En la siguiente tabla, se muestra cómo se asignan los tipos de datos de CQL de Cassandra admitidos a sus equivalentes de Bigtable.
Tipo de CQL | Asignación de 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> |
El nombre de la columna en Cassandra se usa como el nombre de la familia de columnas en Bigtable. El key del mapa se usa como calificador de columna, y el value del mapa se almacena como el valor de la celda. |
SET<item> |
El nombre de la columna en Cassandra se usa como el nombre de la familia de columnas en Bigtable. Cada item en SET se usa como calificador de columna, y el valor de la celda se deja vacío. |
LIST<item> |
El nombre de la columna en Cassandra se usa como el nombre de la familia de columnas en Bigtable. La marca de tiempo actual se usa como calificador de columna, y los elementos de la lista se almacenan como el valor de la celda. |
Para obtener más información sobre la asignación de tipos de datos en Bigtable, consulta la descripción general de GoogleSQL para Bigtable.
Tipos de datos no admitidos
No se admiten los siguientes tipos de datos de Cassandra:
counter
date
decimal
duration
frozen
inet
smallint
time
timeuuid
tinyint
US-ASCII
- Tipos de
user-defined
(UDT) uuid
varint
Compatibilidad con DDL
El adaptador de proxy de Cassandra a Bigtable admite operaciones del lenguaje de definición de datos (DDL). Las operaciones de DDL te permiten crear y administrar tablas directamente a través de comandos de CQL. Recomendamos este enfoque para configurar tu esquema, ya que es similar a SQL, pero no necesitas definir tu esquema en archivos de configuración y, luego, ejecutar secuencias de comandos para crear tablas.
En los siguientes ejemplos, se muestra cómo el adaptador de proxy de Cassandra a Bigtable admite operaciones de DDL:
Para crear una tabla de Cassandra con CQL, ejecuta el comando
CREATE TABLE
:CREATE TABLE keyspace.table ( id bigint, name text, age int, PRIMARY KEY ((id), name) );
Para agregar una columna nueva a la tabla, ejecuta el comando
ALTER TABLE
:ALTER TABLE keyspace.table ADD email text;
Para borrar una tabla, ejecuta el comando
DROP TABLE
:DROP TABLE keyspace.table;
Para obtener más información, consulta DDL Support for Schema Creation (Recommended Method).
Compatibilidad con DML
El adaptador de proxy de Cassandra a Bigtable admite operaciones de lenguaje de manipulación de datos (DML), como INSERT
, DELETE
, UPDATE
y SELECT
.
Para ejecutar las consultas DML sin procesar, todos los valores, excepto los numéricos, deben tener comillas simples, como se muestra en los siguientes ejemplos:
SELECT * FROM keyspace.table WHERE name='john doe';
INSERT INTO keyspace.table (id, name) VALUES (1, 'john doe');
Lograr una migración sin tiempo de inactividad
Usa el adaptador de proxy de Cassandra a Bigtable con la herramienta de proxy de migración sin tiempo de inactividad (ZDM) de código abierto y la herramienta migrador de datos de Cassandra para migrar datos con un tiempo de inactividad mínimo.
En el siguiente diagrama, se muestran los pasos para migrar de Cassandra a Bigtable con el adaptador de proxy:


Para migrar Cassandra a Bigtable, sigue estos pasos:
- Conecta tu aplicación de Cassandra a la herramienta de proxy de ZDM.
- Habilita las escrituras dobles en Cassandra y Bigtable.
- Mueve datos de forma masiva con la herramienta Cassandra data migrator.
- Valida la migración. Una vez validada, puedes finalizar la conexión a Cassandra y conectarte directamente a Bigtable.
Cuando se usa el adaptador de proxy con la herramienta de proxy de ZDM, se admiten las siguientes capacidades de migración:
- Escrituras duales: Mantén la disponibilidad de los datos durante la migración
- Lecturas asíncronas: Realiza pruebas de carga y de escalabilidad en tu instancia de Bigtable
- Verificación y generación de informes de datos automatizados: Garantiza la integridad de los datos durante todo el proceso.
- Asignación de datos: Asigna los tipos de datos y campos para cumplir con tus estándares de producción.
Para practicar la migración de Cassandra a Bigtable, consulta el codelab Migración de Cassandra a Bigtable con un proxy de escritura doble.
Cliente de Cassandra a Bigtable para Java
Si deseas realizar la integración directamente con Bigtable y reemplazar tus controladores de Cassandra, la biblioteca cliente de Cassandra a Bigtable para Java te permite integrar aplicaciones basadas en Cassandra con Bigtable usando CQL.
Si deseas obtener instrucciones para compilar la biblioteca y, luego, incluir la dependencia en el código de la aplicación, consulta Cliente de Cassandra a Bigtable para Java.
En el siguiente ejemplo, se muestra cómo configurar tu aplicación con el cliente de Cassandra a Bigtable para Java:
Herramientas adicionales de código abierto de Cassandra
La compatibilidad de cable del adaptador de proxy de Cassandra a Bigtable con CQL te permite usar herramientas adicionales en el ecosistema de código abierto de Cassandra. Estas herramientas incluyen lo siguiente:
- Cqlsh: El shell de CQL te permite conectarte directamente a Bigtable a través del adaptador de proxy. Puedes usarlo para depurar y realizar búsquedas rápidas de datos con CQL.
- Cassandra Data Migrator (CDM): Esta herramienta basada en Spark es adecuada para migrar grandes volúmenes (hasta miles de millones de filas) de datos históricos. La herramienta proporciona capacidades de validación, informes de diferencias y reproducción, y es totalmente compatible con el adaptador de proxy.