Cassandra'daki mevcut tüm anahtar alanları nasıl listeleyebilirim?


174

Cassandra'da acemi ve Cassandra kullanarak bir oyuncak uygulaması uygulamaya çalışıyorum. Cassandra DB'mde bir anahtar alanı ve birkaç sütun ailesi oluşturmuştum ama kümemin adını unuttum.

Kullanılabilir tüm anahtar boşlukları listeleyebilirsiniz herhangi bir sorgu olup olmadığını bulmaya çalışıyorum.

Böyle bir sorgu veya komut bilen var mı?


9
C * 3.x : SELECT * FROM system_schema.keyspaces;
belgacea

Bu cevap eski. Doğru cevap burada bağlantı açıklamasını
Vinaya Thimmappa

Yanıtlar:


96

Bunu cqlsharacın dışında yapmak istiyorsanız schema_keyspaces, systemanahtar alanındaki tabloyu sorgulayabilirsiniz. Ayrıca schema_columnfamiliestüm tablolar hakkında bilgi içeren bir tablo var.

DESCRIBEVe SHOWkomutlar sadece iş cqlshve cassandra-cli.


340

[cqlsh 4.1.0 | Cassandra 2.0.4 | CQL spec 3.1.1 | Tasarruf protokolü 19.39.0]

Şu anda, kullanılacak komut şudur:

DESCRIBE keyspaces;

10
Bunu cevap olarak kabul et! Ve bu arada, çıktı bir satırda birden fazla anahtar alanı adı yazdıracaktı.
Eric Wang

3
Cassandra ayrıca aşağıdaki gibi kısa süreli bir komuta izin verir: DESC keyspaces
Hari

30

Çok basit. Tüm tuş alanlarını listelemek için aşağıdaki komutu vermeniz yeterlidir.

Cqlsh> Anahtar boşlukları tanımlayın;

SQL sorgusunu kullanarak sistem şemasındaki anahtar boşluğunu kontrol etmek istiyorsanız

komut aşağıdadır.

SELECT * FROM system_schema.keyspaces;

Umarım bu soruya cevap verir ...

Aşağıdaki kaynaklardan anahtar alanların anlaşılması ve oluşturulması ile ilgili açıklamaları inceleyebilirsiniz.

Belgeler:

https://docs.datastax.com/en/cql/3.1/cql/cql_reference/create_keyspace_r.html https://www.i2tutorials.com/cassandra-tutorial/cassandra-create-keyspace/


13

Bulundu ... show keyspaceskomutu tüm anahtar boşluklarını listeler. Daha önce bu komutu denediğimde, 'anahtar alanlarda' son 'ları vermeyi unuttum.


8
Bir cassandra-cli veya cqlsh komutunun nasıl tamamlanacağına ilişkin ipuçlarını görmek için sekme tamamlamayı kullanabilirsiniz. Sözdizimini unutursanız bu size yardımcı olabilir. Örneğin, geçerli show komutlarını görmek için "show" ve ardından sekmesini yazmanız yeterlidir.
Ike Walker

3
Cevabınızdaki ikincil nokta (bazı insanlar için) cevabın en değerli kısmı olacaktır. Şeyler "cqlsh" ve "cassandra-cli" arasında çok farklı çalışır (ve soru posteri hangisini kullandığını göstermez). tuş uzaylarını göster; tanımla (anahtar alanı adı). NOT: Biri "cqlsh" kullanıyorsa, bir anahtar alanı veya sütun ailesindeki herhangi bir karışık veya büyük harf adı için tırnak işareti gerektirir (Tamam, poster bunu sormadı, ancak C * için yeniyse yaygın bir kullanıcı hatasıdır)
Scott Prive

5

Bir kez cqlsh veya cassandra-cli giriş. aşağıdaki komutları çalıştır

  • Cqlsh üzerinde

desc keyspaces;

veya

describe keyspaces;

veya

select * from system_schema.keyspaces;

  • Cassandra-cli üzerinde

show keyspaces;


4

DESCRIBEKomut senin arkadaşın. Bir anahtar boşluğunu, anahtar boşluklarını, bir tabloyu tanımlayabilir veya tüm anahtar tabloları, küme ve kümedeki tüm tabloları listeleyebilirsiniz. Yazarak tam fikri edinebilirsiniz

HELP DESCRIBE cqlsh.

127.0.0.1:9042'de mscluster'a bağlandı. [cqlsh 5.0.1 | Cassandra 3.8 | CQL spec 3.4.2 | Yerel protokol v4] Yardım için HELP kullanın.

