web-dev-qa-db-fra.com

Comment exécuter des fichiers cql (.cql) depuis cqlsh?

Le problème que j'ai est que je veux exécuter la commande suivante (et je ne peux pas):

cqlsh < cql_directory/cql_create_stuff.cql

Parce que je ne me suis pas connecté à cqlsh.

Alors je me suis connecté:

cqlsh -u 'my_username' -p 'my_super_secret_password'

et maintenant j'ai essayé de faire la commande dans cqlsh Shell mais cela répond simplement avec une erreur de syntaxe.

En gros, comment me connecter à cqlsh et exécuter un script CQL externe dans mon système de fichiers?

49
Pinocchio

Utilisez le SOURCE

http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/source_r.html

Vous pouvez utiliser -f option aussi pour exécuter des commandes depuis un fichier

http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/cqlsh.html

54
Mikhail Stepura

En supposant que le chemin du fichier contenant les commandes CQL soit /mydir/myfile.cql, il y a deux façons:

Si vous n'êtes pas connecté à cqlsh:

cqlsh -u 'my_username' -p 'my_password' -f /mydir/myfile.cql

Si vous êtes connecté à cqlsh:

SOURCE '/mydir/myfile.cql'

Notez les guillemets simples. La notation abrégée pour $HOME (par exemple, '~/mydir/myfile.cql') est également supporté.

Les deux méthodes fonctionnent également avec des chemins relatifs (vers le répertoire actuel).

22
Esteban Herrera

Ceci est pour le système Windows

supposons que vous cassandra dir est C:\Program Files\DataStax-DDC\Apache-cassandra\bin

Supposons un répertoire dans lequel votre fichier .cql OR le fichier de requête cql est D:\ril\s\developement\new one\Excel après l'analyse\Women catalogue template.cql

Suivez maintenant les étapes ci-dessous pour importer un fichier cql

  1. Allez sur l'invite de commande (cmd)
  2. Allez sur le répertoire où se trouve le fichier cql (cd "..\ril\sizeguide\developement\new one\Excel après l'analyse")
  3. Exécutez la commande ci-dessous "c:\Program Files\DataStax-DDC\Apache-cassandra\bin\cqlsh.bat" <"Catalogue de femmes template.cql"

Et c'est fait.

Note importante:

  • Assurez-vous que la valeur de la colonne ne doit pas contenir de guillemets simples ' des caractères tels que (' Si vous ne trouvez pas une correspondance exacte, optez pour la taille la plus grande suivante '). Sinon, cela échouera.
  • Si vous souhaitez insérer une seule citation, veuillez l’utiliser deux fois, comme ci-dessous et Cassandra le traitera comme une fois ('Si vous ne trouvez pas de correspondance exacte, passez à la suivante. grande taille')
  • Toutes les colonnes de texte doivent être entourées d'un guillemet simple '' comme 'Catégorie de vente'. Pour une valeur vide, veuillez utiliser deux guillemets simples ''.
0
Sandeep kr gupta

En supposant que votre nom de fichier soit "tables.cql" et qu'il soit placé comme suit: /files/tables.cql;

A - localement

cqlsh -f /files/tables.cql

B - Connexion à un conteneur Docker exécutant Cassandra

En supposant que le nom du conteneur Docker soit celui qui s'exécute Cassandra est "cas" (n'oubliez pas que vous pouvez également utiliser l'identifiant de hachage du conteneur Docker s'il n'y a pas de nom qui lui est assigné);

docker exec -it cas cqlsh -f /files/tables.cql

Comme indiqué dans d'autres réponses, -u et -p _ options peuvent être ajoutées pour utiliser les combinaisons nom d'utilisateur/mot de passe.

0
Levent Divilioglu