Cassandra - Hızlı Kılavuz

Apache Cassandra, birçok ticari sunucuda büyük miktarda veriyi işlemek için tasarlanmış, yüksek düzeyde ölçeklenebilir, yüksek performanslı dağıtılmış bir veritabanıdır ve tek bir hata noktası olmadan yüksek kullanılabilirlik sağlar. Bir tür NoSQL veritabanıdır. Önce bir NoSQL veritabanının ne yaptığını anlayalım.

NoSQLDatabase

Bir NoSQL veritabanı (bazen Yalnızca SQL Değil olarak da adlandırılır), ilişkisel veritabanlarında kullanılan tablo ilişkilerinden başka verileri depolamak ve almak için bir mekanizma sağlayan bir veritabanıdır. Bu veritabanları şemasızdır, kolay çoğaltmayı destekler, basit API'ye sahiptir, sonunda tutarlıdır ve büyük miktarda veriyi işleyebilir.

Bir NoSQL veritabanının birincil amacı,

  • tasarımın sadeliği,
  • yatay ölçekleme ve
  • kullanılabilirlik üzerinde daha hassas kontrol.

NoSql veritabanları, ilişkisel veritabanlarına kıyasla farklı veri yapıları kullanır. NoSQL'de bazı işlemleri daha hızlı hale getirir. Belirli bir NoSQL veritabanının uygunluğu, çözmesi gereken soruna bağlıdır.

NoSQL ve İlişkisel Veritabanı

Aşağıdaki tablo, ilişkisel bir veritabanını NoSQL veritabanından ayıran noktaları listeler.

İlişkisel veritabanı NoSql Veritabanı
Güçlü sorgu dilini destekler. Çok basit sorgu dilini destekler.
Sabit bir şeması vardır. Sabit şema yok.
ACID'yi (Atomiklik, Tutarlılık, İzolasyon ve Dayanıklılık) izler. Yalnızca "sonunda tutarlıdır".
İşlemleri destekler. İşlemleri desteklemez.

Cassandra'nın yanı sıra, oldukça popüler olan aşağıdaki NoSQL veritabanlarına sahibiz -

  • Apache HBase- HBase, Google'ın BigTable'ına göre modellenen açık kaynaklı, ilişkisel olmayan, dağıtılmış bir veritabanıdır ve Java ile yazılmıştır. Apache Hadoop projesinin bir parçası olarak geliştirilmiştir ve HDFS üzerinde çalışarak Hadoop için BigTable benzeri yetenekler sağlar.

  • MongoDB - MongoDB, dinamik şemalara sahip JSON benzeri belgeler lehine geleneksel tablo tabanlı ilişkisel veritabanı yapısını kullanmaktan kaçınan, belirli uygulama türlerinde verilerin entegrasyonunu daha kolay ve daha hızlı hale getiren, çapraz platformlu belge odaklı bir veritabanı sistemidir.

Apache Cassandra nedir?

Apache Cassandra, dünya çapında çok büyük miktarlarda yapılandırılmış veriyi yönetmek için açık kaynaklı, dağıtılmış ve merkezi olmayan / dağıtılmış bir depolama sistemidir (veritabanı). Tek bir arıza noktası olmadan yüksek oranda kullanılabilir hizmet sağlar.

Aşağıda, Apache Cassandra'nın dikkate değer noktalarından bazıları listelenmiştir -

  • Ölçeklenebilir, hataya dayanıklı ve tutarlıdır.

  • Sütun odaklı bir veritabanıdır.

  • Dağıtım tasarımı, Amazon'un Dinamo'suna ve Google'ın Bigtable'daki veri modeline dayanıyor.

  • Facebook'ta oluşturulmuştur, ilişkisel veritabanı yönetim sistemlerinden büyük ölçüde farklıdır.

  • Cassandra, tek bir hata noktası olmadan Dinamo tarzı bir çoğaltma modeli uygular, ancak daha güçlü bir "sütun ailesi" veri modeli ekler.

  • Cassandra, Facebook, Twitter, Cisco, Rackspace, ebay, Twitter, Netflix ve daha fazlası gibi en büyük şirketlerden bazıları tarafından kullanılmaktadır.

Cassandra'nın Özellikleri

Cassandra, olağanüstü teknik özellikleri nedeniyle çok popüler hale geldi. Aşağıda Cassandra'nın bazı özellikleri verilmiştir:

  • Elastic scalability- Cassandra yüksek oranda ölçeklenebilir; daha fazla müşteriyi ve ihtiyaca göre daha fazla veriyi barındırmak için daha fazla donanım eklemeye izin verir.

  • Always on architecture - Cassandra'nın tek bir hata noktası yoktur ve bir arızayı göze alamayan iş açısından kritik uygulamalar için sürekli olarak kullanılabilir.

  • Fast linear-scale performance- Cassandra doğrusal olarak ölçeklenebilir, yani kümedeki düğümlerin sayısını artırdıkça veriminizi artırır. Bu nedenle hızlı bir yanıt süresi sağlar.

  • Flexible data storageCassandra, yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış dahil olmak üzere tüm olası veri formatlarını barındırır. İhtiyaçlarınıza göre veri yapılarınızdaki değişiklikleri dinamik olarak barındırabilir.

  • Easy data distribution Cassandra, verileri birden çok veri merkezinde çoğaltarak ihtiyaç duyduğunuz yerde dağıtma esnekliği sağlar.

  • Transaction support Cassandra, Atomiklik, Tutarlılık, İzolasyon ve Dayanıklılık (ACID) gibi özellikleri destekler.

  • Fast writes- Cassandra ucuz emtia donanımıyla çalışacak şekilde tasarlandı. Okuma verimliliğinden ödün vermeden son derece hızlı yazma işlemleri gerçekleştirir ve yüzlerce terabayt veriyi depolayabilir.

Cassandra'nın Tarihi

  • Cassandra, Facebook'ta gelen kutusu araması için geliştirildi.
  • Facebook tarafından Temmuz 2008'de açık kaynaklı hale getirildi.
  • Cassandra, Mart 2009'da Apache Incubator'a kabul edildi.
  • Şubat 2010'dan beri Apache üst düzey bir proje haline geldi.

Cassandra'nın tasarım amacı, tek bir hata noktası olmadan birden çok düğümde büyük veri iş yüklerini ele almaktır. Cassandra, düğümleri arasında eşler arası dağıtılmış bir sisteme sahiptir ve veriler bir kümedeki tüm düğümler arasında dağıtılır.

  • Bir kümedeki tüm düğümler aynı rolü oynar. Her düğüm bağımsızdır ve aynı zamanda diğer düğümlerle birbirine bağlıdır.

  • Bir kümedeki her düğüm, verilerin kümede gerçekte nerede bulunduğuna bakılmaksızın okuma ve yazma isteklerini kabul edebilir.

  • Bir düğüm düştüğünde, ağdaki diğer düğümlerden okuma / yazma istekleri sunulabilir.

Cassandra'da Veri Çoğaltma

Cassandra'da, bir kümedeki bir veya daha fazla düğüm, belirli bir veri parçası için kopya görevi görür. Bazı düğümlerin güncel olmayan bir değerle yanıt verdiği tespit edilirse, Cassandra en son değeri istemciye döndürecektir. En son değeri döndürdükten sonra, Cassandra birread repair eski değerleri güncellemek için arka planda.

Aşağıdaki şekil, Cassandra'nın tek bir hata noktası olmamasını sağlamak için bir kümedeki düğümler arasında veri çoğaltmayı nasıl kullandığının şematik bir görünümünü göstermektedir.

Note - Cassandra kullanır Gossip Protocol arka planda düğümlerin birbirleriyle iletişim kurmasına ve kümedeki hatalı düğümleri algılamasına izin vermek için.

Cassandra Bileşenleri

Cassandra'nın temel bileşenleri aşağıdaki gibidir -

  • Node - Verilerin saklandığı yerdir.

  • Data center - İlgili düğümlerin bir koleksiyonudur.

  • Cluster - Küme, bir veya daha fazla veri merkezi içeren bir bileşendir.

  • Commit log- Kaydetme günlüğü, Cassandra'da bir çökme kurtarma mekanizmasıdır. Her yazma işlemi commit günlüğüne yazılır.

  • Mem-table- Mem-tablosu, bellekte yerleşik bir veri yapısıdır. Kaydetme günlüğünden sonra, veriler mem-tablosuna yazılacaktır. Bazen, tek sütunlu bir aile için birden çok mem-tablosu olacaktır.

  • SSTable - İçeriği bir eşik değerine ulaştığında verilerin mem tablosundan boşaltıldığı bir disk dosyasıdır.

  • Bloom filter- Bunlar, bir öğenin bir kümenin üyesi olup olmadığını test etmek için hızlı, kesin olmayan algoritmalardan başka bir şey değildir. Bu özel bir tür önbellektir. Bloom filtrelerine her sorgudan sonra erişilir.

Cassandra Sorgu Dili

Kullanıcılar, Cassandra Sorgu Dili'ni (CQL) kullanarak düğümleri aracılığıyla Cassandra'ya erişebilir. CQL veritabanını ele alır(Keyspace)tablolardan oluşan bir kap olarak. Programcılar kullanırcqlsh: CQL veya ayrı uygulama dili sürücüleriyle çalışma istemi.

İstemciler okuma-yazma işlemleri için herhangi bir düğüme yaklaşır. Bu düğüm (koordinatör), müşteri ile verileri tutan düğümler arasında bir proxy çalar.

Yazma İşlemleri

Düğümlerin her yazma etkinliği, commit logsdüğümlerde yazılmıştır. Veriler daha sonra yakalanacak vemem-table. Mem-tablosu dolduğunda, veriler SStableveri dosyası. Tüm yazılar otomatik olarak bölümlenir ve küme içinde çoğaltılır. Cassandra, gereksiz verileri atarak SSTable'ları periyodik olarak birleştirir.

İşlemleri Okuyun

Okuma işlemleri sırasında Cassandra, mem-tablosundan değerleri alır ve gerekli verileri tutan uygun SSTable'ı bulmak için çiçek filtresini kontrol eder.

Cassandra'nın veri modeli, normalde RDBMS'de gördüğümüzden önemli ölçüde farklıdır. Bu bölüm, Cassandra'nın verilerini nasıl sakladığına dair bir genel bakış sağlar.

Küme

Cassandra veritabanı, birlikte çalışan birkaç makineye dağıtılmıştır. En dıştaki kapsayıcı, Küme olarak bilinir. Arıza işleme için, her düğüm bir eşleme içerir ve bir arıza durumunda çoğaltma sorumlu olur. Cassandra düğümleri halka biçiminde bir kümede düzenler ve bunlara veri atar.

Keyspace

Keyspace, Cassandra'daki veriler için en dıştaki kapsayıcıdır. Cassandra'daki bir Keyspace'in temel özellikleri şunlardır:

  • Replication factor - Aynı verilerin kopyalarını alacak kümedeki makinelerin sayısıdır.

  • Replica placement strategy- Halkaya kopyaları yerleştirme stratejisinden başka bir şey değil. Gibi stratejilerimiz varsimple strategy (raf farkındalığı stratejisi), old network topology strategy (raf farkındalık stratejisi) ve network topology strategy (veri merkezi paylaşımlı strateji).

  • Column families- Keyspace, bir veya daha fazla sütun ailesinin bir listesi için bir kapsayıcıdır. Bir sütun ailesi, sırayla, bir dizi satırdan oluşan bir kaptır. Her satır sıralı sütunları içerir. Sütun aileleri, verilerinizin yapısını temsil eder. Her anahtar alanında en az bir ve çoğu kez birçok sütun ailesi bulunur.

Bir Keyspace oluşturmanın sözdizimi aşağıdaki gibidir -

CREATE KEYSPACE Keyspace name
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};

Aşağıdaki çizim, bir Keyspace'in şematik görünümünü gösterir.

Sütun Ailesi

Bir sütun ailesi, sıralı bir satır koleksiyonu için bir kaptır. Her sıra sırayla sütunların sıralı bir koleksiyonudur. Aşağıdaki tablo, bir sütun ailesini ilişkisel veritabanları tablosundan ayıran noktaları listeler.

İlişkisel Tablo Cassandra sütun Ailesi
İlişkisel bir modeldeki bir şema düzeltilmiştir. Bir tablo için belirli sütunları tanımladıktan sonra, veri eklerken, her satırdaki tüm sütunlar en azından bir boş değerle doldurulmalıdır. Cassandra'da sütun aileleri tanımlanmış olsa da, sütunlar tanımlanmamıştır. Herhangi bir sütun ailesine istediğiniz zaman istediğiniz sütunu özgürce ekleyebilirsiniz.
İlişkisel tablolar yalnızca sütunları tanımlar ve kullanıcı tabloyu değerlerle doldurur. Cassandra'da bir tablo sütunlar içerir veya bir süper sütun ailesi olarak tanımlanabilir.

