Connectez le proxy Apache Cassandra à Spanner Omni pour permettre à vos applications Cassandra existantes d'interagir avec Spanner Omni à l'aide du langage de requête Cassandra (CQL). Cette intégration vous permet d'utiliser les fonctionnalités de Spanner Omni tout en maintenant la compatibilité avec vos applications clientes Cassandra.
Pour connecter le proxy, procédez comme suit :
Clonez le dépôt du proxy Cassandra vers Spanner.
Convertissez vos définitions de schéma Cassandra au schéma Spanner Omni à l'aide du script de conversion de schéma fourni, qui est compatible avec les modes de sécurité en texte brut, TLS et mTLS.
Configurez l'adaptateur de proxy en mettant à jour son fichier de configuration avec le point de terminaison et les paramètres de sécurité de Spanner Omni.
Créez et exécutez le proxy. Connectez-vous ensuite à celui-ci à l'aide de
cqlshpour commencer les opérations.
Pour en savoir plus, consultez l'interface Cassandra dans la documentation Spanner.
Avant de commencer
Avant de commencer, remplissez les conditions suivantes :
Configurez un déploiement Spanner Omni et créez une base de données.
Activez les sessions multiplexées dans votre environnement en définissant les variables d'environnement requises environment variables.
Assurez-vous que Go est installé sur votre ordinateur local.
Consultez les limites du proxy Cassandra vers Spanner pour connaître les considérations d'utilisation.
Définissez le mode de sécurité (texte brut, TLS ou mTLS) que vous souhaitez utiliser pour la communication entre le proxy et Spanner Omni.
Définir des variables d'environnement
Pour utiliser le proxy Cassandra, vous devez activer les sessions multiplexées en définissant les variables d'environnement requises. Les sessions multiplexées sont requises pour les connexions Spanner Omni, mais elles sont désactivées par défaut dans les bibliothèques clientes et les pilotes Spanner.
Définissez les variables d'environnement suivantes :
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW=true
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_PARTITIONED_OPS=true
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS=true
Cloner le dépôt
Clonez le dépôt compatible avec le proxy et assurez-vous que Go est installé sur votre ordinateur :
git clone https://github.com/cloudspannerecosystem/cassandra-to-spanner-proxy.git
// Ensure all Go modules are installed
go mod tidy
Convertir le schéma Cassandra
Créez toutes les tables Cassandra à l'avance. Le script schema_converter/cql_to_spanner_schema_converter.go convertit les requêtes CREATE TABLE Cassandra d'un fichier CQL en requêtes CREATE TABLE Spanner.
--database DATABASE_ID: spécifiez le nom de la base de données cible dans Spanner Omni. RemplacezDATABASE_IDpar le nom de votre base de données.--cql PATH_TO_CQL_FILE: spécifiez le chemin d'accès au fichier CQL contenant la définition du schéma Cassandra.--endpoint ENDPOINT: spécifiez l'adresse du point de terminaison Spanner Omni. RemplacezENDPOINTpar votre point de terminaison Spanner Omni.go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINTLe convertisseur de schéma est compatible avec les trois modes de sécurité Spanner Omni : texte brut, TLS et mTLS. Chaque mode de sécurité nécessite des paramètres supplémentaires :
Pour le mode en texte brut, utilisez l'option
--usePlainText:go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINT --usePlainTextPour le mode TLS, utilisez l'option
--caCertificateavec le chemin d'accès au fichier de certificat CA :go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINT --caCertificate PATH_TO_CA_CRTPour le mode mTLS, utilisez les options
--caCertificate,--clientCertificateet--clientKeyavec les chemins d'accès correspondants :go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINT --caCertificate PATH_TO_CA_CRT --clientCertificate PATH_TO_CLIENT_CERT --clientKey PATH_TO_CLIENT_KEYLe script crée également une table
TableConfigurationssi elle n'existe pas déjà. Cette table suit les métadonnées de schéma de vos tables et colonnes Cassandra :CREATE TABLE IF NOT EXISTS TableConfigurations ( `KeySpaceName` STRING(MAX), `TableName` STRING(MAX), `ColumnName` STRING(MAX), `ColumnType` STRING(MAX), `IsPrimaryKey` BOOL, `PK_Precedence` INT64, ) PRIMARY KEY (TableName, ColumnName, KeySpaceName);
Configurer l'adaptateur de proxy
Une fois que vous avez créé des tables Cassandra à l'aide du script de conversion de schéma, configurez l'adaptateur pour effectuer des opérations sur vos tables. Pour configurer l'adaptateur, procédez comme suit :
Mettez à jour le fichier config.yaml dans le répertoire racine du dépôt avec les options de configuration disponibles. Le fichier de configuration de l'adaptateur vous oblige à définir le point de terminaison Spanner Omni, ainsi que les options de mode de sécurité pertinentes.
# [Optional] endpoint configuration for spanner
endpoint: ENDPOINT
# [Optional] If set to True, will connect to endpoint over plain text
usePlainText: False
# [Optional] CA certificate path for TLS and mTLS configuration
caCertificate: PATH_TO_CA_CRT
# [Optional] client certificate path for mTLS configuration
clientCertificate: PATH_TO_CLIENT_CERT
# [Optional] client key path for mTLS configuration
clientKey: PATH_TO_CLIENT_KEY
La configuration suivante fournit la configuration minimale pour exécuter l'adaptateur :
cassandra_to_spanner_configs:
# [Optional] endpoint configuration for spanner
endpoint: ENDPOINT
# Uncomment the options as required by the security mode of the Spanner Omni deployment
# [Optional] If set to True, will connect to endpoint over plain text
# usePlainText: False
# [Optional] CA certificate path for TLS and mTLS configuration
# caCertificate: /tmp/ca.crt
# [Optional] client certificate path for mTLS configuration
# clientCertificate: /tmp/client.crt
# [Optional] client key path for mTLS configuration
# clientKey: /tmp/client.key
listeners:
- name: CLUSTER_NAME
port: 9042
spanner:
databaseId: DATABASE_ID
Créer et exécuter le proxy
Une fois que vous avez configuré l'adaptateur de proxy, créez et exécutez le proxy à l'aide des commandes suivantes :
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o cassandra-to-spanner-proxy .
./cassandra-to-spanner-proxy
Connectez-vous au proxy à l'aide du shell avec la commande suivante :
./cqlsh localhost 9042