2016-02-17 8 views
5

ich folgendes Schema erschaffe:Warum dauert es so lange, eine Tabelle zu erstellen?

CREATE TABLE stats_by_site_tracking_hourly (
    d_tally text, -- 2016-02 
    d_date timestamp, -- 2016-02-01 13 
    site_id int, 
    is_new_member int, -- 1/0 
    device text, -- desktop/tablet/mobile/unknown 
    tracking_medium text, 
    tracking_source text, 
    tracking_campaign text, 
    tracking_term text, 
    accepted counter, 
    adjusted_accepted counter, 
    rejected counter, 
    adjusted_rejected counter, 
    error counter, 
    impressions_positive counter, 
    adjusted_impressions_positive counter, 
    impressions_negative counter, 
    adjusted_impressions_negative counter, 
    revenue counter, 
    adjusted_revenue counter, 
    reversals_rejected counter, 
    reversals_revenue counter, 
    PRIMARY KEY ((d_tally), site_id, d_date, is_new_member, device, tracking_medium, tracking_source, tracking_campaign, tracking_term) 
); 

Wenn ich die Anweisung ausführen, scheint es, dass die ersten paar Spalten jedoch schnell verarbeitet werden, wenn sie auf die Gegen Spalten bewegt sie nach unten mehr verlangsamt und mehr für jede Spalte.

Ich habe diese Anweisung für 5 Minuten ausgeführt und es ist immer noch nicht abgeschlossen.

Kann jemand Einblick in dieses Verhalten geben?


This ist, was CQLSH aussieht wie die Tabelle erstellt wird, und wenn der Screenshot gemacht hatte es nicht für 20 Minuten fortgeschritten oder so.


Ich habe einfach den create table Befehl in eine Zeile gesetzt und es hat sofort funktioniert.

+0

"Es scheint, dass die ersten paar Spalten schnell verarbeitet werden, aber wenn sie auf die Zählerspalten bewegt werden, wird sie für jede Spalte immer langsamer." -> Wie haben Sie den Fortschritt der Schemaerstellung gemessen? – doanduyhai

+0

Wenn ich das Schema in cqlsh kopiere, fügt es eine Zeile nach der anderen ein und ich gehe davon aus, dass die Pause in jeder Spalte auf dem Hinzufügen der Spalte beruht. Dies ist eine Annahme, aber ich kann mir keinen anderen Grund für die Verzögerung vorstellen. Ich habe einen Screenshot von cqlsh in meine Frage eingefügt. –

+0

"Wenn ich das Schema in cqlsh kopiere, fügt es eine Zeile nach der anderen ein und ich nehme an, dass die Pause in jeder Spalte ist, weil sie die Spalte" -> Es ist vielleicht weil Ihre SSH-Verbindung langsam ist. ** cqlsh ** sendet die CREATE TABLE-Abfrage nicht an Cassandra, bis sie die vollständige Anweisung enthält, ** nicht Zeile für Zeile ** – doanduyhai

Antwort

4

Ich hob diesen Fehler hier: here

Dies aufgrund des Schemas auf die Registerkarten entpuppte. CQLSH versuchte jedes Mal automatisch zu vervollständigen, wenn es zu einem Tab kam.

+0

omg, ich habe gerade den gleichen Fehler und Sie haben Recht. –

+0

Ich hätte nicht gedacht das wäre immer noch da! –

2

Ich hatte das gleiche Problem auf mehreren Computern und es scheint, dass es ein Fehler in der interaktiven Shell cqlsh> ist. Wenn Sie das Skript von Ihrem Terminal ausführen wird es sofort ausführen:

> cqlsh -f your_cql_script.cql <hostname> 

Dies läuft sofort egal was Größe Tabellen und werden Sie viel Zeit sparen.

+0

Ich postete dies als einen Fehler an Datastax und es stellte sich heraus, dass es cqlsh war, das die Tabs interpretiert und versucht, automatisch zu vervollständigen! +1 für die Arbeit um :). –

Verwandte Themen