GOOGLE ADS

Montag, 11. April 2022

Migrieren von DDL von Cassandra zu YugabyteDB YCQL

[Frage, die von einem Benutzer in YugabyteDB Community Slack gepostet wurde ]

Ich versuche, DDLs von Apache cassandra nach YugabyteDB YCQL zu migrieren. Aber ich bekomme diesen Fehler:

cassandra@ycqlsh:killrvideo> CREATE TABLE killrvideo.videos (
... video_id timeuuid PRIMARY KEY,
... added_date timestamp,
... title text
... ) WITH additional_write_policy = '99p'
... AND bloom_filter_fp_chance = 0.01
... AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
... AND cdc = false
... AND comment = ''
... AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
... AND compression = {'chunk_length_in_kb': '16', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
... AND crc_check_chance = 1.0
... AND default_time_to_live = 0
... AND extensions = {}
... AND gc_grace_seconds = 864000
... AND max_index_interval = 2048
... AND memtable_flush_period_in_ms = 0
... AND min_index_interval = 128
... AND read_repair = 'BLOCKING'
... AND speculative_retry = '99p';
SyntaxException: Invalid SQL Statement. syntax error, unexpected '}', expecting SCONST
CREATE TABLE killrvideo.videos (
video_id timeuuid PRIMARY KEY,
added_date timestamp,
title text
) WITH additional_write_policy = '99p'
AND bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND cdc = false
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '16', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND default_time_to_live = 0
AND extensions = {}
^
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair = 'BLOCKING'
AND speculative_retry = '99p';
(ql error -11)

Werden diese optionalen Parameter nach der Erstellungstabelle in YugabyteDB nicht unterstützt (aus der Beschreibung des Schlüsselraums killrvideo entnommen). Nicht sicher, was ich hier vermisse? Jede Hilfe ist sehr willkommen


Lösung des Problems

Bitte schaue auf: https://docs.yugabyte.com/latest/api/ycql/ddl_create_table/#table-properties-1
Du kannst alles entfernen, ab withdem du wahrscheinlich die Tabelle erstellen kannst.

Entnahme dieser Aussage aus den Dokumenten:

Die anderen YCQL-Tabelleneigenschaften sind in der Syntax erlaubt, werden aber derzeit intern ignoriert (haben keine Auswirkung). (Andere sind Eigenschaften, die sich nicht mit einem begrenzten Satz von Tabelleneigenschaften für die YCQL-Engine befassen)

Der wahrscheinliche Grund, warum Sie diesen Fehler erhalten, ist, dass Sie Eigenschaften verwenden, die spezifisch für Stock Cassandra sind und nicht in YugabyteDB implementiert sind, da sie eine andere Speicherschicht verwenden.

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...