Описание схем в Cassandra

Опубликовано: 17 Февраля, 2022

В этой статье мы обсудим, где мы можем использовать команды описания, как это поможет описать схему, а также обсудим, чем полезна команда описания. Обсудим по порядку.

    Команда Describe очень полезна в CQL просто потому, что она дает описание вновь созданной базы данных, вновь созданной таблицы, описание функции, если таковая имеется, описание любой пользовательской функции, если таковая имеется. Вы можете увидеть следующие пункты, перечисленные для описания команд.

  • Он дает информацию о кластере.
  • Он предоставляет информацию о типе индекса, созданном для любой таблицы.
  • Он дает информацию о вновь созданной базе данных.
  • Он также дает информацию о функции.
  • Он предоставляет информацию пользовательского типа, если таковая имеется.

Теперь вы можете использовать команду help, чтобы увидеть все варианты использования команды description. Давайте посмотрим.

cassandra @ cqlsh> помогите описать

Выход:

  • ОПИСАТЬ [только cqlsh]
    (DESC может использоваться как сокращение.)
    Выводит информацию о подключенном кластере Cassandra или об объектах данных, хранящихся в кластере. Используйте одним из следующих способов:

  • ОПИСАТЬ КЛЮЧЕВЫЕ ПРОСТРАНСТВА
    Выведите имена всех пространств клавиш.
  • ОПИСАТЬ КЛАВИШУ []
    Выведите команды CQL, которые можно использовать для воссоздания заданного пространства ключей и объектов в нем (таких как таблицы, типы, функции и т. Д.).
    В некоторых случаях по мере развития интерфейса CQL будут появляться некоторые метаданные о пространстве ключей, которые не могут быть представлены с помощью CQL. Эти метаданные не будут отображаться.
    Аргумент ”может быть опущен, и в этом случае будет описано текущее пространство ключей.
  • ОПИСАТЬ ТАБЛИЦЫ
    Вывести имена всех таблиц в текущем пространстве ключей или во всех пространствах ключей, если текущего пространства ключей нет.
    ОПИСАТЬ ТАБЛИЦУ [.]
    

    Выведите команды CQL, которые можно использовать для воссоздания данной таблицы. В некоторых случаях, как указано выше, могут быть метаданные таблицы, которые невозможно представить и которые не будут отображаться.

  • ОПИСАТЬ УКАЗАТЕЛЬ
    Выведите команду CQL, которую можно использовать для воссоздания данного индекса. В некоторых случаях могут быть метаданные индекса, которые невозможно представить и которые не будут отображаться.
  • ОПИСАТЬ МАТЕРИАЛИЗОВАННЫЙ ВИД
    Выведите команду CQL, которую можно использовать для воссоздания данного материализованного представления. В некоторых случаях могут быть материализованные метаданные представления, которые невозможно представить и которые не будут отображаться.
  • ОПИСАТЬ КЛАСТЕР
    Выведите информацию о подключенном кластере Cassandra, такую как имя кластера, а также используемый разделитель и снитч. Когда вы подключены к несистемному пространству ключей, оно также показывает информацию о владении диапазоном конечных точек для кольца Cassandra.
  • ОПИСАТЬ [ПОЛНУЮ] СХЕМУ
    Выведите команды CQL, которые можно использовать для воссоздания всей (несистемной) схемы. Работает так, как будто «DESCRIBE KEYSPACE k» вызывается для каждого несистемного пространства ключей k. Используйте DESCRIBE FULL SCHEMA, чтобы включить системные пространства ключей.
  • ОПИСАТЬ ТИПЫ
    Вывести имена всех определяемых пользователем типов в текущем пространстве ключей или во всех пространствах ключей, если текущего пространства ключей нет.



  • ОПИСАТЬ ТИП [.]
    Выведите команду CQL, которую можно использовать для воссоздания данного пользовательского типа.
  • ОПИСАТЬ ФУНКЦИИ
    Вывести имена всех пользовательских функций в текущем пространстве клавиш или во всех пространствах клавиш, если текущего пространства клавиш нет.
  • ОПИСАТЬ ФУНКЦИЮ [.]
    Выведите команду CQL, которую можно использовать для воссоздания данной пользовательской функции.
  • ОПИСАТЬ АГРЕГАТЫ
    Выведите имена всех определяемых пользователем агрегатов в текущем пространстве ключей или во всех пространствах ключей, если текущего пространства ключей нет.
  • ОПИСАТЬ АГРЕГАТ [.]
    Выведите команду CQL, которую можно использовать для воссоздания заданного пользователем агрегата.
  • ОПИСЫВАТЬ
    Вывод команд CQL, которые можно использовать для воссоздания всей схемы объекта, где объект может быть либо пространством ключей, либо таблицей, либо индексом, либо материализованным представлением (в этом порядке).

