Conecta el proxy de Apache Cassandra a Spanner Omni para permitir que tus aplicaciones existentes de Cassandra interactúen con Spanner Omni usando 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 los modos de seguridad de texto simple, TLS y mTLS.
Configura el adaptador de proxy actualizando su archivo de configuración con el extremo de Spanner Omni y la configuración de seguridad.
Compila y ejecuta el proxy. Luego, conéctate a él con
cqlshpara comenzar las operaciones.
Para obtener más información, consulta Interfaz de Cassandra en la documentación de Spanner.
Antes de comenzar
Antes de comenzar, completa los siguientes requisitos:
Configurar una implementación de Spanner Omni y crear una base de datos
Habilita las sesiones multiplexadas en tu entorno configurando 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 simple, 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 configurando 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 de Cassandra CREATE TABLE de un archivo CQL en consultas de Spanner CREATE TABLE.
--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 simple, 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 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. En esta tabla, se 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 endpoint de Spanner Omni, junto con las opciones de 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 la shell a través del siguiente comando:
./cqlsh localhost 9042