Cassandra sütun ailesi aşağıdaki özniteliklere sahiptir -

  • keys_cached - SSTable başına önbelleğe alınacak konumların sayısını temsil eder.

  • rows_cached - Tüm içeriği bellekte önbelleğe alınacak satırların sayısını temsil eder.

  • preload_row_cache - Satır önbelleğini önceden doldurmak isteyip istemediğinizi belirtir.

Note − Bir sütun ailesinin şemasının sabit olmadığı ilişkisel tablolardan farklı olarak, Cassandra tek tek satırları tüm sütunlara sahip olmaya zorlamaz.

Aşağıdaki şekil, Cassandra sütun ailesinin bir örneğini göstermektedir.

Sütun

Bir sütun, Cassandra'nın üç değeri olan temel veri yapısıdır; anahtar veya sütun adı, değer ve zaman damgası. Aşağıda bir sütunun yapısı verilmiştir.

Süper Sütun

Süper sütun özel bir sütundur, bu nedenle aynı zamanda bir anahtar / değer çiftidir. Ancak bir süper sütun, alt sütunların bir haritasını saklar.

Genellikle sütun aileleri diskte ayrı dosyalarda saklanır. Bu nedenle, performansı optimize etmek için, sorgulama olasılığınızın yüksek olduğu sütunları aynı sütun ailesinde tutmak önemlidir ve burada bir süper sütun yardımcı olabilir. Aşağıda bir süper sütunun yapısı verilmiştir.

Cassandra ve RDBMS'nin Veri Modelleri

Aşağıdaki tablo Cassandra'nın veri modelini bir RDBMS modelinden ayıran noktaları listelemektedir.

RDBMS Cassandra
RDBMS, yapılandırılmış verilerle ilgilenir. Cassandra yapılandırılmamış verilerle ilgilenir.
Sabit bir şeması vardır. Cassandra'nın esnek bir şeması var.
RDBMS'de, tablo bir dizi dizisidir. (SATIR x SÜTUN) Cassandra'da bir tablo, "iç içe geçmiş anahtar / değer çiftlerinin" listesidir. (SATIR x SÜTUN tuşu x SÜTUN değeri)
Veritabanı, bir uygulamaya karşılık gelen verileri içeren en dıştaki kapsayıcıdır. Keyspace, bir uygulamaya karşılık gelen verileri içeren en dıştaki kapsayıcıdır.
Tablolar, bir veritabanının varlıklarıdır. Tablolar veya sütun aileleri, bir ana alanın varlığıdır.
Satır, RDBMS'deki bireysel bir kayıttır. Row, Cassandra'da bir çoğaltma birimidir.
Sütun, bir ilişkinin niteliklerini temsil eder. Sütun, Cassandra'daki bir depolama birimidir.
RDBMS, yabancı anahtar kavramlarını destekler, birleştirmeler. İlişkiler koleksiyonlar kullanılarak temsil edilir.

Cassandra'ya cqlsh ve farklı dillerdeki sürücüler kullanılarak erişilebilir. Bu bölümde Cassandra ile çalışmak için hem cqlsh hem de java ortamlarının nasıl kurulacağı açıklanmaktadır.

Kurulum Öncesi Kurulum

Cassandra'yı Linux ortamında kurmadan önce, Linux'u kullanarak ssh(Güvenli Kabuk). Linux ortamını kurmak için aşağıda verilen adımları izleyin.

Kullanıcı Oluşturun

Başlangıçta, Hadoop dosya sistemini Unix dosya sisteminden izole etmek için Hadoop için ayrı bir kullanıcı oluşturmanız önerilir. Bir kullanıcı oluşturmak için aşağıda verilen adımları izleyin.

  • Komutu kullanarak kök açın “su”.

  • Komutu kullanarak kök hesaptan bir kullanıcı oluşturun “useradd username”.

  • Şimdi şu komutu kullanarak mevcut bir kullanıcı hesabını açabilirsiniz “su username”.

Linux terminalini açın ve bir kullanıcı oluşturmak için aşağıdaki komutları yazın.

$ su
password:
# useradd hadoop
# passwd hadoop
New passwd:
Retype new passwd

SSH Kurulumu ve Anahtar Oluşturma

SSH kurulumu, bir küme üzerinde başlatma, durdurma ve dağıtılmış arka plan programı kabuğu işlemleri gibi farklı işlemler gerçekleştirmek için gereklidir. Farklı Hadoop kullanıcılarının kimliğini doğrulamak için, bir Hadoop kullanıcısı için genel / özel anahtar çifti sağlanması ve bunu farklı kullanıcılarla paylaşması gerekir.

Aşağıdaki komutlar, SSH kullanarak bir anahtar-değer çifti oluşturmak için kullanılır -

  • id_rsa.pub genel anahtarlarını yetkili_keys'e kopyalayın,
  • ve sahibi sağlayın,
  • sırasıyla yetkili_keys dosyasına izinleri okuma ve yazma.
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
  • Ssh'yi doğrulayın:
ssh localhost

Java yükleme

Cassandra için temel ön koşul Java'dır. Öncelikle, aşağıdaki komutu kullanarak sisteminizde Java varlığını doğrulamalısınız -

$ java -version

Her şey yolunda giderse, size aşağıdaki çıktıyı verecektir.

java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b13)
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

Sisteminizde Java yoksa, Java yüklemek için aşağıda verilen adımları izleyin.

Aşama 1

Aşağıdaki bağlantıdan java'yı (JDK <en son sürüm> - X64.tar.gz) indirin :

Then jdk-7u71-linux-x64.tar.gz will be downloaded onto your system.

Adım 2

Genellikle indirilen java dosyasını İndirilenler klasöründe bulacaksınız. Doğrulayın vejdk-7u71-linux-x64.gz aşağıdaki komutları kullanarak dosya.

$ cd Downloads/
$ ls jdk-7u71-linux-x64.gz $ tar zxf jdk-7u71-linux-x64.gz
$ ls
jdk1.7.0_71 jdk-7u71-linux-x64.gz

Aşama 3

Java'yı tüm kullanıcılara açık hale getirmek için, onu "/ usr / local /" konumuna taşımalısınız. Kökü açın ve aşağıdaki komutları yazın.

$ su
password:
# mv jdk1.7.0_71 /usr/local/
# exit

4. adım

Kurulum için PATH ve JAVA_HOME değişkenler, aşağıdaki komutları ekleyin ~/.bashrc dosya.

export JAVA_HOME = /usr/local/jdk1.7.0_71
export PATH = $PATH:$JAVA_HOME/bin

Şimdi tüm değişiklikleri mevcut çalışan sisteme uygulayın.

$ source ~/.bashrc

Adım 5

Java alternatiflerini yapılandırmak için aşağıdaki komutları kullanın.

# alternatives --install /usr/bin/java java usr/local/java/bin/java 2
# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2

# alternatives --set java usr/local/java/bin/java
# alternatives --set javac usr/local/java/bin/javac
# alternatives --set jar usr/local/java/bin/jar

Şimdi kullanın java -version terminalden komut yukarıda açıklandığı gibi.

Yolu Ayarlama

Cassandra yolunun yolunu aşağıda gösterildiği gibi "/.bashrc" içinde ayarlayın.

[hadoop@linux ~]$ gedit ~/.bashrc

export CASSANDRA_HOME = ~/cassandra
export PATH = $PATH:$CASSANDRA_HOME/bin

Cassandra'yı indirin

Apache Cassandra, aşağıdaki komutu kullanarak Download Link Cassandra'da mevcuttur .

$ wget http://supergsego.com/apache/cassandra/2.1.2/apache-cassandra-2.1.2-bin.tar.gz

Cassandra'nın sıkıştırmasını şu komutu kullanarak açın zxvf Aşağıda gösterildiği gibi.

$ tar zxvf apache-cassandra-2.1.2-bin.tar.gz.

Cassandra adında yeni bir dizin oluşturun ve indirilen dosyanın içeriğini aşağıda gösterildiği gibi buraya taşıyın.

