全部产品
Search
文档中心

Lindorm:Menggunakan driver klien Cassandra untuk bahasa non-Java dalam mengembangkan aplikasi

更新时间:Jun 24, 2025

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.CQL连接地址

  • 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

  1. 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-driver
  2. Terhubung 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

  1. Unduh paket dependensi C++. Anda dapat mengklik DataStax C++ untuk mengunduh paket.

  2. 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

  1. Instal paket dependensi Node.js.

    npm install cassandra-driver 
  2. Terhubung 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

  1. Instal paket gocql.

    go get github.com/gocql/gocql
  2. Terhubung 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)
        }
    }