Hubungkan proxy Apache Cassandra ke Spanner Omni agar aplikasi Cassandra yang ada dapat berinteraksi dengan Spanner Omni menggunakan Cassandra Query Language (CQL). Integrasi ini memungkinkan Anda menggunakan kemampuan Spanner Omni sekaligus mempertahankan kompatibilitas dengan aplikasi klien Cassandra Anda.
Untuk menghubungkan proxy, ikuti langkah-langkah umum berikut:
Buat clone repositori proxy Cassandra-to-Spanner.
Konversi definisi skema Cassandra Anda ke skema Spanner Omni menggunakan skrip pengonversi skema yang disediakan, yang mendukung mode keamanan TLS, mTLS, dan teks biasa.
Konfigurasi adaptor proxy dengan memperbarui file konfigurasinya menggunakan endpoint Spanner Omni dan setelan keamanan.
Bangun dan jalankan proxy. Kemudian, hubungkan ke instance menggunakan
cqlshuntuk memulai operasi.
Untuk mengetahui informasi selengkapnya, lihat Antarmuka Cassandra di dokumentasi Spanner.
Sebelum memulai
Sebelum Anda memulai, selesaikan persyaratan berikut:
Konfigurasi deployment Spanner Omni dan buat database.
Aktifkan sesi yang di-multiplex dalam lingkungan Anda dengan menyetel variabel lingkungan yang diperlukan.
Pastikan Go diinstal di komputer lokal Anda.
Baca batasan proxy Cassandra-ke-Spanner untuk mengetahui pertimbangan penggunaan.
Tentukan mode keamanan (teks biasa, TLS, atau mTLS) yang ingin Anda gunakan untuk komunikasi antara proxy dan Spanner Omni.
Menetapkan variabel lingkungan
Untuk menggunakan proxy Cassandra, Anda harus mengaktifkan sesi yang di-multiplex dengan menetapkan variabel lingkungan yang diperlukan. Sesi yang di-multiplex diperlukan untuk koneksi Spanner Omni, tetapi dinonaktifkan secara default di library dan driver klien Spanner.
Tetapkan variabel lingkungan berikut:
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW=true
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_PARTITIONED_OPS=true
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS=true
Membuat cloning repositori
Buat clone repositori yang mendukung proxy dan pastikan Go diinstal di komputer Anda:
git clone https://github.com/cloudspannerecosystem/cassandra-to-spanner-proxy.git
// Ensure all Go modules are installed
go mod tidy
Mengonversi skema Cassandra
Buat semua tabel Cassandra terlebih dahulu. Skrip
schema_converter/cql_to_spanner_schema_converter.go mengonversi kueri
CREATE TABLE Cassandra dari file CQL menjadi kueri
CREATE TABLE Spanner.
--database DATABASE_ID: Tentukan nama database target di Spanner Omni. GantiDATABASE_IDdengan nama database Anda.--cql PATH_TO_CQL_FILE: Tentukan jalur ke file CQL yang berisi definisi skema Cassandra.--endpoint ENDPOINT: Tentukan alamat endpoint Spanner Omni. GantiENDPOINTdengan endpoint Spanner Omni Anda.go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINTPengonversi skema mendukung ketiga mode keamanan Spanner Omni: teks biasa, TLS, dan mTLS. Setiap mode keamanan memerlukan parameter tambahan:
Untuk mode teks biasa, gunakan tanda
--usePlainText:go run schema_converter/cql_to_spanner_schema_converter.go --database DATABASE_ID --cql PATH_TO_CQL_FILE --endpoint ENDPOINT --usePlainTextUntuk mode TLS, gunakan tanda
--caCertificatedengan jalur ke file sertifikat 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_CRTUntuk mode mTLS, gunakan flag
--caCertificate,--clientCertificate, dan--clientKeydengan jalur yang sesuai: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_KEYSkrip juga membuat tabel
TableConfigurationsjika belum ada. Tabel ini melacak metadata skema tabel dan kolom Cassandra Anda: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);
Mengonfigurasi adaptor proxy
Setelah membuat tabel Cassandra menggunakan skrip pengonversi skema, konfigurasi adaptor untuk melakukan operasi pada tabel Anda. Untuk menyiapkan adaptor, lakukan hal berikut:
Perbarui file config.yaml di direktori root repositori dengan
opsi konfigurasi yang tersedia. File konfigurasi adaptor mengharuskan Anda menentukan endpoint Spanner Omni, beserta opsi mode keamanan yang relevan.
# [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
Penyiapan konfigurasi berikut memberikan konfigurasi minimum untuk menjalankan adaptor:
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
Membangun dan menjalankan proxy
Setelah mengonfigurasi adaptor proxy, bangun dan jalankan proxy menggunakan perintah berikut:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o cassandra-to-spanner-proxy .
./cassandra-to-spanner-proxy
Hubungkan ke proxy menggunakan shell dengan perintah berikut:
./cqlsh localhost 9042