Apache Cassandra — это масштабируемая и распределенная система управления базами данных, обеспечивающая отказоустойчивое хранилище данных. Он предназначен для обработки больших объемов данных на нескольких стандартных серверах без единой точки отказа. В этой статье блога мы рассмотрим фундаментальные принципы Apache Cassandra и предоставим примеры кода для различных методов, используемых при его реализации.
- Подключение к кластеру 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());
}
}
}
- Создание пространства ключей.
Пространство ключей в 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());
}
}
}
- Создание таблицы.
Таблицы в 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());
}
}
}
- Вставка данных в таблицу:
Чтобы вставить данные в таблицу, вы можете использовать метод 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.