Conecta el proxy de Apache Cassandra a Spanner Omni para permitir que tus aplicaciones de Cassandra existentes interactúen con Spanner Omni mediante el lenguaje de consulta de Cassandra (CQL). Esta integración te permite usar las capacidades de Spanner Omni y, al mismo tiempo, mantener la compatibilidad con tus aplicaciones cliente de Cassandra.
Para conectar el proxy, sigue estos pasos generales:
Convierte tus definiciones de esquema de Cassandra al esquema de Spanner Omni con la secuencia de comandos del convertidor de esquemas proporcionada, que admite modos de seguridad de texto sin formato, TLS y mTLS.
Configura el adaptador de proxy. Para ello, actualiza su archivo de configuración con el extremo y la configuración de seguridad de Spanner Omni.
Compila y ejecuta el proxy. Luego, conéctate a él con
cqlshpara comenzar las operaciones.
Para obtener más información, consulta la interfaz de Cassandra en la documentación de Spanner.
Antes de comenzar
Antes de comenzar, completa los siguientes requisitos:
Configura una implementación de Spanner Omni y crea una base de datos.
Habilita las sesiones multiplexadas en tu entorno. Para ello, configura las variables de entorno necesarias.
Asegúrate de que Go esté instalado en tu máquina local.
Lee las limitaciones del proxy de Cassandra a Spanner para conocer las consideraciones de uso.
Establece el modo de seguridad (texto sin formato, TLS o mTLS) que deseas usar para la comunicación entre el proxy y Spanner Omni.
Configura las variables de entorno
Para usar el proxy de Cassandra, debes habilitar las sesiones multiplexadas. Para ello, configura las variables de entorno necesarias. Las sesiones multiplexadas son necesarias para las conexiones de Spanner Omni, pero están inhabilitadas de forma predeterminada en las bibliotecas cliente y los controladores de Spanner.
Configura las siguientes variables de entorno:
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW=true
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_PARTITIONED_OPS=true
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS=true
Clona el repositorio
Clona el repositorio que admite el proxy y asegúrate de que Go esté instalado en tu máquina:
git clone https://github.com/cloudspannerecosystem/cassandra-to-spanner-proxy.git
// Ensure all Go modules are installed
go mod tidy
Convierte el esquema de Cassandra
Crea todas las tablas de Cassandra con anticipación. La secuencia de comandos schema_converter/cql_to_spanner_schema_converter.go convierte las consultas CREATE TABLE de Cassandra de un archivo CQL en consultas CREATE TABLE de Spanner.
--database DATABASE_ID: Especifica el nombre de la base de datos de destino en Spanner Omni. ReemplazaDATABASE_IDpor el nombre de tu base de datos.--cql PATH_TO_CQL_FILE: Especifica la ruta de acceso al archivo CQL que contiene la definición del esquema de Cassandra.--endpoint ENDPOINT: Especifica la dirección del extremo de Spanner Omni. ReemplazaENDPOINTpor tu extremo de Spanner Omni.go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINTEl convertidor de esquemas admite los tres modos de seguridad de Spanner Omni: texto sin formato, TLS y mTLS. Cada modo de seguridad requiere parámetros adicionales:
Para el modo de texto sin formato, usa la marca
--usePlainText:go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINT --usePlainTextPara el modo TLS, usa la marca
--caCertificatecon la ruta de acceso al archivo de certificado de la AC:go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINT --caCertificate PATH_TO_CA_CRTPara el modo mTLS, usa las marcas
--caCertificate,--clientCertificatey--clientKeycon las rutas de acceso correspondientes: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_KEYLa secuencia de comandos también crea una tabla
TableConfigurationssi aún no está presente. Esta tabla hace un seguimiento de los metadatos del esquema de tus tablas y columnas de 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 el adaptador de proxy
Después de crear tablas de Cassandra con la secuencia de comandos del convertidor de esquemas, configura el adaptador para realizar operaciones en tus tablas. Para configurar el adaptador, haz lo siguiente:
Actualiza el archivo config.yaml en el directorio raíz del repositorio con las opciones de configuración disponibles. El archivo de configuración del adaptador requiere que definas el extremo de Spanner Omni, junto con las opciones del modo de seguridad 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 siguiente configuración proporciona la configuración mínima para ejecutar el adaptador:
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
Compila y ejecuta el proxy
Después de configurar el adaptador de proxy, compila y ejecuta el proxy con los siguientes comandos:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o cassandra-to-spanner-proxy .
./cassandra-to-spanner-proxy
Conéctate al proxy con el shell con el siguiente comando:
./cqlsh localhost 9042