cqlsh> YARDIM AÇIKLAMASI

    DESCRIBE [cqlsh only]

    (DESC may be used as a shorthand.)

      Outputs information about the connected Cassandra cluster, or about
      the data objects stored in the cluster. Use in one of the following ways:...<omitted for brevity>
  • DESCRIBE <your key space name>- anahtar boşluğu oluşturmak için kullanılan komutu açıklar

cqlsh> DESCRIBE testkeyspace;

Replik = {'class': 'SimpleStrategy', 'replication_factor': '3'} İLE KEYSPACE testkeyspace OLUŞTUR: AND dura_writes = true;

  • DESCRIBE tuş alanları - tüm tuş alanlarını listeler

cqlsh> AÇIKLAMA ANAHTAR KELİMELER

system_schema system testkeyspace system_auth
system_distributed system_traces

  • DESCRIBE TABLES - Geçerli anahtar alanındaki tüm tabloları listele

cqlsh: sistem> AÇIKLAMA TABLOLARI;

available_ranges eşler paxos
range_xfers gruplar compaction_history batchlog
yerel "IndexInfo" sstable_activity
size_ tahmin ipuçları görüntüler_builds_in_progress peer_events
built_views

  • DESCRIBE your table nameveya DESCRIBE TABLE your table name- Tablo ayrıntılarını verir

cqlsh: system> DESCRIBE TABLE toplu iş günlüğü

CREATE TABLE system.batchlog (id uuid PRIMARY KEY, veri bloğu, sürüm int, yazılı_at zaman damgası) WITH bloom_filter_fp_chance = 0.01 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} AND comment = ' DEPRECATED batchlog girişler .... kısalık için atlandı


4

DESC KEYSPACES işi yapacak.

Ayrıca, belirli bir tuş alanının şemasını tanımlamak isterseniz

AZALAN


2
  1. cqlsh oturumu aç
  2. açıklama tuşları;
  3. system_schema.keyspaces öğesinden * seçin;

2

Apache Cassandra NoSQL Veritabanı Sunucunuzdaki tüm tuş alanlarını görmek için şu komutu kullanın:

> DESCRIBE KEYSPACES 



1

Ben bir kombinasyonunu önermek grepve awk:

root@DC1-Node1:/home# nodetool tablestats | grep "Keyspace :" | awk -F ":" '{print $2}'
 system_traces
 system
 system_distributed
 system_schema
 device_tool
 system_tool

cevap için teşekkür ederim ama tuş boşluklarını görmenin en basit yolu "DESCRIBE keyspace" komutunu kullanmaktır. Grep ve awk gerek yok.
Shekhar

0

Yukarıdaki yöntemin dışında, yüklü merkeziniz varsa,

  1. Veri sekmesine gidin> orada sizin tarafınızdan oluşturulan tüm tuş alanlarını ve bazı sistem tuş alanlarını göreceksiniz.
  2. Tüm tabloları ayrı ayrı anahtarlıklar altında ve ayrıca anahtar alanı için çoğaltma faktörünü görebilirsiniz.

daha fazla bilgi için aşağıdaki bağlantıyı kontrol edin. https://docs.datastax.com/en/opscenter/6.1/opsc/online_help/opscDataModelingManagingKeyspace_t.html


0
  1. cqlsh oturumu aç

  2. Mevcut anahtar boşluklarının isimlerini / listesini almak için aşağıdaki komutu kullanın

         SELECT keyspace_name FROM system_schema.keyspaces;
    

1
Cassandra sürümüne bağlıdır ... Ayrıca, bu cevabın öncekinden farkı nedir?
Alex Ott

-1

açıklar ve desc komutu kümedeki anahtar alanların listesini verir. Daha fazla ayrıntı için lütfen aşağıdaki çıktıya bakın.

cqlsh> describe keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces

VEYA

cqlsh> desc keyspaces
reaper_db      system_auth  system_distributed
system_schema  system       system_traces

cevabın diğer cevaplardan nasıl farklı? Ayrıca - bu komutlar cqlshher yerde değil , sadece çalışıyor ...
Alex Ott

cassandra @ node1: ~ $ düğüm düğümü tabloları | grep "Keyspace:" Keyspace: reaper_db Keyspace: system_traces Keyspace: system Keyspace: system_distributed Keyspace: system_schema Keyspace: system_auth cassandra @ node1: ~ $
Srikant Patra

Cqlsh
Alex Ott
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.