$ mkdir Cassandra $ mv apache-cassandra-2.1.2/* cassandra.

Cassandra'yı yapılandırın

cassandra.yaml: dosyasında mevcut olacak bin Cassandra dizini.

$ gedit cassandra.yaml

Note Cassandra'yı bir deb veya rpm paketinden kurduysanız, yapılandırma dosyaları şurada bulunur: /etc/cassandra Cassandra dizini.

Yukarıdaki komut, cassandra.yamldosya. Aşağıdaki konfigürasyonları doğrulayın. Varsayılan olarak, bu değerler belirtilen dizinlere ayarlanacaktır.

  • data_file_directories “/var/lib/cassandra/data”

  • commitlog_directory “/var/lib/cassandra/commitlog”

  • Saved_caches_directory “/var/lib/cassandra/saved_caches”

Bu dizinlerin var olduğundan ve aşağıda gösterildiği gibi yazılabildiğinden emin olun.

Dizinler Oluşturun

Süper kullanıcı olarak iki dizini oluşturun /var/lib/cassandra ve /var./log/cassandra Cassandra'nın verilerini yazdığı.

[root@linux cassandra]# mkdir /var/lib/cassandra
[root@linux cassandra]# mkdir /var/log/cassandra

Klasörlere İzin Verin

Aşağıda gösterildiği gibi yeni oluşturulan klasörlere okuma-yazma izinleri verin.

[root@linux /]# chmod 777 /var/lib/cassandra
[root@linux /]# chmod 777 /var/log/cassandra

Cassandra'yı başlatın

Cassandra'yı başlatmak için terminal penceresini açın, Cassandra'yı paketinden çıkardığınız Cassandra ana dizinine / evine gidin ve Cassandra sunucunuzu başlatmak için aşağıdaki komutu çalıştırın.

$ cd $CASSANDRA_HOME $./bin/cassandra -f

–F seçeneğinin kullanılması Cassandra'ya bir arka plan işlemi olarak çalıştırmak yerine ön planda kalmasını söyler. Her şey yolunda giderse, Cassandra sunucusunun başladığını görebilirsiniz.

Programlama Ortamı

Cassandra'yı programlı olarak kurmak için aşağıdaki jar dosyalarını indirin -

  • slf4j-api-1.7.5.jar
  • cassandra-driver-core-2.0.2.jar
  • guava-16.0.1.jar
  • metrics-core-3.0.2.jar
  • netty-3.9.0.Final.jar

Bunları ayrı bir klasöre yerleştirin. Örneğin, bu kavanozları adlı bir klasöre indiriyoruz.“Cassandra_jars”.

Bu klasör için sınıf yolunu şurada ayarlayın: “.bashrc”dosya aşağıda gösterildiği gibi.

[hadoop@linux ~]$ gedit ~/.bashrc //Set the following class path in the .bashrc file. export CLASSPATH = $CLASSPATH:/home/hadoop/Cassandra_jars/*

Eclipse Ortamı

Eclipse'i açın ve Cassandra _Examples adında yeni bir proje oluşturun.

Projeye sağ tıklayın, seçin Build Path→Configure Build Path Aşağıda gösterildiği gibi.

Özellikler penceresini açacaktır. Kitaplıklar sekmesi altında, seçinAdd External JARs. Jar dosyalarınızı kaydettiğiniz dizine gidin. Beş jar dosyasının tümünü seçin ve aşağıda gösterildiği gibi Tamam'a tıklayın.

Başvurulan Kitaplıklar altında, aşağıda gösterildiği gibi eklenen tüm gerekli kavanozları görebilirsiniz -

Maven Bağımlılıkları

Aşağıda, maven kullanarak Cassandra projesi oluşturmak için pom.xml verilmiştir.

<project xmlns = "http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"  
   xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <build>
      <sourceDirectory>src</sourceDirectory>
      <plugins>
         <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
				
               <configuration>
                  <source>1.7</source>
                  <target>1.7</target>
               </configuration>
					
         </plugin>
      </plugins>
   </build> 

   <dependencies>
      <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
         <version>1.7.5</version>
      </dependency>
 
      <dependency>
         <groupId>com.datastax.cassandra</groupId>
         <artifactId>cassandra-driver-core</artifactId>
         <version>2.0.2</version>
      </dependency>
 
      <dependency>
         <groupId>com.google.guava</groupId>
         <artifactId>guava</artifactId>
         <version>16.0.1</version>
      </dependency>
 
      <dependency>
         <groupId>com.codahale.metrics</groupId>
         <artifactId>metrics-core</artifactId>
         <version>3.0.2</version>
      </dependency>
 
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty</artifactId>
         <version>3.9.0.Final</version>
      </dependency>
   </dependencies>

</project>

Bu bölüm Cassandra'daki tüm önemli sınıfları kapsamaktadır.

Küme

Bu sınıf, sürücünün ana giriş noktasıdır. A aitcom.datastax.driver.core paketi.

Yöntemler

S. No. Yöntemler ve Açıklama
1

Session connect()

Mevcut kümede yeni bir oturum oluşturur ve onu başlatır.

2

void close()

Küme örneğini kapatmak için kullanılır.

3

static Cluster.Builder builder()

Yeni bir Cluster.Builder örneği oluşturmak için kullanılır.

Küme Oluşturucu

Bu sınıf, Cluster.Builder sınıf.

Yöntemler

S. Hayır Yöntemler ve Açıklama
1

Cluster.Builder addContactPoint(String address)

Bu yöntem, kümeye bir temas noktası ekler.

2

Cluster build()

Bu yöntem, kümeyi verilen temas noktaları ile oluşturur.

Oturum, toplantı, celse

Bu arabirim, Cassandra kümesine olan bağlantıları tutar. Bu arayüzü kullanarak çalıştırabilirsinizCQLsorguları. A aitcom.datastax.driver.core paketi.

Yöntemler

S. No. Yöntemler ve Açıklama
1

void close()

Bu yöntem, geçerli oturum örneğini kapatmak için kullanılır.

2

ResultSet execute(Statement statement)

Bu yöntem bir sorgu yürütmek için kullanılır. Bir ifade nesnesi gerektirir.

3

ResultSet execute(String query)

Bu yöntem bir sorgu yürütmek için kullanılır. String nesnesi biçiminde bir sorgu gerektirir.

4

PreparedStatement prepare(RegularStatement statement)

Bu yöntem, sağlanan sorguyu hazırlar. Sorgu bir Açıklama biçiminde sağlanacaktır.

5

PreparedStatement prepare(String query)

Bu yöntem, sağlanan sorguyu hazırlar. Sorgu bir Dize biçiminde sağlanacaktır.

Bu bölüm Cassandra sorgu dili kabuğunu tanıtır ve komutlarının nasıl kullanılacağını açıklar.

Varsayılan olarak, Cassandra bir istemli Cassandra sorgu dili kabuğu sağlar (cqlsh)bu, kullanıcıların onunla iletişim kurmasını sağlar. Bu kabuğu kullanarak çalıştırabilirsinizCassandra Query Language (CQL).

Cqlsh kullanarak şunları yapabilirsiniz:

  • bir şema tanımlamak,
  • veri girin ve
  • bir sorgu yürütün.

Cqlsh başlatılıyor

Komutu kullanarak cqlsh'i başlatın cqlshAşağıda gösterildiği gibi. Cassandra cqlsh komutunu çıktı olarak verir.

[hadoop@linux bin]$ cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
cqlsh>

Cqlsh- Yukarıda tartışıldığı gibi, bu komut cqlsh istemini başlatmak için kullanılır. Ek olarak, birkaç seçeneği daha destekler. Aşağıdaki tablo tüm seçenekleri açıklamaktadır.cqlsh ve kullanımları.

Seçenekler Kullanım
cqlsh - yardım Seçenekler hakkında yardım konularını gösterir. cqlsh komutlar.
cqlsh --version Kullandığınız cqlsh sürümünü sağlar.
cqlsh --color Kabuğu renkli çıktı kullanmaya yönlendirir.
cqlsh - hata ayıklama Ek hata ayıklama bilgilerini gösterir.

cqlsh - yürütme

cql_statement

Kabuğu bir CQL komutunu kabul etmeye ve yürütmeye yönlendirir.
cqlsh --file = “file name” Bu seçeneği kullanırsanız, Cassandra komutu verilen dosyada çalıştırır ve çıkar.
cqlsh - renksiz Cassandra'yı renkli çıktı kullanmamaya yönlendirir.
cqlsh -u “user name” Bu seçeneği kullanarak bir kullanıcının kimliğini doğrulayabilirsiniz. Varsayılan kullanıcı adı: cassandra.
cqlsh-p “pass word” Bu seçeneği kullanarak, bir kullanıcının kimliğini bir şifre ile doğrulayabilirsiniz. Varsayılan şifre şudur: cassandra.

Cqlsh Komutları

Cqlsh, kullanıcıların kendisiyle etkileşime girmesine izin veren birkaç komuta sahiptir. Komutlar aşağıda listelenmiştir.

Belgelenmiş Kabuk Komutları

Aşağıda Cqlsh ile belgelenmiş kabuk komutları verilmiştir. Bunlar, yardım konularını görüntüleme, cqlsh'dan çıkma, açıklama vb. Görevleri gerçekleştirmek için kullanılan komutlardır.

  • HELP - Tüm cqlsh komutları için yardım konularını görüntüler.

  • CAPTURE - Bir komutun çıktısını yakalar ve bir dosyaya ekler.

  • CONSISTENCY - Mevcut tutarlılık düzeyini gösterir veya yeni bir tutarlılık düzeyi ayarlar.

  • COPY - Cassandra'ya ve Cassandra'dan veri kopyalar.

  • DESCRIBE - Cassandra ve nesnelerinin mevcut kümesini açıklar.

  • EXPAND - Bir sorgunun çıktısını dikey olarak genişletir.

  • EXIT - Bu komutu kullanarak cqlsh'ı sonlandırabilirsiniz.

  • PAGING - Sorgu sayfalandırmasını etkinleştirir veya devre dışı bırakır.

  • SHOW - Cassandra sürümü, ana bilgisayar veya veri türü varsayımları gibi geçerli cqlsh oturumunun ayrıntılarını görüntüler.

  • SOURCE - CQL ifadeleri içeren bir dosyayı yürütür.

  • TRACING - İstek izlemeyi etkinleştirir veya devre dışı bırakır.

CQL Veri Tanımlama Komutları

  • CREATE KEYSPACE - Cassandra'da bir KeySpace oluşturur.

  • USE - Oluşturulan bir KeySpace'e bağlanır.

  • ALTER KEYSPACE - Bir KeySpace'in özelliklerini değiştirir.

  • DROP KEYSPACE - Bir KeySpace kaldırır

  • CREATE TABLE - KeySpace'de bir tablo oluşturur.

  • ALTER TABLE - Bir tablonun sütun özelliklerini değiştirir.

  • DROP TABLE - Bir masayı kaldırır.

  • TRUNCATE - Bir tablodaki tüm verileri kaldırır.

  • CREATE INDEX - Bir tablonun tek bir sütununda yeni bir dizin tanımlar.

  • DROP INDEX - Adlandırılmış bir dizini siler.

CQL Veri Manipülasyon Komutları

  • INSERT - Tablodaki bir satır için sütun ekler.

  • UPDATE - Bir satırın sütununu günceller.

  • DELETE - Bir tablodan verileri siler.

  • BATCH - Birden fazla DML ifadesini aynı anda yürütür.

CQL Maddeleri

  • SELECT - Bu madde bir tablodaki verileri okur

  • WHERE - Where cümlesi, belirli bir veriyi okumak için select ile birlikte kullanılır.

  • ORDERBY - orderby cümlesi, belirli bir veriyi belirli bir sırayla okumak için select ile birlikte kullanılır.

Cassandra, CQL komutlarına ek olarak belgelenmiş kabuk komutları sağlar. Aşağıda Cassandra tarafından belgelenmiş kabuk komutları verilmiştir.

Yardım

HELP komutu bir özetini ve tüm cqlsh komutlarının kısa bir açıklamasını görüntüler. Aşağıda yardım komutunun kullanımı verilmiştir.

cqlsh> help

Documented shell commands:
===========================
CAPTURE COPY DESCRIBE EXPAND PAGING SOURCE
CONSISTENCY DESC EXIT HELP SHOW TRACING.

CQL help topics:
================
ALTER           CREATE_TABLE_OPTIONS       SELECT
ALTER_ADD       CREATE_TABLE_TYPES         SELECT_COLUMNFAMILY
ALTER_ALTER     CREATE_USER                SELECT_EXPR
ALTER_DROP      DELETE                     SELECT_LIMIT
ALTER_RENAME    DELETE_COLUMNS             SELECT_TABLE

Ele geçirmek

Bu komut, bir komutun çıktısını yakalar ve bunu bir dosyaya ekler. Örneğin, çıktıyı adında bir dosyaya yakalayan aşağıdaki koda bir göz atın.Outputfile.

cqlsh> CAPTURE '/home/hadoop/CassandraProgs/Outputfile'

Terminale herhangi bir komut yazdığımızda, çıktı verilen dosya tarafından yakalanacaktır. Aşağıda, kullanılan komut ve çıktı dosyasının anlık görüntüsü verilmiştir.

cqlsh:tutorialspoint> select * from emp;

Aşağıdaki komutu kullanarak yakalamayı kapatabilirsiniz.

cqlsh:tutorialspoint> capture off;

Tutarlılık

Bu komut, mevcut tutarlılık düzeyini gösterir veya yeni bir tutarlılık düzeyi ayarlar.

cqlsh:tutorialspoint> CONSISTENCY
Current consistency level is 1.

Kopyala

Bu komut, Cassandra'ya ve Cassandra'dan verileri bir dosyaya kopyalar. Aşağıda verilen tablonun kopyalanması için bir örnek verilmiştir.emp dosyaya myfile.

cqlsh:tutorialspoint> COPY emp (emp_id, emp_city, emp_name, emp_phone,emp_sal) TO ‘myfile’;
4 rows exported in 0.034 seconds.

Verilen dosyayı açıp doğrularsanız, kopyalanan verileri aşağıda gösterildiği gibi bulabilirsiniz.

Tanımlamak

Bu komut geçerli Cassandra kümesini ve nesnelerini açıklar. Bu komutun çeşitleri aşağıda açıklanmıştır.

Describe cluster - Bu komut, küme hakkında bilgi sağlar.

cqlsh:tutorialspoint> describe cluster;

Cluster: Test Cluster
Partitioner: Murmur3Partitioner

Range ownership:
                  -658380912249644557 [127.0.0.1]
                  -2833890865268921414 [127.0.0.1]
                  -6792159006375935836 [127.0.0.1]

Describe Keyspaces- Bu komut, bir kümedeki tüm anahtar alanlarını listeler. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> describe keyspaces;

system_traces system tp tutorialspoint

Describe tables- Bu komut, bir anahtar alanındaki tüm tabloları listeler. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> describe tables;
emp

Describe table- Bu komut bir tablonun açıklamasını sağlar. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> describe table emp;

CREATE TABLE tutorialspoint.emp (
   emp_id int PRIMARY KEY,
   emp_city text,
   emp_name text,
   emp_phone varint,
   emp_sal varint
) WITH bloom_filter_fp_chance = 0.01
   AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
   AND comment = ''
   AND compaction = {'min_threshold': '4', 'class':
   'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy',
   'max_threshold': '32'}
	
   AND compression = {'sstable_compression':
   'org.apache.cassandra.io.compress.LZ4Compressor'}
	
   AND dclocal_read_repair_chance = 0.1
   AND default_time_to_live = 0
   AND gc_grace_seconds = 864000
   AND max_index_interval = 2048
   AND memtable_flush_period_in_ms = 0
   AND min_index_interval = 128
   AND read_repair_chance = 0.0
   AND speculative_retry = '99.0PERCENTILE';
CREATE INDEX emp_emp_sal_idx ON tutorialspoint.emp (emp_sal);

Türü Tanımla

Bu komut, kullanıcı tanımlı bir veri türünü tanımlamak için kullanılır. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> describe type card_details;

CREATE TYPE tutorialspoint.card_details (
   num int,
   pin int,
   name text,
   cvv int,
   phone set<int>,
   mail text
);

Türleri Tanımlayın

Bu komut, tüm kullanıcı tanımlı veri türlerini listeler. Aşağıda bu komutun kullanımı verilmiştir. İki kullanıcı tanımlı veri türü olduğunu varsayalım:card ve card_details.

cqlsh:tutorialspoint> DESCRIBE TYPES;

card_details card

Genişlet

Bu komut çıktıyı genişletmek için kullanılır. Bu komutu kullanmadan önce, genişletme komutunu açmanız gerekir. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> expand on;
cqlsh:tutorialspoint> select * from emp;

@ Row 1
-----------+------------
    emp_id | 1
  emp_city | Hyderabad
  emp_name | ram
 emp_phone | 9848022338
   emp_sal | 50000
  
@ Row 2
-----------+------------
    emp_id | 2
  emp_city | Delhi
  emp_name | robin
 emp_phone | 9848022339
   emp_sal | 50000
  
@ Row 3
-----------+------------
    emp_id | 4
  emp_city | Pune
  emp_name | rajeev
 emp_phone | 9848022331
   emp_sal | 30000
  
@ Row 4
-----------+------------
    emp_id | 3
  emp_city | Chennai
  emp_name | rahman
 emp_phone | 9848022330
   emp_sal | 50000
(4 rows)

Note - Aşağıdaki komutu kullanarak genişletme seçeneğini kapatabilirsiniz.

cqlsh:tutorialspoint> expand off;
Disabled Expanded output.

çıkış

Bu komut cql kabuğunu sonlandırmak için kullanılır.

Göstermek

Bu komut, Cassandra sürümü, ana bilgisayar veya veri türü varsayımları gibi geçerli cqlsh oturumunun ayrıntılarını görüntüler. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> show host;
Connected to Test Cluster at 127.0.0.1:9042.

cqlsh:tutorialspoint> show version;
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 | Native protocol v3]

Kaynak

Bu komutu kullanarak, bir dosyadaki komutları çalıştırabilirsiniz. Giriş dosyamızın aşağıdaki gibi olduğunu varsayalım -

Daha sonra komutları içeren dosyayı aşağıda gösterildiği gibi çalıştırabilirsiniz.

cqlsh:tutorialspoint> source '/home/hadoop/CassandraProgs/inputfile';

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |   ram    | 9848022338 | 50000
      2 | Delhi     |   robin  | 9848022339 | 50000
      3 | Pune      |   rajeev | 9848022331 | 30000
      4 | Chennai   |   rahman | 9848022330 | 50000
(4 rows)

Cqlsh kullanarak bir Anahtar Alanı Oluşturma

Cassandra'daki anahtar alanı, düğümlerde veri çoğaltmayı tanımlayan bir ad alanıdır. Bir küme, düğüm başına bir anahtar alanı içerir. Aşağıda, ifadeyi kullanarak bir anahtar alanı oluşturmak için sözdizimi verilmiştir.CREATE KEYSPACE.

Sözdizimi

CREATE KEYSPACE <identifier> WITH <properties>

yani

CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of   replicas’};

CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of  replicas’}

AND durable_writes = ‘Boolean value’;

CREATE KEYSPACE deyiminin iki özelliği vardır: replication ve durable_writes.

Çoğaltma

Çoğaltma seçeneği, Replica Placement strategyve istenen kopya sayısı. Aşağıdaki tablo, tüm kopya yerleştirme stratejilerini listeler.

Strateji adı Açıklama
Simple Strategy' Küme için basit bir çoğaltma faktörünü belirtir.
Network Topology Strategy Bu seçeneği kullanarak, her veri merkezi için çoğaltma faktörünü bağımsız olarak ayarlayabilirsiniz.
Old Network Topology Strategy Bu, eski bir çoğaltma stratejisidir.

Bu seçeneği kullanarak Cassandra'ya commitlogmevcut KeySpace'deki güncellemeler için. Bu seçenek zorunlu değildir ve varsayılan olarak true olarak ayarlanmıştır.

Misal

Aşağıda bir KeySpace oluşturmanın bir örneği verilmiştir.

  • Burada adında bir KeySpace oluşturuyoruz TutorialsPoint.

  • İlk kopya yerleştirme stratejisini kullanıyoruz, yani. Simple Strategy.

  • Ve çoğaltma faktörünü seçiyoruz 1 replica.

cqlsh.> CREATE KEYSPACE tutorialspoint
WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};

Doğrulama

Tablonun oluşturulup oluşturulmadığını komutu kullanarak doğrulayabilirsiniz. Describe. Bu komutu keyspaces üzerinde kullanırsanız, aşağıda gösterildiği gibi oluşturulan tüm keyspaces görüntülenecektir.

cqlsh> DESCRIBE keyspaces;

tutorialspoint system system_traces

Burada yeni oluşturulan KeySpace'i gözlemleyebilirsiniz. tutorialspoint.

Durable_writes

Varsayılan olarak, bir tablonun dayanıklı_writes özellikleri şu şekilde ayarlanır: true,ancak yanlış olarak ayarlanabilir. Bu özelliği şu şekilde ayarlayamazsınızsimplex strategy.

Misal

Aşağıda, dayanıklı yazma özelliğinin kullanımını gösteren örnek verilmiştir.

cqlsh> CREATE KEYSPACE test
... WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 }
... AND DURABLE_WRITES = false;

Doğrulama

Test KeySpace'in dayanıklı_writes özelliğinin yanlış olarak ayarlanıp ayarlanmadığını, Sistem Anahtar Alanını sorgulayarak doğrulayabilirsiniz. Bu sorgu, özellikleriyle birlikte size tüm KeySpace'leri verir.

cqlsh> SELECT * FROM system_schema.keyspaces;

  keyspace_name | durable_writes |                                       strategy_class | strategy_options
----------------+----------------+------------------------------------------------------+----------------------------

           test |          False | org.apache.cassandra.locator.NetworkTopologyStrategy | {"datacenter1" : "3"}

 tutorialspoint |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor" : "4"}

         system |           True |           org.apache.cassandra.locator.LocalStrategy | { }

  system_traces |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor" : "2"}

(4 rows)

Burada test KeySpace'in dayanıklı_writes özelliğinin yanlış olarak ayarlandığını görebilirsiniz.

Bir Anahtar Alanı Kullanma

Anahtar kelimeyi kullanarak oluşturulmuş bir KeySpace kullanabilirsiniz. USE. Sözdizimi aşağıdaki gibidir -

Syntax:USE <identifier>

Misal

Aşağıdaki örnekte, KeySpace kullanıyoruz tutorialspoint.

cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>

Java API kullanarak bir Anahtar Alanı Oluşturma

Kullanarak bir Keyspace oluşturabilirsiniz. execute() yöntemi Sessionsınıf. Java API kullanarak bir anahtar alanı oluşturmak için aşağıda verilen adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Her şeyden önce, bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object

Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object

Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırında bir küme nesnesi oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Bir örnek oluşturun Session kullanarak nesne connect() yöntemi Cluster aşağıda gösterildiği gibi sınıf.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde anahtar alanı adını ileterek onu var olana ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name ” );

3. Adım: Sorguyu Çalıştırın

Yürütebilirsin CQL kullanarak sorgular execute() yöntemi Sessionsınıf. Sorguyu dize biçiminde veya birStatement sınıf nesnesi execute()yöntem. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Bu örnekte, adında bir KeySpace oluşturuyoruz. tp. İlk replika yerleştirme stratejisini, yani Basit Strateji'yi kullanıyoruz ve replikasyon faktörünü 1 replikaya seçiyoruz.

Sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

String query = "CREATE KEYSPACE tp WITH replication "
   + "= {'class':'SimpleStrategy', 'replication_factor':1}; ";
session.execute(query);

4. Adım: KeySpace'i kullanın

Aşağıda gösterildiği gibi execute () yöntemini kullanarak oluşturulmuş bir KeySpace kullanabilirsiniz.

execute(“ USE tp ” );

Aşağıda, Java API kullanarak Cassandra'da bir anahtar alanı oluşturmak ve kullanmak için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Create_KeySpace {

   public static void main(String args[]){

      //Query
      String query = "CREATE KEYSPACE tp WITH replication "
         + "= {'class':'SimpleStrategy', 'replication_factor':1};";
                    
      //creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
    
      //Creating Session object
      Session session = cluster.connect();
     
      //Executing the query
      session.execute(query);
     
      //using the KeySpace
      session.execute("USE tp");
      System.out.println("Keyspace created"); 
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Create_KeySpace.java
$java Create_KeySpace

Normal koşullar altında aşağıdaki çıktıyı üretecektir -

Keyspace created

Bir Anahtar Alanını Değiştirme

ALTER KEYSPACE, yineleme sayısı ve bir KeySpace'in dayanıklı_yazılımları gibi özellikleri değiştirmek için kullanılabilir. Aşağıda bu komutun sözdizimi verilmiştir.

Sözdizimi

ALTER KEYSPACE <identifier> WITH <properties>

yani

ALTER KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of  replicas’};

Özellikleri ALTER KEYSPACECREATE KEYSPACE ile aynıdır. İki özelliği vardır:replication ve durable_writes.

Çoğaltma

Çoğaltma seçeneği, çoğaltma yerleştirme stratejisini ve istenen çoğaltma sayısını belirtir.

Durable_writes

Bu seçeneği kullanarak, Cassandra'ya geçerli KeySpace'deki güncellemeler için commit günlüğü kullanıp kullanmayacağını bildirebilirsiniz. Bu seçenek zorunlu değildir ve varsayılan olarak true olarak ayarlanmıştır.

Misal

Aşağıda bir KeySpace değiştirmenin bir örneği verilmiştir.

  • Burada adlı bir KeySpace'i değiştiriyoruz TutorialsPoint.

  • Çoğaltma faktörünü 1'den 3'e değiştiriyoruz.

cqlsh.> ALTER KEYSPACE tutorialspoint
WITH replication = {'class':'NetworkTopologyStrategy', 'replication_factor' : 3};

Durable_writes'i Değiştirme

Ayrıca bir KeySpace'in dayanıklı_writes özelliğini de değiştirebilirsiniz. Aşağıda verilen, dayanıklı_writes özelliğidirtest KeySpace.

SELECT * FROM system_schema.keyspaces;

  keyspace_name | durable_writes |                                       strategy_class | strategy_options
----------------+----------------+------------------------------------------------------+----------------------------
           test |          False | org.apache.cassandra.locator.NetworkTopologyStrategy | {"datacenter1":"3"}

 tutorialspoint |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"4"}

         system |           True |           org.apache.cassandra.locator.LocalStrategy | { }

  system_traces |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"2"}
(4 rows)

ALTER KEYSPACE test
WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3}
AND DURABLE_WRITES = true;

Bir kez daha, KeySpaces'in özelliklerini doğrularsanız, aşağıdaki çıktıyı üretecektir.

SELECT * FROM system_schema.keyspaces;
  keyspace_name | durable_writes |                                       strategy_class | strategy_options
----------------+----------------+------------------------------------------------------+----------------------------
           test |           True | org.apache.cassandra.locator.NetworkTopologyStrategy | {"datacenter1":"3"}

 tutorialspoint |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"4"}

         system |           True |           org.apache.cassandra.locator.LocalStrategy | { }

  system_traces |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"2"}

(4 rows)

Java API kullanarak bir Anahtar Alanını Değiştirme

Kullanarak bir anahtar alanını değiştirebilirsiniz. execute() yöntemi Sessionsınıf. Java API kullanarak bir anahtar alanını değiştirmek için aşağıda verilen adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Her şeyden önce, bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

//Building a cluster

Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak küme nesnesini oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Bir örnek oluşturun Session kullanarak nesne connect() yöntemi Clusteraşağıda gösterildiği gibi sınıf.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde anahtar alanı adını ileterek onu var olana ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name ” );

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya birStatementexecute () yöntemine sınıf nesnesi. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Bu örnekte,

  • Adlı bir anahtar alanını değiştiriyoruz tp. Çoğaltma seçeneğini Basit Stratejiden Ağ Topolojisi Stratejisine değiştiriyoruz.

  • Biz değiştiriyoruz durable_writes yanlış

Sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

//Query
String query = "ALTER KEYSPACE tp WITH replication " + "=   {'class':'NetworkTopologyStrategy', 'datacenter1':3}" +" AND DURABLE_WRITES = false;";
session.execute(query);

Aşağıda, Java API kullanarak Cassandra'da bir anahtar alanı oluşturmak ve kullanmak için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Alter_KeySpace {
   public static void main(String args[]){

      //Query
      String query = "ALTER KEYSPACE tp WITH replication " + "= {'class':'NetworkTopologyStrategy', 'datacenter1':3}"
         + "AND DURABLE_WRITES = false;";

      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
   
      //Creating Session object
      Session session = cluster.connect();
 
      //Executing the query
      session.execute(query);
 
      System.out.println("Keyspace altered");
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Alter_KeySpace.java
$java Alter_KeySpace

Normal koşullar altında aşağıdaki çıktıyı üretir -

Keyspace Altered

Bir Anahtar Alanını Bırakma

Komutu kullanarak bir KeySpace bırakabilirsiniz DROP KEYSPACE. Aşağıda bir KeySpace'in bırakılmasına ilişkin sözdizimi verilmiştir.

Sözdizimi

DROP KEYSPACE <identifier>

yani

DROP KEYSPACE “KeySpace name”

Misal

Aşağıdaki kod, anahtar alanını siler tutorialspoint.

cqlsh> DROP KEYSPACE tutorialspoint;

Doğrulama

Komutu kullanarak anahtar alanlarını doğrulayın Describe ve aşağıda gösterildiği gibi tablonun düşürülüp düşürülmediğini kontrol edin.

cqlsh> DESCRIBE keyspaces;

system system_traces

Keyspace tutorialspoint'i sildiğimizden, onu keyspaces listesinde bulamayacaksınız.

Java API kullanarak bir Anahtar Alanı Bırakma

Session sınıfının execute () yöntemini kullanarak bir anahtar alanı oluşturabilirsiniz. Java API kullanarak bir anahtar alanı bırakmak için aşağıda verilen adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Her şeyden önce, bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object 
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak bir küme nesnesi oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde anahtar alanı adını ileterek onu var olana ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name”);

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme string formatında ilettiğiniz her şey cqlsh üzerinde çalıştırılacaktır.

Aşağıdaki örnekte, adlı bir anahtar alanını siliyoruz. tp. Sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

String query = "DROP KEYSPACE tp; ";

session.execute(query);

Aşağıda, Java API kullanarak Cassandra'da bir anahtar alanı oluşturmak ve kullanmak için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Drop_KeySpace {

   public static void main(String args[]){

      //Query
      String query = "Drop KEYSPACE tp";

      //creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
    
      //Creating Session object
      Session session = cluster.connect();
    
      //Executing the query
      session.execute(query);
      System.out.println("Keyspace deleted");
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Delete_KeySpace.java
$java Delete_KeySpace

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Keyspace deleted

Tablo Oluşturmak

Komutunu kullanarak bir tablo oluşturabilirsiniz CREATE TABLE. Aşağıda bir tablo oluşturmak için sözdizimi verilmiştir.

Sözdizimi

CREATE (TABLE | COLUMNFAMILY) <tablename>
('<column-definition>' , '<column-definition>')
(WITH <option> AND <option>)

Bir Sütun Tanımlama

Aşağıda gösterildiği gibi bir sütun tanımlayabilirsiniz.

column name1 data type,
column name2 data type,

example:

age int,
name text

Birincil anahtar

Birincil anahtar, bir satırı benzersiz şekilde tanımlamak için kullanılan bir sütundur. Bu nedenle, tablo oluştururken birincil anahtarın tanımlanması zorunludur. Birincil anahtar, bir tablonun bir veya daha fazla sütunundan oluşur. Aşağıda gösterildiği gibi bir tablonun birincil anahtarını tanımlayabilirsiniz.

CREATE TABLE tablename(
   column1 name datatype PRIMARYKEY,
   column2 name data type,
   column3 name data type.
   )

or

CREATE TABLE tablename(
   column1 name datatype PRIMARYKEY,
   column2 name data type,
   column3 name data type,
   PRIMARY KEY (column1)
   )

Misal

Aşağıda, cqlsh kullanarak Cassandra'da bir tablo oluşturmak için bir örnek verilmiştir. İşte buradayız -

  • Keyspace öğretici noktasını kullanma

  • Adlı bir tablo oluşturmak emp

Çalışan adı, kimliği, şehri, maaşı ve telefon numarası gibi detaylara sahip olacaktır. Çalışan kimliği birincil anahtardır.

cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>; CREATE TABLE emp(
   emp_id int PRIMARY KEY,
   emp_name text,
   emp_city text,
   emp_sal varint,
   emp_phone varint
   );

Doğrulama

Select deyimi size şemayı verecektir. Aşağıda gösterildiği gibi select deyimini kullanarak tabloyu doğrulayın.

cqlsh:tutorialspoint> select * from emp;

 emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+----------+----------+-----------+---------

(0 rows)

Burada verilen sütunlarla oluşturulan tabloyu gözlemleyebilirsiniz. Keyspace tutorialspoint'i sildiğimizden, onu keyspaces listesinde bulamayacaksınız.

Java API kullanarak Tablo Oluşturma

Session sınıfının execute () yöntemini kullanarak bir tablo oluşturabilirsiniz. Java API kullanarak bir tablo oluşturmak için aşağıda verilen adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Her şeyden önce, bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak bir küme nesnesi oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Kullanarak Session nesnesinin bir örneğini oluşturun. connect() yöntemi Cluster aşağıda gösterildiği gibi sınıf.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde anahtar alanı adını ileterek onu var olana ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name ” );

Burada adlı anahtar alanını kullanıyoruz tp. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

Session session = cluster.connect(“ tp” );

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme string formatında ilettiğiniz her şey cqlsh üzerinde çalıştırılacaktır.

Aşağıdaki örnekte, adında bir tablo oluşturuyoruz. emp. Sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

//Query
String query = "CREATE TABLE emp(emp_id int PRIMARY KEY, "
   + "emp_name text, "
   + "emp_city text, "
   + "emp_sal varint, "
   + "emp_phone varint );";
session.execute(query);

Aşağıda, Java API kullanarak Cassandra'da bir anahtar alanı oluşturmak ve kullanmak için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Create_Table {

   public static void main(String args[]){

      //Query
      String query = "CREATE TABLE emp(emp_id int PRIMARY KEY, "
         + "emp_name text, "
         + "emp_city text, "
         + "emp_sal varint, "
         + "emp_phone varint );";
		
      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
   
      //Creating Session object
      Session session = cluster.connect("tp");
 
      //Executing the query
      session.execute(query);
 
      System.out.println("Table created");
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Create_Table.java
$java Create_Table

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Table created

Tablo Değiştirme

Komutu kullanarak bir tabloyu değiştirebilirsiniz. ALTER TABLE. Aşağıda bir tablo oluşturmak için sözdizimi verilmiştir.

Sözdizimi

ALTER (TABLE | COLUMNFAMILY) <tablename> <instruction>

ALTER komutunu kullanarak aşağıdaki işlemleri gerçekleştirebilirsiniz -

  • Bir sütun ekleyin

  • Bir sütun bırakın

Sütun Ekleme

ALTER komutunu kullanarak bir tabloya sütun ekleyebilirsiniz. Sütun eklerken, sütun adının mevcut sütun adlarıyla çakışmamasına ve tablonun kompakt depolama seçeneğiyle tanımlanmamasına dikkat etmelisiniz. Aşağıda, bir tabloya sütun eklemek için kullanılan sözdizimi verilmiştir.

ALTER TABLE table name
ADD  new column datatype;

Example

Aşağıda, mevcut bir tabloya sütun eklemek için bir örnek verilmiştir. Burada adlı bir sütun ekliyoruzemp_email metin veri türü adındaki tabloya emp.

cqlsh:tutorialspoint> ALTER TABLE emp
   ... ADD emp_email text;

Verification

Sütunun eklenip eklenmediğini doğrulamak için SELECT deyimini kullanın. Burada yeni eklenen emp_email sütununu gözlemleyebilirsiniz.

cqlsh:tutorialspoint> select * from emp;

 emp_id | emp_city | emp_email | emp_name | emp_phone | emp_sal
--------+----------+-----------+----------+-----------+---------

Bir Sütunu Düşürmek

ALTER komutunu kullanarak tablodan bir sütun silebilirsiniz. Tablodan bir sütun kaldırmadan önce, tablonun kompakt depolama seçeneğiyle tanımlanmadığını kontrol edin. Aşağıda, ALTER komutunu kullanarak bir tablodan bir sütunu silmek için sözdizimi verilmiştir.

ALTER table name
DROP column name;

Example

Aşağıda, bir tablodan sütun bırakmaya bir örnek verilmiştir. Burada adlı sütunu siliyoruzemp_email.

cqlsh:tutorialspoint> ALTER TABLE emp DROP emp_email;

Verification

Kullanarak sütunun silinip silinmediğini doğrulayın. select beyan, aşağıda gösterildiği gibi.

cqlsh:tutorialspoint> select * from emp;

 emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+----------+----------+-----------+---------
(0 rows)

Dan beri emp_email sütun silindi, artık bulamazsınız.

Java API kullanarak bir Tabloyu Değiştirme

Session sınıfının execute () yöntemini kullanarak bir tablo oluşturabilirsiniz. Java API kullanarak bir tabloyu değiştirmek için aşağıda verilen adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Her şeyden önce, bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak bir küme nesnesi oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek mevcut olana ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name ” );
Session session = cluster.connect(“ tp” );

Burada tp adlı KeySpace kullanıyoruz. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Aşağıdaki örnekte, adlı bir tabloya bir sütun ekliyoruz. emp. Bunu yapmak için, sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

//Query
String query1 = "ALTER TABLE emp ADD emp_email text";
session.execute(query);

Aşağıda, mevcut bir tabloya sütun eklemek için eksiksiz program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Add_column {

   public static void main(String args[]){

      //Query
      String query = "ALTER TABLE emp ADD emp_email text";

      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
     
      //Creating Session object
      Session session = cluster.connect("tp");
    
      //Executing the query
      session.execute(query);
  
      System.out.println("Column added");
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Add_Column.java
$java Add_Column

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Column added

Bir Sütunu Silme

Aşağıda, mevcut bir tablodan bir sütunu silmek için tam program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Delete_Column {

   public static void main(String args[]){

      //Query
      String query = "ALTER TABLE emp DROP emp_email;";

      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
 
      //Creating Session object
      Session session = cluster.connect("tp");
 
      //executing the query
      session.execute(query);
    
      System.out.println("Column deleted");
   }
 }

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Delete_Column.java
$java Delete_Column

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Column deleted

Masa Düşürmek

Komutu kullanarak bir tablo bırakabilirsiniz Drop Table. Sözdizimi aşağıdaki gibidir -

Sözdizimi

DROP TABLE <tablename>

Misal

Aşağıdaki kod, bir KeySpace'den mevcut bir tabloyu bırakır.

cqlsh:tutorialspoint> DROP TABLE emp;

Doğrulama

Tablonun silinip silinmediğini doğrulamak için Tanımla komutunu kullanın. Emp tablosu silindiğinden, onu sütun aileleri listesinde bulamayacaksınız.

cqlsh:tutorialspoint> DESCRIBE COLUMNFAMILIES;
employee

Java API kullanarak Tablo Silme

Session sınıfının execute () yöntemini kullanarak bir tabloyu silebilirsiniz. Java API kullanarak bir tabloyu silmek için aşağıdaki adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Her şeyden önce, bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paket -

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak bir küme nesnesi oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek mevcut olana ayarlayabilirsiniz.

Session session = cluster.connect(“Your keyspace name”);

Burada adlı anahtar alanını kullanıyoruz tp. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

Session session = cluster.connect(“tp”);

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Aşağıdaki örnekte, adlı bir tabloyu siliyoruz emp. Sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

// Query

String query = "DROP TABLE emp1;”;
session.execute(query);

Aşağıda, Java API kullanarak Cassandra'da bir tablo bırakmaya yönelik eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
 
public class Drop_Table {

   public static void main(String args[]){

      //Query
      String query = "DROP TABLE emp1;";
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
    
      //Creating Session object
      Session session = cluster.connect("tp");
   
      //Executing the query
      session.execute(query);
    
      System.out.println("Table dropped");
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Drop_Table.java
$java Drop_Table

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Table dropped

Bir Tabloyu Kesmek

TRUNCATE komutunu kullanarak bir tabloyu kesebilirsiniz. Bir tabloyu kestiğinizde, tablonun tüm satırları kalıcı olarak silinir. Aşağıda bu komutun sözdizimi verilmiştir.

Sözdizimi

TRUNCATE <tablename>

Misal

Diyelim ki adında bir masa var student aşağıdaki verilerle.

s_id adı Seferberlik s_aggregate
1 Veri deposu O 70
2 rahman EEE 75
3 Robbin Mech 72

Tabloyu almak için select deyimini çalıştırdığınızda student, size aşağıdaki çıktıyı verecektir.

cqlsh:tp> select * from student;

 s_id | s_aggregate | s_branch | s_name
------+-------------+----------+--------
    1 |          70 |       IT | ram
    2 |          75 |      EEE | rahman
    3 |          72 |     MECH | robbin

(3 rows)

Şimdi TRUNCATE komutunu kullanarak tabloyu kesin.

cqlsh:tp> TRUNCATE student;

Doğrulama

Tablonun kesilip kesilmediğini doğrulayın. selectBeyan. Aşağıda verilen, kesildikten sonra öğrenci tablosundaki select ifadesinin çıktısıdır.

cqlsh:tp> select * from student;

 s_id | s_aggregate | s_branch | s_name
------+-------------+----------+--------

(0 rows)

Java API kullanarak bir Tabloyu Kesmek

Session sınıfının execute () yöntemini kullanarak bir tabloyu kesebilirsiniz. Bir tabloyu kısaltmak için aşağıda verilen adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Her şeyden önce, bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak bir küme nesnesi oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturma

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek var olanı ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name ” );
Session session = cluster.connect(“ tp” );

Burada tp adlı keyspace kullanıyoruz. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Aşağıdaki örnekte, adlı bir tabloyu kırpıyoruz emp. Sorguyu bir dize değişkeninde saklamanız ve bunuexecute() yöntemi aşağıda gösterildiği gibi.

//Query
String query = "TRUNCATE emp;;”;
session.execute(query);

Aşağıda, Java API kullanarak Cassandra'da bir tabloyu kesmek için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Truncate_Table {

   public static void main(String args[]){
   
      //Query
      String query = "Truncate student;";
   
      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
   
      //Creating Session object
      Session session = cluster.connect("tp");
   
      //Executing the query
      session.execute(query);
      System.out.println("Table truncated");
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Truncate_Table.java
$java Truncate_Table

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Table truncated

Cqlsh kullanarak bir Dizin Oluşturma

Cassandra'da şu komutu kullanarak bir dizin oluşturabilirsiniz CREATE INDEX. Sözdizimi aşağıdaki gibidir -

CREATE INDEX <identifier> ON <tablename>

Aşağıda, bir sütuna bir dizin oluşturmak için bir örnek verilmiştir. Burada emp adlı bir tablodaki 'emp_name' sütununa bir dizin oluşturuyoruz.

cqlsh:tutorialspoint> CREATE INDEX name ON emp1 (emp_name);

Java API kullanarak bir Dizin Oluşturma

Session sınıfının execute () yöntemini kullanarak bir tablonun sütununa bir dizin oluşturabilirsiniz. Tablodaki bir sütuna bir dizin oluşturmak için aşağıda verilen adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Her şeyden önce, bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak küme nesnesini oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Connect () yöntemini kullanarak Session nesnesinin bir örneğini oluşturun. Cluster aşağıda gösterildiği gibi sınıf.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek var olanı ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name ” );

Burada adı verilen KeySpace'i kullanıyoruz tp. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

Session session = cluster.connect(“ tp” );

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Aşağıdaki örnekte, adlı bir tabloda emp_name adlı bir sütuna bir dizin oluşturuyoruz. emp. Sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

//Query
String query = "CREATE INDEX name ON emp1 (emp_name);";
session.execute(query);

Aşağıda, Java API kullanarak Cassandra'da bir tablodaki bir sütunun indeksini oluşturmak için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Create_Index {
 
   public static void main(String args[]){

      //Query
      String query = "CREATE INDEX name ON emp1 (emp_name);";
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
       
      //Creating Session object
      Session session = cluster.connect("tp");
 
      //Executing the query
      session.execute(query);
      System.out.println("Index created");
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Create_Index.java
$java Create_Index

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Index created

Bir Dizin Düşürmek

Komutu kullanarak bir dizin bırakabilirsiniz DROP INDEX. Sözdizimi aşağıdaki gibidir -

DROP INDEX <identifier>

Aşağıda, bir tablodaki bir sütunun indeksini düşürmek için bir örnek verilmiştir. Burada emp tablosundaki sütun adının dizinini bırakıyoruz.

cqlsh:tp> drop index name;

Java API kullanarak bir Dizini düşürme

Session sınıfının execute () yöntemini kullanarak bir tablonun dizinini bırakabilirsiniz. Bir tablodan bir indeks çıkarmak için aşağıdaki adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Builder object. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak bir küme nesnesi oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek var olanı ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name ” );

Burada adlı KeySpace'i kullanıyoruz tp. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

Session session = cluster.connect(“ tp” );

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya birStatementexecute () yöntemine sınıf nesnesi. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Aşağıdaki örnekte, bir "isim" indeksini bırakıyoruz emptablo. Sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

//Query
String query = "DROP INDEX user_name;";
session.execute(query);

Aşağıda, Java API kullanarak Cassandra'da bir indeksi düşürmek için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Drop_Index {

   public static void main(String args[]){
     
      //Query
      String query = "DROP INDEX user_name;";
 
      //Creating cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();.
 
      //Creating Session object
      Session session = cluster.connect("tp"); 
 
      //Executing the query
      session.execute(query);
      
      System.out.println("Index dropped");
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Drop_index.java
$java Drop_index

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Index dropped

Toplu İfadeleri Kullanma

Kullanma BATCH,Aynı anda birden fazla değişiklik ifadesini (ekleme, güncelleme, silme) çalıştırabilirsiniz. Sözdizimi aşağıdaki gibidir -

BEGIN BATCH
<insert-stmt>/ <update-stmt>/ <delete-stmt>
APPLY BATCH

Misal

Cassandra'da emp adında aşağıdaki verilere sahip bir tablo olduğunu varsayalım -

emp_id emp_name emp_city emp_phone emp_sal
1 Veri deposu Haydarabad 9848022338 50000
2 Robin Delhi 9848022339 50000
3 rahman Chennai 9848022330 45.000

Bu örnekte, aşağıdaki işlemleri gerçekleştireceğiz -

  • Aşağıdaki ayrıntılarla (4, rajeev, pune, 9848022331, 30000) yeni bir satır ekleyin.
  • Çalışanın maaşını satır kimliği 3 ile 50000 olarak güncelleyin.
  • 2. satır kimliği ile çalışanın şehrini silin.

Yukarıdaki işlemleri tek seferde gerçekleştirmek için aşağıdaki BATCH komutunu kullanın -

cqlsh:tutorialspoint> BEGIN BATCH
... INSERT INTO emp (emp_id, emp_city, emp_name, emp_phone, emp_sal) values(  4,'Pune','rajeev',9848022331, 30000);
... UPDATE emp SET emp_sal = 50000 WHERE emp_id =3;
... DELETE emp_city FROM emp WHERE emp_id = 2;
... APPLY BATCH;

Doğrulama

Değişiklik yaptıktan sonra, SELECT deyimini kullanarak tabloyu doğrulayın. Aşağıdaki çıktıyı üretmelidir -

cqlsh:tutorialspoint> select * from emp;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad | ram      | 9848022338 | 50000
      2 | null      | robin    | 9848022339 | 50000
      3 | Chennai   | rahman   | 9848022330 | 50000
      4 | Pune      | rajeev   | 9848022331 | 30000
    
(4 rows)

Burada değiştirilmiş verilerle tabloyu gözlemleyebilirsiniz.

Java API kullanan Toplu İfadeler

Toplu iş ifadeleri, Session sınıfının execute () yöntemi kullanılarak bir tabloya programlı olarak yazılabilir. Java API yardımıyla toplu ifadeyi kullanarak birden çok ifadeyi yürütmek için aşağıdaki adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Küme nesnesini oluşturmak için aşağıdaki kodu kullanın -

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak küme nesnesini oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek var olanı ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name ”);

Burada adlı KeySpace'i kullanıyoruz tp. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

Session session = cluster.connect(“tp”);

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Bu örnekte, aşağıdaki işlemleri gerçekleştireceğiz -

  • Aşağıdaki ayrıntılarla (4, rajeev, pune, 9848022331, 30000) yeni bir satır ekleyin.
  • Çalışanın maaşını satır kimliği 3 ile 50000 olarak güncelleyin.
  • 2. satır kimliği ile çalışanın şehrini silin.

Sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

String query1 = ” BEGIN BATCH INSERT INTO emp (emp_id, emp_city, emp_name,   emp_phone, emp_sal) values( 4,'Pune','rajeev',9848022331, 30000);
UPDATE emp SET emp_sal = 50000 WHERE emp_id =3;
DELETE emp_city FROM emp WHERE emp_id = 2;
APPLY BATCH;”;

Aşağıda, Java API kullanarak Cassandra'da bir tabloda birden çok ifadeyi aynı anda yürütmek için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Batch {

   public static void main(String args[]){
    
      //query
      String query =" BEGIN BATCH INSERT INTO emp (emp_id, emp_city,
         emp_name, emp_phone, emp_sal) values( 4,'Pune','rajeev',9848022331, 30000);"
    
         + "UPDATE emp SET emp_sal = 50000 WHERE emp_id =3;"
         + "DELETE emp_city FROM emp WHERE emp_id = 2;"
         + "APPLY BATCH;";

      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
 
      //Creating Session object
      Session session = cluster.connect("tp");
 
      //Executing the query
      session.execute(query);

      System.out.println("Changes done");
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Batch.java
$java Batch

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Changes done

Bir Tabloda Veri Oluşturma

Komutu kullanarak tablodaki bir satırın sütunlarına veri ekleyebilirsiniz. INSERT. Aşağıda, bir tabloda veri oluşturmak için sözdizimi verilmiştir.

INSERT INTO <tablename>
(<column1 name>, <column2 name>....)
VALUES (<value1>, <value2>....)
USING <option>

Misal

Diyelim ki adında bir masa var emp sütunlarla (emp_id, emp_name, emp_city, emp_phone, emp_sal) ve aşağıdaki verileri emp tablo.

emp_id emp_name emp_city emp_phone emp_sal
1 Veri deposu Haydarabad 9848022338 50000
2 Robin Haydarabad 9848022339 40000
3 rahman Chennai 9848022330 45.000

Tabloyu gerekli verilerle doldurmak için aşağıda verilen komutları kullanın.

cqlsh:tutorialspoint> INSERT INTO emp (emp_id, emp_name, emp_city,
   emp_phone, emp_sal) VALUES(1,'ram', 'Hyderabad', 9848022338, 50000);

cqlsh:tutorialspoint> INSERT INTO emp (emp_id, emp_name, emp_city,
   emp_phone, emp_sal) VALUES(2,'robin', 'Hyderabad', 9848022339, 40000);

cqlsh:tutorialspoint> INSERT INTO emp (emp_id, emp_name, emp_city,
   emp_phone, emp_sal) VALUES(3,'rahman', 'Chennai', 9848022330, 45000);

Doğrulama

Verileri ekledikten sonra, verilerin eklenip eklenmediğini doğrulamak için SELECT deyimini kullanın. Emp tabloyu SELECT deyimini kullanarak doğrularsanız, size aşağıdaki çıktıyı verecektir.

cqlsh:tutorialspoint> SELECT * FROM emp;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |      ram | 9848022338 | 50000
      2 | Hyderabad |    robin | 9848022339 | 40000
      3 |   Chennai |   rahman | 9848022330 | 45000
 
(3 rows)

Burada, tablonun eklediğimiz verilerle doldurulduğunu gözlemleyebilirsiniz.

Java API kullanarak Veri Oluşturma

Session sınıfının execute () yöntemini kullanarak bir tabloda veri oluşturabilirsiniz. Java API kullanarak bir tabloda veri oluşturmak için aşağıda verilen adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint("127.0.0.1");

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak bir küme nesnesi oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek var olanı ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name ” );

Burada adı verilen KeySpace'i kullanıyoruz tp. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

Session session = cluster.connect(“ tp” );

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya birStatementexecute () yöntemine sınıf nesnesi. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Aşağıdaki örnekte, adı verilen bir tabloya veri ekliyoruz emp. Sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

String query1 = “INSERT INTO emp (emp_id, emp_name, emp_city, emp_phone, emp_sal)
   VALUES(1,'ram', 'Hyderabad', 9848022338, 50000);” ;
 
String query2 = “INSERT INTO emp (emp_id, emp_name, emp_city, emp_phone, emp_sal)
   VALUES(2,'robin', 'Hyderabad', 9848022339, 40000);” ;
 
String query3 = “INSERT INTO emp (emp_id, emp_name, emp_city, emp_phone, emp_sal)
   VALUES(3,'rahman', 'Chennai', 9848022330, 45000);” ;
 
session.execute(query1);
session.execute(query2);
session.execute(query3);

Aşağıda, Java API kullanarak Cassandra'da bir tabloya veri eklemek için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Create_Data {

   public static void main(String args[]){

      //queries
      String query1 = "INSERT INTO emp (emp_id, emp_name, emp_city, emp_phone,  emp_sal)"
		
         + " VALUES(1,'ram', 'Hyderabad', 9848022338, 50000);" ;
                             
      String query2 = "INSERT INTO emp (emp_id, emp_name, emp_city,
         emp_phone, emp_sal)"
      
         + " VALUES(2,'robin', 'Hyderabad', 9848022339, 40000);" ;
                             
      String query3 = "INSERT INTO emp (emp_id, emp_name, emp_city, emp_phone, emp_sal)"
       
         + " VALUES(3,'rahman', 'Chennai', 9848022330, 45000);" ;

      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
 
      //Creating Session object
      Session session = cluster.connect("tp");
       
      //Executing the query
      session.execute(query1);
        
      session.execute(query2);
        
      session.execute(query3);
        
      System.out.println("Data created");
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Create_Data.java
$java Create_Data

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Data created

Tablodaki Verileri Güncelleme

UPDATEbir tablodaki verileri güncellemek için kullanılan komuttur. Bir tablodaki verileri güncellerken aşağıdaki anahtar kelimeler kullanılır -

  • Where - Bu madde, güncellenecek satırı seçmek için kullanılır.

  • Set - Bu anahtar kelimeyi kullanarak değeri ayarlayın.

  • Must - Birincil anahtarı oluşturan tüm sütunları içerir.

Satırları güncellerken, belirli bir satır kullanılamıyorsa, UPDATE yeni bir satır oluşturur. Aşağıda, UPDATE komutunun sözdizimi verilmiştir -

UPDATE <tablename>
SET <column name> = <new value>
<column name> = <value>....
WHERE <condition>

Misal

Adında bir tablo olduğunu varsayın emp. Bu tablo, belirli bir şirketin çalışanlarının ayrıntılarını depolar ve aşağıdaki ayrıntıları içerir -

emp_id emp_name emp_city emp_phone emp_sal
1 Veri deposu Haydarabad 9848022338 50000
2 Robin Haydarabad 9848022339 40000
3 rahman Chennai 9848022330 45.000

Şimdi robin'in emp_city'sini Delhi'ye ve maaşını 50000'e güncelleyelim. Gerekli güncellemeleri yapmak için sorgu aşağıda verilmiştir.

cqlsh:tutorialspoint> UPDATE emp SET emp_city='Delhi',emp_sal=50000
   WHERE emp_id=2;

Doğrulama

Verilerin güncellenip güncellenmediğini doğrulamak için SELECT deyimini kullanın. Emp tabloyu SELECT deyimini kullanarak doğrularsanız, aşağıdaki çıktıyı üretir.

cqlsh:tutorialspoint> select * from emp;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |      ram | 9848022338 | 50000
      2 |     Delhi |    robin | 9848022339 | 50000
      3 |   Chennai |   rahman | 9848022330 | 45000
      
(3 rows)

Burada tablo verilerinin güncellendiğini gözlemleyebilirsiniz.

Java API kullanarak Verileri Güncelleme

Session sınıfının execute () yöntemini kullanarak bir tablodaki verileri güncelleyebilirsiniz. Java API kullanarak bir tablodaki verileri güncellemek için aşağıdaki adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint("127.0.0.1");

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Küme nesnesini oluşturmak için aşağıdaki kodu kullanın.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak küme nesnesini oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek var olanı ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name”);

Burada adlı KeySpace'i kullanıyoruz tp. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

Session session = cluster.connect(“tp”);

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Aşağıdaki örnekte emp tablosunu güncelliyoruz. Sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir:

String query = “ UPDATE emp SET emp_city='Delhi',emp_sal=50000
WHERE emp_id = 2;” ;

Aşağıda, Java API kullanarak bir tablodaki verileri güncellemek için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Update_Data {
  
   public static void main(String args[]){
      
      //query
      String query = " UPDATE emp SET emp_city='Delhi',emp_sal=50000"
          
      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
         
      //Creating Session object
      Session session = cluster.connect("tp");
         
      //Executing the query
      session.execute(query);

      System.out.println("Data updated");
   }
 }

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Update_Data.java
$java Update_Data

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Data updated

Select Clause kullanarak Veri Okuma

SELECT yan tümcesi, Cassandra'daki bir tablodan verileri okumak için kullanılır. Bu cümleyi kullanarak tüm tabloyu, tek bir sütunu veya belirli bir hücreyi okuyabilirsiniz. Aşağıda, SELECT yan tümcesinin sözdizimi verilmiştir.

SELECT FROM <tablename>

Misal

Anahtar alanında adlı bir tablo olduğunu varsayın emp aşağıdaki ayrıntılarla -

emp_id emp_name emp_city emp_phone emp_sal
1 Veri deposu Haydarabad 9848022338 50000
2 Robin boş 9848022339 50000
3 rahman Chennai 9848022330 50000
4 Rajeev Pune 9848022331 30000

Aşağıdaki örnek, SELECT yan tümcesi kullanılarak bir tablonun nasıl okunacağını gösterir. Burada adlı bir tablo okuyoruzemp.

cqlsh:tutorialspoint> select * from emp;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |   ram    | 9848022338 | 50000
      2 | null      |   robin  | 9848022339 | 50000
      3 | Chennai   |   rahman | 9848022330 | 50000
      4 | Pune      |   rajeev | 9848022331 | 30000
		
(4 rows)

Gerekli Sütunları Okuma

Aşağıdaki örnek, bir tablodaki belirli bir sütunun nasıl okunacağını gösterir.

cqlsh:tutorialspoint> SELECT emp_name, emp_sal from emp;

 emp_name | emp_sal
----------+---------
      ram | 50000
    robin | 50000
   rajeev | 30000
   rahman | 50000 
	
(4 rows)

Madde nerede

WHERE cümlesini kullanarak, gerekli sütunlara bir kısıtlama koyabilirsiniz. Sözdizimi aşağıdaki gibidir -

SELECT FROM <table name> WHERE <condition>;

Note - WHERE yan tümcesi yalnızca birincil anahtarın bir parçası olan veya üzerlerinde ikincil bir dizin bulunan sütunlarda kullanılabilir.

Aşağıdaki örnekte, maaşı 50000 olan bir çalışanın ayrıntılarını okuyoruz. Her şeyden önce, ikincil endeksi emp_sal sütununa ayarlayın.

cqlsh:tutorialspoint> CREATE INDEX ON emp(emp_sal);
cqlsh:tutorialspoint> SELECT * FROM emp WHERE emp_sal=50000;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |      ram | 9848022338 | 50000
      2 |      null |    robin | 9848022339 | 50000
      3 |   Chennai |   rahman | 9848022330 | 50000

Java API kullanarak Veri Okuma

Session sınıfının execute () yöntemini kullanarak bir tablodaki verileri okuyabilirsiniz. Java API yardımıyla toplu ifadeyi kullanarak birden çok ifadeyi yürütmek için aşağıdaki adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Küme nesnesini oluşturmak için aşağıdaki kodu kullanın.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak küme nesnesini oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek var olanı ayarlayabilirsiniz.

Session session = cluster.connect(“Your keyspace name”);

Burada adı verilen KeySpace'i kullanıyoruz tp. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

Session session = cluster.connect(“tp”);

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Bu örnekte, verileri şuradan alıyoruz: emptablo. Sorguyu bir dizede saklayın ve aşağıda gösterildiği gibi oturum sınıfının execute () yöntemine iletin.

String query = ”SELECT 8 FROM emp”;
session.execute(query);

Session sınıfının execute () yöntemini kullanarak sorguyu yürütün.

Adım 4: ResultSet Nesnesini Alın

Seçili sorgular sonucu şu şekilde döndürür: ResultSet nesne, bu nedenle sonucu nesnede saklayın RESULTSET aşağıda gösterildiği gibi sınıf.

ResultSet result = session.execute( );

Aşağıda, bir tablodan veri okumak için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Session;

public class Read_Data {

   public static void main(String args[])throws Exception{
    
      //queries
      String query = "SELECT * FROM emp";

      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
    
      //Creating Session object
      Session session = cluster.connect("tutorialspoint");
    
      //Getting the ResultSet
      ResultSet result = session.execute(query);
    
      System.out.println(result.all());
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Read_Data.java
$java Read_Data

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

[Row[1, Hyderabad, ram, 9848022338, 50000], Row[2, Delhi, robin,
9848022339, 50000], Row[4, Pune, rajeev, 9848022331, 30000], Row[3,
Chennai, rahman, 9848022330, 50000]]

Select Clause kullanarak Veri Okuma

SELECT yan tümcesi, Cassandra'daki bir tablodan verileri okumak için kullanılır. Bu cümleyi kullanarak tüm tabloyu, tek bir sütunu veya belirli bir hücreyi okuyabilirsiniz. Aşağıda, SELECT yan tümcesinin sözdizimi verilmiştir.

SELECT FROM <tablename>

Misal

Anahtar alanında adlı bir tablo olduğunu varsayın emp aşağıdaki ayrıntılarla -

emp_id emp_name emp_city emp_phone emp_sal
1 Veri deposu Haydarabad 9848022338 50000
2 Robin boş 9848022339 50000
3 rahman Chennai 9848022330 50000
4 Rajeev Pune 9848022331 30000

Aşağıdaki örnek, SELECT yan tümcesi kullanılarak bir tablonun nasıl okunacağını gösterir. Burada adlı bir tablo okuyoruzemp.

cqlsh:tutorialspoint> select * from emp;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |   ram    | 9848022338 | 50000
      2 | null      |   robin  | 9848022339 | 50000
      3 | Chennai   |   rahman | 9848022330 | 50000
      4 | Pune      |   rajeev | 9848022331 | 30000
		
(4 rows)

Gerekli Sütunları Okuma

Aşağıdaki örnek, bir tablodaki belirli bir sütunun nasıl okunacağını gösterir.

cqlsh:tutorialspoint> SELECT emp_name, emp_sal from emp;

 emp_name | emp_sal
----------+---------
      ram | 50000
    robin | 50000
   rajeev | 30000
   rahman | 50000 
	
(4 rows)

Madde nerede

WHERE cümlesini kullanarak, gerekli sütunlara bir kısıtlama koyabilirsiniz. Sözdizimi aşağıdaki gibidir -

SELECT FROM <table name> WHERE <condition>;

Note - WHERE yan tümcesi yalnızca birincil anahtarın bir parçası olan veya üzerlerinde ikincil bir dizin bulunan sütunlarda kullanılabilir.

Aşağıdaki örnekte, maaşı 50000 olan bir çalışanın ayrıntılarını okuyoruz. Her şeyden önce, ikincil endeksi emp_sal sütununa ayarlayın.

cqlsh:tutorialspoint> CREATE INDEX ON emp(emp_sal);
cqlsh:tutorialspoint> SELECT * FROM emp WHERE emp_sal=50000;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |      ram | 9848022338 | 50000
      2 |      null |    robin | 9848022339 | 50000
      3 |   Chennai |   rahman | 9848022330 | 50000

Java API kullanarak Veri Okuma

Session sınıfının execute () yöntemini kullanarak bir tablodaki verileri okuyabilirsiniz. Java API yardımıyla toplu ifadeyi kullanarak birden çok ifadeyi yürütmek için aşağıdaki adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Küme nesnesini oluşturmak için aşağıdaki kodu kullanın.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak küme nesnesini oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek var olanı ayarlayabilirsiniz.

Session session = cluster.connect(“Your keyspace name”);

Burada adı verilen KeySpace'i kullanıyoruz tp. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

Session session = cluster.connect(“tp”);

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Bu örnekte, verileri şuradan alıyoruz: emptablo. Sorguyu bir dizede saklayın ve aşağıda gösterildiği gibi oturum sınıfının execute () yöntemine iletin.

String query = ”SELECT 8 FROM emp”;
session.execute(query);

Session sınıfının execute () yöntemini kullanarak sorguyu yürütün.

Adım 4: ResultSet Nesnesini Alın

Seçili sorgular sonucu şu şekilde döndürür: ResultSet nesne, bu nedenle sonucu nesnede saklayın RESULTSET aşağıda gösterildiği gibi sınıf.

ResultSet result = session.execute( );

Aşağıda, bir tablodan veri okumak için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Session;

public class Read_Data {

   public static void main(String args[])throws Exception{
    
      //queries
      String query = "SELECT * FROM emp";

      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
    
      //Creating Session object
      Session session = cluster.connect("tutorialspoint");
    
      //Getting the ResultSet
      ResultSet result = session.execute(query);
    
      System.out.println(result.all());
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Read_Data.java
$java Read_Data

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

[Row[1, Hyderabad, ram, 9848022338, 50000], Row[2, Delhi, robin,
9848022339, 50000], Row[4, Pune, rajeev, 9848022331, 30000], Row[3,
Chennai, rahman, 9848022330, 50000]]

Bir Tablodan Verileri Silme

Komutu kullanarak bir tablodaki verileri silebilirsiniz. DELETE. Sözdizimi aşağıdaki gibidir -

DELETE FROM <identifier> WHERE <condition>;

Misal

Cassandra'da adlı bir tablo olduğunu varsayalım. emp aşağıdaki verilere sahip olmak -

emp_id emp_name emp_city emp_phone emp_sal
1 Veri deposu Haydarabad 9848022338 50000
2 Robin Haydarabad 9848022339 40000
3 rahman Chennai 9848022330 45.000

Aşağıdaki ifade, son satırın emp_sal sütununu siler -

cqlsh:tutorialspoint> DELETE emp_sal FROM emp WHERE emp_id=3;

Doğrulama

Verilerin silinip silinmediğini doğrulamak için SELECT deyimini kullanın. Emp tabloyu SELECT kullanarak doğrularsanız, aşağıdaki çıktıyı üretir -

cqlsh:tutorialspoint> select * from emp;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |      ram | 9848022338 | 50000
      2 |     Delhi |    robin | 9848022339 | 50000
      3 |   Chennai |   rahman | 9848022330 | null
(3 rows)

Rahman'ın maaşını sildiğimiz için maaş yerine boş bir değer göreceksiniz.

Tüm Satırı Silme

Aşağıdaki komut, bir tablodan tüm satırı siler.

cqlsh:tutorialspoint> DELETE FROM emp WHERE emp_id=3;

Doğrulama

Verilerin silinip silinmediğini doğrulamak için SELECT deyimini kullanın. Emp tabloyu SELECT kullanarak doğrularsanız, aşağıdaki çıktıyı üretir -

cqlsh:tutorialspoint> select * from emp;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |      ram | 9848022338 | 50000
      2 |     Delhi |    robin | 9848022339 | 50000
 
(2 rows)

Son satırı sildiğimiz için tabloda sadece iki satır kaldı.

Java API kullanarak Verileri Silme

Session sınıfının execute () yöntemini kullanarak bir tablodaki verileri silebilirsiniz. Java API kullanarak bir tablodan veri silmek için aşağıda verilen adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Bir küme nesnesi oluşturmak için aşağıdaki kodu kullanın.

//Building a cluster
Cluster cluster = builder.build();

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak küme nesnesini oluşturabilirsiniz.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect();

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek var olanı ayarlayabilirsiniz.

Session session = cluster.connect(“ Your keyspace name ”);

Burada adı verilen KeySpace'i kullanıyoruz tp. Bu nedenle, oturum nesnesini aşağıda gösterildiği gibi oluşturun.

Session session = cluster.connect(“tp”);

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Aşağıdaki örnekte, adlı bir tablodan verileri siliyoruz. emp. Sorguyu bir dize değişkeninde saklamanız ve bunu execute() yöntemi aşağıda gösterildiği gibi.

String query1 = ”DELETE FROM emp WHERE emp_id=3; ”;
session.execute(query);

Aşağıda, Java API kullanarak Cassandra'daki bir tablodan verileri silmek için eksiksiz bir program verilmiştir.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Delete_Data {

   public static void main(String args[]){
   
      //query
      String query = "DELETE FROM emp WHERE emp_id=3;";

      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
       
      //Creating Session object
      Session session = cluster.connect("tp");
       
      //Executing the query
      session.execute(query);
       
      System.out.println("Data deleted");
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Delete_Data.java
$java Delete_Data

Normal koşullar altında aşağıdaki çıktıyı üretmelidir -

Data deleted

CQL, koleksiyon türleri de dahil olmak üzere zengin bir yerleşik veri türü kümesi sağlar. Bu veri türlerinin yanı sıra, kullanıcılar kendi özel veri türlerini de oluşturabilir. Aşağıdaki tablo, CQL'de bulunan yerleşik veri türlerinin bir listesini sağlar.

Veri tipi Sabitler Açıklama
Ascii Teller ASCII karakter dizesini temsil eder
Bigint Bigint 64 bitlik uzun imzalı temsil eder
blob lekeler Keyfi baytları temsil eder
Boole Boole'lar Doğru veya yanlışı temsil eder
counter tamsayılar Sayaç sütununu temsil eder
ondalık tam sayılar, yüzer Değişken hassasiyetli ondalık sayıları temsil eder
çift tamsayılar 64 bit IEEE-754 kayan noktayı temsil eder
yüzen tam sayılar, yüzer 32 bit IEEE-754 kayan noktayı temsil eder
inet Teller Bir IP adresini, IPv4'ü veya IPv6'yı temsil eder
int tamsayılar 32 bitlik işaretli int'i temsil eder
Metin Teller UTF8 kodlu dizeyi temsil eder
timestamp tamsayılar, dizeler Bir zaman damgasını temsil eder
timeuuid uuids Tip 1 UUID'yi temsil eder
uuid uuids Tip 1 veya tip 4'ü temsil eder
UUID
Varchar Teller UTF8 kodlanmış dizeyi temsil eder
çeşit tamsayılar Keyfi hassasiyette tamsayıyı temsil eder

Koleksiyon Türleri

Cassandra Query Language ayrıca bir veri toplama türü sağlar. Aşağıdaki tablo CQL'de bulunan Koleksiyonların bir listesini sağlar.

Toplamak Açıklama
liste Liste, bir veya daha fazla sıralı öğeden oluşan bir koleksiyondur.
harita Harita, anahtar / değer çiftlerinden oluşan bir koleksiyondur.
Ayarlamak Küme, bir veya daha fazla öğeden oluşan bir koleksiyondur.

Kullanıcı tanımlı veri türleri

Cqlsh, kullanıcılara kendi veri türlerini oluşturma olanağı sağlar. Aşağıda, kullanıcı tanımlı veri türleriyle uğraşırken kullanılan komutlar verilmiştir.

  • CREATE TYPE - Kullanıcı tanımlı bir veri türü oluşturur.

  • ALTER TYPE - Kullanıcı tanımlı bir veri türünü değiştirir.

  • DROP TYPE - Kullanıcı tanımlı bir veri türü bırakır.

  • DESCRIBE TYPE - Kullanıcı tanımlı bir veri türünü açıklar.

  • DESCRIBE TYPES - Kullanıcı tanımlı veri türlerini açıklar.

CQL, Koleksiyon veri türlerini kullanma olanağı sağlar. Bu Koleksiyon türlerini kullanarak, tek bir değişkende birden çok değer depolayabilirsiniz. Bu bölüm, Cassandra'da Koleksiyonların nasıl kullanılacağını açıklar.

Liste

Listenin kullanıldığı durumlarda kullanılır

  • elemanların sırası korunacak ve
  • bir değer birden çok kez saklanmalıdır.

Listedeki elemanların indeksini kullanarak bir liste veri türünün değerlerini alabilirsiniz.

Listeli Tablo Oluşturma

Aşağıda, iki sütun, ad ve e-posta içeren örnek bir tablo oluşturmak için bir örnek verilmiştir. Birden fazla e-postayı saklamak için listeyi kullanıyoruz.

cqlsh:tutorialspoint> CREATE TABLE data(name text PRIMARY KEY, email list<text>);

Bir Listeye Veri Ekleme

Bir listedeki öğelere veri eklerken, aşağıda gösterildiği gibi tüm değerleri virgülle ayrılmış köşeli parantez [] içine girin.

cqlsh:tutorialspoint> INSERT INTO data(name, email) VALUES ('ramu',
['[email protected]','[email protected]'])

Liste Güncelleme

Aşağıda, adı verilen bir tablodaki liste veri türünü güncellemek için bir örnek verilmiştir. data. Burada listeye başka bir e-posta ekliyoruz.

cqlsh:tutorialspoint> UPDATE data
... SET email = email +['[email protected]']
... where name = 'ramu';

Doğrulama

Tabloyu SELECT deyimini kullanarak doğrularsanız, aşağıdaki sonucu alırsınız -

cqlsh:tutorialspoint> SELECT * FROM data;

 name | email
------+--------------------------------------------------------------
 ramu | ['[email protected]', '[email protected]', '[email protected]']

(1 rows)

AYARLAMAK

Küme, bir grup öğeyi depolamak için kullanılan bir veri türüdür. Bir kümenin öğeleri sıralı bir düzende döndürülür.

Set ile Masa Oluşturmak

Aşağıdaki örnek, ad ve telefon olmak üzere iki sütun içeren örnek bir tablo oluşturur. Birden fazla telefon numarasını saklamak için set kullanıyoruz.

cqlsh:tutorialspoint> CREATE TABLE data2 (name text PRIMARY KEY, phone set<varint>);

Bir Kümeye Veri Ekleme

Bir kümedeki öğelere veri eklerken, aşağıda gösterildiği gibi tüm değerleri virgülle ayrılmış küme parantezleri {} içine girin.

cqlsh:tutorialspoint> INSERT INTO data2(name, phone)VALUES ('rahman',    {9848022338,9848022339});

Setin Güncellenmesi

Aşağıdaki kod, data2 adlı bir tablodaki bir kümenin nasıl güncelleneceğini gösterir. Burada sete başka bir telefon numarası ekliyoruz.

cqlsh:tutorialspoint> UPDATE data2
   ... SET phone = phone + {9848022330}
   ... where name = 'rahman';

Doğrulama

Tabloyu SELECT deyimini kullanarak doğrularsanız, aşağıdaki sonucu alırsınız -

cqlsh:tutorialspoint> SELECT * FROM data2;

   name | phone
--------+--------------------------------------
 rahman | {9848022330, 9848022338, 9848022339}

(1 rows)

HARİTA

Harita, bir anahtar / değer çiftini depolamak için kullanılan bir veri türüdür.

Haritalı Tablo Oluşturma

Aşağıdaki örnek, ad ve adres olmak üzere iki sütun içeren örnek bir tablonun nasıl oluşturulacağını gösterir. Birden fazla adres değerini saklamak için harita kullanıyoruz.

cqlsh:tutorialspoint> CREATE TABLE data3 (name text PRIMARY KEY, address
map<timestamp, text>);

Bir Haritaya Veri Ekleme

Bir haritadaki öğelere veri eklerken, tüm key : value aşağıda gösterildiği gibi küme parantezleri {} içinde virgülle ayrılmış çiftler.

cqlsh:tutorialspoint> INSERT INTO data3 (name, address)
   VALUES ('robin', {'home' : 'hyderabad' , 'office' : 'Delhi' } );

Setin Güncellenmesi

Aşağıdaki kod, data3 adlı bir tablodaki harita veri türünün nasıl güncelleneceğini gösterir. Burada anahtar ofisin değerini değiştiriyoruz yani robin isimli bir kişinin ofis adresini değiştiriyoruz.

cqlsh:tutorialspoint> UPDATE data3
   ... SET address = address+{'office':'mumbai'}
   ... WHERE name = 'robin';

Doğrulama

Tabloyu SELECT deyimini kullanarak doğrularsanız, aşağıdaki sonucu alırsınız -

cqlsh:tutorialspoint> select * from data3;

  name | address
-------+-------------------------------------------
 robin | {'home': 'hyderabad', 'office': 'mumbai'}

(1 rows)

CQL, kullanıcı tanımlı veri türlerini oluşturma ve kullanma olanağı sağlar. Birden çok alanı işlemek için bir veri türü oluşturabilirsiniz. Bu bölümde, kullanıcı tanımlı bir veri türünün nasıl oluşturulacağı, değiştirileceği ve silineceği açıklanmaktadır.

Kullanıcı Tanımlı Veri Türü Oluşturma

Komuta CREATE TYPEkullanıcı tanımlı bir veri türü oluşturmak için kullanılır. Sözdizimi aşağıdaki gibidir -

CREATE TYPE <keyspace name>. <data typename>
( variable1, variable2).

Misal

Aşağıda, kullanıcı tanımlı bir veri türü oluşturmak için bir örnek verilmiştir. Bu örnekte, bircard_details aşağıdaki ayrıntıları içeren veri türü.

Alan Alan adı Veri tipi
Kredi Kartı Numarası num int
kredi kartı şifresi toplu iğne int
kredi kartı üzerindeki isim isim Metin
cvv cvv int
Kart sahibinin iletişim bilgileri telefon Ayarlamak
cqlsh:tutorialspoint> CREATE TYPE card_details (
   ... num int,
   ... pin int,
   ... name text,
   ... cvv int,
   ... phone set<int>
... );

Note - Kullanıcı tanımlı veri türü için kullanılan ad, ayrılmış tür adlarıyla çakışmamalıdır.

Doğrulama

Kullan DESCRIBE Oluşturulan türün oluşturulup oluşturulmadığını doğrulamak için komut.

CREATE TYPE tutorialspoint.card_details (
   num int,
   pin int,
   name text,
   cvv int,
   phone set<int>
   );

Kullanıcı Tanımlı Veri Türünü Değiştirme

ALTER TYPE- komut, mevcut bir veri türünü değiştirmek için kullanılır. ALTER kullanarak yeni bir alan ekleyebilir veya mevcut bir alanı yeniden adlandırabilirsiniz.

Bir Türe Alan Ekleme

Mevcut bir kullanıcı tanımlı veri türüne yeni bir alan eklemek için aşağıdaki sözdizimini kullanın.

ALTER TYPE typename
ADD field_name field_type;

Aşağıdaki kod, yeni bir alan ekler. Card_detailsveri tipi. Burada e-posta adında yeni bir alan ekliyoruz.

cqlsh:tutorialspoint> ALTER TYPE card_details ADD email text;

Doğrulama

Kullan DESCRIBE yeni alanın eklenip eklenmediğini doğrulamak için komut.

cqlsh:tutorialspoint> describe type card_details;
CREATE TYPE tutorialspoint.card_details (
   num int,
   pin int,
   name text,
   cvv int,
   phone set<int>,
   );

Bir Türdeki Alanı Yeniden Adlandırma

Mevcut bir kullanıcı tanımlı veri türünü yeniden adlandırmak için aşağıdaki sözdizimini kullanın.

ALTER TYPE typename
RENAME existing_name TO new_name;

Aşağıdaki kod, bir türdeki alanın adını değiştirir. Burada alan e-postasını posta olarak yeniden adlandırıyoruz.

cqlsh:tutorialspoint> ALTER TYPE card_details RENAME email TO mail;

Doğrulama

Kullan DESCRIBE tür adının değişip değişmediğini doğrulamak için komut.

cqlsh:tutorialspoint> describe type card_details;
CREATE TYPE tutorialspoint.card_details (
   num int,
   pin int,
   name text,
   cvv int,
   phone set<int>,
   mail text
   );

Kullanıcı Tanımlı Veri Türünü Silme

DROP TYPEkullanıcı tanımlı bir veri türünü silmek için kullanılan komuttur. Aşağıda, kullanıcı tanımlı bir veri türünü silmek için bir örnek verilmiştir.

Misal

Silmeden önce, tüm kullanıcı tanımlı veri türlerinin listesini kullanarak doğrulayın. DESCRIBE_TYPES komutu aşağıda gösterildiği gibi.

cqlsh:tutorialspoint> DESCRIBE TYPES;
card_details card

İki türden, adlı türü silin card Aşağıda gösterildiği gibi.

cqlsh:tutorialspoint> drop type card;

Kullan DESCRIBE veri tipinin düşüp düşmediğini doğrulamak için komut.

cqlsh:tutorialspoint> describe types;

card_details