Connetti il proxy Apache Cassandra a Spanner Omni per consentire alle tue applicazioni Cassandra esistenti di interagire con Spanner Omni utilizzando Cassandra Query Language (CQL). Questa integrazione ti consente di utilizzare le funzionalità di Spanner Omni mantenendo la compatibilità con le tue applicazioni client Cassandra.
Per connettere il proxy, segui questi passaggi di alto livello:
Converti le definizioni dello schema Cassandra nello schema Spanner Omni utilizzando lo script di conversione dello schema fornito, che supporta le modalità di sicurezza TLS, mTLS e di testo normale.
Configura l'adattatore proxy aggiornando il relativo file di configurazione con l'endpoint Spanner Omni e le impostazioni di sicurezza.
Crea ed esegui il proxy. Quindi, connettiti utilizzando
cqlshper iniziare le operazioni.
Per saperne di più, consulta Interfaccia Cassandra nella documentazione di Spanner.
Prima di iniziare
Prima di iniziare, completa i seguenti requisiti:
Configura un deployment Spanner Omni e crea un database.
Attiva le sessioni multiplexate all'interno del tuo ambiente impostando le variabili di ambiente richieste.
Assicurati che Go sia installato sulla tua macchina locale.
Leggi le limitazioni del proxy da Cassandra a Spanner per considerazioni sull'utilizzo.
Stabilisci la modalità di sicurezza (testo non crittografato, TLS o mTLS) che vuoi utilizzare per la comunicazione tra il proxy e Spanner Omni.
Imposta le variabili di ambiente
Per utilizzare il proxy Cassandra, devi abilitare le sessioni multiplex impostando le variabili di ambiente richieste. Le sessioni multiplex sono necessarie per le connessioni Spanner Omni, ma sono disattivate per impostazione predefinita nei driver e nelle librerie client Spanner.
Imposta le seguenti variabili di ambiente:
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW=true
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_PARTITIONED_OPS=true
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS=true
Clona il repository
Clona il repository che supporta il proxy e assicurati che Go sia installato sulla tua macchina:
git clone https://github.com/cloudspannerecosystem/cassandra-to-spanner-proxy.git
// Ensure all Go modules are installed
go mod tidy
Convertire lo schema Cassandra
Crea in anticipo tutte le tabelle Cassandra. Lo script
schema_converter/cql_to_spanner_schema_converter.go converte
le query Cassandra CREATE TABLE da un file CQL in query Spanner
CREATE TABLE.
--database DATABASE_ID: specifica il nome del database di destinazione in Spanner Omni. SostituisciDATABASE_IDcon il nome del tuo database.--cql PATH_TO_CQL_FILE: specifica il percorso del file CQL che contiene la definizione dello schema Cassandra.--endpoint ENDPOINT: specifica l'indirizzo dell'endpoint Spanner Omni. SostituisciENDPOINTcon l'endpoint Spanner Omni.go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINTIl convertitore di schema supporta tutte e tre le modalità di sicurezza Spanner Omni: testo non crittografato, TLS e mTLS. Ogni modalità di sicurezza richiede parametri aggiuntivi:
Per la modalità di testo normale, utilizza il flag
--usePlainText:go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINT --usePlainTextPer la modalità TLS, utilizza il flag
--caCertificatecon il percorso del file del certificato 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_CRTPer la modalità mTLS, utilizza i flag
--caCertificate,--clientCertificatee--clientKeycon i percorsi corrispondenti: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_KEYLo script crea anche una tabella
TableConfigurationsse non è già presente. Questa tabella monitora i metadati dello schema delle tabelle e delle colonne 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);
Configura l'adattatore proxy
Dopo aver creato le tabelle Cassandra utilizzando lo script di conversione dello schema, configura l'adattatore per eseguire operazioni sulle tabelle. Per configurare l'adattatore:
Aggiorna il file config.yaml nella directory radice del repository con le opzioni di configurazione disponibili. Il file di configurazione dell'adattatore richiede di definire l'endpoint Spanner Omni, insieme alle opzioni della modalità di sicurezza pertinenti.
# [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 seguente configurazione fornisce la configurazione minima per eseguire l'adattatore:
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
Crea ed esegui il proxy
Dopo aver configurato l'adattatore proxy, compila ed esegui il proxy utilizzando i seguenti comandi:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o cassandra-to-spanner-proxy .
./cassandra-to-spanner-proxy
Connettiti al proxy utilizzando la shell con il seguente comando:
./cqlsh localhost 9042