Migrer d'Apache Cassandra vers Bigtable
Ce document vous guide tout au long du processus de migration des données d'Apache Cassandra vers Bigtable avec un minimum d'interruptions. Elle explique comment utiliser des outils Open Source, tels que l'adaptateur de proxy Cassandra vers Bigtable ou le client Cassandra vers Bigtable pour Java, afin d'effectuer la migration. Avant de commencer, assurez-vous de maîtriser Bigtable pour les utilisateurs de Cassandra.
Adaptateur de proxy Cassandra vers Bigtable
L'adaptateur de proxy Cassandra vers Bigtable vous permet de connecter des applications basées sur Cassandra à Bigtable. L'adaptateur de proxy fonctionne comme une interface Cassandra compatible avec les câbles et permet à votre application d'interagir avec Bigtable à l'aide de Cassandra Query Language (CQL). L'utilisation de l'adaptateur de proxy ne nécessite pas de modifier les pilotes Cassandra, et les ajustements de configuration sont minimes.
Pour configurer l'adaptateur de proxy, consultez Adaptateur de proxy Cassandra vers Bigtable.
Pour savoir quelles versions de Cassandra sont compatibles avec l'adaptateur de proxy, consultez Versions de Cassandra compatibles.
Espace de clés Cassandra
Un espace de clés Cassandra stocke vos tables et gère les ressources de la même manière qu'une instance Bigtable. L'adaptateur de proxy Cassandra vers Bigtable gère la dénomination des espaces de clés de manière transparente, ce qui vous permet d'effectuer des requêtes à l'aide des mêmes espaces de clés. Toutefois, vous devez créer une instance Bigtable pour regrouper logiquement vos tables. Vous devez également configurer la réplication Bigtable séparément.
Types de données acceptés
Le tableau suivant montre comment les types de données Cassandra CQL compatibles sont mappés à leurs équivalents Bigtable.
Type de CQL | Mappage 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> |
Le nom de la colonne dans Cassandra est utilisé comme nom de la famille de colonnes dans Bigtable. Le key de la carte est utilisé comme qualificatif de colonne, et le value de la carte est stocké comme valeur de cellule. |
SET<item> |
Le nom de la colonne dans Cassandra est utilisé comme nom de la famille de colonnes dans Bigtable. Chaque item dans SET est utilisé comme qualificatif de colonne, et la valeur de la cellule est laissée vide. |
LIST<item> |
Le nom de la colonne dans Cassandra est utilisé comme nom de la famille de colonnes dans Bigtable. L'horodatage actuel est utilisé comme qualificatif de colonne, et les éléments de la liste sont stockés comme valeur de cellule. |
Pour en savoir plus sur le mappage des types de données dans Bigtable, consultez la présentation de GoogleSQL pour Bigtable.
Types de données non compatibles
Les types de données Cassandra suivants ne sont pas acceptés :
counter
date
decimal
duration
frozen
inet
smallint
time
timeuuid
tinyint
US-ASCII
user-defined
types (UDT)uuid
varint
Compatibilité avec le LDD
L'adaptateur de proxy Cassandra vers Bigtable est compatible avec les opérations LDD (langage de définition de données). Les opérations LDD vous permettent de créer et de gérer des tables directement à l'aide de commandes CQL. Nous vous recommandons cette approche pour configurer votre schéma, car elle est semblable à SQL, mais vous n'avez pas besoin de définir votre schéma dans des fichiers de configuration, puis d'exécuter des scripts pour créer des tables.
Les exemples suivants montrent comment l'adaptateur de proxy Cassandra vers Bigtable est compatible avec les opérations LDD :
Pour créer une table Cassandra à l'aide de CQL, exécutez la commande
CREATE TABLE
:CREATE TABLE keyspace.table ( id bigint, name text, age int, PRIMARY KEY ((id), name) );
Pour ajouter une colonne au tableau, exécutez la commande
ALTER TABLE
:ALTER TABLE keyspace.table ADD email text;
Pour supprimer une table, exécutez la commande
DROP TABLE
:DROP TABLE keyspace.table;
Pour en savoir plus, consultez Prise en charge du LDD pour la création de schémas (méthode recommandée).
Compatibilité avec le LMD
L'adaptateur de proxy Cassandra vers Bigtable est compatible avec les opérations LMD (langage de manipulation de données) telles que INSERT
, DELETE
, UPDATE
et SELECT
.
Pour exécuter les requêtes LMD brutes, toutes les valeurs, à l'exception des valeurs numériques, doivent être entre guillemets simples, comme indiqué dans les exemples suivants :
SELECT * FROM keyspace.table WHERE name='john doe';
INSERT INTO keyspace.table (id, name) VALUES (1, 'john doe');
Effectuer une migration sans temps d'arrêt
Utilisez l'adaptateur de proxy Cassandra vers Bigtable avec l'outil de proxy de migration sans temps d'arrêt Open Source et l'outil de migration de données Cassandra pour migrer les données avec un temps d'arrêt minimal.
Le schéma suivant illustre les étapes de la migration de Cassandra vers Bigtable à l'aide de l'adaptateur de proxy :


Pour migrer Cassandra vers Bigtable, procédez comme suit :
- Connectez votre application Cassandra à l'outil proxy ZDM.
- Activez les doubles écritures dans Cassandra et Bigtable.
- Migrez les données de manière groupée à l'aide de l'outil Cassandra Data Migrator.
- Validez votre migration. Une fois la validation effectuée, vous pouvez mettre fin à la connexion à Cassandra et vous connecter directement à Bigtable.
Lorsque vous utilisez l'adaptateur de proxy avec l'outil de proxy ZDM, les fonctionnalités de migration suivantes sont compatibles :
- Écriture double : maintenir la disponibilité des données pendant la migration
- Lectures asynchrones : mettez à l'échelle et testez la résistance de votre instance Bigtable
- Vérification et reporting automatisés des données : assurez l'intégrité des données tout au long du processus.
- Mappage des données : mappez les champs et les types de données pour répondre à vos normes de production.
Pour vous entraîner à migrer Cassandra vers Bigtable, consultez l'atelier de programmation Migration de Cassandra vers Bigtable avec un proxy à double écriture.
Client Cassandra vers Bigtable pour Java
Si vous souhaitez vous intégrer directement à Bigtable et remplacer vos pilotes Cassandra, la bibliothèque cliente Cassandra vers Bigtable pour Java vous permet d'intégrer des applications Java basées sur Cassandra à Bigtable à l'aide de CQL.
Pour obtenir des instructions sur la création de la bibliothèque et l'inclusion de la dépendance dans le code de l'application, consultez Client Cassandra vers Bigtable pour Java.
L'exemple suivant montre comment configurer votre application avec le client Cassandra vers Bigtable pour Java :
Outils Open Source Cassandra supplémentaires
La compatibilité du proxy d'adaptateur Cassandra vers Bigtable avec CQL vous permet d'utiliser des outils supplémentaires dans l'écosystème Open Source Cassandra. Voici quelques exemples de ces outils :
- Cqlsh : le shell CQL vous permet de vous connecter directement à Bigtable via l'adaptateur de proxy. Vous pouvez l'utiliser pour le débogage et la recherche rapide de données à l'aide de CQL.
- Cassandra Data Migrator (CDM) : cet outil basé sur Spark est adapté à la migration de grands volumes de données historiques (jusqu'à des milliards de lignes). Cet outil fournit des fonctionnalités de validation, de création de rapports de différences et de relecture. Il est également entièrement compatible avec l'adaptateur de proxy.