По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Цель данной статьи, чтобы разобраться с тем как поправить незначительные ошибки, возникающие в файловых системах. Файловых систем много, поэтому много различных инструментов для работы с ними. Поэтому будет рассказано об основных инструментах к основным стандартным системам Linux. И рассмотрим несколько инструментов к рекомендованным LPIC файловым системам. Рассмотрим, так же журналируемые файловые системы и посмотрим индексные дескрипторы. Проверка целостности файловой системы; Проверка свободного пространства и индексных дескрипторов в файловой системе; Исправление проблем файловой системы. Список утилит: df, du, fsck, debugfs – общие утилиты для всех Linux систем mke2fs, e2fsck, dumpe2fs, tune2fs – утилиты для файловой системы ext xfs_check, xfs_repair, xfs_info, xfs_metadump – утилиты для файловой системы xfs Совершенно понятно, что для других файловых систем есть свои утилиты для работы с данными файловыми сиcтемами. Первая утилита df: man df Данная утилита показывает использование дискового пространства. У данной утилиты достаточно много ключей. Её особенностью является то, что она показывает дисковое пространство в 1 кбайт блоках. Данные цифры не очень понятны и удобны, для того чтобы было удобно можно использовать ключ –h и тогда вид станет удобно читаемым. В выводе команды мы сразу видим размер, сколько использовано, процент использование и точка монтирования. Как мы видим на новом перемонтированном разделе /dev/sdc1 занят 1% дискового пространства. Если посмотреть в папку монтирования раздела, то мы увидим там папку lost+found. Данная папка пуста, но занимает 37 МБ. Есть такое понятие индексные дескрипторы в журналируемых файловых системах inode. Inode – это метка идентификатора файла или по другому индексный дескриптор. В этих индексных дескрипторах хранится информация о владельце, типе файла, уровне доступа к нему. И нужно понимать, что для каждого файла создается свой отдельный inode. Команда df –I может показать нам inode. Число, например, inode напротив /dev/sda2 показывает сколько inode всего может быть на устройстве, далее сколько используется и сколько свободно. Обычно под inode отдается примерно 1% жесткого диска. И получается, что больше чем число inode на устройстве файлов и папок быть не может. Количество inode зависит от типа файловой системы. Далее мы рассмотрим, как пользоваться inode. Следующая команда du man du Данная команда показывает, что и сколько занимает у нас места на жестком диске, а именно размер папок в текущей директории. Если посмотреть вывод данной команды без ключей, то мы увидим список папок в текущей директории и количество блоков, с которым очень неудобно работать. Чтобы перевести данные блоки в человеческий вид, то необходимо дать ключ –h. А для еще большего удобства, можно установить замечательную утилиту ncdu простой командой. sudo apt install ncdu –y После установки нужно запустить ncdu. И мы увидим очень красивую картинку. Но вернемся к стандартной утилите du. С помощью данной утилиты мы можем указать в какой папке необходим просмотр папок и вывод их размера. du –h /home К сожалению данная утилита умеет взвешивать вес только каталогов и не показывает размер файлов. Для того, чтобы посмотреть размер файлов, мы конечно же можем воспользоваться командой ls –l. А также если мы запустим данную команду с ключем –i мы увидим номера inode файлов. Как вы видите у каждой папки и у каждого файла есть свой индексный дескриптор. Далее команды, которые нам позволят проверить целостность файловой системы. Команда fsck man fsck Как написано в описании утилиты она позволяет проверять и чинить Linux файловую систему. Мы можем видеть, например, в oперационной системе Windows, что в случае некорректного завершения работы операционной системы, операционная система запускает утилиту проверки целостности checkdisk. В случае необходимости данная утилита исправляет найденные ошибки в файловой системе. Следовательно, в Linux данные операции выполняет утилита fsck, причем может работать с различными файловыми системами Linux операционных систем. Мы можем попробовать воспользоваться утилитой fsck /dev/sdc1. В ответ от операционной системы мы получим следующее: Как мы видим операционная система вернула в ответ на команду для работы с данным разделом, что данный раздел с монтирован и операция прервана. Аналогичную ситуацию мы будем наблюдать в операционной системе Windows, если мы будем пытаться рабочий раздел проверить на ошибки. Т.е возникнет следующая ситуация. Если мы будем проверять дополнительный логический диск, где не установлена операционная система Windows, то данный раздел на время проведения тестов будет отключен и будут идти проверки. А если мы попытаемся проверить основной раздел, куда установлена операционная система Windows, то операционная система не сможет запустить данную утилиту и попросит перезагрузиться для запуска данной утилиты. В нашем случае придется делать точно так же. Поэтому, чтобы проверить необходимо отключить (от монтировать раздел) и после уже этого запускать утилиту. Из вывода можно заметить утилита пыталась запустить другую утилиту e2fsck, которая в данном случае отвечает за проверку файловых систем extext2ext3ext4. О чем достаточно подробно написано в описании данной утилиты. По сути fsck запускает утилиту ту, которая идет в пакете утилит для конкретной файловой системы. Бывает такое, что fsck не может определить тип файловой системы. Для того, чтобы утилита все-таки проверила файловую систему, необходимо отмонтировать логический раздел. Воспользуемся командой umount /mnt. И запускаем непосредственно саму проверку fsck –t ext4 /dev/sdc1 Проходит проверка моментально. Команда fsck запустилась и запустила необходимую утилиту для файловой системы. По результатам проверки файловая система чистая, найдено 11 файлов и 66753 блока. При обнаружении проблем, утилита предложила нам исправить. Для того, чтобы посмотреть на проверку другой файловой системы, необходимо переформатировать раздел. mkfs –t xfs –f /dev/sdc1 При попытке запуска проверки без указания типа файловой системы fsck /dev/sdc1 Как мы видим, утилита fsck отказалась проверять или вызывать утилиту, а явно указала на ту которую необходимо использовать в данном случае. Для проверки используем xfs_ncheck /dev/sdc1. А для починки файловой системы xfs_repair /dev/sdc1. Перемонтируем обратно наш раздел mount /dev/sdc1 /mnt Теперь можно получить информацию по разделу xfs_info /dev/sdc1 Или сделать дамп файловой системы xfs_metadump /dev/sdc1 dump.db Переформатируем файловую систему ext4 на разделе обратно /dev/sdc1. Перемонтируем в папку mnt. Создадим текстовый файл с текстом на данном разделе nano /mnt/test.txt Далее мы можем посмотреть следующую утилиту man debugfs. Данная утилита умеет очень многое: очень много ключей и различных опций. Чистит, удаляет, чинит, работает с inodes. Зайти в данную утилиту можно debugfs –w /dev/sdc1. Набираем help и видим кучу опций. Можно попросить данную утилиту вывести содержимое нашего тома. ls В результате данной команды мы увидим 2 объекта с номерами их inode. Теперь мы можем сказать rm test.txt и файл будет удален, точнее не сам файл а его индексный дескриптор., если посмотреть опять с помощью команды ls. То будет видно, что количество объектов не изменилось. Следовательно, мы этот файл в журналируемых файловых системах можем восстановить, восстановив его индексный дескриптор. Но только до тех пор, пока на место удаленного файла не был записан другой. Именно поэтому если требуется восстановление информации на диске, рекомендуется немедленно отключить ПК и после этого отдельно подключать носитель информации для процедуры восстановления. Так же на данном принципе основано сокрытие информации в Информационной безопасности, когда на носитель информации в 2 или 3 прохода записываются псевдослучайные данные. Для восстановления данных мы можем использовать команду lsdel. Данная команда показывает удаленные файлы. В принципе на данном debugfs и основаны многие программы для восстановления данных. На скриншоте хорошо видно, что был удален 1 inode с номером 12 дата и время, другие параметры. Для выхода используем q. Для восcтановления используем undel test.txt, команда, номер индексного дескриптора и имя файла с которым оно восстановится. Убедиться, что файл на месте можно с помощью команды ls. Утилита debagfs помогает восстанавливать файлы и вообще работать с файловой системой на низком уровне. Конечно восстанавливать по 1 файлу, это очень трудозатратно. Поэтому вот эти низкоуровневые утилиты используют более современные программы. Еще одна утилита dumpe2fs. Можно вызвать справку по данной утилите man dumpe2fs Данная команда делает дамп информации, которая хранится на данных томах. Выполним данную команду для /dev/sdc1 Мы получим следующий вывод информации. Данный вывод был сделан на стандартный вывод – т.е экран. Сделаем вывод в файл, например: dumpe2fs /dev/sdc1 > /tmp/output.txt Мы можем просмотреть информацию в выведенную в файл поэкранно с помощью less /tmp/output.txt В выводе мы сможем увидеть основные опции данной файловой системы. Переделаем файловую систему, текущую ext4 в ext2. Это можно сделать 3-мя способами с помощью утилит: mkfs, mke2fs, mkfs.ext2. Перед переформатирование необходимо отмонтировать файловую систему. После форматирования и перемонтируем. Опять снимаем дамп и передаем по конвееру на команду grep чтобы посмотреть features. Получаем следующее: dumpe2fs /dev/sdc1 | grep features И видим, что файловые системы отличаются, более новая файловая система имеет фишку журналирования has_jounal. Данная опция так же присутствует в ext3. Т.е в данных файловых системах имеются журналы с помощью которых удобно восстанавливать. Есть интересная утилита tune2fs – настраивать файловую систему. man tune2fs Данная утилита, как следует из описания настраивает настраиваемые параметры файловых систем. Например, у нас есть не журналируемая файловая система ext2. Мы даем команду tune2fs –O has_journal /dev/sdc1. Данная утилита добавляет опцию ведения журнала к файловой системе ext2. Или можем наоборот сказать удалить опцию поставив значок ^.
img
VMware является лидером в области технологий виртуализации и облачных вычислений и предоставляет решения для виртуализации сетей и настольных ПК. VMware изменила мир технологий с физического на виртуальный на основе программного обеспечения. Благодаря внедрению виртуальной среды для консолидации аппаратной инфраструктуры на рынке день ото дня растёт необходимость в профильных экспертах. Для управления и обслуживания бизнеса организации требуется опытный персонал. Для выбора лучших талантов на рынке проводятся несколько технических собеседований. Ниже приведены некоторые основанные на сценариях вопросы и ответы опытных ИТ-администраторов (опыт работы до 5 лет) по технологии виртуализации центров обработки данных, которые могут быть использованы для оценки технических и практических знаний кандидата. 1. Администратор хочет подключить к ESXi хосту непосредственно с веб-клиента vSphere. Какие порты нужно открыть? Обычно веб-клиент vSphere используется для подключения к серверу vCenter, а VClient - для подключения к хостам ESXi. Но vSphere Web Client также может использоваться для подключения к хостам. Для этого потребуется открыть порты TCP 443, TCP и UDP 902, а также TCP 903, которые должны быть открыты из Security Profile. 2. Неверное время на хосте ESXi 6.x. Что должен сделать администратор для устранения этой проблемы? Чтобы исправить время на хосте ESXi, нужно изменить время хоста с помощью клиента vSphere и подправить настройки NTP в файле /etc/ntp.conf. 3. Администратор хочет завершить работу хоста ESXi. Какой параметр должен использоваться в Direct Console User Interface (DCUI) для выполнения этой задачи? Для завершения работы хоста из консоли (DCUI) администратор нажимает клавишу F12. 4. Администратор подключается к хосту ESXi через vCenter Server с помощью веб-клиента vSphere, но напрямую через VClient не может. Что он должен сделать для прямого доступа к хосту ESXi? Если хост ESXi, доступен через vSphere Web Client, и не доступен напрямую, следует проверить не включена ли блокировка (Lockdown). Если включена, нужно его отключить. Поскольку при включённой функция блокировки доступ к хостам ESXi возможен только через сервер vCenter; получить прямой доступ ни к одному хосту невозможно. 5. Администратор хочет использовать центр сертификации VMware (VMCA) в качестве промежуточного центра сертификации (Intermediate CA). Он уже заменил корневой сертификат и сертификаты машин (Intermediate CA). Что ему делать дальше? После замены корневого сертификата и сертификата машины (Intermediate CA) необходимо выполнить следующие два шага: Замена Solution User Certificate (Intermediate CA) Замена сертификата службы каталогов VMware. 6. Если на хосте ESXi включен режим строгой блокировки, какое действие должен выполнить администратор, чтобы пользователям с правами администратора разрешить доступ к оболочке ESXi или SSH? Администратор должен добавить пользователей в список исключений и включить службу, чтобы разрешить доступ к оболочке ESXi или SSH. 7. SSO является важным компонентом сервера vCenter. Какой компонент SSO выдает токены SAML (Security Assertion Markup Language)? Токены SAML предоставляет компонент VMware Security Token Service службы SSO. 8. Какой допустимый источник удостоверений используется для настройки SSO vCenter? Допустимым источником удостоверений для настройки vCenter SSO является OpenLDAP. 9. Что происходит с файлами в общем хранилище при удалении библиотеки компонентов? При удалении библиотеки компонентов все хранящиеся в ней файлы будут удалены. 10. Какое максимальное количество процессоров vCPU может быть выделено для виртуальной машины в vSphere 6.0? Для виртуальной машины vSphere 6.0 может быть выделено не более 128 vCPU. 11. Пользователь домена Windows может войти в систему vSphere с помощью веб-клиента vSphere. Каковы требования к доступности и функциональности этой функции? Администратор может разрешить пользователям входить в vSphere Web Client используя сеанс Windows. Для этого нужно установить подключаемый модуль браузера vSphere Web Client Integration на каждом компьютере, с которого будет выполняться вход пользователя. Пользователи должны войти в Windows с помощью учетных записей Active Directory. Кроме того, администратор должен создать допустимый источник удостоверений SSO для домена пользователей. 12. Администратор хочет клонировать виртуальную машину с помощью клиента vSphere. Чем можно объяснить отсутствие опции Clone в контекстном меню? Клонирование виртуальной машины может быть выполнена с сервера vCenter, к которому подключены через веб-клиент vSphere или VClient. При прямом подключении к хосту ESXi клонирование виртуальной машины невозможно. 13. Что произойдет, если файл .nvram будет случайно удален из виртуальной машины? NVRAM-файл используется для сохранения состояния BIOS виртуальной машины. Если он будет удален по какой-либо причине, то файл .nvram будет создан снова при включении виртуальной машины. 14. Администратор хочет подключиться к хосту ESXi 6.x через клиент vSphere 5.5. Что произойдет? Если администратор попытается подключиться к хосту ESXi 6.x с клиента vSphere 5.5, система предложит администратору запустить скрипт для обновления клиента vSphere. 15. Какой из дополнительных частных сетей VLAN (PVLAN) может отправлять пакеты в изолированную сеть PVLAN? Неразборчивый тип PVLAN может передавать пакеты в изолированную PVLAN. 16. При установке vCenter какие роли предлагаются по умолчанию? При установке vCenter предлагаются роли пользователя виртуальной машины и администратора сети. 17. Что произойдет, если для программного хранилища FCoE произойдет ошибка отказа всех путей (APD)? Если все пути находятся в нерабочем состоянии, на сетевых портах активируется протокол связующего дерева. 18. Какие методы доступны для обновления ESXi 5.x до ESXi 6.x? Для обновления могут использоваться vSphere Update Manager (VUM), средство командной строки esxcli и vSphere Auto Deployment. 19. Что должен сделать администратор перед обновлением оборудования виртуальной машины? Перед обновлением оборудования виртуальной машины необходимо создать резервную копию или моментальный снимок виртуальной машины, обновить VMware Tools до последней версии и убедиться, что виртуальная машина хранится в хранилище данных VMFS или NFS. 20. При установке vCenter Single Sign-On не удается выполнить обновление сервера vCenter. Что необходимо сделать для завершения процесса обновления? Перед обновлением vCenter Server убедитесь, что служба VMware Directory может остановиться, перезапустив ее вручную. Если сервис может быть остановлен вручную, можно запустить процесс обновления сервера vCenter. 21. Какие предварительные условия следует учитывать перед обновлением vCenter Server Appliance? И в случае повышения категории vCenter Server Appliance (vCSA) и после новой установки будет установлен подключаемый модуль интеграции клиентов (CIP). 22. После развертывания PSC сервер vCenter Server не устанавливается и выдает следующую ошибку: Could not contact Lookup Service. Please check VM_ssoreg.log. (Не удалось связаться со службой поиска. Проверьте VM_ssoreg.log). При появлении этой ошибки убедитесь, что часы на хост-компьютерах, на которых работают PSC, vCenter Server и веб-клиент vSphere синхронизированы. Кроме того, убедитесь, что порт 7444 между PSC и сервером vCenter не блокируется межсетевым экраном. 23. Администратор установил Windows Server 2008 и хочет установить на него vCenter Server, но при установке на виртуальную машину Windows произошел сбой? Для установки vCenter Server требуется 64-разрядная ОС Windows. Если вы попытаетесь установить его в Windows Server 2008 ничего не получится. vCenter Server может быть установлен на ОС Windows Server 2008 R2 или более поздней версии. 24. Какова минимальная версия виртуального оборудования, необходимая для vFlash Read Cache? vFlash Read Cache был первым в vSphere 5.5, а минимальная версия виртуального оборудования для vSphere 5.5 - 10. 25. Узел ESXi добавлен в vCenter Server, но не отвечает в vSphere Web Client. Какой порт должен быть открыть в брандмауэре? Если администратор не получает от хоста ESXi 6.x в vCenter Server, проблема вызвана блокировкой трафика сетевым брандмауэром. Поэтому он должен проверить, что порт 902 (UDP) не заблокирован брандмауэром. В случае блокировки включите порт из профиля безопасности с помощью веб-клиента vSphere, выбрав указанный хост ESXi в vCenter Server. 26. Предположим, что виртуальная машина неожиданно выключилась. Какие файлы журналов виртуальной машины следует просмотреть для выявления причины и устранения этой проблемы? В данном случае администратор должен проверить файлы журнала vmware.log и hostd.log. 27. В чем может быть причина orphaned (осиротевший) состояния виртуальной машины? Если виртуальная машина находится в состоянии orphaned, это может по причине ошибки в работе функции отказоустойчивости. Виртуальная машина не была зарегистрирована непосредственно на хосте ESXi. 28. При обновлении хоста ESXi 5.5 до ESXi 6.x появляется следующая ошибка: MEMORY_SIZE. Как устранить проблему? Это указывает на нехватку памяти на хосте ESXi для завершения процесса обновления хоста ESXi с ESXi 5.5 до ESXi 6.x. 29. При удалении хоста из распределенного коммутатора vSphere (vDS) возникает следующее сообщение об ошибке: Ресурс «10» используется (The resource ’10’ is in use) Перед удалением vDS убедитесь, что сетевые адаптеры VMkernel на vDS не используются. Если используется какой-либо из ресурсов vDS, появится вышеупомянутое сообщение об ошибке с идентификатором ресурса. 30. Администратор хочет захватить и отследить сетевой трафик для виртуальной машины, но не получает ожидаемого трафика в средстве захвата пакетов. Что он должен сделать, чтобы решить проблему? Если администратору необходимо захватить сетевой трафик для виртуальной машины, он должен включить режим неразборчивости для соответствующей группы портов. Затем можно захватить сетевой трафик с помощью любого инструмента сбора сетевого трафика. 31. Кластер vSAN создается с шестью узлами вместе с доменом отказа, и три из них перемещаются в домен отказа. Один узел отказоустойчивого домена отказал. Что произойдет с оставшимися двумя узлами в домене отказа? При отказе узла-члена отказоустойчивого домена оставшиеся два узла будут считаться недоступными. 32. На каком уровне строится отказоустойчивый домен vSAN? Отказоустойчивый домен настроен на уровне кластера vSAN, и узлы будут добавлены в этот домен. Если какой-либо узел-член отказывает по какой-либо причине, остальные члены также будут рассматриваться как отказавшие. 33. Обнаружено, что активность хранилища виртуальных машин на хосте ESXi 6.x негативно влияет на активность хранилища виртуальных машин на другом хосте, который получает доступ к тому же хранилищу данных VMFS. Какие действия могли бы устранить эту проблему? Для устранения воздействия работы хранилища одной виртуальной машины на работу другой виртуальной машины необходимо включить контроль ввода-вывода хранилища данных (SIOC). Данная технология обеспечивает столь необходимое управление вводом-выводом систем хранения данных и должно использоваться для обеспечения того, чтобы производительность критически важных виртуальных машин не влияла на работу виртуальных машин других хостов, когда возникает конкуренция за ресурсы ввода-вывода. 34. При обновлении хоста ESXi с версии 5.5 до версии 6.0 администратор выполняет следующую команду: esxcli software vib list --rebooting-image. Что делает данная команда? Эта команда отображает все активные VIB (vSphere Installation Bundle). VIB представляет собой коллекцию файлов, таких как tarball или zip, упакованных в единый архив для облегчения распространения. 35. Какие счетчики будут использоваться для устранения проблем с производительностью ЦП виртуальной машины, чтобы продемонстрировать конкуренцию ЦП? Для тестирования производительности хоста ESXi в виде памяти, ЦП и использования сети используется средство ESXTOP. Это отличный инструмент, доступный администраторам VMware для устранения проблем с производительностью. Для настройки ESXTOP потребуется vSphere Client, а также должны быть включены сеансы putty и SSH. Для тестирования производительности ЦП используются счетчики %RDY, %MLMTD и %CSTP. 36. Администратор пытается запустить esxtop, включив SSH и используя putty для устранения проблем с производительностью ЦП, но выходные данные не отображаются. Как решить эту проблему? Для отображения выходных данных в ESXTOP нажмите f и установите звездочку рядом с каждым полем, которое должно отображаться. 37. Администратор хочет отслеживать виртуальные машины на хосте с помощью vCenter Server и отправлять уведомления, когда использование памяти превышает 80%. Что должен сделать администратор на сервере vCenter для выполнения этой задачи? Для мониторинга использования памяти виртуальной машины и получения уведомления при достижении определённого порога, нужно создать уведомление в vCenter Server и привязать действие по отправке уведомлений по электронной почте. 38. Администратор создал кластер DRS, и он стал несбалансированным. Что может быть причиной этому? Кластер DRS может стать несбалансированным, когда правила Affinity препятствуют перемещению виртуальных машин. Кроме того, устройство, подключенное к виртуальной машине, предотвращает миграцию с одного хоста на другой. 39. ИТ-администратор настроил два сервера vCenter в пределах PSC и должен предоставить пользователю право доступа ко всем средам. Какой уровень доступа нужно выдать для этого? Для доступа к нескольким серверам vCenter в пределах PSC требуется глобальное разрешение на доступ ко всем средам. 40. Администратор создал 10 хостов ESXi 6.x с помощью функции автоматического развертывания для нового кластера Test/Dev, и все хосты настроены на получение своего IP-адреса через DHCP. Какой параметр DCUI должен использоваться администратором для продления аренды DHCP для хостов? Для возобновления аренды DHCP для хостов используется опция «Reset Management Network» в консоли ESXi (DCUI).
img
Apache Cassandra — это программное обеспечение распределенной базы данных с открытым исходным кодом для работы с базами данных NoSQL. Это программное обеспечение использует язык запросов Cassandra - CQL в качестве основы для связи. CQL хранит данные в таблицах, организованных в виде набора строк со столбцами, содержащими пары ключ-значение. Таблицы CQL сгруппированы в контейнеры данных, которые в Cassandra называются пространствами ключей (keyspace). Данные, хранящиеся в одном пространстве ключей, не связаны с другими данными в кластере. Таким образом, вы можете иметь таблицы для разных целей в отдельных пространствах ключей в кластере, и данные не будут совпадать. В этом руководстве вы узнаете, как создать таблицу Cassandra для различных целей, а также как изменять, удалять или очищать таблицы с помощью оболочки Cassandra. Выбор пространства ключей для таблицы Cassandra Прежде чем вы начнете добавлять таблицу, вам нужно определить пространство ключей, в котором вы хотите создать свою таблицу. Есть два варианта сделать это. Вариант 1: команда USE Запустите команду USE, чтобы выбрать пространство клавиш, к которому будут применяться все ваши команды. Для этого в оболочке cqlsh введите: USE keyspace_name; Затем вы можете начать добавлять таблицы. Вариант 2. Укажите имя пространства ключей в запросе Второй вариант — указать имя пространства ключей в запросе на создание таблицы. Первая часть команды перед именами столбцов и параметрами выглядит так: CREATE TABLE keyspace_name.table_name Таким образом, вы сразу же создаете таблицу в заданном пространстве ключей. Базовый синтаксис для создания таблиц Cassandra Создание таблиц с помощью CQL похоже на SQL-запросы. В этом разделе мы покажем вам основной синтаксис для создания таблиц в Cassandra. Основной синтаксис для создания таблицы выглядит следующим образом: CREATE TABLE tableName ( columnName1 dataType, columnName2 dataType, columnName2 datatype PRIMARY KEY (columnName) ); При желании вы можете определить дополнительные свойства и значения таблицы, используя WITH: WITH propertyName=propertyValue; Например, используйте его, чтобы определить, как хранить данные на диске или использовать ли сжатие. Типы первичных ключей Cassandra Каждая таблица в Cassandra должна иметь первичный ключ, что делает строку уникальной. С первичными ключами вы определяете, какой узел хранит данные и как он их разделяет. Существует несколько типов первичных ключей: Простой первичный ключ. Содержит только одно имя столбца в качестве ключа секции, чтобы определить, какие узлы будут хранить данные. Составной первичный ключ. Использует один ключ разделения и несколько столбцов кластеризации, чтобы определить, где хранить данные и как их сортировать в разделе. Составной ключ раздела. В этом случае есть несколько столбцов, которые определяют, где хранить данные. Таким образом, вы можете разбить данные на более мелкие части, чтобы распределить их по нескольким разделам, чтобы избежать горячих точек. Как создать таблицу Cassandra В следующих разделах объясняется, как создавать таблицы с различными типами первичных ключей. Сначала выберите пространство ключей, в котором вы хотите создать таблицу. В нашем случае: USE businesinfo; Каждая таблица содержит столбцы и тип данных Cassandra для каждой записи. Создать таблицу с простым первичным ключом Первый пример — это базовая таблица с поставщиками. Идентификатор уникален для каждого поставщика и будет служить первичным ключом. CQL-запрос выглядит следующим образом: CREATE TABLE suppliers ( supp_id int PRIMARY KEY, supp_city text, supp_email text, supp_fee int, supp_name text, supp_phone int ); Этот запрос создал таблицу с именем supplier с supp_id в качестве первичного ключа для таблицы. Когда вы используете простой первичный ключ с именем столбца в качестве ключа раздела, вы можете поместить его либо в начало запроса (рядом со столбцом, который будет служить первичным ключом), либо в конец, а затем указать имя столбца: CREATE TABLE suppliers ( supp_id int, supp_city text, supp_email text, supp_fee int, supp_name text, supp_phone int PRIMARY KEY(supp_id) ); Чтобы увидеть, находится ли таблица в пространстве ключей, введите: DESCRIBE TABLES; В выводе перечислены все таблицы в этом пространстве ключей, а также та, которую вы создали. Чтобы отобразить содержимое таблиц, введите: SELECT * FROM suppliers; Вывод показывает все столбцы, определенные при создании таблицы. Другой способ просмотреть сведения о таблице — использовать DESCRIBE и указать имя таблицы: DESCRIBE suppliers; В выходных данных отображаются столбцы и настройки по умолчанию для таблицы. Создать таблицу с составным первичным ключом Чтобы запросить и получить результаты, отсортированные в определенном порядке, создайте таблицу с составным первичным ключом. Например, создайте таблицу для поставщиков и всех продуктов, которые они предлагают. Поскольку продукты могут не быть уникальными для каждого поставщика, необходимо добавить один или несколько столбцов кластеризации в первичный ключ, чтобы сделать его уникальным. Схема таблицы выглядит так: CREATE TABLE suppliers_by_product ( supp_product text, supp_id int, supp_product_quantity text, PRIMARY KEY(supp_product, supp_id) ); В этом случае мы использовали supp_product и supp_id для создания уникального составного ключа. Здесь первая запись в скобках supp_product — это ключ раздела. Он определяет, где хранить данные, то есть как система разделяет данные. Следующая запись — столбец кластеризации, определяющий, как Cassandra сортирует данные, в нашем случае — по supp_id. Изображение выше показывает, что таблица была успешно создана. Чтобы проверить детали таблицы, запустите запрос DESCRIBE TABLE для новой таблицы: DESCRIBE TABLE suppliers_by_product; Настройки по умолчанию для порядка кластеризации — по возрастанию (ASC). Вы можете перейти на нисходящий (DESC), добавив следующий оператор после первичного ключа: WITH CLUSTERING ORDER BY (supp_id DESC); Мы указали один столбец кластеризации после ключа раздела. Если вам нужно отсортировать данные с использованием двух столбцов, добавьте еще один столбец в скобки первичного ключа. Создание таблиц с использованием составного ключа раздела Создание таблицы с составным ключом раздела полезно, когда на одном узле хранится большой объем данных, и вы хотите разделить нагрузку на несколько узлов. В этом случае определите первичный ключ с ключом секции, состоящим из нескольких столбцов. Вам нужно использовать двойные скобки. Затем добавьте столбцы кластеризации, как мы делали ранее, чтобы создать уникальный первичный ключ. CREATE TABLE suppliers_by_product_type ( supp_product_consume text, supp_product_stock text, supp_id int, supp_name text, PRIMARY KEY((supp_product_consume, supp_product_stock), supp_id) ); В приведенном выше примере мы разделили данные на две категории: расходные материалы поставщика и продукты, запасаемые на складе, и распределили данные с помощью составного ключа раздела. Примечание. При таком разделении каждая категория продуктов хранится на отдельном узле, а не в одном разделе. Если вместо этого вы используете составной первичный ключ с простым ключом раздела и несколькими столбцами кластеризации, то один узел будет обрабатывать все данные, отсортированные по нескольким столбцам. Удалить таблицу в Cassandra Чтобы удалить таблицу в Cassandra, используйте оператор DROP TABLE. Чтобы выбрать таблицу, которую вы хотите удалить, введите: DESCRIBE TABLES; Найдите таблицу, которую хотите удалить. Используйте имя таблицы, чтобы удалить ее: DROP TABLE suppliers_by_product_type; Запустите запрос DESCRIBE TABLES еще раз, чтобы убедиться, что вы успешно удалили таблицу. Изменить таблицу в Cassandra Cassandra CQL позволяет добавлять или удалять столбцы из таблицы. Используйте команду ALTER TABLE, чтобы внести изменения в таблицу. Добавить столбец в таблицу Перед добавлением столбца в таблицу рекомендуется просмотреть содержимое таблицы, чтобы убедиться, что имя столбца еще не существует. После проверки используйте запрос ALTER TABLE в этом формате, чтобы добавить столбец: ALTER TABLE suppliers_by_product ADD supp_name text; Снова используйте DESCRIBE TABLE, чтобы убедиться, что столбец появился в списке. Удалить столбец из таблицы Подобно добавлению столбца, вы можете удалить столбец из таблицы. Найдите столбец, который вы хотите удалить, с помощью запроса DESCRIBE TABLES. Затем введите: ALTER TABLE suppliers_by_product DROP supp_product_quantity; Примечание. Не указывайте тип данных для столбца, если вы хотите удалить его из таблицы. Вы получите ошибку “SyntaxException: line 1:48 mismatched input ‘text’ expecting EOF (ALTER TABLE suppliers_by_product DROP supp_name [text]…)” Очистить таблицу в Cassandra Если вы не хотите удалять всю таблицу, но вам нужно удалить все строки, используйте команду TRUNCATE. Например, чтобы удалить все строки из таблицы поставщиков, введите: TRUNCATE suppliers; Чтобы убедиться, что в вашей таблице больше нет строк, используйте оператор SELECT. После очистки таблицы изменения становятся постоянными, поэтому будьте осторожны при использовании этого запроса. Итоги В этом руководстве показано, как создавать таблицы в Cassandra для различных целей с использованием простых и составных первичных ключей. Примеры также включали использование составного ключа раздела для распределения данных по узлам. Мы также рассмотрели, как вы можете удалять, изменять и очищать таблицы в Cassandra. Убедитесь, что вы удаляете или вносите изменения в правильные таблицы, чтобы избежать потенциальных проблем.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59