Verbinden Sie den Apache Cassandra-Proxy mit Spanner Omni, damit Ihre vorhandenen Cassandra-Anwendungen mit Spanner Omni über die Cassandra Query Language (CQL) interagieren können. Mit dieser Integration können Sie die Funktionen von Spanner Omni nutzen und gleichzeitig die Kompatibilität mit Ihren Cassandra-Clientanwendungen beibehalten.
So verbinden Sie den Proxy:
Klonen Sie das Cassandra-zu-Spanner-Proxy-Repository.
Konvertieren Sie Ihre Cassandra-Schemadefinitionen mit dem bereitgestellten Schemakonvertierungsskript in das Spanner Omni-Schema. Das Skript unterstützt die Sicherheitsmodi „Nur-Text“, „TLS“ und „mTLS“.
Konfigurieren Sie den Proxy-Adapter, indem Sie die Konfigurationsdatei mit dem Spanner Omni-Endpunkt und den Sicherheitseinstellungen aktualisieren.
Erstellen und führen Sie den Proxy aus. Stellen Sie dann mit
cqlsheine Verbindung her, um mit den Vorgängen zu beginnen.
Weitere Informationen finden Sie unter Cassandra-Schnittstelle in der Spanner-Dokumentation.
Hinweis
Bevor Sie beginnen, müssen die folgenden Voraussetzungen erfüllt sein:
Konfigurieren Sie eine Spanner Omni-Bereitstellung und erstellen Sie eine Datenbank.
Aktivieren Sie Multiplex-Sitzungen in Ihrer Umgebung, indem Sie die erforderlichen Umgebungsvariablen festlegen.
Prüfen Sie, ob Go auf Ihrem lokalen Computer installiert ist.
Lesen Sie die Einschränkungen des Cassandra-zu-Spanner-Proxys um Informationen zu den Nutzungsbedingungen zu erhalten.
Legen Sie den Sicherheitsmodus fest, den Sie für die Kommunikation zwischen dem Proxy und Spanner Omni verwenden möchten (Nur-Text, TLS oder mTLS).
Umgebungsvariablen festlegen
Wenn Sie den Cassandra-Proxy verwenden möchten, müssen Sie Multiplex-Sitzungen aktivieren, indem Sie die erforderlichen Umgebungsvariablen festlegen. Multiplex-Sitzungen sind für Spanner Omni-Verbindungen erforderlich, sind aber standardmäßig in den Spanner-Clientbibliotheken und ‑Treibern deaktiviert.
Legen Sie die folgenden Umgebungsvariablen fest:
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW=true
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_PARTITIONED_OPS=true
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS=true
Repository klonen
Klonen Sie das Repository, das den Proxy unterstützt, und prüfen Sie, ob Go auf Ihrem Computer installiert ist:
git clone https://github.com/cloudspannerecosystem/cassandra-to-spanner-proxy.git
// Ensure all Go modules are installed
go mod tidy
Cassandra-Schema konvertieren
Erstellen Sie alle Cassandra-Tabellen im Voraus. Das Skript schema_converter/cql_to_spanner_schema_converter.go konvertiert Cassandra-CREATE TABLE-Abfragen aus einer CQL-Datei in Spanner-CREATE TABLE-Abfragen.
--database DATABASE_ID: Geben Sie den Namen der Zieldatenbank in Spanner Omni an. Ersetzen SieDATABASE_IDdurch den Namen Ihrer Datenbank.--cql PATH_TO_CQL_FILE: Geben Sie den Pfad zur CQL-Datei an , die die Cassandra-Schemadefinition enthält.--endpoint ENDPOINT: Geben Sie die Spanner Omni-Endpunktadresse an. Ersetzen SieENDPOINTdurch Ihren Spanner Omni-Endpunkt.go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINTDer Schemakonverter unterstützt alle drei Spanner Omni-Sicherheitsmodi: Nur-Text, TLS und mTLS. Für jeden Sicherheitsmodus sind zusätzliche Parameter erforderlich:
Verwenden Sie für den Nur-Text-Modus das Flag
--usePlainText:go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINT --usePlainTextVerwenden Sie für den TLS-Modus das Flag
--caCertificatemit dem Pfad zur CA-Zertifikatsdatei:go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINT --caCertificate PATH_TO_CA_CRTVerwenden Sie für den mTLS-Modus die Flags
--caCertificate,--clientCertificateund--clientKeymit den entsprechenden Pfaden: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_KEYDas Skript erstellt auch eine
TableConfigurations-Tabelle, falls sie noch nicht vorhanden ist. In dieser Tabelle werden die Schemametadaten Ihrer Cassandra-Tabellen und ‑Spalten erfasst: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);
Proxy-Adapter konfigurieren
Nachdem Sie mit dem Schemakonvertierungsskript Cassandra-Tabellen erstellt haben, konfigurieren Sie den Adapter, um Vorgänge für Ihre Tabellen auszuführen. So richten Sie den Adapter ein:
Aktualisieren Sie die Datei config.yaml im Stammverzeichnis des Repositorys mit den verfügbaren Konfigurationsoptionen. In der Adapterkonfigurationsdatei müssen Sie den Spanner Omni-Endpunkt zusammen mit den entsprechenden Optionen für den Sicherheitsmodus definieren.
# [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
Die folgende Konfigurationseinrichtung bietet die Mindestkonfiguration zum Ausführen des Adapters:
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
Proxy erstellen und ausführen
Nachdem Sie den Proxy-Adapter konfiguriert haben, erstellen und führen Sie den Proxy mit den folgenden Befehlen aus:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o cassandra-to-spanner-proxy .
./cassandra-to-spanner-proxy
Stellen Sie mit dem folgenden Befehl über die Shell eine Verbindung zum Proxy her:
./cqlsh localhost 9042