2016-07-25 7 views
0

Ich versuche, eine JSON in Cassandra Tabelle mit Hilfe von Shell und Java-Code einzufügen, aber diesen Fehler: keine brauchbare Alternative am Eingang JSONKeine praktikable Alternative bei Eingabe 'JSON' Ausnahme in Cqlsh. Nicht in der Lage JSON in Cassandra Tabelle einzufügen

  1. Cassandra Versionen: [ cqlsh 4.1.1 | Kassandra 2.0.12 | CQL-Spezifikation 3.1.1 | Thrift-Protokoll 19.39.0]
  2. Tabellenerstellungsskript CREATE TABLE-Benutzer (ID int PRIMARY KEY, Alter int, Zustandstext);
  3. Skript einfügen INSERT INTO-Benutzer JSON '{"id": 888, "age": 42, "state": "TX"};
  4. Ähnliche Code für Einfügen mit Java: Zeichenfolge cqlStatement = "INSERT INTO Benutzer JSON '{\" ID \ ": 888, \" Alter \ ": 21, \" Zustand \ ": \" TX \ "} "; cassandraTemplate.execute (cqlStatement);

Erste Ausnahme sowohl in dem Fall, wie: keine brauchbare Alternative am Eingang 'JSON' 5. Muss ich etwas in Cassandra einzurichten, um JSON-Befehl im Terminal zu akzeptieren?

Antwort

-1

Gefunden Antwort auf die Frage, die auch in Cassandra 2.0.12

Voraussetzung funktioniert:

  1. minimierte Version von JSON in der Tabelle einzufügen können
  2. Link-http://www.httputility.net/json-minifier.aspx sein verwendet, um den JSON zu verkleinern (Gehe zu dieser Seite und kopiere den JSON
    Inhalt, reduziere und kopiere den Ausgang)
  3. prüfen für jeden einzelnen Anführungszeichen ('), ersetzen Sie es durch doppelte Anführungszeichen (' ')
  4. Stellen Sie sicher, String wird in Text Spalte

Im gegebenen eingefügt werden nicht beendet

  • JSon sollte sample eine Tabelle mit dem Namen Mitarbeiter wurde erstellt, die 4 Spalten hat. Geben Sie einen Ganzzahlwert, einen Textwert, eine Ephonenummer als Liste von Text und eine E-Adresse als Text ein.eaddress ist die Spalte, in JSON soll

    Schritte eingefügt werden, auszuführen:

    1. eine Tabelle können sagen Mitarbeiter erstellen mit 4 Spalten eid, ename, ephonenumber, eaddress mit Primärschlüssel eid

    Befehl in CQL Terminal auszuführen:

    Tabelle Mitarbeiter erstellen (ei d int, ename text, Ephonumberliste, eaddress text, Primärschlüssel (eid));

    1. Legen Sie eine Zeile in Tabelle employee mit ephonenumber als Liste und eaddress als json

      Befehl in CQL Terminal

    Einsatz in Mitarbeiter auszuführen (eid, ename, ephonenumber, eaddress) Werte (1, 'Sourav', ['7773330000', '5550003333'], '{"office": "197 - ITPL - Bangalore", "home": "196 -Thubarahalli - Bangalore "} ');

    1. Prüfung mit Auswahlabfrage, wenn JSON-String
    2. eingefügt wurde

    Select * from Mitarbeiter

  • 0

    Nicht möglich mit Ihrer Version 2.0.12. Sieht aus wie Cassandra 2.2 ist die minimale Version, die "INSERT INTO Benutzer JSON ..." unterstützt.

    Mit < 2.2 die Alternativen sind hier erfasst:

    insert JSON String in Apache-Cassandra 0.8.2

    Verwandte Themen