Принципы Apache Cassandra: полное руководство по ключевым методам и примерам кода

Apache Cassandra — это масштабируемая и распределенная система управления базами данных, обеспечивающая отказоустойчивое хранилище данных. Он предназначен для обработки больших объемов данных на нескольких стандартных серверах без единой точки отказа. В этой статье блога мы рассмотрим фундаментальные принципы Apache Cassandra и предоставим примеры кода для различных методов, используемых при его реализации.

  1. Подключение к кластеру Cassandra:
    Чтобы установить соединение с кластером Cassandra, вы можете использовать Java-драйвер DataStax, который предоставляет надежный и эффективный API для взаимодействия с Cassandra. Вот пример подключения к кластеру Cassandra:
import com.datastax.oss.driver.api.core.CqlSession;
public class CassandraConnectionExample {
    public static void main(String[] args) {
        try (CqlSession session = CqlSession.builder().build()) {
            System.out.println("Connected to Cassandra cluster: " + session.getMetadata().getClusterName());
        }
    }
}
  1. Создание пространства ключей.
    Пространство ключей в Cassandra аналогично базе данных в традиционных реляционных базах данных. Он определяет область действия таблиц и репликации данных. Вот пример создания пространства ключей:
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata;
import com.datastax.oss.driver.api.querybuilder.SchemaBuilder;
import com.datastax.oss.driver.api.querybuilder.schema.CreateKeyspace;
public class KeyspaceCreationExample {
    public static void main(String[] args) {
        try (CqlSession session = CqlSession.builder().build()) {
            CreateKeyspace createKeyspace = SchemaBuilder.createKeyspace("my_keyspace")
                    .ifNotExists()
                    .withSimpleStrategy(3); // Replication factor
            session.execute(createKeyspace.build());
            KeyspaceMetadata keyspaceMetadata = session.getMetadata().getKeyspace("my_keyspace");
            System.out.println("Keyspace created: " + keyspaceMetadata.getName());
        }
    }
}
  1. Создание таблицы.
    Таблицы в Cassandra хранят данные в строках с гибкой схемой. Вот пример создания таблицы:
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata;
import com.datastax.oss.driver.api.querybuilder.SchemaBuilder;
import com.datastax.oss.driver.api.querybuilder.schema.CreateTable;
public class TableCreationExample {
    public static void main(String[] args) {
        try (CqlSession session = CqlSession.builder().build()) {
            CreateTable createTable = SchemaBuilder.createTable("my_keyspace", "my_table")
                    .ifNotExists()
                    .withPartitionKey("id", DataTypes.INT)
                    .withColumn("name", DataTypes.TEXT)
                    .withColumn("age", DataTypes.INT);
            session.execute(createTable.build());
            KeyspaceMetadata keyspaceMetadata = session.getMetadata().getKeyspace("my_keyspace");
            System.out.println("Table created: " + keyspaceMetadata.getTable("my_table").get().getName());
        }
    }
}
  1. Вставка данных в таблицу:
    Чтобы вставить данные в таблицу, вы можете использовать метод ExecuteStatement. Вот пример:
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.querybuilder.QueryBuilder;
import com.datastax.oss.driver.api.querybuilder.insert.RegularInsert;
import com.datastax.oss.driver.api.querybuilder.schema.CreateTable;
public class DataInsertionExample {
    public static void main(String[] args) {
        try (CqlSession session = CqlSession.builder().build()) {
            RegularInsert insert = QueryBuilder.insertInto("my_keyspace", "my_table")
                    .value("id", QueryBuilder.raw("uuid()"))
                    .value("name", QueryBuilder.literal("John Doe"))
                    .value("age", QueryBuilder.literal(30));
            session.execute(insert.build());
            System.out.println("Data inserted successfully.");
        }
    }
}

Apache Cassandra — мощная система управления базами данных, обеспечивающая масштабируемость, отказоустойчивость и высокую производительность для обработки больших объемов данных. В этой статье мы рассмотрели ключевые принципы Apache Cassandra и предоставили примеры кода для подключения к кластеру, создания пространства ключей, создания таблицы и вставки данных. Поняв эти фундаментальные методы, вы сможете начать создавать надежные и масштабируемые приложения с помощью Apache Cassandra.