Например:
Пример: перечислить все существующие пространства ключей

cassandra @ cqlsh> описать пространства ключей;

Выход

system_schema system backup_copy system_traces университет
system_auth app_data system_distributed операция

Пример: схема пространства ключей app_data

cassandra @ cqlsh> описать app_data;

Выход

СОЗДАТЬ KEYSPACE app_data С репликацией = 
{
'class': 'NetworkTopologyStrategy', 
         'датацентр1': '3', 'датацентр2': '2'
}  
И длительное_писывание = истина;

СОЗДАТЬ ТАБЛИЦУ app_data.t (
    k текст
    я int,
    s текст статический,
    ПЕРВИЧНЫЙ КЛЮЧ (k, i)
) С ПОРЯДОМ КЛАСТЕРИИ ПО (i ASC)
    И bloom_filter_fp_chance = 0,01
    И кеширование = {'ключи': 'ВСЕ', 'строки_на_раздел': 'НЕТ'}
    И комментарий = ''
    И уплотнение = {
'класс': 'org.apache.cassandra
          .db.compaction
          .SizeTieredCompactionStrategy ', 
'max_threshold': '32', 'min_threshold': '4'
}
    И сжатие = {
'chunk_length_in_kb': '64',
 'класс': 'org.apache.cassandra.io.compress.LZ4Compressor'
}
    И crc_check_chance = 1.0
    И dclocal_read_repair_chance = 0.1
    И default_time_to_live = 0
    И gc_grace_seconds = 864000
    И max_index_interval = 2048
    И memtable_flush_period_in_ms = 0
    И min_index_interval = 128
    И read_repair_chance = 0.0
    И speculative_retry = '99ПЕРСЕНТИЛЬ';

СОЗДАТЬ ТАБЛИЦУ app_data.user_data (
    user_id uuid ПЕРВИЧНЫЙ КЛЮЧ,
    текст адреса,
    текст имени
) С bloom_filter_fp_chance = 0,01
    И кэширование = {'ключи': 'ВСЕ', 'строки_на_раздел': 'НЕТ'}
    И комментарий = ''
    И уплотнение = {
'класс': 'org.apache.cassandra.db
               .compaction.SizeTieredCompactionStrategy ', 
'max_threshold': '32', 'min_threshold': '4'}.
    И сжатие = {
'chunk_length_in_kb': '64', 
'класс': 'org.apache.cassandra.io
               .compress.LZ4Compressor '}
    И crc_check_chance = 1.0
    И dclocal_read_repair_chance = 0.1
    И default_time_to_live = 0
    И gc_grace_seconds = 864000
    И max_index_interval = 2048
    И memtable_flush_period_in_ms = 0
    И min_index_interval = 128
    И read_repair_chance = 0.0
    И speculative_retry = '99ПЕРСЕНТИЛЬ';

Пример: схема таблицы user_data

cassandra @ cqlsh> описать app_data.user_data;

Выход

СОЗДАТЬ ТАБЛИЦУ app_data.user_data (
    user_id uuid ПЕРВИЧНЫЙ КЛЮЧ,
    текст адреса,
    текст имени
) С bloom_filter_fp_chance = 0,01
    И кэширование = {'ключи': 'ВСЕ', 'строки_на_раздел': 'НЕТ'}
    И комментарий = ''
    И уплотнение = 
{
'класс': 'org.apache.cassandra
             .db.compaction.SizeTieredCompactionStrategy ',
 'max_threshold': '32', 'min_threshold': '4'
}
    И сжатие = {
'chunk_length_in_kb': '64', 
'класс': 'org.apache.cassandra.io.compress.LZ4Compressor'
}
    И crc_check_chance = 1.0
    И dclocal_read_repair_chance = 0.1
    И default_time_to_live = 0
    И gc_grace_seconds = 864000
    И max_index_interval = 2048
    И memtable_flush_period_in_ms = 0
    И min_index_interval = 128
    И read_repair_chance = 0.0
    И speculative_retry = '99ПЕРСЕНТИЛЬ';

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями теории CS для собеседований по SDE с помощью курса теории CS по доступной для студентов цене и будьте готовы к работе в отрасли.