Hubungkan ke LindormTable melalui Cassandra Query Language (CQL) menggunakan driver client Cassandra resmi untuk bahasa Anda: Python, C++, Node.js, atau Go.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Anda telah memperoleh alamat koneksi CQL untuk LindormTable.

Paket driver resmi untuk bahasa target Anda telah diinstal. Untuk daftar lengkap driver yang didukung, lihat Cassandra client drivers.
Hubungkan dengan Python
Instal driver
Instal DataStax Python driver. Disarankan menggunakan versi 3.x.
# Instal versi tertentu (disarankan)
pip install cassandra-driver==3.19.0
# Instal versi terbaru
pip install cassandra-driverVerifikasi instalasi:
python -c "import cassandra; print(cassandra.__version__)"Perintah tersebut mencetak nomor versi yang diinstal, seperti 3.19.0.
Hubungkan dan jalankan kueri
#!/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)
# Inisialisasi kluster dengan titik akhir CQL LindormTable.
# Nomor port tidak diperlukan.
cluster = Cluster(
contact_points=["ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com"],
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 baris data.
session.execute(
"INSERT INTO testKeyspace.testTable (id, name, age, address) VALUES (1, 'testname', 11, 'hangzhou');")
# Kueri baris data.
rows = session.execute("SELECT * FROM testKeyspace.testTable;")
for row in rows:
print("Row: {}".format(row))
# Lepaskan sumber daya.
session.shutdown()
cluster.shutdown()Hubungkan dengan C++
Unduh driver
Unduh DataStax C++ driver dari datastax/cpp-driver.
Hubungkan dan jalankan kueri
CassFuture* connect_future = NULL;
CassCluster* cluster = cass_cluster_new();
CassSession* session = cass_session_new();
// Tentukan titik akhir CQL LindormTable. Nomor port tidak diperlukan.
const char* hosts = "ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com";
cass_cluster_set_contact_points(cluster, hosts);
connect_future = cass_session_connect(session, cluster);
if (cass_future_error_code(connect_future) == CASS_OK) {
// Jalankan kueri SELECT.
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) {
// Proses hasilnya.
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");
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 error kueri.
const char* message;
size_t message_length;
cass_future_error_message(result_future, &message, &message_length);
fprintf(stderr, "Unable to run query: '%.*s'\n", (int)message_length, message);
}
cass_statement_free(statement);
cass_future_free(result_future);
// Tutup sesi dan lepaskan sumber daya.
CassFuture* close_future = cass_session_close(session);
cass_future_wait(close_future);
cass_future_free(close_future);
} else {
// Tangani error koneksi.
const char* message;
size_t message_length;
cass_future_error_message(connect_future, &message, &message_length);
fprintf(stderr, "Unable to connect: '%.*s'\n", (int)message_length, message);
}
cass_future_free(connect_future);
cass_cluster_free(cluster);
cass_session_free(session);Hubungkan dengan Node.js
Instal driver
npm install cassandra-driverHubungkan dan jalankan kueri
Atur localDataCenter ke datacenter1. Driver ini mengembalikan Promises—gunakan rantai .then() atau async/await secara bergantian.
const cassandra = require('cassandra-driver');
// Inisialisasi client. Nomor port tidak diperlukan dalam titik akhir.
// Atur localDataCenter ke 'datacenter1'.
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(() => client.execute("INSERT INTO lindormtest.nodejs (name, age) VALUES ('lindorm', 10)"))
.then(() => client.execute("SELECT name, age FROM lindormtest.nodejs WHERE name = 'lindorm'"))
.then(result => {
const row = result.first();
console.log('Row:', row);
})
.finally(() => client.shutdown());Hubungkan dengan Go
Instal driver
go get github.com/gocql/gocqlHubungkan dan jalankan kueri
package main
import (
"fmt"
"log"
"github.com/gocql/gocql"
)
func main() {
// Tentukan titik akhir CQL LindormTable. Nomor port tidak diperlukan.
cluster := gocql.NewCluster("ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com")
cluster.Authenticator = gocql.PasswordAuthenticator{
Username: "Username",
Password: "Password",
}
session, err := cluster.CreateSession()
if err != nil {
log.Fatal(err)
}
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 baris data.
if err := session.Query(`INSERT INTO ks.tb (cn1, cn2, cn3) VALUES (?, ?, ?)`,
"v11", "v12", "v13").Exec(); err != nil {
log.Fatal(err)
}
// Kueri satu baris.
var column1, 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("Row:", column1, column2)
// Iterasi semua baris yang cocok.
var column3 string
iter := session.Query(`SELECT * FROM ks.tb WHERE cn1 = ?`, "v11").Iter()
for iter.Scan(&column1, &column2, &column3) {
fmt.Println("Row:", column1, column2, column3)
}
if err := iter.Close(); err != nil {
log.Fatal(err)
}
}