Можно ли использовать команду копирования cassandra cqlsh внутри программы Python?

#python #cassandra

#python #кассандра

Вопрос:

Можно ли выполнить команду копирования Cassandra CQLSH через программу Python. Если да, то как?

Заранее спасибо.

Ответ №1:

Да, это возможно. Я предоставляю вам пример кода о том, как мы используем cqlsh внутри python. Я думаю, вы можете получить от нее некоторую помощь, но не заинтересованы в написании всего сценария копирования для вас.

  import subprocess

 host =  "xxx.xxx.xxx.xxx"
 user = "cassandra"
 password = "cassandra"
 process = subprocess.Popen("cqlsh "   host   " -u "   user   " -p "   password, shell=True)
 exitCode = process.wait()
 if exitCode == 0:
     print "Job Done!"
 else:
     print "Still working!"
  

Комментарии:

1. Где вы использовали оператор копирования в приведенном выше фрагменте (как указано в вопросе)? Это скорее конфигурационные инструкции, а не для того, чтобы показать, как использовать инструкцию копирования.

2. Я предоставил пример кода для cqlsh программы inside the python, для тех, кто знает, как писать программы на Python, этого примера для них достаточно. Опять же, если вам нужны дополнительные подсказки для завершения этого, поместите свою команду копирования внутрь subprocess , она будет работать.

Ответ №2:

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

Эквивалент Python для вышеупомянутого будет :

 command = f"""cqlsh {host} -u {username} -p '{password}' -k '{db_name}' -e " COPY played_logs FROM '{file_path}' WITH DELIMITER = ','; " """
  

Затем с помощью os модуля просто передайте команду в оболочку :

 os.system(command)