All Products
Search
Document Center

Lindorm:Kembangkan\ aplikasi\ dengan\ driver\ Cassandra\ CQL\ non\-Java

Last Updated:Mar 29, 2026

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.CQL connection address

  • 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-driver

Verifikasi 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-driver

Hubungkan 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/gocql

Hubungkan 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)
    }
}