Topik ini menjelaskan cara menggunakan driver klien Cassandra untuk berbagai bahasa seperti C++, Python, Node.js, dan Go, guna terhubung dan menggunakan LindormTable melalui Cassandra Query Language (CQL).
Prasyarat
Titik akhir LindormTable untuk Cassandra SQL telah diperoleh.

Paket driver resmi dalam bahasa yang ingin digunakan telah diunduh dan diinstal. Untuk informasi lebih lanjut, lihat Driver Klien Cassandra.
Menggunakan driver klien Cassandra Python untuk terhubung ke LindormTable melalui CQL
Instal paket dependensi Python DataStax. Untuk informasi lebih lanjut, lihat Instal SDK untuk Python.
# Instal driver Python DataStax versi tertentu. Kami merekomendasikan Anda menginstal driver Python DataStax 3.x. pip install cassandra-driver==3.19.0 # Instal driver Python DataStax versi terbaru. pip install cassandra-driverTerhubung ke LindormTable. Kode berikut menunjukkan contoh cara terhubung ke LindormTable:
#!/usr/bin/env python # -*- coding: UTF-8 -*- import logging import sys from cassandra.cluster import Cluster from cassandra.auth import PlainTextAuthProvider logging.basicConfig(stream=sys.stdout, level=logging.INFO) cluster = Cluster( # Tentukan titik akhir LindormTable untuk CQL. Anda tidak perlu menentukan nomor port. contact_points=["ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com"], # Tentukan nama pengguna dan kata sandi. Nama pengguna dan kata sandi default adalah root. auth_provider=PlainTextAuthProvider("cassandra", "****")) session = cluster.connect() # Buat keyspace. session.execute( "CREATE KEYSPACE IF NOT EXISTS testKeyspace WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};"); # Buat tabel. session.execute( "CREATE TABLE IF NOT EXISTS testKeyspace.testTable (id int PRIMARY KEY, name text,age int,address text);"); # Masukkan data. session.execute( "INSERT INTO testKeyspace.testTable (id, name, age, address) VALUES ( 1, 'testname', 11, 'hangzhou');"); # Kueri data. rows = session.execute( "SELECT * FROM testKeyspace.testTable ;"); # Tampilkan setiap baris data di konsol. for row in rows: print("# row: {}".format(row)) # Tutup sesi. session.shutdown() # Matikan kluster. cluster.shutdown()
Menggunakan driver klien Cassandra C++ untuk terhubung ke LindormTable melalui CQL
Unduh paket dependensi C++. Anda dapat mengklik DataStax C++ untuk mengunduh paket.
Terhubung ke LindormTable. Kode berikut menunjukkan contoh cara terhubung ke LindormTable:
CassFuture* connect_future = NULL; CassCluster* cluster = cass_cluster_new(); CassSession* session = cass_session_new(); // Tentukan titik akhir LindormTable untuk CQL. Anda tidak perlu menentukan nomor port. char* hosts = "ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com"; // Membuat koneksi. cass_cluster_set_contact_points(cluster, hosts); connect_future = cass_session_connect(session, cluster); // Eksekusi pernyataan DDL. if (cass_future_error_code(connect_future) == CASS_OK) { CassFuture* close_future = NULL; const char* query = "SELECT name FROM testKeyspace.testTable "; CassStatement* statement = cass_statement_new(query, 0); CassFuture* result_future = cass_session_execute(session, statement); if (cass_future_error_code(result_future) == CASS_OK) { // Dapatkan hasil kueri. const CassResult* result = cass_future_get_result(result_future); const CassRow* row = cass_result_first_row(result); if (row) { const CassValue* value = cass_row_get_column_by_name(row, "name"); // Tampilkan hasilnya. const char* name; size_t name_length; cass_value_get_string(value, &name, &name_length); printf("release_version: '%.*s'\n", (int)name_length, name); } cass_result_free(result); } else { // Tangani pengecualian. const char* message; size_t message_length; cass_future_error_message(result_future, &message, &message_length); fprintf(stderr, "Tidak dapat menjalankan kueri: '%.*s'\n", (int)message_length, message); } cass_statement_free(statement); cass_future_free(result_future); // Bebaskan sumber daya. close_future = cass_session_close(session); cass_future_wait(close_future); cass_future_free(close_future); } else { // Tangani pengecualian. const char* message; size_t message_length; cass_future_error_message(connect_future, &message, &message_length); fprintf(stderr, "Tidak dapat terhubung: '%.*s'\n", (int)message_length, message); } cass_future_free(connect_future); cass_cluster_free(cluster); cass_session_free(session);
Menggunakan driver klien Cassandra Node.js untuk terhubung ke LindormTable melalui CQL
Instal paket dependensi Node.js.
npm install cassandra-driverTerhubung ke LindormTable. Kode berikut menunjukkan contoh cara terhubung ke LindormTable:
const cassandra = require('cassandra-driver'); /** * Tentukan titik akhir LindormTable untuk CQL. Anda tidak perlu menentukan nomor port. Tentukan datacenter1 sebagai nama pusat data. * Tentukan nama pengguna dan kata sandi. Nama pengguna dan kata sandi default adalah root. */ const client = new cassandra.Client({ contactPoints: ['ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com'], localDataCenter: 'datacenter1', credentials: { username: 'Username', password: 'Password' } }); client.connect() .then(() => client.execute("CREATE KEYSPACE IF NOT EXISTS lindormtest WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '2' }")) .then(() => client.execute("CREATE TABLE IF NOT EXISTS lindormtest.nodejs (name text PRIMARY KEY, age int)")) .then(() => { return client.execute("INSERT INTO lindormtest.nodejs (name, age) VALUES ('lindorm', 10)"); }) .then(() => { return client.execute("SELECT name, age FROM lindormtest.nodejs WHERE name = 'lindorm' "); }) .then(result => { const row = result.first(); console.log('Baris yang diperoleh: ', row); const p = row.age; }) .finally(() => client.shutdown());
Menggunakan driver klien Cassandra Go untuk terhubung ke LindormTable melalui CQL
Instal paket gocql.
go get github.com/gocql/gocqlTerhubung ke LindormTable. Kode berikut menunjukkan contoh cara terhubung ke LindormTable:
package main import ( "fmt" "log" "github.com/gocql/gocql" ) func main() { // Tentukan titik akhir LindormTable untuk CQL. Anda tidak perlu menentukan nomor port. cluster := gocql.NewCluster("ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com") cluster.Authenticator = gocql.PasswordAuthenticator{ Username:"Username", Password: "Password", } session, _ := cluster.CreateSession() defer session.Close() // buat keyspace if err := session.Query(`CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 2}`).Exec(); err != nil { log.Fatal(err) } // buat tabel if err := session.Query(`CREATE TABLE ks.tb (cn1 text PRIMARY KEY, cn2 text, cn3 text)`).Exec(); err != nil { log.Fatal(err) } // masukkan nilai if err := session.Query(`INSERT INTO ks.tb (cn1, cn2, cn3) VALUES (?, ?, ?)`, "v11", "v12", "v13").Exec(); err != nil { log.Fatal(err) } var column1 string var column2 string if err := session.Query(`SELECT cn1, cn2 FROM ks.tb WHERE cn1 = ?`, "v11").Consistency(gocql.One).Scan(&column1, &column2); err != nil { log.Fatal(err) } fmt.Println("SEMUA nilai:", column1, column2) var column3 string // daftar semua tweet iter := session.Query(`SELECT * FROM ks.tb WHERE cn1 = ? `, "v11").Iter() for iter.Scan(&column1, &column2, &column3) { fmt.Println("SEMUA nilai:", column1, column2, column3) } if err := iter.Close(); err != nil { log.Fatal(err) } }